summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname554
-rw-r--r--FILES.byname.gzbin2234069 -> 2234324 bytes
-rw-r--r--FILES.last07days786
-rw-r--r--fonts/academicons/README4
-rw-r--r--fonts/academicons/academicons.pdfbin99883 -> 104065 bytes
-rw-r--r--fonts/academicons/academicons.sty211
-rw-r--r--fonts/academicons/academicons.tex28
-rw-r--r--fonts/academicons/academicons.ttfbin47500 -> 58740 bytes
-rw-r--r--fonts/academicons/tuacademicons.fd4
-rw-r--r--fonts/newcomputermodern/NewCM10-Bold.otfbin374992 -> 386096 bytes
-rw-r--r--fonts/newcomputermodern/NewCM10-BoldItalic.otfbin349556 -> 372156 bytes
-rw-r--r--fonts/newcomputermodern/NewCM10-Book.otfbin1097728 -> 1136660 bytes
-rw-r--r--fonts/newcomputermodern/NewCM10-BookItalic.otfbin1144256 -> 1193332 bytes
-rw-r--r--fonts/newcomputermodern/NewCM10-Italic.otfbin368300 -> 398768 bytes
-rw-r--r--fonts/newcomputermodern/NewCM10-Regular.otfbin396852 -> 414236 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMath-Book.otfbin1925632 -> 1927012 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMath-Regular.otfbin940444 -> 940200 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMono10-Bold.otfbin212104 -> 212104 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMono10-BoldOblique.otfbin537056 -> 537056 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMono10-Book.otfbin740840 -> 740840 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMono10-BookItalic.otfbin1031852 -> 1031876 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMono10-Italic.otfbin694716 -> 694716 bytes
-rw-r--r--fonts/newcomputermodern/NewCMMono10-Regular.otfbin270732 -> 270732 bytes
-rw-r--r--fonts/newcomputermodern/NewCMSans10-Bold.otfbin263084 -> 271548 bytes
-rw-r--r--fonts/newcomputermodern/NewCMSans10-BoldOblique.otfbin600312 -> 611400 bytes
-rw-r--r--fonts/newcomputermodern/NewCMSans10-Book.otfbin482236 -> 493852 bytes
-rw-r--r--fonts/newcomputermodern/NewCMSans10-BookOblique.otfbin491976 -> 512292 bytes
-rw-r--r--fonts/newcomputermodern/NewCMSans10-Oblique.otfbin233064 -> 244964 bytes
-rw-r--r--fonts/newcomputermodern/NewCMSans10-Regular.otfbin251960 -> 260084 bytes
-rw-r--r--fonts/newcomputermodern/README19
-rw-r--r--fonts/newcomputermodern/newcm-unimath-symbols.pdfbin0 -> 1590230 bytes
-rw-r--r--macros/latex/contrib/fontsetup/README2
-rw-r--r--macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdfbin679611 -> 705978 bytes
-rw-r--r--macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex66
-rw-r--r--macros/latex/contrib/fontsetup/fspdefault.sty85
-rw-r--r--macros/latex/contrib/fontsetup/fspolddefault.sty85
-rw-r--r--macros/luatex/latex/ekdosis/Makefile45
-rw-r--r--macros/luatex/latex/ekdosis/README.md18
-rw-r--r--macros/luatex/latex/ekdosis/ekdosis.dtx3452
-rw-r--r--macros/luatex/latex/ekdosis/ekdosis.el150
-rw-r--r--macros/luatex/latex/ekdosis/ekdosis.pdfbin362094 -> 600804 bytes
-rw-r--r--macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml4
-rw-r--r--macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdfbin17989 -> 17992 bytes
-rw-r--r--macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex6
-rw-r--r--macros/luatex/latex/ekdosis/samples/Makefile33
-rw-r--r--macros/luatex/latex/luaprogtable/README.md13
-rw-r--r--macros/luatex/latex/luaprogtable/luaprogtable-doc.pdfbin0 -> 437891 bytes
-rw-r--r--macros/luatex/latex/luaprogtable/luaprogtable-doc.tex616
-rw-r--r--macros/luatex/latex/luaprogtable/luaprogtable-parse.lua116
-rw-r--r--macros/luatex/latex/luaprogtable/luaprogtable-stringbuffer.lua74
-rw-r--r--macros/luatex/latex/luaprogtable/luaprogtable-utility.lua109
-rw-r--r--macros/luatex/latex/luaprogtable/luaprogtable.lua559
-rw-r--r--macros/luatex/latex/luaprogtable/luaprogtable.sty237
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb109
-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.xzbin2215932 -> 2215432 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--systems/win32/w32tex/ChangeLog33
-rw-r--r--timestamp2
62 files changed, 6337 insertions, 1117 deletions
diff --git a/FILES.byname b/FILES.byname
index 7cd8de19f3..600361b44a 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5003,14 +5003,14 @@
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/08/13 | 228060 | FILES.last07days
-2018/06/27 | 99883 | fonts/academicons/academicons.pdf
-2018/06/27 | 10779 | fonts/academicons/academicons.sty
-2018/06/27 | 5774 | fonts/academicons/academicons.tex
-2018/04/14 | 47500 | fonts/academicons/academicons.ttf
-2018/06/27 | 1674 | fonts/academicons/README
-2018/06/25 | 465 | fonts/academicons/tuacademicons.fd
-2018/06/27 | 129758 | fonts/academicons.zip
+2020/08/14 | 107700 | 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
+2020/08/13 | 58740 | fonts/academicons/academicons.ttf
+2020/08/14 | 1673 | fonts/academicons/README
+2020/08/14 | 399 | fonts/academicons/tuacademicons.fd
+2020/08/14 | 139216 | fonts/academicons.zip
2010/11/20 | 284304 | fonts/accanthis/doc/Accanthis-Cat.pdf
2013/11/04 | 22327 | fonts/accanthis/doc/accanthis-samples.pdf
2013/11/04 | 385 | fonts/accanthis/doc/accanthis-samples.tex
@@ -76615,26 +76615,27 @@
2013/03/04 | 692 | fonts/nanumtype1/vf/ts1nanummjmo.vf
2013/03/04 | 684 | fonts/nanumtype1/vf/ts1nanummjm.vf
2013/03/25 | 30424476 | fonts/nanumtype1.zip
-2020/07/10 | 349556 | fonts/newcomputermodern/NewCM10-BoldItalic.otf
-2020/07/10 | 374992 | fonts/newcomputermodern/NewCM10-Bold.otf
-2020/07/10 | 1144256 | fonts/newcomputermodern/NewCM10-BookItalic.otf
-2020/07/10 | 1097728 | fonts/newcomputermodern/NewCM10-Book.otf
-2020/07/10 | 368300 | fonts/newcomputermodern/NewCM10-Italic.otf
-2020/07/10 | 396852 | fonts/newcomputermodern/NewCM10-Regular.otf
-2020/07/08 | 1925632 | fonts/newcomputermodern/NewCMMath-Book.otf
-2020/07/08 | 940444 | fonts/newcomputermodern/NewCMMath-Regular.otf
-2020/07/08 | 537056 | fonts/newcomputermodern/NewCMMono10-BoldOblique.otf
-2020/07/08 | 212104 | fonts/newcomputermodern/NewCMMono10-Bold.otf
-2020/07/08 | 1031852 | fonts/newcomputermodern/NewCMMono10-BookItalic.otf
-2020/07/08 | 740840 | fonts/newcomputermodern/NewCMMono10-Book.otf
-2020/07/08 | 694716 | fonts/newcomputermodern/NewCMMono10-Italic.otf
-2020/07/08 | 270732 | fonts/newcomputermodern/NewCMMono10-Regular.otf
-2020/07/08 | 600312 | fonts/newcomputermodern/NewCMSans10-BoldOblique.otf
-2020/07/08 | 263084 | fonts/newcomputermodern/NewCMSans10-Bold.otf
-2020/07/08 | 491976 | fonts/newcomputermodern/NewCMSans10-BookOblique.otf
-2020/07/08 | 482236 | fonts/newcomputermodern/NewCMSans10-Book.otf
-2020/07/08 | 233064 | fonts/newcomputermodern/NewCMSans10-Oblique.otf
-2020/07/08 | 251960 | fonts/newcomputermodern/NewCMSans10-Regular.otf
+2020/08/14 | 372156 | fonts/newcomputermodern/NewCM10-BoldItalic.otf
+2020/08/14 | 386096 | fonts/newcomputermodern/NewCM10-Bold.otf
+2020/08/14 | 1193332 | fonts/newcomputermodern/NewCM10-BookItalic.otf
+2020/08/14 | 1136660 | fonts/newcomputermodern/NewCM10-Book.otf
+2020/08/14 | 398768 | fonts/newcomputermodern/NewCM10-Italic.otf
+2020/08/14 | 414236 | fonts/newcomputermodern/NewCM10-Regular.otf
+2020/08/14 | 1927012 | fonts/newcomputermodern/NewCMMath-Book.otf
+2020/08/14 | 940200 | fonts/newcomputermodern/NewCMMath-Regular.otf
+2020/08/14 | 537056 | fonts/newcomputermodern/NewCMMono10-BoldOblique.otf
+2020/08/14 | 212104 | fonts/newcomputermodern/NewCMMono10-Bold.otf
+2020/08/14 | 1031876 | fonts/newcomputermodern/NewCMMono10-BookItalic.otf
+2020/08/14 | 740840 | fonts/newcomputermodern/NewCMMono10-Book.otf
+2020/08/14 | 694716 | fonts/newcomputermodern/NewCMMono10-Italic.otf
+2020/08/14 | 270732 | fonts/newcomputermodern/NewCMMono10-Regular.otf
+2020/08/14 | 611400 | fonts/newcomputermodern/NewCMSans10-BoldOblique.otf
+2020/08/14 | 271548 | fonts/newcomputermodern/NewCMSans10-Bold.otf
+2020/08/14 | 512292 | fonts/newcomputermodern/NewCMSans10-BookOblique.otf
+2020/08/14 | 493852 | fonts/newcomputermodern/NewCMSans10-Book.otf
+2020/08/14 | 244964 | fonts/newcomputermodern/NewCMSans10-Oblique.otf
+2020/08/14 | 260084 | fonts/newcomputermodern/NewCMSans10-Regular.otf
+2020/07/17 | 1590230 | fonts/newcomputermodern/newcm-unimath-symbols.pdf
2020/06/24 | 221 | fonts/newcomputermodern/NewComputerModernBook.fontspec
2020/02/25 | 215 | fonts/newcomputermodern/NewComputerModern.fontspec
2020/06/24 | 243 | fonts/newcomputermodern/NewComputerModernMonoBook.fontspec
@@ -76643,8 +76644,8 @@
2020/07/11 | 7705 | fonts/newcomputermodern/newcomputermodern-sample.tex
2020/06/24 | 244 | fonts/newcomputermodern/NewComputerModernSansBook.fontspec
2020/02/25 | 238 | fonts/newcomputermodern/NewComputerModernSans.fontspec
-2020/07/11 | 5208 | fonts/newcomputermodern/README
-2020/07/11 | 6862487 | fonts/newcomputermodern.zip
+2020/08/14 | 6168 | fonts/newcomputermodern/README
+2020/08/14 | 8513293 | fonts/newcomputermodern.zip
2020/06/03 | 5405 | fonts/newpx/afm/NewPXBMI.afm
2019/09/10 | 4864 | fonts/newpx/afm/NewPXBMI_gnu.afm
2020/06/03 | 5651 | fonts/newpx/afm/NewPXMI.afm
@@ -140490,7 +140491,7 @@
2019/12/12 | 3088 | info/biblio/texnique.ltx
1999/02/20 | 312 | info/biblio/tugbib2.ltx
1999/02/20 | 315 | info/biblio/tugbib.ltx
-2020/08/12 | 3648358 | info/biblio/tugboat.bib
+2020/08/13 | 3648357 | info/biblio/tugboat.bib
2020/08/07 | 136241 | info/biblio/tugboat.def
2020/08/11 | 3579 | info/biblio/tugboat.ltx
2014/08/12 | 20186 | info/biblio/type.bib
@@ -163906,7 +163907,7 @@
2020/05/07 | 1863252 | install/macros/luatex/generic/luaotfload.tds.zip
2015/10/04 | 277014 | install/macros/luatex/generic/luatexbase.tds.zip
2020/03/23 | 891718 | install/macros/luatex/latex/arabluatex.tds.zip
-2020/07/08 | 407888 | install/macros/luatex/latex/ekdosis.tds.zip
+2020/08/14 | 621285 | install/macros/luatex/latex/ekdosis.tds.zip
2020/06/27 | 1100787 | install/macros/luatex/latex/emoji.tds.zip
2013/09/26 | 155171 | install/macros/luatex/latex/luabibentry.tds.zip
2012/01/23 | 423265 | install/macros/luatex/latex/luacode.tds.zip
@@ -189741,8 +189742,8 @@
2020/07/21 | 126590 | macros/latex/contrib/fontaxes/fontaxes.pdf
2014/03/23 | 1645 | macros/latex/contrib/fontaxes/README
2020/07/22 | 137019 | macros/latex/contrib/fontaxes.zip
-2020/06/26 | 679611 | macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdf
-2020/06/26 | 10390 | macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex
+2020/08/14 | 705978 | macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdf
+2020/08/14 | 16464 | macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex
2020/06/26 | 60986 | macros/latex/contrib/fontsetup/doc/fspsample-cambria.pdf
2020/06/26 | 27714 | macros/latex/contrib/fontsetup/doc/fspsample-cmr.pdf
2020/06/26 | 30994 | macros/latex/contrib/fontsetup/doc/fspsample-ebgaramond.pdf
@@ -189764,7 +189765,7 @@
2020/06/26 | 23139 | macros/latex/contrib/fontsetup/doc/fspsample-times.pdf
2020/06/24 | 3705 | macros/latex/contrib/fontsetup/fontsetup.sty
2019/11/07 | 270 | macros/latex/contrib/fontsetup/fspcambria.sty
-2020/06/23 | 5329 | macros/latex/contrib/fontsetup/fspdefault.sty
+2020/08/07 | 9047 | macros/latex/contrib/fontsetup/fspdefault.sty
2019/11/10 | 318 | macros/latex/contrib/fontsetup/fspebgaramondot.sty
2019/11/08 | 700 | macros/latex/contrib/fontsetup/fspfiraot.sty
2019/11/09 | 661 | macros/latex/contrib/fontsetup/fspgfsartemisiaot.sty
@@ -189776,14 +189777,14 @@
2019/12/20 | 865 | macros/latex/contrib/fontsetup/fspminion.sty
2019/11/21 | 747 | macros/latex/contrib/fontsetup/fspmsgaramondot.sty
2019/11/21 | 2272 | macros/latex/contrib/fontsetup/fspneoeulerot.sty
-2020/06/23 | 5340 | macros/latex/contrib/fontsetup/fspolddefault.sty
+2020/08/07 | 9058 | macros/latex/contrib/fontsetup/fspolddefault.sty
2019/12/20 | 464 | macros/latex/contrib/fontsetup/fsppalatinoot.sty
2019/11/09 | 443 | macros/latex/contrib/fontsetup/fspstixtwoot.sty
2019/11/09 | 666 | macros/latex/contrib/fontsetup/fsptimesot.sty
-2020/06/26 | 371 | macros/latex/contrib/fontsetup/README
+2020/08/04 | 371 | macros/latex/contrib/fontsetup/README
2019/12/20 | 20472 | macros/latex/contrib/fontsetup/system-install-fonts/fsplpscel.otf
2019/12/20 | 17944 | macros/latex/contrib/fontsetup/system-install-fonts/fspmnscel.otf
-2020/06/26 | 1330243 | macros/latex/contrib/fontsetup.zip
+2020/08/14 | 1359131 | macros/latex/contrib/fontsetup.zip
2020/05/24 | 40839 | macros/latex/contrib/fontsize/fontsize.dtx
2020/05/24 | 284372 | macros/latex/contrib/fontsize/fontsize.pdf
2020/05/24 | 1521 | macros/latex/contrib/fontsize/README
@@ -210481,15 +210482,17 @@
2019/06/08 | 10433 | macros/luatex/latex/combofont/combofont.tex
2019/06/08 | 445 | macros/luatex/latex/combofont/README.md
2019/06/08 | 94990 | macros/luatex/latex/combofont.zip
-2020/07/08 | 190826 | macros/luatex/latex/ekdosis/ekdosis.dtx
-2020/07/08 | 1868 | macros/luatex/latex/ekdosis/ekdosis.ins
-2020/07/08 | 362094 | macros/luatex/latex/ekdosis/ekdosis.pdf
-2020/07/08 | 3853 | macros/luatex/latex/ekdosis/Makefile
-2020/07/08 | 4605 | macros/luatex/latex/ekdosis/README.md
-2020/07/08 | 17989 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf
-2020/07/08 | 6896 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
-2020/07/08 | 3915 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex
-2020/07/08 | 387808 | macros/luatex/latex/ekdosis.zip
+2020/08/14 | 300967 | macros/luatex/latex/ekdosis/ekdosis.dtx
+2020/08/14 | 4364 | macros/luatex/latex/ekdosis/ekdosis.el
+2020/08/14 | 1868 | macros/luatex/latex/ekdosis/ekdosis.ins
+2020/08/14 | 600804 | macros/luatex/latex/ekdosis/ekdosis.pdf
+2020/08/14 | 3427 | macros/luatex/latex/ekdosis/Makefile
+2020/08/14 | 4252 | macros/luatex/latex/ekdosis/README.md
+2020/08/14 | 17992 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf
+2020/08/14 | 6851 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
+2020/08/14 | 3901 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex
+2020/08/14 | 853 | macros/luatex/latex/ekdosis/samples/Makefile
+2020/08/14 | 601150 | macros/luatex/latex/ekdosis.zip
2020/05/13 | 175991 | macros/luatex/latex/emojicite/emojicite-doc.pdf
2020/05/13 | 8411 | macros/luatex/latex/emojicite/emojicite-doc.tex
2020/05/13 | 3133 | macros/luatex/latex/emojicite/emojicite.sty
@@ -210776,6 +210779,15 @@
2020/06/07 | 45754 | macros/luatex/latex/luamesh/scripts/luamesh-tex.lua
2020/06/07 | 36552 | macros/luatex/latex/luamesh/tex/luamesh.sty
2020/06/07 | 248883 | macros/luatex/latex/luamesh.zip
+2020/08/13 | 437891 | macros/luatex/latex/luaprogtable/luaprogtable-doc.pdf
+2020/08/13 | 21510 | macros/luatex/latex/luaprogtable/luaprogtable-doc.tex
+2020/08/13 | 16863 | macros/luatex/latex/luaprogtable/luaprogtable.lua
+2020/08/13 | 3442 | macros/luatex/latex/luaprogtable/luaprogtable-parse.lua
+2020/08/13 | 2143 | macros/luatex/latex/luaprogtable/luaprogtable-stringbuffer.lua
+2020/08/13 | 7223 | macros/luatex/latex/luaprogtable/luaprogtable.sty
+2020/08/13 | 2650 | macros/luatex/latex/luaprogtable/luaprogtable-utility.lua
+2020/08/13 | 1127 | macros/luatex/latex/luaprogtable/README.md
+2020/08/14 | 450022 | macros/luatex/latex/luaprogtable.zip
2018/12/15 | 65 | macros/luatex/latex/luarandom/Changes
2018/12/15 | 49787 | macros/luatex/latex/luarandom/doc/luarandom-doc.pdf
2018/12/15 | 2795 | macros/luatex/latex/luarandom/doc/luarandom-doc.tex
@@ -255033,9 +255045,9 @@
2019/02/28 | 88032 | systems/texlive/tlnet/archive/aobs-tikz.doc.r32662.tar.xz
2019/02/28 | 1680 | systems/texlive/tlnet/archive/aobs-tikz.r32662.tar.xz
2019/02/28 | 5852 | systems/texlive/tlnet/archive/aobs-tikz.source.r32662.tar.xz
-2019/02/28 | 1150464 | systems/texlive/tlnet/archive/aomart.doc.r46091.tar.xz
-2019/02/28 | 13276 | systems/texlive/tlnet/archive/aomart.r46091.tar.xz
-2019/02/28 | 20092 | systems/texlive/tlnet/archive/aomart.source.r46091.tar.xz
+2020/08/14 | 1156148 | systems/texlive/tlnet/archive/aomart.doc.r56102.tar.xz
+2020/08/14 | 13396 | systems/texlive/tlnet/archive/aomart.r56102.tar.xz
+2020/08/14 | 21084 | systems/texlive/tlnet/archive/aomart.source.r56102.tar.xz
2020/01/15 | 565092 | systems/texlive/tlnet/archive/apa6.doc.r53406.tar.xz
2019/02/28 | 245600 | systems/texlive/tlnet/archive/apa6e.doc.r23350.tar.xz
2019/02/28 | 2896 | systems/texlive/tlnet/archive/apa6e.r23350.tar.xz
@@ -255170,8 +255182,8 @@
2019/02/28 | 2436 | systems/texlive/tlnet/archive/askmaps.r32320.tar.xz
2020/08/13 | 583924 | systems/texlive/tlnet/archive/asmeconf.doc.r56096.tar.xz
2020/08/13 | 18020 | systems/texlive/tlnet/archive/asmeconf.r56096.tar.xz
-2020/08/12 | 588352 | systems/texlive/tlnet/archive/asmejour.doc.r56092.tar.xz
-2020/08/12 | 18208 | systems/texlive/tlnet/archive/asmejour.r56092.tar.xz
+2020/08/14 | 591596 | systems/texlive/tlnet/archive/asmejour.doc.r56101.tar.xz
+2020/08/14 | 18240 | systems/texlive/tlnet/archive/asmejour.r56101.tar.xz
2019/02/28 | 337268 | systems/texlive/tlnet/archive/aspectratio.doc.r25243.tar.xz
2019/02/28 | 65600 | systems/texlive/tlnet/archive/aspectratio.r25243.tar.xz
2019/02/28 | 81860 | systems/texlive/tlnet/archive/assignment.doc.r20431.tar.xz
@@ -255657,7 +255669,7 @@
2020/04/22 | 787504 | systems/texlive/tlnet/archive/bearwear.doc.r54826.tar.xz
2020/04/22 | 2376 | systems/texlive/tlnet/archive/bearwear.r54826.tar.xz
2020/04/22 | 5992 | systems/texlive/tlnet/archive/bearwear.source.r54826.tar.xz
-2020/08/13 | 832552 | systems/texlive/tlnet/archive/beebe.r56094.tar.xz
+2020/08/14 | 867948 | systems/texlive/tlnet/archive/beebe.r56098.tar.xz
2019/02/28 | 709916 | systems/texlive/tlnet/archive/begingreek.doc.r36294.tar.xz
2019/02/28 | 1664 | systems/texlive/tlnet/archive/begingreek.r36294.tar.xz
2019/02/28 | 7448 | systems/texlive/tlnet/archive/begingreek.source.r36294.tar.xz
@@ -256500,9 +256512,9 @@
2019/02/28 | 125712 | systems/texlive/tlnet/archive/chextras.doc.r27118.tar.xz
2019/02/28 | 4820 | systems/texlive/tlnet/archive/chextras.r27118.tar.xz
2019/02/28 | 11708 | systems/texlive/tlnet/archive/chextras.source.r27118.tar.xz
-2020/08/08 | 45564 | systems/texlive/tlnet/archive/chhaya.doc.r56070.tar.xz
-2020/08/08 | 2344 | systems/texlive/tlnet/archive/chhaya.r56070.tar.xz
-2020/08/08 | 4152 | systems/texlive/tlnet/archive/chhaya.source.r56070.tar.xz
+2020/08/14 | 46596 | systems/texlive/tlnet/archive/chhaya.doc.r56103.tar.xz
+2020/08/14 | 2340 | systems/texlive/tlnet/archive/chhaya.r56103.tar.xz
+2020/08/14 | 4136 | systems/texlive/tlnet/archive/chhaya.source.r56103.tar.xz
2019/02/28 | 416 | systems/texlive/tlnet/archive/chicago-annote.doc.r15878.tar.xz
2019/02/28 | 8920 | systems/texlive/tlnet/archive/chicago-annote.r15878.tar.xz
2019/10/30 | 8840 | systems/texlive/tlnet/archive/chicagoa.r52567.tar.xz
@@ -256816,7 +256828,7 @@
2020/03/04 | 392 | systems/texlive/tlnet/archive/collection-langportuguese.r54074.tar.xz
2020/03/07 | 380 | systems/texlive/tlnet/archive/collection-langspanish.r54141.tar.xz
2020/07/24 | 6140 | systems/texlive/tlnet/archive/collection-latexextra.r55916.tar.xz
-2020/03/04 | 676 | systems/texlive/tlnet/archive/collection-latex.r54074.tar.xz
+2020/08/14 | 688 | systems/texlive/tlnet/archive/collection-latex.r56105.tar.xz
2020/03/04 | 748 | systems/texlive/tlnet/archive/collection-latexrecommended.r54074.tar.xz
2020/07/09 | 672 | systems/texlive/tlnet/archive/collection-luatex.r55786.tar.xz
2020/07/24 | 1448 | systems/texlive/tlnet/archive/collection-mathscience.r55918.tar.xz
@@ -259784,6 +259796,9 @@
2019/12/07 | 19816 | systems/texlive/tlnet/archive/hologo.source.r53048.tar.xz
2019/02/28 | 2788 | systems/texlive/tlnet/archive/hook-pre-commit-pkg.doc.r41378.tar.xz
2019/02/28 | 808 | systems/texlive/tlnet/archive/hook-pre-commit-pkg.r41378.tar.xz
+2020/08/14 | 303776 | systems/texlive/tlnet/archive/hopatch.doc.r56106.tar.xz
+2020/08/14 | 2184 | systems/texlive/tlnet/archive/hopatch.r56106.tar.xz
+2020/08/14 | 6008 | systems/texlive/tlnet/archive/hopatch.source.r56106.tar.xz
2020/08/02 | 688112 | systems/texlive/tlnet/archive/horoscop.doc.r56021.tar.xz
2020/08/02 | 10484 | systems/texlive/tlnet/archive/horoscop.r56021.tar.xz
2020/08/02 | 74156 | systems/texlive/tlnet/archive/horoscop.source.r56021.tar.xz
@@ -261530,9 +261545,9 @@
2019/02/28 | 5636 | systems/texlive/tlnet/archive/manuscript.source.r36110.tar.xz
2019/02/28 | 157580 | systems/texlive/tlnet/archive/manyind.doc.r49874.tar.xz
2019/02/28 | 2900 | systems/texlive/tlnet/archive/manyind.r49874.tar.xz
-2020/07/31 | 80456 | systems/texlive/tlnet/archive/marathi.doc.r55998.tar.xz
-2020/07/31 | 4420 | systems/texlive/tlnet/archive/marathi.r55998.tar.xz
-2020/07/31 | 8184 | systems/texlive/tlnet/archive/marathi.source.r55998.tar.xz
+2020/08/14 | 83304 | systems/texlive/tlnet/archive/marathi.doc.r56099.tar.xz
+2020/08/14 | 4388 | systems/texlive/tlnet/archive/marathi.r56099.tar.xz
+2020/08/14 | 8548 | systems/texlive/tlnet/archive/marathi.source.r56099.tar.xz
2020/08/02 | 19864 | systems/texlive/tlnet/archive/marcellus.doc.r56016.tar.xz
2020/08/02 | 178120 | systems/texlive/tlnet/archive/marcellus.r56016.tar.xz
2019/02/28 | 188416 | systems/texlive/tlnet/archive/margbib.doc.r15878.tar.xz
@@ -262555,9 +262570,9 @@
2020/03/19 | 1557288 | systems/texlive/tlnet/archive/nwejm.doc.r54392.tar.xz
2020/03/19 | 4059912 | systems/texlive/tlnet/archive/nwejm.r54392.tar.xz
2020/03/19 | 46916 | systems/texlive/tlnet/archive/nwejm.source.r54392.tar.xz
-2020/01/02 | 9330492 | systems/texlive/tlnet/archive/oberdiek.doc.r53283.tar.xz
-2020/01/02 | 48116 | systems/texlive/tlnet/archive/oberdiek.r53283.tar.xz
-2020/01/02 | 127840 | systems/texlive/tlnet/archive/oberdiek.source.r53283.tar.xz
+2020/08/14 | 9154772 | systems/texlive/tlnet/archive/oberdiek.doc.r56100.tar.xz
+2020/08/14 | 46464 | systems/texlive/tlnet/archive/oberdiek.r56100.tar.xz
+2020/08/14 | 122428 | systems/texlive/tlnet/archive/oberdiek.source.r56100.tar.xz
2019/02/28 | 261448 | systems/texlive/tlnet/archive/objectz.doc.r19389.tar.xz
2019/02/28 | 9788 | systems/texlive/tlnet/archive/objectz.r19389.tar.xz
2019/02/28 | 15088 | systems/texlive/tlnet/archive/objectz.source.r19389.tar.xz
@@ -262719,6 +262734,9 @@
2019/02/28 | 7888 | systems/texlive/tlnet/archive/pagenote.source.r15878.tar.xz
2019/02/28 | 81944 | systems/texlive/tlnet/archive/pagerange.doc.r16915.tar.xz
2019/02/28 | 3932 | systems/texlive/tlnet/archive/pagerange.r16915.tar.xz
+2020/08/14 | 331604 | systems/texlive/tlnet/archive/pagesel.doc.r56105.tar.xz
+2020/08/14 | 2488 | systems/texlive/tlnet/archive/pagesel.r56105.tar.xz
+2020/08/14 | 7128 | systems/texlive/tlnet/archive/pagesel.source.r56105.tar.xz
2019/02/28 | 933088 | systems/texlive/tlnet/archive/pageslts.doc.r39164.tar.xz
2019/02/28 | 9820 | systems/texlive/tlnet/archive/pageslts.r39164.tar.xz
2019/02/28 | 40972 | systems/texlive/tlnet/archive/pageslts.source.r39164.tar.xz
@@ -265417,8 +265435,8 @@
2020/03/24 | 280 | systems/texlive/tlnet/archive/texlive-cz.r54496.tar.xz
2020/03/29 | 1338300 | systems/texlive/tlnet/archive/texlive-de.doc.r54604.tar.xz
2020/03/29 | 272 | systems/texlive/tlnet/archive/texlive-de.r54604.tar.xz
-2020/08/07 | 168056 | systems/texlive/tlnet/archive/texlive-docindex.doc.r56055.tar.xz
-2020/08/07 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r56055.tar.xz
+2020/08/14 | 168160 | systems/texlive/tlnet/archive/texlive-docindex.doc.r56098.tar.xz
+2020/08/14 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r56098.tar.xz
2020/04/16 | 1891392 | systems/texlive/tlnet/archive/texlive-en.doc.r54755.tar.xz
2020/04/16 | 272 | systems/texlive/tlnet/archive/texlive-en.r54755.tar.xz
2020/03/22 | 3090144 | systems/texlive/tlnet/archive/texlive-es.doc.r54465.tar.xz
@@ -265474,7 +265492,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/08/12 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56091.tar.xz
+2020/08/14 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56098.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
@@ -265498,7 +265516,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/08/12 | 131976 | systems/texlive/tlnet/archive/texlive-scripts.r56091.tar.xz
+2020/08/14 | 131992 | systems/texlive/tlnet/archive/texlive-scripts.r56098.tar.xz
2020/05/31 | 36284 | systems/texlive/tlnet/archive/texlive-scripts.win32.r55357.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
@@ -267142,16 +267160,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/06/13 | 105829 | systems/texlive/tlnet/install-tl
-2020/08/13 | 5500839 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/08/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/08/13 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/08/14 | 5500862 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/08/14 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/08/14 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2020/05/31 | 4770 | systems/texlive/tlnet/install-tl-windows.bat
-2020/08/13 | 19380240 | systems/texlive/tlnet/install-tl-windows.exe
-2020/08/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/08/13 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/08/13 | 24269337 | systems/texlive/tlnet/install-tl.zip
-2020/08/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/08/13 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/08/14 | 19381292 | systems/texlive/tlnet/install-tl-windows.exe
+2020/08/14 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/08/14 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/08/14 | 24269350 | systems/texlive/tlnet/install-tl.zip
+2020/08/14 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/08/14 | 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
@@ -267160,7 +267178,7 @@
2020/04/06 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2020/07/15 | 48932 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2020/08/11 | 6373 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2020/08/13 | 6424 | 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
@@ -267207,12 +267225,12 @@
2020/05/17 | 20322 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2020/05/03 | 4786 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2020/08/06 | 27567 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2020/08/13 | 16375191 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/08/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/08/14 | 16377507 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/08/14 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2020/05/13 | 86417 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2020/08/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/08/13 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/08/13 | 2213108 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/08/14 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/08/14 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/08/14 | 2215932 | 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
@@ -271698,7 +271716,7 @@
2020/02/04 | 281488 | 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/08/13 | 541476 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/08/14 | 541476 | 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
@@ -272861,9 +272879,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2020/08/01 | 38929 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2020/08/01 | 43039 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/08/13 | 202214 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/08/13 | 1210861 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/08/13 | 1130273 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/08/14 | 202217 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/08/14 | 1211141 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/08/14 | 1130065 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2020/08/01 | 13102 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2020/08/01 | 14104 | 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
@@ -273017,187 +273035,187 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2019/09/11 | 231430 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2020/08/13 | 541462 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/08/13 | 59342 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/08/13 | 67257 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/08/13 | 956333 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/08/13 | 1061413 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/08/13 | 28606 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/08/13 | 30910 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/08/13 | 29399 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/08/13 | 34774 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/08/13 | 49592 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/08/13 | 57161 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/08/13 | 84662 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2020/08/13 | 93640 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/08/13 | 65818 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/08/13 | 73450 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/08/13 | 27008 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/08/13 | 30890 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2020/08/13 | 329618 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/08/13 | 392367 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/08/13 | 32350 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2020/08/13 | 36361 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/08/13 | 72255 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/08/13 | 79419 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/08/13 | 203966 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/08/13 | 224087 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/08/13 | 169656 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2020/08/13 | 184490 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/08/13 | 51937 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/08/13 | 58660 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/08/13 | 20817 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/08/13 | 22982 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/08/13 | 460434 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2020/08/13 | 45320 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/08/13 | 51137 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/08/13 | 273699 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/08/13 | 310935 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/08/13 | 40820 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/08/13 | 45032 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/08/13 | 115882 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/08/13 | 130357 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/08/13 | 1265431 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/08/13 | 1404303 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2020/08/13 | 95398 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/08/13 | 109731 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/08/13 | 43314 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/08/13 | 48086 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2020/08/13 | 46356 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/08/13 | 51235 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/08/13 | 57148 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/08/13 | 62976 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/08/13 | 133656 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/08/13 | 151863 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/08/13 | 72860 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/08/13 | 77366 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/08/13 | 68968 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2020/08/13 | 77315 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/08/13 | 246824 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2020/08/13 | 281780 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/08/13 | 25503 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/08/13 | 29058 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/08/13 | 100919 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2020/08/13 | 116786 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/08/13 | 63515 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/08/13 | 72612 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/08/13 | 94382 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2020/08/13 | 113581 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/08/13 | 59041 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/08/13 | 65546 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/08/13 | 462707 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/08/13 | 549964 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/08/13 | 141852 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2020/08/13 | 154418 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/08/13 | 94512 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/08/13 | 108989 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/08/13 | 15949 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/08/13 | 17625 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/08/13 | 27800 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/08/13 | 29637 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/08/13 | 623928 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/08/13 | 677578 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/08/13 | 500567 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/08/13 | 561892 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/08/13 | 544359 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2020/08/13 | 583964 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/08/13 | 93622 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/08/13 | 102587 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/08/13 | 1746185 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2020/08/13 | 2031792 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/08/13 | 67277 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/08/13 | 73690 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/08/13 | 26996 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2020/08/13 | 31253 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/08/13 | 7548 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/08/13 | 8567 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/08/13 | 192837 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/08/13 | 211538 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/08/13 | 269403 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/08/13 | 305085 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/08/13 | 96480 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/08/13 | 101782 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/08/13 | 79689 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/08/13 | 88872 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/08/13 | 170419 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/08/13 | 189151 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/08/13 | 159878 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/08/13 | 180901 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/08/13 | 196319 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/08/13 | 177376 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/08/13 | 85159 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/08/13 | 96846 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/08/13 | 31224 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/08/13 | 35034 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2020/08/13 | 57314 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/08/13 | 64238 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/08/13 | 63361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/08/13 | 69912 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/08/13 | 45776 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/08/13 | 52201 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/08/13 | 192588 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2020/08/13 | 210277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2020/08/13 | 35215 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2020/08/13 | 39331 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2020/08/13 | 327553 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/08/13 | 360762 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/08/13 | 187720 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/08/13 | 193834 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/08/13 | 207671 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/08/13 | 243053 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/08/13 | 78101 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/08/13 | 87297 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/08/13 | 922274 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/08/13 | 1021969 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/08/13 | 20007 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/08/13 | 23600 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/08/13 | 31209 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/08/13 | 36864 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/08/13 | 63554 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/08/13 | 71552 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/08/13 | 42621 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/08/13 | 50913 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/08/13 | 1192973 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2020/08/13 | 1325257 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/08/13 | 42062 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/08/13 | 51420 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/08/13 | 76796 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2020/08/13 | 82786 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2020/08/13 | 26852 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2020/08/13 | 29027 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/08/13 | 16023 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/08/13 | 17727 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/08/13 | 63429 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/08/13 | 69183 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/08/13 | 151836 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/08/13 | 165592 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/08/13 | 77487 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/08/13 | 87981 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2020/08/13 | 97375 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/08/13 | 104546 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/08/13 | 2534479 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2020/08/13 | 2657476 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/08/13 | 55562 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/08/13 | 62025 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/08/13 | 33089 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2020/08/13 | 36921 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2020/08/13 | 26612 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/08/13 | 32392 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/08/13 | 66014 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/08/13 | 70139 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/08/13 | 250289 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/08/13 | 279881 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/08/13 | 597779 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/08/13 | 638663 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/08/13 | 39268 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/08/13 | 43074 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/08/13 | 202238 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/08/13 | 1211397 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/08/13 | 1130090 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/08/13 | 13126 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/08/13 | 14130 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/08/14 | 541462 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/08/14 | 59342 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/08/14 | 67257 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/08/14 | 956332 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/08/14 | 1061414 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/08/14 | 28605 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/08/14 | 30909 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/08/14 | 29399 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/08/14 | 34774 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/08/14 | 49590 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/08/14 | 57161 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/08/14 | 84662 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/08/14 | 93639 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/08/14 | 65818 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/08/14 | 73450 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/08/14 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/08/14 | 30889 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/08/14 | 329616 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/08/14 | 392367 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/08/14 | 32350 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/08/14 | 36361 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/08/14 | 72255 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/08/14 | 79419 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/08/14 | 203964 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/08/14 | 224088 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/08/14 | 169657 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/08/14 | 184489 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/08/14 | 51938 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/08/14 | 58660 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/08/14 | 20816 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/08/14 | 22981 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/08/14 | 460426 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/08/14 | 45319 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/08/14 | 51136 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/08/14 | 273698 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/08/14 | 310935 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/08/14 | 40820 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/08/14 | 45031 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/08/14 | 115881 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/08/14 | 130357 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/08/14 | 1265430 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/08/14 | 1404300 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/08/14 | 95400 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/08/14 | 109730 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/08/14 | 43314 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/08/14 | 48086 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/08/14 | 46357 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/08/14 | 51236 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/08/14 | 57148 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/08/14 | 62977 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/08/14 | 133655 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/08/14 | 151864 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/08/14 | 72862 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/08/14 | 77366 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/08/14 | 68967 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/08/14 | 77315 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/08/14 | 246824 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/08/14 | 281780 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/08/14 | 25503 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/08/14 | 29057 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/08/14 | 100919 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/08/14 | 116788 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/08/14 | 63514 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/08/14 | 72612 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/08/14 | 94383 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/08/14 | 113581 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/08/14 | 59040 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/08/14 | 65546 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/08/14 | 462708 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/08/14 | 549968 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/08/14 | 141852 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/08/14 | 154418 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/08/14 | 94513 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/08/14 | 108989 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/08/14 | 15947 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/08/14 | 17626 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/08/14 | 27802 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/08/14 | 29636 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/08/14 | 623928 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/08/14 | 677579 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/08/14 | 500567 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/08/14 | 561890 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/08/14 | 544360 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/08/14 | 583964 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/08/14 | 93621 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/08/14 | 102586 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/08/14 | 1746182 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/08/14 | 2031792 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/08/14 | 67277 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/08/14 | 73690 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/08/14 | 26996 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/08/14 | 31253 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/08/14 | 7549 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/08/14 | 8565 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/08/14 | 192836 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/08/14 | 211537 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/08/14 | 269403 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/08/14 | 305084 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/08/14 | 96480 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/08/14 | 101784 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/08/14 | 79691 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/08/14 | 88874 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/08/14 | 170419 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/08/14 | 189152 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/08/14 | 159877 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/08/14 | 180901 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/08/14 | 196316 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/08/14 | 177371 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/08/14 | 85158 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/08/14 | 96844 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/08/14 | 31224 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/08/14 | 35031 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/08/14 | 57312 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/08/14 | 64236 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/08/14 | 63358 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/08/14 | 69911 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/08/14 | 45774 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/08/14 | 52202 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/08/14 | 192586 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/08/14 | 210278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/08/14 | 35214 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/08/14 | 39332 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/08/14 | 327551 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/08/14 | 360764 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/08/14 | 187718 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/08/14 | 193835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/08/14 | 207670 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/08/14 | 243053 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/08/14 | 78101 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/08/14 | 87298 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/08/14 | 922274 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/08/14 | 1021967 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/08/14 | 20005 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/08/14 | 23600 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/08/14 | 31209 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/08/14 | 36862 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/08/14 | 63553 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/08/14 | 71553 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/08/14 | 42622 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/08/14 | 50915 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/08/14 | 1192974 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/08/14 | 1325257 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/08/14 | 42062 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/08/14 | 51421 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/08/14 | 76798 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/08/14 | 82786 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/08/14 | 26852 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/08/14 | 29027 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/08/14 | 16023 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/08/14 | 17726 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/08/14 | 63428 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/08/14 | 69184 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/08/14 | 151837 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/08/14 | 165592 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/08/14 | 77488 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/08/14 | 87981 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/08/14 | 97375 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/08/14 | 104548 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/08/14 | 2534480 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/08/14 | 2657478 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/08/14 | 55561 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/08/14 | 62026 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/08/14 | 33090 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/08/14 | 36919 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/08/14 | 26610 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/08/14 | 32392 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/08/14 | 66014 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/08/14 | 70139 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/08/14 | 250290 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/08/14 | 279881 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/08/14 | 597782 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/08/14 | 638663 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/08/14 | 39268 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/08/14 | 43074 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/08/14 | 202269 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/08/14 | 1210741 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/08/14 | 1130108 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/08/14 | 13128 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/08/14 | 14131 | 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/08/13 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/08/14 | 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
@@ -273515,7 +273533,7 @@
2008/11/07 | 35981 | systems/win32/miktex/tm/packages/prettyref.tar.lzma
2017/07/26 | 201385 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
-2020/08/13 | 870 | systems/win32/miktex/tm/packages/pr.ini
+2020/08/14 | 870 | 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
@@ -274881,7 +274899,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2020/08/14 | 186 | timestamp
+2020/08/15 | 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 44ca21db04..376e7e1057 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index db9caf2fd4..2065ccc294 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,224 +1,304 @@
+2020/08/14 | 97375 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/08/14 | 96844 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/08/14 | 96480 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/08/14 | 956332 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/08/14 | 95400 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/08/14 | 94513 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/08/14 | 94383 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/08/14 | 940200 | fonts/newcomputermodern/NewCMMath-Regular.otf
+2020/08/14 | 93639 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/08/14 | 93621 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/08/14 | 922274 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/08/14 | 9154772 | systems/texlive/tlnet/archive/oberdiek.doc.r56100.tar.xz
+2020/08/14 | 88874 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/08/14 | 87981 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/08/14 | 87298 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/08/14 | 870 | systems/win32/miktex/tm/packages/pr.ini
+2020/08/14 | 867948 | systems/texlive/tlnet/archive/beebe.r56098.tar.xz
+2020/08/14 | 8565 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/08/14 | 8548 | systems/texlive/tlnet/archive/marathi.source.r56099.tar.xz
+2020/08/14 | 853 | macros/luatex/latex/ekdosis/samples/Makefile
+2020/08/14 | 85158 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/08/14 | 8513293 | fonts/newcomputermodern.zip
+2020/08/14 | 84662 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/08/14 | 83304 | systems/texlive/tlnet/archive/marathi.doc.r56099.tar.xz
+2020/08/14 | 82786 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/08/14 | 79691 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/08/14 | 79419 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/08/14 | 78101 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/08/14 | 77488 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/08/14 | 77366 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/08/14 | 77315 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/08/14 | 76798 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/08/14 | 7549 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/08/14 | 740840 | fonts/newcomputermodern/NewCMMono10-Book.otf
+2020/08/14 | 73690 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/08/14 | 73450 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/08/14 | 72862 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/08/14 | 72612 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/08/14 | 72255 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/08/14 | 71553 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/08/14 | 7128 | systems/texlive/tlnet/archive/pagesel.source.r56105.tar.xz
+2020/08/14 | 705978 | macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdf
+2020/08/14 | 70139 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/08/14 | 69911 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/08/14 | 694716 | fonts/newcomputermodern/NewCMMono10-Italic.otf
+2020/08/14 | 69184 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/08/14 | 68967 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/08/14 | 688 | systems/texlive/tlnet/archive/collection-latex.r56105.tar.xz
+2020/08/14 | 6851 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
+2020/08/14 | 677579 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/08/14 | 67277 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/08/14 | 67257 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/08/14 | 66014 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/08/14 | 65818 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/08/14 | 65546 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/08/14 | 6546 | fonts/academicons/academicons.tex
+2020/08/14 | 64236 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/08/14 | 638663 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/08/14 | 63553 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/08/14 | 63514 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/08/14 | 63428 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/08/14 | 63358 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/08/14 | 62977 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/08/14 | 623928 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/08/14 | 621285 | install/macros/luatex/latex/ekdosis.tds.zip
+2020/08/14 | 62026 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/08/14 | 6168 | fonts/newcomputermodern/README
+2020/08/14 | 611400 | fonts/newcomputermodern/NewCMSans10-BoldOblique.otf
+2020/08/14 | 601150 | macros/luatex/latex/ekdosis.zip
+2020/08/14 | 6008 | systems/texlive/tlnet/archive/hopatch.source.r56106.tar.xz
+2020/08/14 | 600804 | macros/luatex/latex/ekdosis/ekdosis.pdf
+2020/08/14 | 597782 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/08/14 | 59342 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/08/14 | 591596 | systems/texlive/tlnet/archive/asmejour.doc.r56101.tar.xz
+2020/08/14 | 59040 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/08/14 | 58660 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/08/14 | 583964 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/08/14 | 57312 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/08/14 | 57161 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/08/14 | 57148 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/08/14 | 561890 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/08/14 | 55561 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/08/14 | 5500862 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/08/14 | 549968 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/08/14 | 544360 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/08/14 | 541476 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/08/14 | 541462 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/08/14 | 537056 | fonts/newcomputermodern/NewCMMono10-BoldOblique.otf
+2020/08/14 | 52202 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/08/14 | 51938 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/08/14 | 51421 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/08/14 | 51236 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/08/14 | 512292 | fonts/newcomputermodern/NewCMSans10-BookOblique.otf
+2020/08/14 | 51136 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/08/14 | 50915 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/08/14 | 500567 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/08/14 | 49590 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/08/14 | 493852 | fonts/newcomputermodern/NewCMSans10-Book.otf
+2020/08/14 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/08/14 | 48086 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/08/14 | 46596 | systems/texlive/tlnet/archive/chhaya.doc.r56103.tar.xz
+2020/08/14 | 46464 | systems/texlive/tlnet/archive/oberdiek.r56100.tar.xz
+2020/08/14 | 46357 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/08/14 | 462708 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/08/14 | 460426 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/08/14 | 45774 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/08/14 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/08/14 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/08/14 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/08/14 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/08/14 | 45319 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/08/14 | 45031 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/08/14 | 450022 | macros/luatex/latex/luaprogtable.zip
+2020/08/14 | 4388 | systems/texlive/tlnet/archive/marathi.r56099.tar.xz
+2020/08/14 | 4364 | macros/luatex/latex/ekdosis/ekdosis.el
+2020/08/14 | 43314 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/08/14 | 43074 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/08/14 | 42622 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/08/14 | 4252 | macros/luatex/latex/ekdosis/README.md
+2020/08/14 | 42062 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/08/14 | 414236 | fonts/newcomputermodern/NewCM10-Regular.otf
+2020/08/14 | 4136 | systems/texlive/tlnet/archive/chhaya.source.r56103.tar.xz
+2020/08/14 | 40820 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/08/14 | 399 | fonts/academicons/tuacademicons.fd
+2020/08/14 | 398768 | fonts/newcomputermodern/NewCM10-Italic.otf
+2020/08/14 | 39332 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/08/14 | 39268 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/08/14 | 392367 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/08/14 | 3901 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex
+2020/08/14 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r56098.tar.xz
+2020/08/14 | 386096 | fonts/newcomputermodern/NewCM10-Bold.otf
+2020/08/14 | 372156 | fonts/newcomputermodern/NewCM10-BoldItalic.otf
+2020/08/14 | 36919 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/08/14 | 36862 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/08/14 | 36361 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/08/14 | 360764 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/08/14 | 35214 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/08/14 | 35031 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/08/14 | 34774 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/08/14 | 3427 | macros/luatex/latex/ekdosis/Makefile
+2020/08/14 | 331604 | systems/texlive/tlnet/archive/pagesel.doc.r56105.tar.xz
+2020/08/14 | 33090 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/08/14 | 329616 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/08/14 | 327551 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/08/14 | 32392 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/08/14 | 32350 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/08/14 | 31253 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/08/14 | 31224 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/08/14 | 31209 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/08/14 | 310935 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/08/14 | 30909 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/08/14 | 30889 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/08/14 | 305084 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/08/14 | 303776 | systems/texlive/tlnet/archive/hopatch.doc.r56106.tar.xz
+2020/08/14 | 300967 | macros/luatex/latex/ekdosis/ekdosis.dtx
+2020/08/14 | 29636 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/08/14 | 29399 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/08/14 | 29057 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/08/14 | 29027 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/08/14 | 28605 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/08/14 | 281780 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/08/14 | 279881 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/08/14 | 27802 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/08/14 | 273698 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/08/14 | 271548 | fonts/newcomputermodern/NewCMSans10-Bold.otf
+2020/08/14 | 270732 | fonts/newcomputermodern/NewCMMono10-Regular.otf
+2020/08/14 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/08/14 | 26996 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/08/14 | 269403 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/08/14 | 26852 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/08/14 | 26610 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/08/14 | 2657478 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/08/14 | 260084 | fonts/newcomputermodern/NewCMSans10-Regular.otf
+2020/08/14 | 25503 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/08/14 | 2534480 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/08/14 | 250290 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/08/14 | 2488 | systems/texlive/tlnet/archive/pagesel.r56105.tar.xz
+2020/08/14 | 246824 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/08/14 | 244964 | fonts/newcomputermodern/NewCMSans10-Oblique.otf
+2020/08/14 | 243053 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/08/14 | 24269350 | systems/texlive/tlnet/install-tl.zip
+2020/08/14 | 23600 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/08/14 | 2340 | systems/texlive/tlnet/archive/chhaya.r56103.tar.xz
+2020/08/14 | 22981 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/08/14 | 224088 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/08/14 | 2215932 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/08/14 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56098.tar.xz
+2020/08/14 | 2184 | systems/texlive/tlnet/archive/hopatch.r56106.tar.xz
+2020/08/14 | 212104 | fonts/newcomputermodern/NewCMMono10-Bold.otf
+2020/08/14 | 211537 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/08/14 | 21084 | systems/texlive/tlnet/archive/aomart.source.r56102.tar.xz
+2020/08/14 | 210278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/08/14 | 20816 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/08/14 | 207670 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/08/14 | 203964 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/08/14 | 2031792 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/08/14 | 202269 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/08/14 | 202217 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/08/14 | 20005 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/08/14 | 196316 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/08/14 | 193835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/08/14 | 19381292 | systems/texlive/tlnet/install-tl-windows.exe
+2020/08/14 | 192836 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/08/14 | 1927012 | fonts/newcomputermodern/NewCMMath-Book.otf
+2020/08/14 | 192586 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/08/14 | 189152 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/08/14 | 187718 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/08/14 | 1868 | macros/luatex/latex/ekdosis/ekdosis.ins
+2020/08/14 | 184489 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/08/14 | 18240 | systems/texlive/tlnet/archive/asmejour.r56101.tar.xz
+2020/08/14 | 180901 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/08/14 | 17992 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf
+2020/08/14 | 177371 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/08/14 | 17726 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/08/14 | 17626 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/08/14 | 1746182 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/08/14 | 17247 | fonts/academicons/academicons.sty
+2020/08/14 | 170419 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/08/14 | 169657 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/08/14 | 168160 | systems/texlive/tlnet/archive/texlive-docindex.doc.r56098.tar.xz
+2020/08/14 | 1673 | fonts/academicons/README
+2020/08/14 | 165592 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/08/14 | 16464 | macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex
+2020/08/14 | 16377507 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/08/14 | 16023 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/08/14 | 159877 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/08/14 | 15947 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/08/14 | 154418 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/08/14 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/08/14 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/08/14 | 151864 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/08/14 | 151837 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/08/14 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/08/14 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/08/14 | 141852 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/08/14 | 14131 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/08/14 | 1404300 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/08/14 | 139216 | fonts/academicons.zip
+2020/08/14 | 1359131 | macros/latex/contrib/fontsetup.zip
+2020/08/14 | 13396 | systems/texlive/tlnet/archive/aomart.r56102.tar.xz
+2020/08/14 | 133655 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/08/14 | 1325257 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/08/14 | 131992 | systems/texlive/tlnet/archive/texlive-scripts.r56098.tar.xz
+2020/08/14 | 13128 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/08/14 | 130357 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/08/14 | 1265430 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/08/14 | 122428 | systems/texlive/tlnet/archive/oberdiek.source.r56100.tar.xz
+2020/08/14 | 1211141 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/08/14 | 1210741 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/08/14 | 1193332 | fonts/newcomputermodern/NewCM10-BookItalic.otf
+2020/08/14 | 1192974 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/08/14 | 116788 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/08/14 | 115881 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/08/14 | 1156148 | systems/texlive/tlnet/archive/aomart.doc.r56102.tar.xz
+2020/08/14 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/08/14 | 1136660 | fonts/newcomputermodern/NewCM10-Book.otf
+2020/08/14 | 113581 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/08/14 | 1130108 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/08/14 | 1130065 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/08/14 | 109730 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/08/14 | 108989 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/08/14 | 1061414 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/08/14 | 104548 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/08/14 | 104065 | fonts/academicons/academicons.pdf
+2020/08/14 | 1031876 | fonts/newcomputermodern/NewCMMono10-BookItalic.otf
+2020/08/14 | 102586 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/08/14 | 1021967 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/08/14 | 101784 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/08/14 | 100919 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2020/08/13 | 98322 | language/marathi.zip
-2020/08/13 | 97375 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/08/13 | 96846 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/08/13 | 96480 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/08/13 | 956333 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/08/13 | 95398 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/08/13 | 94512 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/08/13 | 94382 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2020/08/13 | 93640 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/08/13 | 93622 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/08/13 | 922274 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/08/13 | 88872 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/08/13 | 87981 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2020/08/13 | 87297 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/08/13 | 870 | systems/win32/miktex/tm/packages/pr.ini
-2020/08/13 | 8567 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/08/13 | 85159 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/08/13 | 84662 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2020/08/13 | 83427 | language/marathi/marathi.pdf
-2020/08/13 | 832552 | systems/texlive/tlnet/archive/beebe.r56094.tar.xz
-2020/08/13 | 82786 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2020/08/13 | 79689 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/08/13 | 79419 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/08/13 | 78101 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/08/13 | 77487 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/08/13 | 77366 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/08/13 | 77315 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/08/13 | 76796 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2020/08/13 | 7548 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/08/13 | 73690 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/08/13 | 73450 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/08/13 | 72860 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
2020/08/13 | 727480 | systems/texlive/tlnet/archive/apa7.doc.r56095.tar.xz
-2020/08/13 | 72612 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/08/13 | 72255 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/08/13 | 71552 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/08/13 | 70139 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/08/13 | 69912 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/08/13 | 69183 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/08/13 | 68968 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2020/08/13 | 677578 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/08/13 | 67277 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/08/13 | 67257 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/08/13 | 66014 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/08/13 | 65818 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/08/13 | 65546 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/08/13 | 64238 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/08/13 | 638663 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/08/13 | 63554 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/08/13 | 63515 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/08/13 | 63429 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/08/13 | 63361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/08/13 | 62976 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/08/13 | 623928 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/08/13 | 62025 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/08/13 | 597779 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/08/13 | 59342 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/08/13 | 59041 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/08/13 | 58660 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/08/13 | 583964 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/08/13 | 7223 | macros/luatex/latex/luaprogtable/luaprogtable.sty
+2020/08/13 | 6424 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2020/08/13 | 58740 | fonts/academicons/academicons.ttf
2020/08/13 | 583924 | systems/texlive/tlnet/archive/asmeconf.doc.r56096.tar.xz
-2020/08/13 | 57314 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/08/13 | 57161 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/08/13 | 57148 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/08/13 | 561892 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/08/13 | 55562 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/08/13 | 5500839 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/08/13 | 549964 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/08/13 | 544359 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2020/08/13 | 541476 | systems/win32/miktex/tm/packages/files.csv.lzma
-2020/08/13 | 541462 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/08/13 | 52201 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2020/08/13 | 52192 | macros/latex/contrib/chhaya.zip
-2020/08/13 | 51937 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/08/13 | 51420 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/08/13 | 51235 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/08/13 | 51137 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/08/13 | 50913 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/08/13 | 500567 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/08/13 | 49592 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/08/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2020/08/13 | 48086 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2020/08/13 | 46743 | macros/latex/contrib/chhaya/chhaya.pdf
-2020/08/13 | 46356 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/08/13 | 462707 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/08/13 | 460434 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2020/08/13 | 45776 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/08/13 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/08/13 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2020/08/13 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/08/13 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2020/08/13 | 45320 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/08/13 | 45032 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/08/13 | 43314 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/08/13 | 43074 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/08/13 | 42621 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/08/13 | 42062 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/08/13 | 40820 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/08/13 | 39331 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2020/08/13 | 39268 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/08/13 | 392367 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/08/13 | 437891 | macros/luatex/latex/luaprogtable/luaprogtable-doc.pdf
2020/08/13 | 38114 | language/marathi/marathi.dtx
-2020/08/13 | 36921 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2020/08/13 | 36864 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/08/13 | 36361 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/08/13 | 360762 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/08/13 | 35215 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2020/08/13 | 35034 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/08/13 | 3648357 | info/biblio/tugboat.bib
2020/08/13 | 3489091 | dviware/dvisvgm.zip
-2020/08/13 | 34774 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/08/13 | 3442 | macros/luatex/latex/luaprogtable/luaprogtable-parse.lua
2020/08/13 | 336114 | macros/latex/contrib/pagesel.zip
-2020/08/13 | 33089 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2020/08/13 | 329618 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/08/13 | 327553 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/08/13 | 32392 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2020/08/13 | 32372 | systems/texlive/tlnet/archive/apa7.source.r56095.tar.xz
-2020/08/13 | 32350 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2020/08/13 | 31253 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/08/13 | 31224 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/08/13 | 31209 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/08/13 | 310935 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/08/13 | 30910 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/08/13 | 30890 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2020/08/13 | 307210 | macros/latex/contrib/hopatch.zip
-2020/08/13 | 305085 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/08/13 | 29637 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/08/13 | 29399 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/08/13 | 29058 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/08/13 | 29027 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/08/13 | 28606 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/08/13 | 281780 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/08/13 | 279881 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/08/13 | 27800 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2020/08/13 | 2752 | language/marathi/marathi.ins
-2020/08/13 | 273699 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/08/13 | 27008 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/08/13 | 26996 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
2020/08/13 | 2698 | macros/latex/contrib/chhaya/chhaya.ins
-2020/08/13 | 269403 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/08/13 | 26852 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2020/08/13 | 26612 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/08/13 | 2657476 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/08/13 | 25503 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/08/13 | 2534479 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/08/13 | 2650 | macros/luatex/latex/luaprogtable/luaprogtable-utility.lua
2020/08/13 | 2502 | macros/latex/contrib/chhaya/sankshep.tex
-2020/08/13 | 250289 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/08/13 | 246824 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2020/08/13 | 2457 | language/marathi/README.txt
-2020/08/13 | 243053 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/08/13 | 24269337 | systems/texlive/tlnet/install-tl.zip
2020/08/13 | 237 | macros/latex/contrib/chhaya/ref.bib
-2020/08/13 | 23600 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/08/13 | 22982 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/08/13 | 224087 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/08/13 | 2213108 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2020/08/13 | 211538 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/08/13 | 210277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2020/08/13 | 20817 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/08/13 | 207671 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/08/13 | 203966 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/08/13 | 2031792 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/08/13 | 202238 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/08/13 | 202214 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/08/13 | 20007 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/08/13 | 196319 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/08/13 | 193834 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/08/13 | 19380240 | systems/texlive/tlnet/install-tl-windows.exe
-2020/08/13 | 192837 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/08/13 | 192588 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2020/08/13 | 189151 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/08/13 | 187720 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/08/13 | 184490 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/08/13 | 180901 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/08/13 | 21510 | macros/luatex/latex/luaprogtable/luaprogtable-doc.tex
+2020/08/13 | 2143 | macros/luatex/latex/luaprogtable/luaprogtable-stringbuffer.lua
2020/08/13 | 18020 | systems/texlive/tlnet/archive/asmeconf.r56096.tar.xz
-2020/08/13 | 177376 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/08/13 | 17727 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/08/13 | 17625 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/08/13 | 1746185 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2020/08/13 | 170419 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/08/13 | 169656 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2020/08/13 | 165592 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/08/13 | 16375191 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/08/13 | 16023 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/08/13 | 159878 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/08/13 | 15949 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/08/13 | 154418 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/08/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/08/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/08/13 | 151863 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/08/13 | 151836 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/08/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/08/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/08/13 | 141852 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2020/08/13 | 14130 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/08/13 | 16863 | macros/luatex/latex/luaprogtable/luaprogtable.lua
2020/08/13 | 14104 | systems/texlive/tlnet/archive/apa7.r56095.tar.xz
2020/08/13 | 14064 | macros/latex/contrib/chhaya/chhaya.dtx
-2020/08/13 | 1404303 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2020/08/13 | 13697377 | macros/latex/contrib/oberdiek.zip
-2020/08/13 | 133656 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/08/13 | 1325257 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/08/13 | 13126 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/08/13 | 130357 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/08/13 | 1265431 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/08/13 | 1211397 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
2020/08/13 | 1210 | macros/latex/contrib/chhaya/README.txt
-2020/08/13 | 1210861 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/08/13 | 1192973 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2020/08/13 | 116786 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/08/13 | 115882 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/08/13 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2020/08/13 | 113581 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/08/13 | 1130273 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2020/08/13 | 1130090 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/08/13 | 109731 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/08/13 | 108989 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/08/13 | 1061413 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/08/13 | 104546 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/08/13 | 102587 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/08/13 | 1021969 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/08/13 | 101782 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/08/13 | 100919 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/08/13 | 1127 | macros/luatex/latex/luaprogtable/README.md
2020/08/12 | 979294 | macros/latex/contrib/asmeconf.zip
2020/08/12 | 938 | macros/latex/contrib/oberdiek/oberdiek-source.bib
2020/08/12 | 8409 | dviware/dvisvgm/configure.ac
@@ -233,7 +313,6 @@
2020/08/12 | 619315 | macros/latex/contrib/asmejour/asmejour-template.pdf
2020/08/12 | 5975 | macros/latex/contrib/asmejour/README.md
2020/08/12 | 59734 | dviware/dvisvgm/src/Makefile.in
-2020/08/12 | 588352 | systems/texlive/tlnet/archive/asmejour.doc.r56092.tar.xz
2020/08/12 | 56818 | dviware/dvisvgm/aclocal.m4
2020/08/12 | 5579 | macros/latex/contrib/asmeconf/README.md
2020/08/12 | 537343 | macros/latex/contrib/asmeconf/asmeconf-template.pdf
@@ -253,7 +332,6 @@
2020/08/12 | 388493 | macros/latex/contrib/oberdiek/pdfrender.pdf
2020/08/12 | 37400 | macros/latex/contrib/asmeconf/asmeconf-template.tex
2020/08/12 | 36743 | dviware/dvisvgm/NEWS
-2020/08/12 | 3648358 | info/biblio/tugboat.bib
2020/08/12 | 359960 | macros/latex/contrib/oberdiek/fibnum.pdf
2020/08/12 | 35799 | macros/latex/contrib/oberdiek/hypdoc.dtx
2020/08/12 | 35596 | macros/latex/contrib/asmeconf/asmeconf.cls
@@ -331,7 +409,6 @@
2020/08/12 | 2354796 | systems/win32/w32tex/win64/dvitools-w64.tar.xz
2020/08/12 | 2277 | macros/latex/contrib/oberdiek/oberdiek.ins
2020/08/12 | 22166 | dviware/dvisvgm/src/optimizer/Makefile.in
-2020/08/12 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56091.tar.xz
2020/08/12 | 21668 | macros/latex/contrib/oberdiek/holtxdoc.dtx
2020/08/12 | 21566 | macros/latex/contrib/hopatch/hopatch.dtx
2020/08/12 | 21476 | macros/latex/contrib/oberdiek/hypcap.dtx
@@ -351,7 +428,6 @@
2020/08/12 | 19267 | macros/latex/contrib/oberdiek/scrindex.dtx
2020/08/12 | 18778 | macros/latex/contrib/oberdiek/oberdiek.tex
2020/08/12 | 18499 | macros/latex/contrib/oberdiek/stampinclude.dtx
-2020/08/12 | 18208 | systems/texlive/tlnet/archive/asmejour.r56092.tar.xz
2020/08/12 | 18053 | macros/latex/contrib/oberdiek/hypgotoe.dtx
2020/08/12 | 16829 | macros/latex/contrib/oberdiek/twoopt.dtx
2020/08/12 | 16789 | macros/latex/contrib/oberdiek/flags.dtx
@@ -371,11 +447,9 @@
2020/08/12 | 134924 | support/xml2pmx/MacOS/xml2pmx
2020/08/12 | 13474 | dviware/dvisvgm/m4/Makefile.in
2020/08/12 | 13344 | macros/latex/contrib/oberdiek/tabularkv.dtx
-2020/08/12 | 131976 | systems/texlive/tlnet/archive/texlive-scripts.r56091.tar.xz
2020/08/12 | 1278 | macros/latex/contrib/apa7/README.txt
2020/08/12 | 106085 | macros/latex/contrib/oberdiek/bmpsize.dtx
2020/08/11 | 68644 | systems/texlive/tlnet/archive/frpseudocode.doc.r56088.tar.xz
-2020/08/11 | 6373 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/08/11 | 398710232 | systems/win32/w32tex/ltxpkgdocs.tar.xz
2020/08/11 | 3579 | info/biblio/tugboat.ltx
2020/08/11 | 3312 | systems/texlive/tlnet/archive/beamerauxtheme.r56087.tar.xz
@@ -908,11 +982,9 @@
2020/08/08 | 457743 | macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
2020/08/08 | 4559 | macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty
2020/08/08 | 45598976 | systems/win32/w32tex/latex-dev.tar.xz
-2020/08/08 | 45564 | systems/texlive/tlnet/archive/chhaya.doc.r56070.tar.xz
2020/08/08 | 45456 | macros/luatex/generic/luatexja/src/ltj-jfont.lua
2020/08/08 | 4452 | macros/luatex/generic/luatexja/doc/jfm-ujisc33.lua
2020/08/08 | 4262 | macros/luatex/generic/luatexja/tool/kyoikukanji.txt
-2020/08/08 | 4152 | systems/texlive/tlnet/archive/chhaya.source.r56070.tar.xz
2020/08/08 | 410608 | systems/texlive/tlnet/archive/amstex.doc.r56070.tar.xz
2020/08/08 | 405 | macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
2020/08/08 | 40201 | macros/luatex/generic/luatexja/src/patches/lltjfont.sty
@@ -960,7 +1032,6 @@
2020/08/08 | 253364 | systems/texlive/tlnet/archive/thmtools.doc.r56070.tar.xz
2020/08/08 | 2386940 | systems/texlive/tlnet/archive/asymptote.doc.r56070.tar.xz
2020/08/08 | 2374 | macros/luatex/generic/luatexja/src/patches/lltjp-unicode-math.sty
-2020/08/08 | 2344 | systems/texlive/tlnet/archive/chhaya.r56070.tar.xz
2020/08/08 | 2342 | macros/luatex/generic/luatexja/src/jfm-jis.lua
2020/08/08 | 222896 | systems/texlive/tlnet/archive/bubblesort.doc.r56070.tar.xz
2020/08/08 | 2207 | macros/luatex/generic/luatexja/src/jfm-CCT.lua
@@ -1027,300 +1098,3 @@
2020/08/08 | 10487644 | systems/win32/w32tex/ptex-w32.tar.xz
2020/08/08 | 10197 | macros/latex/contrib/biblatex-contrib/archaeologie/README.md
2020/08/08 | 10014756 | systems/texlive/tlnet/archive/l3kernel.doc.r56067.tar.xz
-2020/08/07 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex
-2020/08/07 | 9874 | macros/latex/contrib/l3experimental/l3draw-transforms.dtx
-2020/08/07 | 9772 | macros/latex/contrib/l3kernel/l3docstrip.dtx
-2020/08/07 | 974760 | info/biblio/texbook3.bib
-2020/08/07 | 9642 | macros/latex/contrib/l3kernel/l3unicode.dtx
-2020/08/07 | 96089 | macros/latex/contrib/l3experimental/l3galley.dtx
-2020/08/07 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex
-2020/08/07 | 9436 | macros/latex/contrib/l3kernel/l3flag.dtx
-2020/08/07 | 938 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
-2020/08/07 | 937253 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
-2020/08/07 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
-2020/08/07 | 9107 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
-2020/08/07 | 89226 | macros/latex/contrib/l3kernel/l3int.dtx
-2020/08/07 | 87751 | macros/latex/contrib/l3kernel/l3seq.dtx
-2020/08/07 | 8754 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
-2020/08/07 | 85887 | macros/latex/contrib/l3kernel/l3coffins.dtx
-2020/08/07 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex
-2020/08/07 | 84816 | macros/latex/contrib/l3kernel/l3fp-basics.dtx
-2020/08/07 | 841461 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
-2020/08/07 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
-2020/08/07 | 803580 | systems/win32/w32tex/win64/dvipdfm-w64.tar.xz
-2020/08/07 | 80235 | obsolete/macros/latex/contrib/acroflex/acroflex.dtx
-2020/08/07 | 77434 | macros/latex/contrib/l3kernel/l3msg.dtx
-2020/08/07 | 77090 | macros/latex/contrib/l3kernel/l3box.dtx
-2020/08/07 | 76428 | macros/latex/contrib/l3kernel/l3skip.dtx
-2020/08/07 | 758990 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
-2020/08/07 | 75889 | macros/latex/contrib/l3kernel/l3prefixes.pdf
-2020/08/07 | 75786 | macros/latex/contrib/l3kernel/l3names.dtx
-2020/08/07 | 75536 | macros/latex/contrib/l3kernel/l3clist.dtx
-2020/08/07 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
-2020/08/07 | 7476 | macros/latex/contrib/l3experimental/l3draw-scopes.dtx
-2020/08/07 | 74310 | macros/latex/contrib/l3kernel/l3str.dtx
-2020/08/07 | 73845 | macros/latex/contrib/l3kernel/l3fp-trig.dtx
-2020/08/07 | 71495 | macros/latex/contrib/l3kernel/expl3.dtx
-2020/08/07 | 70325 | macros/latex/contrib/l3kernel/l3fp.dtx
-2020/08/07 | 6956 | macros/latex/contrib/l3kernel/l3fp-assign.dtx
-2020/08/07 | 690730 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
-2020/08/07 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
-2020/08/07 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex
-2020/08/07 | 65378 | macros/latex/contrib/l3experimental/l3color.dtx
-2020/08/07 | 64938 | macros/latex/contrib/l3kernel/l3prg.dtx
-2020/08/07 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex
-2020/08/07 | 6450 | macros/latex/contrib/l3kernel/l3term-glossary.tex
-2020/08/07 | 6431 | macros/latex/contrib/l3kernel/l3news06.tex
-2020/08/07 | 62906 | install/macros/latex/contrib/l3backend.tds.zip
-2020/08/07 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex
-2020/08/07 | 62102 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
-2020/08/07 | 61738 | macros/latex/contrib/l3kernel/l3candidates.dtx
-2020/08/07 | 6106 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
-2020/08/07 | 6076 | macros/latex/contrib/l3kernel/l3.ins
-2020/08/07 | 606221 | macros/latex/contrib/l3experimental/l3draw-code.pdf
-2020/08/07 | 585053 | macros/latex/contrib/l3kernel/expl3.pdf
-2020/08/07 | 5844782 | macros/latex/contrib/l3kernel/source3.pdf
-2020/08/07 | 58435 | macros/latex/contrib/l3experimental/xgalley.dtx
-2020/08/07 | 580 | macros/context/contrib/context-letter/doc/context/third/letter/README
-2020/08/07 | 5653 | macros/latex/contrib/l3experimental/l3draw-layers.dtx
-2020/08/07 | 5590 | macros/latex/contrib/l3kernel/l3color-base.dtx
-2020/08/07 | 550 | macros/latex/contrib/l3backend/README.md
-2020/08/07 | 548222 | obsolete/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.pdf
-2020/08/07 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex
-2020/08/07 | 51966 | macros/latex/contrib/l3kernel/l3text-case.dtx
-2020/08/07 | 51059 | macros/latex/contrib/l3kernel/l3fp-extended.dtx
-2020/08/07 | 51025 | macros/latex/contrib/l3kernel/l3prop.dtx
-2020/08/07 | 50517 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkvi
-2020/08/07 | 50271 | obsolete/macros/latex/contrib/acroflex/doc/acroflex_man.tex
-2020/08/07 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex
-2020/08/07 | 49386 | macros/latex/contrib/l3kernel/l3fp-expo.dtx
-2020/08/07 | 4935 | macros/latex/contrib/l3kernel/l3news01.tex
-2020/08/07 | 49176 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
-2020/08/07 | 489876 | macros/latex/contrib/l3experimental/l3draw.pdf
-2020/08/07 | 4891 | macros/latex/contrib/l3kernel/l3news.tex
-2020/08/07 | 47674 | macros/latex/contrib/l3kernel/l3fp-aux.dtx
-2020/08/07 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex
-2020/08/07 | 46943 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
-2020/08/07 | 4661044 | systems/win32/w32tex/dvipdfm-w32.tar.xz
-2020/08/07 | 4652 | macros/latex/contrib/l3experimental/CHANGELOG.md
-2020/08/07 | 46195 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
-2020/08/07 | 4609629 | install/macros/latex/contrib/l3experimental.tds.zip
-2020/08/07 | 4566325 | macros/latex/contrib/l3experimental.zip
-2020/08/07 | 4485 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual.mkiv
-2020/08/07 | 445676 | systems/texlive/tlnet/archive/xcharter.doc.r56059.tar.xz
-2020/08/07 | 4448 | macros/latex/contrib/l3experimental/l3draw-state.dtx
-2020/08/07 | 4333 | macros/latex/contrib/l3experimental/README.md
-2020/08/07 | 43159 | macros/latex/contrib/l3kernel/l3debug.dtx
-2020/08/07 | 4314 | macros/latex/contrib/l3experimental/l3draw-boxes.dtx
-2020/08/07 | 4241 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic.mkiv
-2020/08/07 | 422268 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
-2020/08/07 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
-2020/08/07 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
-2020/08/07 | 41040 | macros/latex/contrib/l3experimental/l3draw.dtx
-2020/08/07 | 40695 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx
-2020/08/07 | 40663 | macros/latex/contrib/l3kernel/l3sort.dtx
-2020/08/07 | 403539 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
-2020/08/07 | 393856 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
-2020/08/07 | 393612 | systems/texlive/tlnet/archive/pkfix-helper.doc.r56061.tar.xz
-2020/08/07 | 38913 | macros/latex/contrib/l3backend.zip
-2020/08/07 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r56055.tar.xz
-2020/08/07 | 385812 | macros/latex/contrib/l3experimental/l3galley.pdf
-2020/08/07 | 379235 | macros/latex/contrib/l3kernel/l3news.pdf
-2020/08/07 | 372941 | macros/latex/contrib/l3experimental/xcoffins.pdf
-2020/08/07 | 367377 | macros/latex/contrib/l3experimental/l3color.pdf
-2020/08/07 | 364086 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
-2020/08/07 | 363180 | macros/latex/contrib/l3experimental/l3graphics.pdf
-2020/08/07 | 362487 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
-2020/08/07 | 3591 | macros/latex/contrib/l3backend/l3backend.ins
-2020/08/07 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
-2020/08/07 | 35831 | macros/latex/contrib/l3kernel/l3quark.dtx
-2020/08/07 | 35177 | macros/latex/contrib/l3experimental/xcoffins.dtx
-2020/08/07 | 350863 | macros/latex/contrib/l3experimental/l3pdf.pdf
-2020/08/07 | 35072 | macros/latex/contrib/l3kernel/l3prefixes.csv
-2020/08/07 | 34923 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkvi
-2020/08/07 | 34576 | macros/latex/contrib/l3kernel/l3text.dtx
-2020/08/07 | 344948 | macros/latex/contrib/l3experimental/l3str-format.pdf
-2020/08/07 | 3435 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-default.mkiv
-2020/08/07 | 33826 | macros/latex/contrib/l3backend/l3backend-draw.dtx
-2020/08/07 | 3277 | graphics/pgf/contrib/circuitikz/README.md
-2020/08/07 | 32535 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkii
-2020/08/07 | 32508 | macros/latex/contrib/l3experimental/l3draw-paths.dtx
-2020/08/07 | 31866 | obsolete/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.tex
-2020/08/07 | 3182 | macros/latex/contrib/l3backend/CHANGELOG.md
-2020/08/07 | 31827 | macros/latex/contrib/l3experimental/l3str-format.dtx
-2020/08/07 | 31819 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
-2020/08/07 | 314321 | macros/latex/contrib/l3experimental/l3benchmark.pdf
-2020/08/07 | 31345 | macros/latex/contrib/l3experimental/l3draw-points.dtx
-2020/08/07 | 311773 | macros/latex/contrib/l3experimental/l3sys-shell.pdf
-2020/08/07 | 30990 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
-2020/08/07 | 3098 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
-2020/08/07 | 30954 | macros/latex/contrib/l3kernel/l3cctab.dtx
-2020/08/07 | 3090 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkiv
-2020/08/07 | 3090 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkii
-2020/08/07 | 306928 | systems/texlive/tlnet/archive/updmap-map.r56056.tar.xz
-2020/08/07 | 3048 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkiv
-2020/08/07 | 3048 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkii
-2020/08/07 | 2997 | macros/latex/contrib/l3kernel/README.md
-2020/08/07 | 29754 | macros/latex/contrib/l3kernel/l3deprecation.dtx
-2020/08/07 | 285732 | macros/latex/contrib/l3experimental/xgalley.pdf
-2020/08/07 | 2817 | macros/latex/contrib/l3kernel/l3prefixes.tex
-2020/08/07 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
-2020/08/07 | 280064 | macros/latex/contrib/l3kernel/l3styleguide.pdf
-2020/08/07 | 276917 | macros/latex/contrib/l3experimental/l3pdf-code.pdf
-2020/08/07 | 27418 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkii
-2020/08/07 | 27347 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
-2020/08/07 | 26920 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
-2020/08/07 | 2678 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
-2020/08/07 | 26587 | macros/latex/contrib/l3kernel/l3sys.dtx
-2020/08/07 | 2657167 | obsolete/macros/latex/contrib/datepicker-pro.zip
-2020/08/07 | 2649 | macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkiv
-2020/08/07 | 263337 | macros/latex/contrib/l3kernel/l3docstrip.pdf
-2020/08/07 | 2597 | macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkiv
-2020/08/07 | 25739 | macros/latex/contrib/l3kernel/l3fp-random.dtx
-2020/08/07 | 251923 | macros/latex/contrib/l3kernel/l3regex.dtx
-2020/08/07 | 24858 | macros/latex/contrib/l3experimental/l3graphics.dtx
-2020/08/07 | 2484 | macros/latex/contrib/l3kernel/l3legacy.dtx
-2020/08/07 | 24311052 | systems/texlive/tlnet/archive/mercatormap.doc.r56060.tar.xz
-2020/08/07 | 240141 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
-2020/08/07 | 23877 | macros/latex/contrib/l3kernel/CHANGELOG.md
-2020/08/07 | 235322 | macros/latex/contrib/l3kernel/l3news09.pdf
-2020/08/07 | 23107 | macros/latex/contrib/l3kernel/l3fp-logic.dtx
-2020/08/07 | 228354 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf
-2020/08/07 | 2276 | graphics/mcf2graph/mcf_example.tex
-2020/08/07 | 223537 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
-2020/08/07 | 2193 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkiv
-2020/08/07 | 2193 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkii
-2020/08/07 | 217736 | macros/latex/contrib/l3kernel/l3term-glossary.pdf
-2020/08/07 | 2153 | macros/latex/contrib/l3kernel/source3.tex
-2020/08/07 | 2128232 | install/graphics/pgf/contrib/circuitikz.tds.zip
-2020/08/07 | 21212 | macros/latex/contrib/l3kernel/source3body.tex
-2020/08/07 | 2114345 | graphics/pgf/contrib/circuitikz.zip
-2020/08/07 | 2112 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkiv
-2020/08/07 | 2112 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkii
-2020/08/07 | 21000 | obsolete/macros/latex/contrib/datepicker-pro/datepicker-pro.dtx
-2020/08/07 | 20979 | macros/latex/contrib/l3backend/l3backend-graphics.dtx
-2020/08/07 | 20914 | macros/latex/contrib/l3kernel/l3text-purify.dtx
-2020/08/07 | 2080796 | systems/texlive/tlnet/archive/xcharter.r56059.tar.xz
-2020/08/07 | 20451 | macros/latex/contrib/l3experimental/l3draw-softpath.dtx
-2020/08/07 | 20208 | systems/texlive/tlnet/archive/pkfix-helper.r56061.tar.xz
-2020/08/07 | 199139 | macros/latex/contrib/l3kernel/l3news12.pdf
-2020/08/07 | 19680 | macros/latex/contrib/l3kernel/l3intarray.dtx
-2020/08/07 | 19653 | macros/latex/contrib/l3kernel/l3fp-convert.dtx
-2020/08/07 | 1923 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkiv
-2020/08/07 | 1923 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkii
-2020/08/07 | 19180 | systems/texlive/tlnet/archive/mercatormap.r56060.tar.xz
-2020/08/07 | 1912 | macros/latex/contrib/l3experimental/l3draw.ins
-2020/08/07 | 1909 | macros/latex/contrib/l3kernel/interface3.tex
-2020/08/07 | 1875 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
-2020/08/07 | 18591 | macros/latex/contrib/l3kernel/l3fp-round.dtx
-2020/08/07 | 1842 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkiv
-2020/08/07 | 1842 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkii
-2020/08/07 | 17777 | macros/latex/contrib/l3experimental/l3benchmark.dtx
-2020/08/07 | 17353 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
-2020/08/07 | 17106 | macros/latex/contrib/l3kernel/l3luatex.dtx
-2020/08/07 | 1708 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkiv
-2020/08/07 | 1708 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkii
-2020/08/07 | 1708132 | systems/win32/w32tex/win64/ptex-ng-w64.tar.xz
-2020/08/07 | 168056 | systems/texlive/tlnet/archive/texlive-docindex.doc.r56055.tar.xz
-2020/08/07 | 165946 | macros/latex/contrib/l3kernel/l3news11.pdf
-2020/08/07 | 1644 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkiv
-2020/08/07 | 1644 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkii
-2020/08/07 | 1644 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkiv
-2020/08/07 | 1644 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkii
-2020/08/07 | 1633 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-06.mkvi
-2020/08/07 | 1630 | macros/latex/contrib/l3experimental/xgalley.ins
-2020/08/07 | 1615 | obsolete/macros/latex/contrib/datepicker-pro/README.md
-2020/08/07 | 1597 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkiv
-2020/08/07 | 1597 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkii
-2020/08/07 | 1584 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkiv
-2020/08/07 | 1584 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkii
-2020/08/07 | 1575 | macros/latex/contrib/l3experimental/xcoffins.ins
-2020/08/07 | 1571 | macros/latex/contrib/l3experimental/l3sys-shell.ins
-2020/08/07 | 1570 | macros/latex/contrib/l3experimental/l3str.ins
-2020/08/07 | 1564 | macros/latex/contrib/l3experimental/l3benchmark.ins
-2020/08/07 | 1559 | macros/latex/contrib/l3experimental/l3graphics.ins
-2020/08/07 | 1555681 | macros/latex/contrib/l3kernel/interface3.pdf
-2020/08/07 | 1553 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkiv
-2020/08/07 | 1553 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkii
-2020/08/07 | 1547 | macros/latex/contrib/l3experimental/l3color.ins
-2020/08/07 | 1536 | macros/latex/contrib/l3experimental/l3pdf.ins
-2020/08/07 | 1529 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-orange.mkiv
-2020/08/07 | 1528 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-grey.mkiv
-2020/08/07 | 1528 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-green.mkiv
-2020/08/07 | 1527 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-blue.mkiv
-2020/08/07 | 1527 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-orange.mkiv
-2020/08/07 | 1526 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-red.mkiv
-2020/08/07 | 1525 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-grey.mkiv
-2020/08/07 | 1525 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-green.mkiv
-2020/08/07 | 1525 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-blue.mkiv
-2020/08/07 | 1524 | macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-red.mkiv
-2020/08/07 | 152413 | macros/latex/contrib/l3kernel/l3news08.pdf
-2020/08/07 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex
-2020/08/07 | 149121 | macros/latex/contrib/l3kernel/l3doc.dtx
-2020/08/07 | 1471 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkiv
-2020/08/07 | 1471 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkii
-2020/08/07 | 147097 | macros/latex/contrib/l3kernel/l3news10.pdf
-2020/08/07 | 1465 | obsolete/macros/latex/contrib/acroflex/README.md
-2020/08/07 | 1462554 | obsolete/macros/latex/contrib/datepicker-pro/doc/datepicker-pro.pdf
-2020/08/07 | 14564 | macros/context/contrib/context-letter/tex/context/interface/third/t-letter.xml
-2020/08/07 | 14551 | macros/latex/contrib/l3backend/l3backend-basics.dtx
-2020/08/07 | 1447 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkiv
-2020/08/07 | 1447 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkii
-2020/08/07 | 144785 | macros/latex/contrib/l3kernel/l3news03.pdf
-2020/08/07 | 14430 | macros/latex/contrib/l3backend/l3backend-header.dtx
-2020/08/07 | 14412 | macros/latex/contrib/l3backend/l3backend-color.dtx
-2020/08/07 | 14376 | macros/latex/contrib/l3backend/l3backend-box.dtx
-2020/08/07 | 1434 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkii
-2020/08/07 | 1434 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkiv
-2020/08/07 | 1434 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkii
-2020/08/07 | 14244 | macros/latex/contrib/l3kernel/l3bootstrap.dtx
-2020/08/07 | 14238 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkvi
-2020/08/07 | 1422 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkiv
-2020/08/07 | 1422 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkii
-2020/08/07 | 1420 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkiv
-2020/08/07 | 14133 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
-2020/08/07 | 140795 | macros/latex/contrib/l3kernel/l3news06.pdf
-2020/08/07 | 140776 | macros/latex/contrib/l3kernel/l3news02.pdf
-2020/08/07 | 1403 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkii
-2020/08/07 | 140348 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
-2020/08/07 | 1389 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkiv
-2020/08/07 | 1360 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkiv
-2020/08/07 | 1360 | macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkii
-2020/08/07 | 1356 | macros/latex/contrib/l3experimental/l3draw-code.tex
-2020/08/07 | 13548 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkii
-2020/08/07 | 135177 | macros/latex/contrib/l3kernel/l3tl.dtx
-2020/08/07 | 1338685 | obsolete/macros/latex/contrib/acroflex.zip
-2020/08/07 | 1317 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkiv
-2020/08/07 | 1317 | macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkii
-2020/08/07 | 13055 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-03.mkvi
-2020/08/07 | 13052 | macros/context/contrib/context-letter/tex/context/interface/third/t-memo.xml
-2020/08/07 | 1298 | macros/latex/contrib/l3backend/l3backend-code.tex
-2020/08/07 | 129801 | obsolete/macros/latex/contrib/acroflex/doc/acroflex_man.pdf
-2020/08/07 | 12965 | macros/latex/contrib/l3kernel/l3fp-traps.dtx
-2020/08/07 | 128925 | macros/latex/contrib/l3kernel/l3file.dtx
-2020/08/07 | 127477 | macros/latex/contrib/l3kernel/l3basics.dtx
-2020/08/07 | 11 | macros/context/contrib/context-letter/VERSION
-2020/08/07 | 119094 | macros/latex/contrib/l3kernel/l3news07.pdf
-2020/08/07 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex
-2020/08/07 | 11878969 | install/macros/latex/contrib/l3kernel.tds.zip
-2020/08/07 | 11812 | macros/latex/contrib/l3kernel/l3fparray.dtx
-2020/08/07 | 11658700 | macros/latex/contrib/l3kernel.zip
-2020/08/07 | 11628 | macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.lua
-2020/08/07 | 11371 | macros/latex/contrib/l3experimental/l3sys-shell.dtx
-2020/08/07 | 113527 | macros/latex/contrib/l3kernel/l3news01.pdf
-2020/08/07 | 112757 | macros/latex/contrib/l3kernel/l3str-convert.dtx
-2020/08/07 | 112616 | macros/latex/contrib/l3kernel/l3keys.dtx
-2020/08/07 | 1116 | macros/latex/contrib/l3experimental/l3pdf-code.tex
-2020/08/07 | 11132 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
-2020/08/07 | 110692 | macros/latex/contrib/l3kernel/l3token.dtx
-2020/08/07 | 10983020 | systems/win32/w32tex/win64/xetex-w64.tar.xz
-2020/08/07 | 107716 | macros/latex/contrib/l3kernel/l3expan.dtx
-2020/08/07 | 107379 | macros/latex/contrib/l3kernel/l3news09.tex
-2020/08/07 | 107115 | macros/latex/contrib/l3kernel/l3news04.pdf
-2020/08/07 | 105735 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
-2020/08/07 | 10536 | macros/latex/contrib/l3experimental/l3pdf.dtx
-2020/08/07 | 105090 | macros/latex/contrib/l3kernel/l3news05.pdf
-2020/08/07 | 1046144 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
-2020/08/07 | 1016 | macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkii
-2020/08/07 | 101437 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
-2020/08/07 | 1012 | macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkii
diff --git a/fonts/academicons/README b/fonts/academicons/README
index f6b6b07ecf..4ccce7b6e0 100644
--- a/fonts/academicons/README
+++ b/fonts/academicons/README
@@ -1,6 +1,6 @@
academicons -- high quality icons of online academic profiles
-The "academicons" package provides access in (La)TeX to 76 high quality icons
+The "academicons" package provides access in (La)TeX to 112 high quality icons
of online academic profiles included in the free "Academicons" font. This
package requires either the Xe(La)TeX or Lua(La)TeX engine to load the
"Academicons" font from the system, which requires installing the bundled
@@ -25,7 +25,7 @@ manual. For example, "\aiicon{googlescholar}" yields the same result as
academicons (La)TeX package
https://www.ctan.org/pkg/academicons
-Version: 1.8.6-2
+Version: 1.9.0
Author: Diogo A. B. Fernandes, diogoabfernandes at gmail.com
License: LaTeX Project Public License, version 1.3c
diff --git a/fonts/academicons/academicons.pdf b/fonts/academicons/academicons.pdf
index 11108e9119..2885637bcb 100644
--- a/fonts/academicons/academicons.pdf
+++ b/fonts/academicons/academicons.pdf
Binary files differ
diff --git a/fonts/academicons/academicons.sty b/fonts/academicons/academicons.sty
index 5048448161..134c96e485 100644
--- a/fonts/academicons/academicons.sty
+++ b/fonts/academicons/academicons.sty
@@ -1,11 +1,11 @@
-% Copyright 2015-2018 Diogo A. B. Fernandes
+% Copyright 2015-2020 Diogo A. B. Fernandes
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{academicons}[2018/06/27 v1.8.6-2 Academicons Icons]
+\ProvidesPackage{academicons}[2020/08/14 v1.9.0 Academicons Icons]
\newcommand\AI{\usefont{TU}{academicons}{m}{n}}
@@ -58,6 +58,15 @@
aiicon@ads-square\endcsname}}
\expandafter\def\csname%
+ aiicon@africarxiv\endcsname{\symbol{"E91B}}
+\def\aiAfricArXiv{{\AI\csname%
+ aiicon@africarxiv\endcsname}}
+\expandafter\def\csname%
+ aiicon@africarxiv-square\endcsname{\symbol{"E90B}}
+\def\aiAfricArXivSquare{{\AI\csname%
+ aiicon@africarxiv-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@arxiv\endcsname{\symbol{"E974}}
\def\aiarXiv{{\AI\csname%
aiicon@arxiv\endcsname}}
@@ -85,6 +94,24 @@
aiicon@ceur-square\endcsname}}
\expandafter\def\csname%
+ aiicon@ciencia-vitae\endcsname{\symbol{"E912}}
+\def\aiCIENCIAVITAE{{\AI\csname%
+ aiicon@ciencia-vitae\endcsname}}
+\expandafter\def\csname%
+ aiicon@ciencia-vitae-square\endcsname{\symbol{"E913}}
+\def\aiCIENCIAVITAESquare{{\AI\csname%
+ aiicon@ciencia-vitae-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@conversation\endcsname{\symbol{"E94C}}
+\def\aiConversation{{\AI\csname%
+ aiicon@conversation\endcsname}}
+\expandafter\def\csname%
+ aiicon@conversation-square\endcsname{\symbol{"E915}}
+\def\aiConversationSquare{{\AI\csname%
+ aiicon@conversation-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@coursera\endcsname{\symbol{"E95F}}
\def\aiCoursera{{\AI\csname%
aiicon@coursera\endcsname}}
@@ -94,6 +121,15 @@
aiicon@coursera-square\endcsname}}
\expandafter\def\csname%
+ aiicon@crossref\endcsname{\symbol{"E918}}
+\def\aiCrossref{{\AI\csname%
+ aiicon@crossref\endcsname}}
+\expandafter\def\csname%
+ aiicon@crossref-square\endcsname{\symbol{"E919}}
+\def\aiCrossrefSquare{{\AI\csname%
+ aiicon@crossref-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@cv\endcsname{\symbol{"E9A5}}
\def\aiCV{{\AI\csname%
aiicon@cv\endcsname}}
@@ -103,6 +139,15 @@
aiicon@cv-square\endcsname}}
\expandafter\def\csname%
+ aiicon@datacite\endcsname{\symbol{"E91C}}
+\def\aiDataCite{{\AI\csname%
+ aiicon@datacite\endcsname}}
+\expandafter\def\csname%
+ aiicon@datacite-square\endcsname{\symbol{"E91D}}
+\def\aiDataCiteSquare{{\AI\csname%
+ aiicon@datacite-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@dataverse\endcsname{\symbol{"E9F7}}
\def\aiDataverse{{\AI\csname%
aiicon@dataverse\endcsname}}
@@ -148,6 +193,15 @@
aiicon@dryad-square\endcsname}}
\expandafter\def\csname%
+ aiicon@elsevier\endcsname{\symbol{"E961}}
+\def\aiElsevier{{\AI\csname%
+ aiicon@elsevier\endcsname}}
+\expandafter\def\csname%
+ aiicon@elsevier-square\endcsname{\symbol{"E910}}
+\def\aiElsevierquare{{\AI\csname%
+ aiicon@elsevier-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@figshare\endcsname{\symbol{"E981}}
\def\aiFigshare{{\AI\csname%
aiicon@figshare\endcsname}}
@@ -166,6 +220,15 @@
aiicon@googlescholar-square\endcsname}}
\expandafter\def\csname%
+ aiicon@hal\endcsname{\symbol{"E92C}}
+\def\aiHAL{{\AI\csname%
+ aiicon@hal\endcsname}}
+\expandafter\def\csname%
+ aiicon@hal-square\endcsname{\symbol{"E92D}}
+\def\aiHALSquare{{\AI\csname%
+ aiicon@hal-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@ideas-repec\endcsname{\symbol{"E9ED}}
\def\aiIDEASRePEc{{\AI\csname%
aiicon@ideas-repec\endcsname}}
@@ -193,6 +256,24 @@
aiicon@impactstory-square\endcsname}}
\expandafter\def\csname%
+ aiicon@inaturalist\endcsname{\symbol{"E900}}
+\def\aiiNaturalist{{\AI\csname%
+ aiicon@inaturalist\endcsname}}
+\expandafter\def\csname%
+ aiicon@inaturalist-square\endcsname{\symbol{"E901}}
+\def\aiiNaturalistSquare{{\AI\csname%
+ aiicon@inaturalist-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@inpn\endcsname{\symbol{"E902}}
+\def\aiINPN{{\AI\csname%
+ aiicon@inpn\endcsname}}
+\expandafter\def\csname%
+ aiicon@inpn-square\endcsname{\symbol{"E903}}
+\def\aiINPNSquare{{\AI\csname%
+ aiicon@inpn-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@inspire\endcsname{\symbol{"E9E9}}
\def\aiInspire{{\AI\csname%
aiicon@inspire\endcsname}}
@@ -202,6 +283,24 @@
aiicon@inspire-square\endcsname}}
\expandafter\def\csname%
+ aiicon@isidore\endcsname{\symbol{"E936}}
+\def\aiISIDORE{{\AI\csname%
+ aiicon@isidore\endcsname}}
+\expandafter\def\csname%
+ aiicon@isidore-square\endcsname{\symbol{"E954}}
+\def\aiISIDORESquare{{\AI\csname%
+ aiicon@isidore-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@jstor\endcsname{\symbol{"E938}}
+\def\aiJSTOR{{\AI\csname%
+ aiicon@jstor\endcsname}}
+\expandafter\def\csname%
+ aiicon@jstor-square\endcsname{\symbol{"E944}}
+\def\aiJSTORSquare{{\AI\csname%
+ aiicon@jstor-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@lattes\endcsname{\symbol{"E9B3}}
\def\aiLattes{{\AI\csname%
aiicon@lattes\endcsname}}
@@ -229,6 +328,33 @@
aiicon@mendeley-square\endcsname}}
\expandafter\def\csname%
+ aiicon@moodle\endcsname{\symbol{"E907}}
+\def\aiMoodle{{\AI\csname%
+ aiicon@moodle\endcsname}}
+\expandafter\def\csname%
+ aiicon@moodle-square\endcsname{\symbol{"E908}}
+\def\aiMoodleSquare{{\AI\csname%
+ aiicon@moodle-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@nakala\endcsname{\symbol{"E940}}
+\def\aiNAKALA{{\AI\csname%
+ aiicon@nakala\endcsname}}
+\expandafter\def\csname%
+ aiicon@nakala-square\endcsname{\symbol{"E941}}
+\def\aiNAKALASquare{{\AI\csname%
+ aiicon@nakala-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@closed-access\endcsname{\symbol{"E942}}
+\def\aiClosedAccess{{\AI\csname%
+ aiicon@closed-access\endcsname}}
+\expandafter\def\csname%
+ aiicon@closed-access-square\endcsname{\symbol{"E943}}
+\def\aiClosedAccessSquare{{\AI\csname%
+ aiicon@closed-access-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@open-access\endcsname{\symbol{"E939}}
\def\aiOpenAccess{{\AI\csname%
aiicon@open-access\endcsname}}
@@ -238,6 +364,33 @@
aiicon@open-access-square\endcsname}}
\expandafter\def\csname%
+ aiicon@open-data\endcsname{\symbol{"E966}}
+\def\aiOpenData{{\AI\csname%
+ aiicon@open-data\endcsname}}
+\expandafter\def\csname%
+ aiicon@open-data-square\endcsname{\symbol{"E967}}
+\def\aiOpenDataSquare{{\AI\csname%
+ aiicon@open-data-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@open-materials\endcsname{\symbol{"E968}}
+\def\aiOpenMaterials{{\AI\csname%
+ aiicon@open-materials\endcsname}}
+\expandafter\def\csname%
+ aiicon@open-materials-square\endcsname{\symbol{"E969}}
+\def\aiOpenMaterialsSquare{{\AI\csname%
+ aiicon@open-materials-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@openedition\endcsname{\symbol{"E946}}
+\def\aiOpenEdition{{\AI\csname%
+ aiicon@openedition\endcsname}}
+\expandafter\def\csname%
+ aiicon@openedition-square\endcsname{\symbol{"E947}}
+\def\aiOpenEditionSquare{{\AI\csname%
+ aiicon@openedition-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@orcid\endcsname{\symbol{"E9D9}}
\def\aiOrcid{{\AI\csname%
aiicon@orcid\endcsname}}
@@ -283,6 +436,33 @@
aiicon@piazza-square\endcsname}}
\expandafter\def\csname%
+ aiicon@preregistered\endcsname{\symbol{"E906}}
+\def\aiPreregistered{{\AI\csname%
+ aiicon@preregistered\endcsname}}
+\expandafter\def\csname%
+ aiicon@preregistered-square\endcsname{\symbol{"E96B}}
+\def\aiPreregisteredSquare{{\AI\csname%
+ aiicon@preregistered-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@protocols\endcsname{\symbol{"E952}}
+\def\aiProtocols{{\AI\csname%
+ aiicon@protocols\endcsname}}
+\expandafter\def\csname%
+ aiicon@protocols-square\endcsname{\symbol{"E953}}
+\def\aiProtocolsSquare{{\AI\csname%
+ aiicon@protocols-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@psyarxiv\endcsname{\symbol{"E90E}}
+\def\aiPsyArXiv{{\AI\csname%
+ aiicon@psyarxiv\endcsname}}
+\expandafter\def\csname%
+ aiicon@psyarxiv-square\endcsname{\symbol{"E90F}}
+\def\aiPsyArXivSquare{{\AI\csname%
+ aiicon@psyarxiv-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@publons\endcsname{\symbol{"E937}}
\def\aiPublons{{\AI\csname%
aiicon@publons\endcsname}}
@@ -301,6 +481,15 @@
aiicon@pubmed-square\endcsname}}
\expandafter\def\csname%
+ aiicon@pubpeer\endcsname{\symbol{"E922}}
+\def\aiPubPeer{{\AI\csname%
+ aiicon@pubpeer\endcsname}}
+\expandafter\def\csname%
+ aiicon@pubpeer-square\endcsname{\symbol{"E923}}
+\def\aiPubPeerSquare{{\AI\csname%
+ aiicon@pubpeer-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@researcherid\endcsname{\symbol{"E91A}}
\def\aiResearcherID{{\AI\csname%
aiicon@researcherid\endcsname}}
@@ -346,6 +535,24 @@
aiicon@springer-square\endcsname}}
\expandafter\def\csname%
+ aiicon@ssrn\endcsname{\symbol{"E916}}
+\def\aiSSRN{{\AI\csname%
+ aiicon@ssrn\endcsname}}
+\expandafter\def\csname%
+ aiicon@ssrn-square\endcsname{\symbol{"E917}}
+\def\aiSSRNSquare{{\AI\csname%
+ aiicon@ssrn-square\endcsname}}
+
+\expandafter\def\csname%
+ aiicon@stackoverflow\endcsname{\symbol{"E920}}
+\def\aiStackOverflow{{\AI\csname%
+ aiicon@stackoverflow\endcsname}}
+\expandafter\def\csname%
+ aiicon@stackoverflow-square\endcsname{\symbol{"E921}}
+\def\aiStackOverflowSquare{{\AI\csname%
+ aiicon@stackoverflow-square\endcsname}}
+
+\expandafter\def\csname%
aiicon@zotero\endcsname{\symbol{"E962}}
\def\aiZotero{{\AI\csname%
aiicon@zotero\endcsname}}
diff --git a/fonts/academicons/academicons.tex b/fonts/academicons/academicons.tex
index c8d32d5092..f83b88dd9f 100644
--- a/fonts/academicons/academicons.tex
+++ b/fonts/academicons/academicons.tex
@@ -1,4 +1,4 @@
-% Copyright 2015-2018 Diogo A. B. Fernandes
+% Copyright 2015-2020 Diogo A. B. Fernandes
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
@@ -24,6 +24,7 @@
\CodelineIndex
\RecordChanges
+\changes{v1.9.0}{2020/08/14}{Release of v1.9.0.}
\changes{v1.8.6-2}{2018/06/27}{Fixed bugs in a few icon commands.}
\changes{v1.8.6-1}{2018/06/25}{Removed \texttt{fontspec} dependency.}
\changes{v1.8.6}{2018/04/03}{Release of v1.8.6.}
@@ -44,7 +45,7 @@ High quality icons of online academic profiles}
\author{%
Diogo A. B. Fernandes\thanks{Email: \href{mailto:diogoabfernandes@gmail.com}{\tt diogoabfernandes@gmail.com}}~~(\hologo{LaTeX} code)\\%
James Walsh (font and icons design)}
-\date{v1.8.6-2, released on 27 June 2018}
+\date{v1.9.0, released on 14 August 2020}
\maketitle
\begin{abstract}
@@ -96,38 +97,61 @@ The \textsf{\jobname} package provides the generic \cs{aiicon} command to access
\icon{acm}{aiACM}
\icon{acmdl}{aiACMDL}
\icon{ads}{aiADS}
+ \icon{africarxiv}{aiAfricArXiv}
\icon{arxiv}{aiarXiv}
\icon{biorxiv}{aibioRxiv}
\icon{ceur}{aiCEUR}
+ \icon{ciencia-vitae}{aiCIENCIAVITAE}
+ \icon{conversation}{aiConversation}
\icon{coursera}{aiCoursera}
+ \icon{crossref}{aiCrossref}
\icon{cv}{aiCV}
+ \icon{datacite}{aiDataCite}
\icon{dataverse}{aiDataverse}
\icon{dblp}{aidblp}
\icon{depsy}{aiDepsy}
\icon{doi}{aiDoi}
\icon{dryad}{aiDryad}
+ \icon{elsevier}{aiElsevier}
\icon{ideas-repec}{aiIDEASRePEc}
\icon{figshare}{aiFigshare}
\icon{googlescholar}{aiGoogleScholar}
+ \icon{hal}{aiHAL}
\icon{ieee}{aiIEEE}
\icon{impactstory}{aiImpactstory}
+ \icon{inaturalist}{aiiNaturalist}
+ \icon{inpn}{aiINPN}
\icon{inspire}{aiInspire}
+ \icon{isidore}{aiISIDORE}
+ \icon{jstor}{aiJSTOR}
\icon{lattes}{aiLattes}
\icon{mathoverflow}{aiMathOverflow}
\icon{mendeley}{aiMendeley}
+ \icon{moodle}{aiMoodle}
+ \icon{nakala}{aiNAKALA}
+ \icon{closed-access}{aiClosedAccess}
\icon{open-access}{aiOpenAccess}
+ \icon{open-data}{aiOpenData}
+ \icon{open-materials}{aiOpenMaterials}
+ \icon{openedition}{aiOpenEdition}
\icon{orcid}{aiOrcid}
\icon{osf}{aiOSF}
\icon{overleaf}{aiOverleaf}
\icon{philpapers}{aiPhilPapers}
\icon{piazza}{aiPiazza}
+ \icon{preregistered}{aiPreregistered}
+ \icon{protocols}{aiProtocols}
+ \icon{psyarxiv}{aiPsyArXiv}
\icon{publons}{aiPublons}
\icon{pubmed}{aiPubMed}
+ \icon{pubpeer}{aiPubPeer}
\icon{researcherid}{aiResearcherID}
\icon{researchgate}{aiResearchGate}
\icon{scirate}{aiSciRate}
\icon{semantic-scholar}{aiSemanticScholar}
\icon{springer}{aiSpringer}
+ \icon{ssrn}{aiSSRN}
+ \icon{stackoverflow}{aiStackOverflow}
\icon{zotero}{aiZotero}
\end{showcase}
diff --git a/fonts/academicons/academicons.ttf b/fonts/academicons/academicons.ttf
index 4f42f958c8..6ff1811a77 100644
--- a/fonts/academicons/academicons.ttf
+++ b/fonts/academicons/academicons.ttf
Binary files differ
diff --git a/fonts/academicons/tuacademicons.fd b/fonts/academicons/tuacademicons.fd
index f752a56f23..1af0ec3be6 100644
--- a/fonts/academicons/tuacademicons.fd
+++ b/fonts/academicons/tuacademicons.fd
@@ -1,12 +1,10 @@
-% Copyright 2018 Diogo A. B. Fernandes
+% Copyright 2020 Diogo A. B. Fernandes
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.
%
% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Diogo A. B. Fernandes
%
\DeclareFontFamily{TU}{academicons}{}
\DeclareFontShape{TU}{academicons}{m}{n}
diff --git a/fonts/newcomputermodern/NewCM10-Bold.otf b/fonts/newcomputermodern/NewCM10-Bold.otf
index dfaa23601e..115617ebf5 100644
--- a/fonts/newcomputermodern/NewCM10-Bold.otf
+++ b/fonts/newcomputermodern/NewCM10-Bold.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCM10-BoldItalic.otf b/fonts/newcomputermodern/NewCM10-BoldItalic.otf
index 1a047cec59..1270e32eb6 100644
--- a/fonts/newcomputermodern/NewCM10-BoldItalic.otf
+++ b/fonts/newcomputermodern/NewCM10-BoldItalic.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCM10-Book.otf b/fonts/newcomputermodern/NewCM10-Book.otf
index 2de0fc252e..3b6f3b0c73 100644
--- a/fonts/newcomputermodern/NewCM10-Book.otf
+++ b/fonts/newcomputermodern/NewCM10-Book.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCM10-BookItalic.otf b/fonts/newcomputermodern/NewCM10-BookItalic.otf
index 2148b9c315..e773707434 100644
--- a/fonts/newcomputermodern/NewCM10-BookItalic.otf
+++ b/fonts/newcomputermodern/NewCM10-BookItalic.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCM10-Italic.otf b/fonts/newcomputermodern/NewCM10-Italic.otf
index c2451851c0..787fc0af10 100644
--- a/fonts/newcomputermodern/NewCM10-Italic.otf
+++ b/fonts/newcomputermodern/NewCM10-Italic.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCM10-Regular.otf b/fonts/newcomputermodern/NewCM10-Regular.otf
index b538086a00..385044be10 100644
--- a/fonts/newcomputermodern/NewCM10-Regular.otf
+++ b/fonts/newcomputermodern/NewCM10-Regular.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMath-Book.otf b/fonts/newcomputermodern/NewCMMath-Book.otf
index 99edda4f5a..50f0bea17c 100644
--- a/fonts/newcomputermodern/NewCMMath-Book.otf
+++ b/fonts/newcomputermodern/NewCMMath-Book.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMath-Regular.otf b/fonts/newcomputermodern/NewCMMath-Regular.otf
index ab9653dbb1..7239dfe909 100644
--- a/fonts/newcomputermodern/NewCMMath-Regular.otf
+++ b/fonts/newcomputermodern/NewCMMath-Regular.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMono10-Bold.otf b/fonts/newcomputermodern/NewCMMono10-Bold.otf
index e2f056caba..2bf952328e 100644
--- a/fonts/newcomputermodern/NewCMMono10-Bold.otf
+++ b/fonts/newcomputermodern/NewCMMono10-Bold.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMono10-BoldOblique.otf b/fonts/newcomputermodern/NewCMMono10-BoldOblique.otf
index 08505f6fc5..219e3d056c 100644
--- a/fonts/newcomputermodern/NewCMMono10-BoldOblique.otf
+++ b/fonts/newcomputermodern/NewCMMono10-BoldOblique.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMono10-Book.otf b/fonts/newcomputermodern/NewCMMono10-Book.otf
index e5ec3be8bb..22a6d61f1f 100644
--- a/fonts/newcomputermodern/NewCMMono10-Book.otf
+++ b/fonts/newcomputermodern/NewCMMono10-Book.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMono10-BookItalic.otf b/fonts/newcomputermodern/NewCMMono10-BookItalic.otf
index bb91563da7..2fd4a908ac 100644
--- a/fonts/newcomputermodern/NewCMMono10-BookItalic.otf
+++ b/fonts/newcomputermodern/NewCMMono10-BookItalic.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMono10-Italic.otf b/fonts/newcomputermodern/NewCMMono10-Italic.otf
index 76b85c7e1f..47f2d0b665 100644
--- a/fonts/newcomputermodern/NewCMMono10-Italic.otf
+++ b/fonts/newcomputermodern/NewCMMono10-Italic.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMMono10-Regular.otf b/fonts/newcomputermodern/NewCMMono10-Regular.otf
index efd343020e..884c817ed7 100644
--- a/fonts/newcomputermodern/NewCMMono10-Regular.otf
+++ b/fonts/newcomputermodern/NewCMMono10-Regular.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMSans10-Bold.otf b/fonts/newcomputermodern/NewCMSans10-Bold.otf
index 7454a618da..1a33c627b7 100644
--- a/fonts/newcomputermodern/NewCMSans10-Bold.otf
+++ b/fonts/newcomputermodern/NewCMSans10-Bold.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMSans10-BoldOblique.otf b/fonts/newcomputermodern/NewCMSans10-BoldOblique.otf
index 378a0a6521..4501a709b8 100644
--- a/fonts/newcomputermodern/NewCMSans10-BoldOblique.otf
+++ b/fonts/newcomputermodern/NewCMSans10-BoldOblique.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMSans10-Book.otf b/fonts/newcomputermodern/NewCMSans10-Book.otf
index c8a59a7f4b..886c8083cc 100644
--- a/fonts/newcomputermodern/NewCMSans10-Book.otf
+++ b/fonts/newcomputermodern/NewCMSans10-Book.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMSans10-BookOblique.otf b/fonts/newcomputermodern/NewCMSans10-BookOblique.otf
index 3a2b035224..c646312f75 100644
--- a/fonts/newcomputermodern/NewCMSans10-BookOblique.otf
+++ b/fonts/newcomputermodern/NewCMSans10-BookOblique.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMSans10-Oblique.otf b/fonts/newcomputermodern/NewCMSans10-Oblique.otf
index 5bcd40297a..49d121ff0e 100644
--- a/fonts/newcomputermodern/NewCMSans10-Oblique.otf
+++ b/fonts/newcomputermodern/NewCMSans10-Oblique.otf
Binary files differ
diff --git a/fonts/newcomputermodern/NewCMSans10-Regular.otf b/fonts/newcomputermodern/NewCMSans10-Regular.otf
index dd2972ca19..783063a581 100644
--- a/fonts/newcomputermodern/NewCMSans10-Regular.otf
+++ b/fonts/newcomputermodern/NewCMSans10-Regular.otf
Binary files differ
diff --git a/fonts/newcomputermodern/README b/fonts/newcomputermodern/README
index fdb1f52beb..58e4c06cc9 100644
--- a/fonts/newcomputermodern/README
+++ b/fonts/newcomputermodern/README
@@ -1,7 +1,7 @@
New Computer Modern Fonts
- (Package version 2.1, GustFLv1 or later)
+ (Package version 2.2, GustFLv1 or later)
Antonis Tsolomitis
Samos, Greece, 2019--2020
@@ -118,6 +118,23 @@ a, e, m, n and r in the cv02 table.
---------------------------------------------------
+Version 2.2 adds Ancient Greek Numerals (u10140-u1018E) to all fonts
+(except Mono & Math). The four numerals that already existed in
+this range (that is u10144-u10147) have been altered to the new
+design matching the style of cm but also provide some Ancient Greek flair.
+
+Commands for accessing these glyphs are provided by the fontsetup package.
+
+The Math font now provides two more symbols that correspond to the commands
+\nrightrightarrows (equivalently \not\rightrightarrows)
+\nleftleftarrows (equivalently \not\leftleftarrows)
+and supported by the defaul and olddefault options of the fontsetup package.
+These symbols are not in the Unicode Standard and so they are added in the
+Private Area of the fonts.
+
+A modified file (newcm-unicode-symbols.pdf) based on unicode-symbols.pdf by Will Robertson is also provided showing the math glyphs of the font in comparison with other fonts found on ctan.
+---------------------------------------------------
+
Antonis Tsolomitis
Professor
University of the Aegean
diff --git a/fonts/newcomputermodern/newcm-unimath-symbols.pdf b/fonts/newcomputermodern/newcm-unimath-symbols.pdf
new file mode 100644
index 0000000000..78a3ed615c
--- /dev/null
+++ b/fonts/newcomputermodern/newcm-unimath-symbols.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontsetup/README b/macros/latex/contrib/fontsetup/README
index 53959c88e9..b73720d945 100644
--- a/macros/latex/contrib/fontsetup/README
+++ b/macros/latex/contrib/fontsetup/README
@@ -1,5 +1,5 @@
The fontsetup package
- (Version 1.005, GPL3)
+ (Version 1.006, GPL3)
This simple package makes it trivial to switch quickly between
different quality fonts supporting Mathematics.
diff --git a/macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdf b/macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdf
index c56fd29713..ffa923c0fc 100644
--- a/macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdf
+++ b/macros/latex/contrib/fontsetup/doc/fontsetup-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex b/macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex
index a43cf0ca40..f5ed9c551a 100644
--- a/macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex
+++ b/macros/latex/contrib/fontsetup/doc/fontsetup-doc.tex
@@ -1,6 +1,6 @@
-\documentclass{article}
+\documentclass{book}
\usepackage[default]{fontsetup}
-\usepackage{graphicx,fullpage}
+\usepackage{graphicx,fullpage,supertabular}
\begin{document}
@@ -9,8 +9,8 @@
\textit{by}\\[1ex]
{\large Antonis Tsolomitis}\\
University of the Aegean\\ Department of Mathematics\\[1ex]
- \textsc{26} June \textsc{2020}\\[1ex]
- Version 1.005, \textsc{gpl3}
+ \textsc{14} August \textsc{2020}\\[1ex]
+ Version 1.006, \textsc{gpl3}
\end{center}
This package is a simple wrapper-type package that makes the setup of fonts easy and
@@ -43,7 +43,11 @@ University of the Aegean\\ Department of Mathematics\\[1ex]
\item commands to access Sans Greek (upright and oblique) in math mode although these are
not included in the unicode standard. The commands follow the unicode-math.sty notation, so
to get $\msansLambda$ and $\mitsanspi$ you write \verb|$\msansLambda$| and \verb|$\mitsanspi$|.
- \end{itemize}
+ \item commands to access the Ancient Greek Numbers (Unicode u10140--u1018E)
+ documented in the Appendix
+ \item commands to access the negation of uniform convergence symbols \verb|\nrightrightarrows|
+ for $\nrightrightarrows$ and \verb|\nleftleftarrows| for $\nleftleftarrows$.
+ \end{itemize}
\item[ebgaramond] Loads the EB-Garamond fonts with Garamond-Math.
\item[fira] Loads the Fira family, a sans-serif font.
\item[gfsartemisia] Loads the GFSArtemisia, a font family designed to be used
@@ -275,8 +279,56 @@ Linotype Palatino Fonts and the supplied fsplpscel.otf must be installed as syst
\includegraphics[scale=1.2]{fspsample-times.pdf}
\end{center}
+\appendix
+
+\chapter{Ancient Greek Numbers}
+The following table lists the commands and the symbol produced for the Unicode range
+\texttt{u10140--u1018E}.
+\begin{center}\enlargethispage{1cm}
+ \begin{supertabular}{|l|l||l|l|}
+ \hline
+\verb|\atticonequarter| & \atticonequarter &\verb|\hermionianfifty| & \hermionianfifty \\ \hline
+\verb|\atticonehalf| & \atticonehalf &\verb|\thespianfifty| & \thespianfifty \\ \hline
+\verb|\atticonedrachma| & \atticonedrachma &\verb|\thespianonehundred| & \thespianonehundred \\ \hline
+\verb|\atticfive| & \atticfive &\verb|\thespianthreehundred| & \thespianthreehundred \\ \hline
+\verb|\atticfifty| & \atticfifty &\verb|\epidaurianfivehundred| & \epidaurianfivehundred \\ \hline
+\verb|\atticfivehundred| & \atticfivehundred &\verb|\troezenianfivehundred| & \troezenianfivehundred \\ \hline
+\verb|\atticfivethousand| & \atticfivethousand &\verb|\thespianfivehundred| & \thespianfivehundred \\ \hline
+\verb|\atticfiftythousand| & \atticfiftythousand &\verb|\carystianfivehundred| & \carystianfivehundred \\ \hline
+\verb|\atticfivetalents| & \atticfivetalents &\verb|\naxianfivehundred| & \naxianfivehundred \\ \hline
+\verb|\attictentalents| & \attictentalents &\verb|\thespianonethousand| & \thespianonethousand \\ \hline
+\verb|\atticfiftytalents| & \atticfiftytalents &\verb|\thespianfivethousand| & \thespianfivethousand \\ \hline
+\verb|\atticonehundredtalents| & \atticonehundredtalents &\verb|\delphicfivemnas| & \delphicfivemnas \\ \hline
+\verb|\atticfivehundredtalents| & \atticfivehundredtalents &\verb|\stratianfiftymnas| & \stratianfiftymnas \\ \hline
+\verb|\atticonethousandtalents| & \atticonethousandtalents &\verb|\greekonehalfsign| & \greekonehalfsign \\ \hline
+\verb|\atticfivethousandtalents| & \atticfivethousandtalents &\verb|\greekonehalfsignalt| & \greekonehalfsignalt \\ \hline
+\verb|\atticfivestaters| & \atticfivestaters &\verb|\greektwothirdssign| & \greektwothirdssign \\ \hline
+\verb|\attictenstaters| & \attictenstaters &\verb|\greekthreequarterssign| & \greekthreequarterssign \\ \hline
+\verb|\atticfiftystaters| & \atticfiftystaters &\verb|\greekyearsign| & \greekyearsign \\ \hline
+\verb|\atticonehundredstaters| & \atticonehundredstaters &\verb|\greektalentsign| & \greektalentsign \\ \hline
+\verb|\atticfivehundredstaters| & \atticfivehundredstaters &\verb|\greekdrachmasign| & \greekdrachmasign \\ \hline
+\verb|\atticonethousandstaters| & \atticonethousandstaters &\verb|\greekobolsign| & \greekobolsign \\ \hline
+\verb|\attictenthousandstaters| & \attictenthousandstaters &\verb|\greektwoobolssign| & \greektwoobolssign \\ \hline
+\verb|\atticfiftythousandstaters| & \atticfiftythousandstaters &\verb|\greekthreeobolssign| & \greekthreeobolssign \\ \hline
+\verb|\attictenmnas| & \attictenmnas &\verb|\greekfourobolssign| & \greekfourobolssign \\ \hline
+\verb|\heraleumoneplethron| & \heraleumoneplethron &\verb|\greekfiveobolssign| & \greekfiveobolssign \\ \hline
+\verb|\thespianone| & \thespianone &\verb|\greekmetretessign| & \greekmetretessign \\ \hline
+\verb|\ermionianone| & \ermionianone &\verb|\greekkyathosbasesign| & \greekkyathosbasesign \\ \hline
+\verb|\epidauriantwo| & \epidauriantwo &\verb|\greeklytrasign| & \greeklytrasign \\ \hline
+\verb|\thespiantwo| & \thespiantwo &\verb|\greekounkiasign| & \greekounkiasign \\ \hline
+\verb|\cyrenaictwodrachmas| & \cyrenaictwodrachmas &\verb|\greekxestessign| & \greekxestessign \\ \hline
+\verb|\epidauriantwodrachmas| & \epidauriantwodrachmas &\verb|\greekartabesign| & \greekartabesign \\ \hline
+\verb|\troezenianfive| & \troezenianfive &\verb|\greekarourasign| & \greekarourasign \\ \hline
+\verb|\troezenianten| & \troezenianten &\verb|\greekgrammasign| & \greekgrammasign \\ \hline
+\verb|\troezeniantenalt| & \troezeniantenalt &\verb|\greektryblionbasesign| & \greektryblionbasesign \\ \hline
+\verb|\hermionianten| & \hermionianten &\verb|\greekzerosign| & \greekzerosign \\ \hline
+\verb|\messenianten| & \messenianten &\verb|\greekonequartersign| & \greekonequartersign \\ \hline
+\verb|\thespianten| & \thespianten &\verb|\greeksinusoidsign| & \greeksinusoidsign \\ \hline
+\verb|\thespianthirty| & \thespianthirty &\verb|\greekindictionsign| & \greekindictionsign \\ \hline
+\verb|\troezenianfifty| & \troezenianfifty &\verb|\nomismasign| & \nomismasign \\ \hline
+\verb|\troezenianfiftyalt| & \troezenianfiftyalt & & \\ \hline
+ \end{supertabular}
+\end{center}
-
-
\end{document}
diff --git a/macros/latex/contrib/fontsetup/fspdefault.sty b/macros/latex/contrib/fontsetup/fspdefault.sty
index 97b9082246..bdc44f2ee5 100644
--- a/macros/latex/contrib/fontsetup/fspdefault.sty
+++ b/macros/latex/contrib/fontsetup/fspdefault.sty
@@ -147,4 +147,87 @@ SmallCapsFeatures={Numbers=OldStyle}]{NewCMMono10-Book.otf}
\newcommand{\mitsanspsi}{\char"E070}
\newcommand{\mitsansomega}{\char"E071}
\newcommand{\mitsansvarepsilon}{\char"E072}
-
+% Ancient Greek Numerals u10140-u1018E
+\newcommand{\atticonequarter}{\char"10140}
+\newcommand{\atticonehalf}{\char"10141}
+\newcommand{\atticonedrachma}{\char"10142}
+\newcommand{\atticfive}{\char"10143}
+\newcommand{\atticfifty}{\char"10144}
+\newcommand{\atticfivehundred}{\char"10145}
+\newcommand{\atticfivethousand}{\char"10146}
+\newcommand{\atticfiftythousand}{\char"10147}
+\newcommand{\atticfivetalents}{\char"10148}
+\newcommand{\attictentalents}{\char"10149}
+\newcommand{\atticfiftytalents}{\char"1014A}
+\newcommand{\atticonehundredtalents}{\char"1014B}
+\newcommand{\atticfivehundredtalents}{\char"1014C}
+\newcommand{\atticonethousandtalents}{\char"1014D}
+\newcommand{\atticfivethousandtalents}{\char"1014E}
+\newcommand{\atticfivestaters}{\char"1014F}
+\newcommand{\attictenstaters}{\char"10150}
+\newcommand{\atticfiftystaters}{\char"10151}
+\newcommand{\atticonehundredstaters}{\char"10152}
+\newcommand{\atticfivehundredstaters}{\char"10153}
+\newcommand{\atticonethousandstaters}{\char"10154}
+\newcommand{\attictenthousandstaters}{\char"10155}
+\newcommand{\atticfiftythousandstaters}{\char"10156}
+\newcommand{\attictenmnas}{\char"10157}
+\newcommand{\heraleumoneplethron}{\char"10158}
+\newcommand{\thespianone}{\char"10159}
+\newcommand{\ermionianone}{\char"1015A}
+\newcommand{\epidauriantwo}{\char"1015B}
+\newcommand{\thespiantwo}{\char"1015C}
+\newcommand{\cyrenaictwodrachmas}{\char"1015D}
+\newcommand{\epidauriantwodrachmas}{\char"1015E}
+\newcommand{\troezenianfive}{\char"1015F}
+\newcommand{\troezenianten}{\char"10160}
+\newcommand{\troezeniantenalt}{\char"10161}
+\newcommand{\hermionianten}{\char"10162}
+\newcommand{\messenianten}{\char"10163}
+\newcommand{\thespianten}{\char"10164}
+\newcommand{\thespianthirty}{\char"10165}
+\newcommand{\troezenianfifty}{\char"10166}
+\newcommand{\troezenianfiftyalt}{\char"10167}
+\newcommand{\hermionianfifty}{\char"10168}
+\newcommand{\thespianfifty}{\char"10169}
+\newcommand{\thespianonehundred}{\char"1016A}
+\newcommand{\thespianthreehundred}{\char"1016B}
+\newcommand{\epidaurianfivehundred}{\char"1016C}
+\newcommand{\troezenianfivehundred}{\char"1016D}
+\newcommand{\thespianfivehundred}{\char"1016E}
+\newcommand{\carystianfivehundred}{\char"1016F}
+\newcommand{\naxianfivehundred}{\char"10170}
+\newcommand{\thespianonethousand}{\char"10171}
+\newcommand{\thespianfivethousand}{\char"10172}
+\newcommand{\delphicfivemnas}{\char"10173}
+\newcommand{\stratianfiftymnas}{\char"10174}
+\newcommand{\greekonehalfsign}{\char"10175}
+\newcommand{\greekonehalfsignalt}{\char"10176}
+\newcommand{\greektwothirdssign}{\char"10177}
+\newcommand{\greekthreequarterssign}{\char"10178}
+\newcommand{\greekyearsign}{\char"10179}
+\newcommand{\greektalentsign}{\char"1017A}
+\newcommand{\greekdrachmasign}{\char"1017B}
+\newcommand{\greekobolsign}{\char"1017C}
+\newcommand{\greektwoobolssign}{\char"1017D}
+\newcommand{\greekthreeobolssign}{\char"1017E}
+\newcommand{\greekfourobolssign}{\char"1017F}
+\newcommand{\greekfiveobolssign}{\char"10180}
+\newcommand{\greekmetretessign}{\char"10181}
+\newcommand{\greekkyathosbasesign}{\char"10182}
+\newcommand{\greeklytrasign}{\char"10183}
+\newcommand{\greekounkiasign}{\char"10184}
+\newcommand{\greekxestessign}{\char"10185}
+\newcommand{\greekartabesign}{\char"10186}
+\newcommand{\greekarourasign}{\char"10187}
+\newcommand{\greekgrammasign}{\char"10188}
+\newcommand{\greektryblionbasesign}{\char"10189}
+\newcommand{\greekzerosign}{\char"1018A}
+\newcommand{\greekonequartersign}{\char"1018B}
+\newcommand{\greeksinusoidsign}{\char"1018C}
+\newcommand{\greekindictionsign}{\char"1018D}
+\newcommand{\nomismasign}{\char"1018E}
+%
+% some math symbols
+\DeclareRobustCommand\nrightrightarrows{\mathrel{\char"E033}}
+\DeclareRobustCommand\nleftleftarrows{\mathrel{\char"E032}}
diff --git a/macros/latex/contrib/fontsetup/fspolddefault.sty b/macros/latex/contrib/fontsetup/fspolddefault.sty
index 3b08994260..e55f59e917 100644
--- a/macros/latex/contrib/fontsetup/fspolddefault.sty
+++ b/macros/latex/contrib/fontsetup/fspolddefault.sty
@@ -147,4 +147,87 @@ SmallCapsFeatures={Numbers=OldStyle}]{NewCMMono10-Regular.otf}
\newcommand{\mitsanspsi}{\char"E070}
\newcommand{\mitsansomega}{\char"E071}
\newcommand{\mitsansvarepsilon}{\char"E072}
-
+% Ancient Greek Numerals u10140-u1018E
+\newcommand{\atticonequarter}{\char"10140}
+\newcommand{\atticonehalf}{\char"10141}
+\newcommand{\atticonedrachma}{\char"10142}
+\newcommand{\atticfive}{\char"10143}
+\newcommand{\atticfifty}{\char"10144}
+\newcommand{\atticfivehundred}{\char"10145}
+\newcommand{\atticfivethousand}{\char"10146}
+\newcommand{\atticfiftythousand}{\char"10147}
+\newcommand{\atticfivetalents}{\char"10148}
+\newcommand{\attictentalents}{\char"10149}
+\newcommand{\atticfiftytalents}{\char"1014A}
+\newcommand{\atticonehundredtalents}{\char"1014B}
+\newcommand{\atticfivehundredtalents}{\char"1014C}
+\newcommand{\atticonethousandtalents}{\char"1014D}
+\newcommand{\atticfivethousandtalents}{\char"1014E}
+\newcommand{\atticfivestaters}{\char"1014F}
+\newcommand{\attictenstaters}{\char"10150}
+\newcommand{\atticfiftystaters}{\char"10151}
+\newcommand{\atticonehundredstaters}{\char"10152}
+\newcommand{\atticfivehundredstaters}{\char"10153}
+\newcommand{\atticonethousandstaters}{\char"10154}
+\newcommand{\attictenthousandstaters}{\char"10155}
+\newcommand{\atticfiftythousandstaters}{\char"10156}
+\newcommand{\attictenmnas}{\char"10157}
+\newcommand{\heraleumoneplethron}{\char"10158}
+\newcommand{\thespianone}{\char"10159}
+\newcommand{\ermionianone}{\char"1015A}
+\newcommand{\epidauriantwo}{\char"1015B}
+\newcommand{\thespiantwo}{\char"1015C}
+\newcommand{\cyrenaictwodrachmas}{\char"1015D}
+\newcommand{\epidauriantwodrachmas}{\char"1015E}
+\newcommand{\troezenianfive}{\char"1015F}
+\newcommand{\troezenianten}{\char"10160}
+\newcommand{\troezeniantenalt}{\char"10161}
+\newcommand{\hermionianten}{\char"10162}
+\newcommand{\messenianten}{\char"10163}
+\newcommand{\thespianten}{\char"10164}
+\newcommand{\thespianthirty}{\char"10165}
+\newcommand{\troezenianfifty}{\char"10166}
+\newcommand{\troezenianfiftyalt}{\char"10167}
+\newcommand{\hermionianfifty}{\char"10168}
+\newcommand{\thespianfifty}{\char"10169}
+\newcommand{\thespianonehundred}{\char"1016A}
+\newcommand{\thespianthreehundred}{\char"1016B}
+\newcommand{\epidaurianfivehundred}{\char"1016C}
+\newcommand{\troezenianfivehundred}{\char"1016D}
+\newcommand{\thespianfivehundred}{\char"1016E}
+\newcommand{\carystianfivehundred}{\char"1016F}
+\newcommand{\naxianfivehundred}{\char"10170}
+\newcommand{\thespianonethousand}{\char"10171}
+\newcommand{\thespianfivethousand}{\char"10172}
+\newcommand{\delphicfivemnas}{\char"10173}
+\newcommand{\stratianfiftymnas}{\char"10174}
+\newcommand{\greekonehalfsign}{\char"10175}
+\newcommand{\greekonehalfsignalt}{\char"10176}
+\newcommand{\greektwothirdssign}{\char"10177}
+\newcommand{\greekthreequarterssign}{\char"10178}
+\newcommand{\greekyearsign}{\char"10179}
+\newcommand{\greektalentsign}{\char"1017A}
+\newcommand{\greekdrachmasign}{\char"1017B}
+\newcommand{\greekobolsign}{\char"1017C}
+\newcommand{\greektwoobolssign}{\char"1017D}
+\newcommand{\greekthreeobolssign}{\char"1017E}
+\newcommand{\greekfourobolssign}{\char"1017F}
+\newcommand{\greekfiveobolssign}{\char"10180}
+\newcommand{\greekmetretessign}{\char"10181}
+\newcommand{\greekkyathosbasesign}{\char"10182}
+\newcommand{\greeklytrasign}{\char"10183}
+\newcommand{\greekounkiasign}{\char"10184}
+\newcommand{\greekxestessign}{\char"10185}
+\newcommand{\greekartabesign}{\char"10186}
+\newcommand{\greekarourasign}{\char"10187}
+\newcommand{\greekgrammasign}{\char"10188}
+\newcommand{\greektryblionbasesign}{\char"10189}
+\newcommand{\greekzerosign}{\char"1018A}
+\newcommand{\greekonequartersign}{\char"1018B}
+\newcommand{\greeksinusoidsign}{\char"1018C}
+\newcommand{\greekindictionsign}{\char"1018D}
+\newcommand{\nomismasign}{\char"1018E}
+%
+% some math symbols
+\DeclareRobustCommand\nrightrightarrows{\mathrel{\char"E033}}
+\DeclareRobustCommand\nleftleftarrows{\mathrel{\char"E032}}
diff --git a/macros/luatex/latex/ekdosis/Makefile b/macros/luatex/latex/ekdosis/Makefile
index b57cb54116..550ae95d12 100644
--- a/macros/luatex/latex/ekdosis/Makefile
+++ b/macros/luatex/latex/ekdosis/Makefile
@@ -6,51 +6,43 @@ VERS = $(shell ltxfileinfo -v $(NAME).dtx|sed -e 's/^v//')
LOCAL = $(shell kpsewhich --var-value TEXMFLOCAL)
UTREE = $(shell kpsewhich --var-value TEXMFHOME)
HOMEDIR := $$HOME
+SAMPLES := samples
exts := md html ins dtx el
-texsamples := $(basename $(wildcard $(PWD)/samples/*.tex))
-texsamplesout := $(notdir $(basename $(wildcard $(PWD)/samples/*.tex)))
findopts := $(foreach ext,$(exts),-or -iname "*.$(ext)")
-define dosamples
- $(CMP) --output-dir=$(PWD)/TMP --shell-escape $1 >/dev/null
- $(CMP) --output-dir=$(PWD)/TMP --shell-escape $1 >/dev/null
- $(CMP) --output-dir=$(PWD)/TMP --shell-escape $1 >/dev/null
- $(CMP) --output-dir=$(PWD)/TMP --shell-escape $1 >/dev/null
-endef
-
all: sty $(NAME).pdf
+testsamples:
+ if [ ! -d $(SAMPLES) ] ; \
+ then echo "$(SAMPLES)/ directory is needed. Aborting." && exit 1 ; \
+ fi
+
sty: clean
$(CMP) $(NAME).ins >/dev/null
-$(NAME).pdf: $(NAME).dtx
- @ echo "Make the sample files first..."
- if [ ! -d $(PWD)/TMP ]; then mkdir $(PWD)/TMP; fi
- $(foreach file,$(texsamples), $(call dosamples, $(file)))
- mv TMP/*.pdf samples/
- mv $(texsamplesout)-tei.xml samples/
- @ echo "Build the documentation of $(NAME)..."
- $(CMP) --shell-escape -recorder -interaction=batchmode $(NAME).dtx >/dev/null
+$(NAME).pdf: testsamples $(NAME).dtx
+ @ echo "Making the sample files first..."
+ $(MAKE) --directory=$(SAMPLES)
+ @ echo "Building the documentation of $(NAME)..."
+ $(CMP) --shell-escape --recorder --interaction=batchmode $(NAME).dtx >/dev/null
biber $(NAME) >/dev/null
- if [ -f $(NAME).glo ]; then makeindex -q -s gglo.ist -o $(NAME).gls $(NAME).glo; fi
- if [ -f $(NAME).idx ]; then makeindex -q -s gind.ist -o $(NAME).ind $(NAME).idx; fi
$(CMP) --shell-escape --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
$(CMP) --shell-escape --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
$(CMP) --shell-escape --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
$(CMP) --shell-escape --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
+ if [ -f $(NAME).glo ]; then makeindex -q -s gglo.ist -o $(NAME).gls $(NAME).glo; fi
+ if [ -f $(NAME).idx ]; then makeindex -q -s gind.ist -o $(NAME).ind $(NAME).idx; fi
$(CMP) --shell-escape --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
samples: clean sty
- if [ ! -d $(PWD)/TMP ]; then mkdir $(PWD)/TMP; fi
- $(foreach file,$(texsamples), $(call dosamples, $(file)))
- mv TMP/*{\.pdf,-tei\.xml} samples/
+ $(MAKE) --directory=$(SAMPLES)
-clean:
+clean: testsamples
rm -rf auto
rm -f $(NAME).bib $(PWD)/TMP/*.bib
rm -rf .backup
- find -iname "*~" -or -iname "*.pdf" | xargs rm -rf
+ find -iname "*~" -or -iname "*.pdf" -or -iname "*_out*.tex" | xargs rm -rf
find ./* -type f -iname "Makefile" $(findopts) > ls-R
find ./* -type f -iname "*.tex" | grep '/samples/' >> ls-R
rsync -aPr --files-from=ls-R . .backup
@@ -92,7 +84,7 @@ zip: all
package: distclean all
mkdir $(NAME)/
- cp Makefile README.md $(NAME).{ins,dtx,pdf} $(NAME)/
+ cp Makefile README.md $(NAME).{ins,dtx,pdf,el} $(NAME)/
cp -r samples/ $(NAME)/
mkdir -p tex/lualatex/$(NAME)/
cp *.lua *.sty tex/lualatex/$(NAME)/
@@ -106,4 +98,5 @@ package: distclean all
tar czf $(NAME)-$(VERS).tar.gz $(NAME).tds.zip $(NAME)/
rm -rf $(NAME)/
-.PHONY: all clean distclean inst local uninst install uninstall zip package samples
+.SILENT: testsamples
+.PHONY: all clean distclean inst local uninst install uninstall zip package samples testsamples
diff --git a/macros/luatex/latex/ekdosis/README.md b/macros/luatex/latex/ekdosis/README.md
index 4baa1e9727..8b54b9dc96 100644
--- a/macros/luatex/latex/ekdosis/README.md
+++ b/macros/luatex/latex/ekdosis/README.md
@@ -19,16 +19,6 @@ readings, translations or annotated borrowings between texts. It is
published under the terms of the GNU General Public License (GPL)
version 3.
-Notice to the Gentle Reader
-===========================
-The current state of this documentation covers the basics of
-`ekdosis`, namely what should be enough to start a new document and
-see how it works. v1.0 with a full documentation should be out by the
-end of July. Until then, there is a web page that can be accessed,
-<http://www.robertalessi.net/ekdosis>, with a mailing list that one can
-subscribe to and a section entitled “Literature” where one will find
-some slides and a paper submitted to a journal.
-
License and Disclamer
=====================
ekdosis – Typesetting TEI xml Compliant Critical Editions
@@ -45,6 +35,8 @@ Alessi:
- comments, feature requests, bug reports:
<https://gitlab.com/ralessi/ekdosis/issues>
+- mailing list, support: <http://www.robertalessi.net/mailman/listinfo/ekdosis> [[mailing list archives](http://www.robertalessi.net/pipermail/ekdosis/)]
+
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
@@ -58,7 +50,7 @@ Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
-This release of icite consists of the following source files:
+This release of ekdosis consists of the following source files:
- `ekdosis.dtx`
@@ -98,7 +90,7 @@ Development, Git Repository
Browse the Code
---------------
-You can browse icite repository on the web:
+You can browse ekdosis repository on the web:
<http://git.robertalessi.net/ekdosis>
From this page, you can download all the releases of `ekdosis`. For
@@ -119,7 +111,7 @@ Use this command to download the repository
git clone http://git.robertalessi.net/ekdosis
-A new directory named icite will have been created, containing
+A new directory named ekdosis will have been created, containing
`ekdosis`.
Git Hosting
diff --git a/macros/luatex/latex/ekdosis/ekdosis.dtx b/macros/luatex/latex/ekdosis/ekdosis.dtx
index f2700aa972..5eb4844caa 100644
--- a/macros/luatex/latex/ekdosis/ekdosis.dtx
+++ b/macros/luatex/latex/ekdosis/ekdosis.dtx
@@ -61,9 +61,33 @@ along with this program. If not, see
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{ekdosis}
%<*package>
- [2020/07/08 v0.99a Typesetting TEI xml compliant critical editions]
+ [2020/08/14 v1.0 Typesetting TEI xml compliant critical editions]
%</package>
%<*driver>
+\begin{filecontents}[noheader,overwrite]{bibdata.xml}
+<?xml version="1.0" encoding="UTF-8"?>
+<listBibl xmlns="http://www.tei-c.org/ns/1.0">
+ <biblStruct type="book" xml:id="ReynoldsWilson1991">
+ <monogr>
+ <title level="m">Scribes and Scholars</title>
+ <author>
+ <forename>L. D.</forename>
+ <surname>Reynolds</surname>
+ </author>
+ <author>
+ <forename>N. G.</forename>
+ <surname>Wilson</surname>
+ </author>
+ <edition>3</edition>
+ <imprint>
+ <pubPlace>Oxford</pubPlace>
+ <publisher>Clarendon Press</publisher>
+ <date>1991</date>
+ </imprint>
+ </monogr>
+ </biblStruct>
+</listBibl>
+\end{filecontents}
\begin{filecontents}[overwrite]{\jobname.bib}
@Article{Alessi2020,
author = {Alessi, Robert},
@@ -104,6 +128,17 @@ along with this program. If not, see
publisher = {Harper \& Brothers},
location = {New York}}
+@Book{ReynoldsWilson1991,
+ author = {Reynolds, L. D. and Wilson, N. G},
+ title = {Scribes and Scholars},
+ year = {1991},
+ subtitle = {A Guide to the Translation of Greek and Latin
+ Literature},
+ edition = {3},
+ publisher = {Clarendon Press},
+ location = {Oxford}
+}
+
@Online{DLL-TC,
author = {{Digital Latin Library}},
title = {Textual Criticism},
@@ -121,16 +156,89 @@ along with this program. If not, see
{https://classicalstudies.org/scs-blog/donald-j-mastronarde/review-guidelines-encoding-critical-editions-library-digital-latin},
organization = {Society for Classical Studies}
}
+
+@Online{TBE,
+ author = {Van den Branden, Ron and Terras, Melissa and
+ Vanhoutte, Edward},
+ title = {TEI by Example},
+ urldate = {2020-08-04},
+ url = {http://www.teibyexample.org}
+}
+
+@Software{lineno,
+ title = {The Lineno package},
+ titleaddon = {Line numbers on paragraphs},
+ author = {Lück, Uwe and Böttcher, Stephan},
+ url = {http://www.ctan.org/pkg/lineno},
+ date = {2005-11-02},
+ version = {4.41}
+}
+
+@Software{polyglossia,
+ title = {The Polyglossia package},
+ titleaddon = {An alternative to babel for XeLaTeX and LuaLaTeX},
+ author = {Charette, François and Reutenauer, Arthur},
+ url = {http://www.ctan.org/pkg/polyglossia},
+ date = {2020-04-08},
+ version = {1.49}
+}
+
+@Software{babel,
+ title = {The Babel package},
+ titleaddon = {Multilingual support for Plain TeX or LaTeX},
+ author = {Bezos López, Javier and Braams, Johannes L.},
+ url = {http://www.ctan.org/pkg/babel},
+ date = {2020-07-13},
+ version = {3.47}
+}
+
+@Software{arabluatex,
+ title = {The Arabluatex package},
+ titleaddon = {ArabTeX for LuaLaTeX},
+ author = {Alessi, Robert},
+ url = {http://ctan.org/pkg/arabluatex},
+ date = {2020-03-23},
+ version = {1.20}
+}
+
+@Software{icite,
+ title = {The Icite package},
+ subtitle = {Indices locorum citatorum},
+ author = {Alessi, Robert},
+ url = {http://ctan.org/pkg/icite},
+ date = {2020-03-05},
+ version = {1.3a}
+}
+
+@Software{arabtex,
+ title = {The Arabtex package},
+ titleaddon = {Macros and fonts for typesetting Arabic},
+ author = {Lagally, Klaus},
+ url =
+ {http://baobab.informatik.uni-stuttgart.de/ifi/bs/research/arab_e.html},
+ date = {2004-03-11},
+ version = {4.00}
+}
\end{filecontents}
\begin{filecontents}[overwrite]{\jobname-cfg.tex}
\footnotelayout{m}
+\DeclareApparatus{fontium}[
+ delim=\hskip0.75em,
+ bhook=\textbf{Sources:},
+ ehook=.]
\DeclareApparatus{default}[
delim=\hskip0.75em,
ehook=.]
+\DeclareApparatus{ltr}[
+ delim=\hskip0.75em]
+\DeclareApparatus{rtl}[
+ direction=RL,
+ sep={[ },
+ delim=\hskip0.75em]
\DeclareWitness{M}{M}{\emph{Marcianus Gr.} 269}[
settlement=Venice,
institution=Marciana Library,
- msName=\emph{Marcianus Gr.},
+ msName=Marcianus Gr.,
idno=269,
origDate=s. X]
\DeclareHand{M1}{M}{M\textsuperscript{1}}[Emendatio scribae ipsius]
@@ -140,7 +248,7 @@ along with this program. If not, see
\DeclareWitness{pjB}{B}{Manuscript B Call No 456}
% Caesar's Gallic War:
\DeclareWitness{cA}{A}{\emph{Bongarsianus} 81}[
- msName=\emph{Bongarsianus},
+ msName=Bongarsianus,
settlement=Amsterdam,
idno=81,
institution=University Library,
@@ -169,6 +277,21 @@ along with this program. If not, see
origDate={s. XI--XII}]
\DeclareShorthand{ca}{α}{cA,cM,cB,cR,cS,cL,cN}
\DeclareShorthand{cb}{β}{cT,cf,cU,cl}
+% Hippocrates Epidemics, Book 2:
+\DeclareWitness{hV}{V}{\emph{Vaticanus Gr.} 276}
+\DeclareWitness{hI}{I}{\emph{Parisinus Gr.} 2140}
+\DeclareWitness{hR}{R}{\emph{Vaticanus Gr.} 277}
+\DeclareWitness{hH}{H}{\emph{Parisinus Gr.} 2142}
+% Silius Italicus' Punica, IX, 30--2:
+\DeclareWitness{sL}{L}{Laurentianus, plut, XXXVII, cod. 16}[
+ origDate=s. XV]
+\DeclareWitness{sF}{F}{Florentianus, Bibl. Aed. Fl. Eccl. CXCVI}[
+ origDate=s. XV]
+\DeclareWitness{sO}{O}{Oxoniensis Collegii Reginensis CCCXIV}[
+ origDate=s. XV]
+\DeclareWitness{sV}{V}{Vaticanus lat. 1652}[
+ origDate=s. XV]
+\DeclareScholar{sDrak}{\emph{Drakenborch}}
\end{filecontents}
\documentclass{ltxdoc}
%\usepackage[letterpaper,margin=25mm,left=50mm,nohead]{geometry}
@@ -199,6 +322,8 @@ along with this program. If not, see
\usepackage{arabluatex}
\usepackage[parnotes=roman,teiexport=tidy]{ekdosis}
\input{ekdosis-cfg}
+\SetxmlBibResource{bibdata}
+\usepackage{booktabs}
\usepackage{xltabular}
\usepackage[prevent-all]{widows-and-orphans}
\usepackage[shortcuts,nospacearound]{extdash}
@@ -246,6 +371,8 @@ along with this program. If not, see
\labelformat{figure}{fig.~#1}
\newcounter{dummy}
\newcommand{\dummy}{\refstepcounter{dummy}}
+\usepackage[defaultindex=none,citecmd=autocite]{icite}
+\bibinput{ekdosis}
\usepackage[nospace,american]{varioref}
\usepackage[style=oxnotes-inote,dashed]{biblatex}
\DeclareSourcemap{
@@ -262,7 +389,7 @@ along with this program. If not, see
\def\oasymbol{\faUnlock}
\usepackage{biblatex-ext-oa}
}
-{\usepackage[symbolpackage=l3draw]{biblatex-ext-oa}}
+{\usepackage[symbolpackage=tikz]{biblatex-ext-oa}}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcomma\space}
\DeclareDelimFormat[bib,biblist]{innametitledelim}{\addcomma\space}
\renewcommand*\newunitpunct{\addcomma\space}
@@ -371,7 +498,7 @@ along with this program. If not, see
\newminted[ekdlua]{lua}{bgcolor={}, linenos, fontsize=\relsize{-0.5},
xleftmargin=12pt, breaklines, numberblanklines=false, numbersep=3pt,
firstnumber=last}
-\renewcommand{\theFancyVerbLine}{\rmfamily\smaller\arabic{FancyVerbLine}}
+\renewcommand{\theFancyVerbLine}{\normalfont\smaller\arabic{FancyVerbLine}}
\usepackage[contents]{colordoc}
\newcommand{\pkg}[1]{\textsf{#1}\index{#1=#1 (package)}}
\newcommand{\env}[1]{\texttt{#1}\index{#1=#1 (environment)}}
@@ -418,7 +545,7 @@ along with this program. If not, see
%</driver>
% \fi
%
-% \CheckSum{1522}
+% \CheckSum{1669}
%
% \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
@@ -455,18 +582,6 @@ along with this program. If not, see
% \metapick[print]{titletext}
% \end{tcolorbox}
%
-% \begin{tcolorbox}[title=Notice to the Gentle Reader]
-% The current state of this documentation covers the basics of
-% \pkg{ekdosis}, namely what should be enough to start a new
-% document and see how it works. v1.0 with a full documentation
-% should be out by the end of July. Until then, there is a web page
-% that can be accessed,\footnote{%
-% \url{http://www.robertalessi.net/ekdosis}} with a mailing list
-% that one can subscribe to and a section entitled
-% \enquote{Literature} where one will find some slides and a paper
-% submitted to a journal.
-% \end{tcolorbox}
-%
% \tableofcontents
% \listoflistings
%
@@ -625,11 +740,11 @@ along with this program. If not, see
% not as compact paragraphs that require special and painful training
% to be \enquote*{decoded}. On the other hand, what editions in print
% do not provide are what \citename{Mastronarde.Tarrant2017}{author}
-% have called \enquote{actionable texts for use in digital
-% research},\footcite{Mastronarde.Tarrant2017} namely database-driven
-% texts allowing the reader to select annotations and display or
-% arrange translations, parallel passages or borrowings in a variety
-% of ways.
+% have called \enquote{actionable texts for use in digital research},%
+% {\interfootnotelinepenalty=10000\footcite{Mastronarde.Tarrant2017}}
+% namely database-driven texts allowing the reader to select
+% annotations and display or arrange translations, parallel passages
+% or borrowings in a variety of ways.
%
% \pkg{ekdosis} can be seen as an attempt at combining the two
% approaches.
@@ -650,17 +765,18 @@ along with this program. If not, see
% synchronized or not. \pkg{ekdosis} is also suitable for complex
% layouts as in the case of Arabic poetry or images where three-way
% alignment is required, or diagrams, \emph{\&c}.
-% \item \emph{Apparatus criticus\/}: Edited texts can receive multiple
-% layers of apparatus, e.g.\ apparatus criticus (to record variant
-% readings), apparatus fontium (to collect references to texts quoted
-% or cited in the edited text), apparatus testium (to collect
-% testimonia or parallel passages), or any kind of short notes to be
-% printed on the same page as the edited text, \emph{\&c}.
-% \item \texttt{TEI xml} output: \pkg{ekdosis} can be instructed
-% to output both PDF and \texttt{TEI xml} files at the same time.
+% \item \label{it:multilayer-feature}\emph{Apparatus criticus\/}:
+% Edited texts can receive multiple layers of apparatus, e.g.\
+% apparatus criticus (to record variant readings), apparatus fontium
+% (to collect references to texts quoted or cited in the edited
+% text), apparatus testium (to collect testimonia or parallel
+% passages), or any kind of short notes to be printed on the same
+% page as the edited text, \emph{\&c}.
+% \item \texttt{TEI xml} output: \pkg{ekdosis} can be instructed to
+% output both PDF and \texttt{TEI xml} files at the same time.
% \item \emph{Database-driven encoding} under \LaTeX{} of texts
-% entered segment by segment allows for alignment of parallel texts
-% from multilingual corpora.
+% entered segment by segment allows for alignment of parallel texts
+% from multilingual corpora.
% \end{enumerate}
%
% Before going into detail, the following simple example will give the
@@ -686,9 +802,10 @@ along with this program. If not, see
%</example>
% \fi
%
-% \needspace{4\baselineskip}PDF output:---
+% \needspace{5\baselineskip}
+% PDF output:---
% \medskip
-% \begin{alignment}[tcols=1,texts=specimen,apparatus=specimen]
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
% \begin{specimen}
% I
% \app{
@@ -790,7 +907,8 @@ along with this program. If not, see
% traditions. \pkg{ekdosis} provides a flexible mechanism in which
% format and presentation have been carefully separated from
% content. It is designed to build un-numbered \texttt{TEI} divisions
-% allowed to nest recursively. However, if |divs| be set to |latex|,
+% allowed to nest recursively.\footnote{See below,
+% \vref{sec:body-divisions}.} However, if |divs| be set to |latex|,
% \LaTeX{} standard textual divisions can be used and will be
% translated into \texttt{TEI} numbered |<div>| elements.
%
@@ -838,7 +956,7 @@ along with this program. If not, see
%</example>
% \fi
%
-% \subsection{Witnesses, Hands, Shorthands \& Scholars }
+% \subsection{Witnesses, Hands, Shorthands \& Scholars}
% \label{sec:declarations}
% Any reference that is to be used in the apparatus criticus must be
% \enquote{declared} in the preamble beforehand, namely: manuscript
@@ -846,16 +964,11 @@ along with this program. If not, see
% or later hands, \emph{\&c.}) or abbreviated last names of scholars.
% To that effect, \pkg{ekdosis} provides the following preamble-only
% commands:---
-% \begin{comment}
-% \begin{xltabular}[c]{0.4\linewidth}{lXr}
-% \caption*{\textbf{Conspectus Siglorum}}\\
-% \SigLine{M}\\
-% \end{xltabular}
-% \end{comment}
%
% \paragraph{Witnesses}
% \DescribeMacro{\DeclareWitness} \cs{DeclareWitness}\marg{unique
-% id}\marg{rendition}\marg{description}\oarg{options}\\
+% id}\marg{rendition}\marg{description}\oarg{options}
+% \label{ref:declarewitness}\\
% This command requires three mandatory arguments enclosed between
% curly braces used to specify consecutively:
% \begin{enumerate}
@@ -892,6 +1005,7 @@ along with this program. If not, see
% \DescribeOption{origDate} |origDate|$=$\meta{date}: Any form of date
% used to identify the date of origin for the witness.
%
+% \label{ref:marcianus-b}
% To take here one example, a witness such as the \emph{Marcianus
% Graecus}~269, referred to as manuscript \enquote*{M} in the
% editions, which contains sixty treatises from Hippocrates, could be
@@ -902,7 +1016,7 @@ along with this program. If not, see
\DeclareWitness{M}{M}{\emph{Marcianus Gr.} 269}[
settlement=Venice,
institution=Marciana Library,
- msName=\emph{Marcianus Gr.},
+ msName=Marcianus Gr.,
idno=269,
origDate=s. X]
\end{minted}
@@ -996,6 +1110,7 @@ along with this program. If not, see
% \iffalse
%</example>
% \fi
+% \label{ref:marcianus-e}
%
% \paragraph{Shorthands}
% \DescribeMacro{\DeclareShorthand} \cs{DeclareShorthand}\marg{unique
@@ -1033,6 +1148,7 @@ along with this program. If not, see
% place of manuscripts that belong to either family.
%
% \paragraph{Scholars}
+% \label{ref:declare-scholar}
% \DescribeMacro{\DeclareScholar} \cs{DeclareScholar}\marg{unique
% label}\marg{rendition}\\
% The \emph{Conspectus Siglorum} that is placed ahead of the edition
@@ -1049,10 +1165,13 @@ along with this program. If not, see
% \end{enumerate}
%
% As \pkg{ekdosis} can include and use \texttt{TEI xml} compliant
-% lists of references, it is avisable to use Bib\hologo{(La)TeX}
-% labels in the first argument of \cs{DeclareScholar}. Likewise,
-% shorthands fields from the bibliographical database can be recalled
-% from within the second argument of \cs{DeclareScholar}:---
+% lists of references,\footnote{See below
+% \vref{sec:references-cited-works}.} it is avisable to use
+% Bib\hologo{(La)TeX} labels in the first argument of
+% \cs{DeclareScholar}. Likewise, shorthands fields from the
+% bibliographical database can be recalled from within the second
+% argument of \cs{DeclareScholar}:---
+%
% \iffalse
%<*example>
% \fi
@@ -1065,7 +1184,76 @@ along with this program. If not, see
%</example>
% \fi
% \label{sec:declarations-end}
-%
+%
+% \subsubsection{Printing Formatted Witnesses
+% --- Conspectus Siglorum}
+% \label{sec:print-witnesses}
+% Once witnesses, hands and scholars have been declared, \pkg{ekdosis}
+% provides two commands to have them printed as declared from their
+% indentifiers.
+%
+% \DescribeMacro{\getsiglum} \cs{getsiglum}\marg{csv list of witnesses
+% or single witness} behaves exactly as the |wit| optional argument of
+% \cs{lem} and \cs{rdg} described below on pages~\pageref{ref:lem-wit}
+% and \pageref{ref:rdg-wit}. From a single identifier or from a
+% comma-separated list of identifiers, it returns their formatted
+% counterparts. To return to the example provided
+% \vpagerefrange{ref:marcianus-b}{ref:marcianus-e}, |\getsiglum{M}|
+% would return \getsiglum{M}, while |\getsiglum{M1}| would return
+% \getsiglum{M1}.
+%
+% \DescribeMacro{\SigLine} \cs{SigLine}\marg{unique id} returns from
+% \meta{unique id} used in the first argument of
+% \cs{DeclareWitness}\footnote{See above
+% \vpageref{ref:declarewitness}.} a line ready to be inserted in a
+% table set to print a Conspectus Siglorum with the following items of
+% information separated by the symbol |&|: the siglum referring to the
+% witness, the contents of the |description| field and the contents of
+% the |origDate| field. An example of how one could print the
+% Conspectus Siglorum of the manuscripts of Caesar's \emph{Gallic War}
+% from the list provided \vpageref{ref:caesar-bg-sigla} follows:---
+%
+% \captof{Conspectus Siglorum of Caesar's \emph{Gallic War}}
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\begin{xltabular}[c]{0.75\linewidth}{lXl}
+ \caption*{\textbf{Conspectus siglorum}}\\
+ \multicolumn{3}{c}{\emph{Familia} \getsiglum{a}}\\
+ \SigLine{A}\\
+ & \getsiglum{A1} \emph{Emendationes scribae ipsius} & \\
+ \SigLine{M}\\
+ [...]
+ \SigLine{N}\\
+ \multicolumn{3}{c}{\emph{Familia} \getsiglum{b}}\\
+ \SigLine{T}\\
+ [...]
+ \SigLine{l}\\
+\end{xltabular}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \begin{xltabular}[c]{0.75\linewidth}{lXl}
+% \caption*{\textbf{Conspectus siglorum}}\\
+% \multicolumn{3}{c}{\emph{Familia} \getsiglum{ca}}\\
+% \SigLine{cA}\\
+% & \getsiglum{cA1} \emph{Emendationes scribae ipsius} & \\
+% \SigLine{cM}\\
+% \SigLine{cB}\\
+% \SigLine{cR}\\
+% \SigLine{cS}\\
+% \SigLine{cL}\\
+% \SigLine{cN}\\
+% \multicolumn{3}{c}{\emph{Familia} \getsiglum{cb}}\\
+% \SigLine{cT}\\
+% \SigLine{cf}\\
+% \SigLine{cU}\\
+% \SigLine{cl}\\
+% \end{xltabular}
+%
% \subsection{Editing a Single Text With No Translation}
% \label{sec:single-text-editing}
% \DescribeEnv{ekdosis}
@@ -1086,7 +1274,7 @@ along with this program. If not, see
%
% \paragraph{Apparatus Entries}
% \DescribeMacro{\app} \cs{app}|[type=|\meta{type}|]|\marg{apparatus
-% entries}\\
+% entries}\label{ref:app-cmd}\\
% This command takes one mandatory argument and accepts one optional
% argument. Once references to be used as witnesses in the apparatus
% criticus have been declared in the preamble as described in
@@ -1111,9 +1299,10 @@ yesterday.
%</example>
% \fi
% \cs{app} accepts one further optional argument:---\\
-% \DescribeOption{type} |type|$=$\meta{type}\hfill%
-% \tcboxverb{Default: default}\\
-% By default, \pkg{ekdosis} sets one layer of notes\--- the |default|
+% \DescribeOption{type} |type|$=$\meta{type}\label{ref:app-type}
+% \hfill\tcboxverb{Default: default}\\
+% As will be described below in \vref{sec:multilayer-apparatus},
+% \pkg{ekdosis} initially sets one layer of notes\--- the |default|
% layer\---in the apparatus criticus. This layer is fit to receive
% notes related to variant readings from witnesses and sources used by
% the editor to establish the edition text. Additional layers can be
@@ -1121,11 +1310,12 @@ yesterday.
% quoted or cited in the text of the edition (\emph{apparatus
% fontium}), references to testimonia, or quotations of the edited
% text by other authors (\emph{apparatus testium}), explanatory notes,
-% and so forth.\footnote{See below, \vref{ref:type-app}.} Once
+% and so forth.\footnote{See below, \vref{ref:type-note}.} Once
% additional layers have been defined and assigned to new
% \enquote*{types}, such as \enquote*{testium} and the like, these
% types can be used as values appended to the |type| \enquote*{named
-% option}.
+% option}. For more information about inserting notes in
+% multiple-layer apparatus, see \vref{sec:notes-in-multilayer-app}.
%
% \paragraph{Base text and variants} As can be seen in the example
% above, there are two kinds of individual readings: the \emph{lemma},
@@ -1143,7 +1333,8 @@ yesterday.
% entry. \label{ref:lem-opts-b}The optional argument of \cs{lem}
% accepts the following
% comma-separated list of \enquote{name$=$value} arguments:---\\
-% \DescribeOption{wit} |wit|$=$\meta{csv list of witnesses}\\
+% \DescribeOption{wit} |wit|$=$\meta{csv list of
+% witnesses}\label{ref:lem-wit}\\
% While a single witness may be recorded as in |wit=A|,
% comma-separated lists of multiple witnesses must obviously be
% enclosed in curly braces, like so:
@@ -1180,6 +1371,7 @@ yesterday.
% convenient typology. Categories such as lexical, morphological,
% orthographical and the like may apply.
%
+% \needspace{11\baselineskip}
% Finally, four named arguments can be used to insert words at the
% following specific places in the lemma text:\\
% \noindent
@@ -1210,7 +1402,8 @@ yesterday.
% differences. The reader is invited to refer to the description
% provided above \vpagerefrange{ref:lem-opts-b}{ref:lem-opts-e} for
% more detailed information:---\\
-% \DescribeOption{wit} |wit|$=$\meta{csv list of witnesses}\\
+% \DescribeOption{wit} |wit|$=$\meta{csv list of
+% witnesses}\label{ref:rdg-wit}\\
% \DescribeOption{alt} |alt|$=$\meta{alternate reading}\\
% \DescribeOption{nordg} |nordg|$=$\verb+true|false+\\
% This named argument does not need a value as it defaults to |true|
@@ -1225,7 +1418,7 @@ yesterday.
% \paragraph{Notes}
% \DescribeMacro{\note}\DescribeMacro{\note*}
% \cs{note}\oarg{options}\marg{text} or
-% \cs{note*}\oarg{options}\marg{text}\\
+% \cs{note*}\oarg{options}\marg{text}\label{ref:editorial-notes}\\
% It may happen that editorial notes be needed to record short
% comments of general nature \emph{between} lemmata and
% readings. \cs{note} inserts inline comments while \cs{note*} places
@@ -1242,12 +1435,16 @@ yesterday.
% \DescribeOption{post} |post|$=$\meta{words}\\
% |post| inserts \meta{words} immediately after the note.\\
%
-% \danger Under no circumstances is it permitted to insert the command
-% \cs{note} or \cs{note*} inside the argument of \cs{lem} or
+% \danger Under no circumstances is it permitted to insert this
+% command \cs{note} or \cs{note*} inside the argument of \cs{lem} or
% \cs{rdg}. \cs{note}/\cs{note*} must go \emph{between} these
-% commands. As a general rule, within \cs{app}|{}| elements, notes
-% are inserted immediately \emph{after} the lemma or the variant
-% reading they are related to.
+% commands. As a general rule, within \cs{app}|{}| elements, notes are
+% inserted immediately \emph{after} the lemma or the variant reading
+% they are related to. However, as will be described below in
+% \vref{ref:type-note}, the command \cs{note}\---with no star
+% appended\---that is used to insert explanatory notes or references
+% to sources or testimonia is permitted within the mandatory argument
+% of \cs{lem}|{}|, although it is subject to a very strict syntax.
%
% \Vref{lst:pj2} provides an illustration of some of the possibilities
% afforded by the commands just described:---
@@ -1289,7 +1486,7 @@ yesterday.
%</example>
% \fi
% \resetlinenumber
-% \begin{alignment}[tcols=1,texts=specimen,apparatus=specimen]
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
% \begin{specimen}
% I \app{\lem[wit=pjA]{saw}\rdg[wit=pjB]{met}} my friend
% \app{
@@ -1317,7 +1514,7 @@ yesterday.
%
% \begin{remarks}
% \item Close examination of lines~17--8 from \vref{lst:pj2} shows how
-% |alt| has been used to insert an abbridged lemma text in the
+% |alt| has been used to insert an abridged lemma text in the
% apparatus criticus in print while keeping safe what is to be found
% in the \texttt{TEI xml} output.
% \item The same technique has been used at line~24 to insert
@@ -1347,7 +1544,7 @@ yesterday.
<app>
<lem>Peter</lem>
<rdg>John</rdg>
-</app>at the station yesterday. We were both in a
+</app>at the station yesterday. We were both in a
<app>
<lem wit="#A">great</lem>
<rdg wit="#B">good</rdg>
@@ -1423,13 +1620,14 @@ yesterday.
%</example>
% \fi
%
-% \DescribeEnv{edition*}\DescribeEnv{translation*} Furthermore,
-% so-called \enquote{starred} versions of these environments can be
-% used at any point to synchronize texts, that is to print them in
-% such a way that the tops of all paragraphs are vertically
-% aligned. To that effect, it must be noted that merely applying this
-% command on a single environment\---for instance the leftmost
-% one\---will have all other associated paragraphs printed aligned.
+% \DescribeEnv{edition*}\DescribeEnv{translation*}
+% \label{ref:starred-envs} Furthermore, so-called \enquote{starred}
+% versions of these environments can be used at any point to
+% synchronize texts, that is to print them in such a way that the tops
+% of all paragraphs are vertically aligned. To that effect, it must be
+% noted that merely applying this command on a single
+% environment\---for instance the leftmost one\---will have all other
+% associated paragraphs printed aligned.
%
% \danger While the whole edition text and the whole translation can
% be inserted in a single \env{edition}/\env{translation} environment
@@ -1489,8 +1687,8 @@ yesterday.
% \fi
%
% \resetlinenumber
-% \ekdfmtdiv{2}{}{.}
-% \begin{alignment}[lcols=2,
+% \FormatDiv{2}{}{.}
+% \begin{alignment}[flush,lcols=2,
% texts=edition[xml:lang="la"];
% translation[xml:lang="en"]]
% \AtBeginEnvironment{edition}{\selectlanguage{latin}}
@@ -1584,7 +1782,8 @@ yesterday.
% \subsection{Alignment of Several Texts}
% \label{sec:multiple-alignment}
% As described above \vpageref{ref:alignment-syntax}, the
-% \env{alignment} environment may receive an optional argument in which
+% \env{alignment} environment may receive an optional argument in
+% which
% the following \enquote{name$=$value} arguments are accepted:---\\
% \DescribeOption{tcols}
% |tcols|$=$\meta{number}\hfill\tcboxverb{Default: 2}\\
@@ -1606,8 +1805,11 @@ yesterday.
% Depending on the total number of columns that has been specified
% with |tcols| above, |texts| is then used to define the names of the
% environments that shall receive edition texts, translations,
-% \emph{\&c.} Some very important points need to be emphasized in this
-% respect:---
+% \emph{\&c.} Furthermore, as described \vpageref{ref:starred-envs},
+% \pkg{ekdosis} also defines \enquote{starred} versions of these
+% environments to be used to synchronize columns so that corresponding
+% paragraphs are printed vertically aligned. Some very important
+% points need to be emphasized in this respect:---
% \begin{enumerate}
% \item Only unaccented letters of the alphabet (whatever the case)
% are allowed to compose the names of \LaTeX{} environments.
@@ -1684,11 +1886,11 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \DescribeOption{flush} |flush|$=$\verb+true|false+
% \hfill\tcboxverb{Default: false}\\
% This named argument does not need a value as it defaults to |true|
-% if it is used. This option applies on rare occasions only, when two
-% or more distinct \env{alignment} environments are started on the same
-% page. Should this happen, any subsequent \env{alignment} environment
-% must be set with the |flush| option so that every one of them
-% carry its own apparatus criticus.
+% if it is used. This option applies when two or more distinct
+% \env{alignment} environments are started on the same page. Should
+% this happen, any subsequent \env{alignment} environment must be set
+% with the |flush| option so that every one of them carry its own
+% apparatus criticus.
%
% As an example, the alignment of the Latin edition text of Caesar's
% \emph{Gallic War}, printed on left-hand pages, along with two
@@ -1723,17 +1925,17 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
%</example>
% \fi
%
-% \DescribeMacro{\SetEkdosisAlignment}
-% \cs{SetEkdosisAlignment}\marg{alignment settings}\\
+% \DescribeMacro{\SetAlignment}
+% \cs{SetAlignment}\marg{alignment settings}\\
% If the same alignment settings are to be shared by several
% \env{alignment} environments, common settings can be collected in
-% the argument of \cs{SetEkdosisEnvironment}, like
+% the argument of \cs{SetAlignment}, like
% so:---\\
% \iffalse
%<*example>
% \fi
\begin{minted}[linenos=false]{latex}
-\SetEkdosisAlignment{
+\SetAlignment{
tcols=3,
lcols=1,
texts=latin[xml:lang="la"];
@@ -1750,24 +1952,2368 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
%</example>
% \fi
%
-% \cs{SetEkdosisAlignment} can be used either in the preamble or at
+% \cs{SetAlignment} can be used either in the preamble or at
% any point of the document to set or to modify alignment settings.
%
-% \section{To Be Continued...}
-% v1.0 of \pkg{ekdosis}, which should be available by the end of July
-% 2020, will include a full documentation. At the time of writing, the
-% author is working on this part of the package.
+% \subsubsection{Appending Hooks to Environments}
+% \label{sec:alignment-hooks}
+% \DescribeMacro{\AtBeginEnvironment} Once environments corresponding
+% to texts to be aligned have been defined, it is advisable to use the
+% \cs{AtBeginEnvironment}\marg{environment}\marg{code} command that is
+% provided by the \pkg{etoolbox} package\footnote{This package is
+% loaded by \pkg{ekdosis}.} to further adjust languages, hyphenation
+% rules, and/or fonts to be applied in each environment. To return to
+% the example provided above, once \cs{SetAlignment} has been
+% used, the languages can be set as follows:---
%
-% \begin{comment}
-% \section{Multiple-Layer Apparatus Criticus}
-% \end{comment}
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\AtBeginEnvironment{latin}{\selectlanguage{latin}}
+\AtBeginEnvironment{english}{\selectlanguage{english}}
+\AtBeginEnvironment{french}{\selectlanguage{french}}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \section{Laying Out the Apparatus Criticus }
+% \label{sec:apparatus-layout}
+%
+% \subsection{General Hooks}
+% \label{sec:general-hooks}
+% Some hooks are shared by all layers of notes that are inserted in
+% the apparatus criticus (e.g. sources, testimonia, variant readings
+% \emph{\&c.})
+%
+% \DescribeMacro{\SetHooks}
+% \cs{SetHooks}\marg{csv list of hooks} can be used either in
+% the preamble or at any point of the document. The list of accepted
+% hooks at the time of writing follows:---\\
+% \DescribeOption{appfontsize} |appfontsize|$=$\meta{command}
+% \hfill\tcboxverb{Default: \footnotesize}\\
+% This option sets the size of the font to be used in the whole
+% apparatus criticus. By default, it is the same as the size used for
+% footnotes.\\
+% \DescribeOption{refnumstyle} |refnumstyle|$=$\meta{command}
+% \hfill\tcboxverb{Default: \bfseries}\\
+% |refnumstyle| can be used to set the family, series or shape of the
+% font used to print references to line numbers in the apparatus
+% criticus. By default, numbers are printed in bold face. As an
+% example, |refnumstyle=\normalfont| will have them printed in the
+% font and shape selected by default for the
+% document, while |refnumstyle=\bfseries\itshape| will have them
+% printed in bold and italic.\\
+% \DescribeOption{postrefnum} |postrefnum|$=$\meta{command \textbar\
+% chars}\hfill\tcboxverb{Default: ~}\\
+% |postrefnum| can be used to set what immediately follows the
+% reference to line numbers. By default, it is |~|, namely an
+% unbreakable space. As an example, |postrefnum=\hskip 0.5em| will
+% insert a \unit[0.5]{em} space between the numerals and the beginning
+% of all subsequent notes.
+%
+% \subsection{Single-Layer Apparatus Criticus}
+% \label{sec:single-layer-app}
+% \paragraph{Specific Commands}
+% Single-layer apparatus criticus can be laid out in a variety of
+% ways with the following specialized commands, all of which can be
+% used in the preamble or at any point of the document:---
+%
+% \DescribeMacro{\SetLTRapp}
+% \DescribeMacro{\SetRTLapp}
+% \cs{SetLTRapp} and \cs{SetRTLapp} are two argument-less commands to
+% set the direction of the apparatus criticus, either left-to-right or
+% right-to-left.
+%
+% \DescribeMacro{\SetSeparator} \cs{SetSeparator}\marg{separator} is
+% used to change the separator between lemma texts and variants
+% readings. By default, the separator is a closing square bracket
+% followed by a space (\verb*+] +).
+%
+% \DescribeMacro{\SetBeginApparatus}
+% \cs{SetBeginApparatus}\marg{characters\textbar commands} can be used
+% to append \meta{characters} or \meta{commands} at the beginning of
+% the apparatus block. By default, nothing is appended. For instance,
+% |\SetBeginApparatus{\textbf{Apparatus:}}| will append
+% \enquote{\textbf{Apparatus:}} at the beginning of the apparatus
+% block, while |\SetBeginApparatus{\hskip 1em}| will set an
+% indentation of one em.
+%
+% \DescribeMacro{\SetEndApparatus}
+% \cs{SetEndApparatus}\marg{characters} can be used to append
+% \meta{characters} at the end of the apparatus block. By default,
+% nothing is appended. As an example of use, |\SetEndApparatus{.}|
+% will have a period printed at the end of the apparatus as it is
+% customary in some editions.
+%
+% \DescribeMacro{\SetUnitDelimiter}
+% \cs{SetUnitDelimiter}\marg{delimiter} can be used to set the
+% delimiter between entries in the apparatus criticus. By default,
+% there is no delimiter except a simple space. \meta{delimiter} can be
+% a broad space (such as |\hskip 0.75em| for instance as in the OCT
+% series) or the divider-sign (‖, as in the Budé series).
+%
+% \DescribeMacro{\SetDefaultRule}
+% By default, \pkg{ekdosis} draws a separating line between the
+% edition text and the apparatus criticus. This line is initially
+% defined as
+% |\rule{0.4\columnwidth}{0.4pt}|. \cs{SetDefaultRule}\marg{line
+% definition} can be used in the preamble or at any point of the
+% document to change the default setting. Leaving this argument empty
+% as in \cs{SetDefaultRule}|{}| removes the line.
+%
+% \paragraph{General Command}
+% \DescribeMacro{\SetApparatus} \cs{SetApparatus}\marg{csv list of
+% apparatus settings}\label{ref:apparatus-settings-b}\\
+% Finally, all the settings described above can also be collected in
+% the argument of \cs{SetApparatus}. \cs{SetApparatus} accepts the
+% following list of comma-separated |key=value| options:---\\
+% \DescribeOption{direction} |direction|$=$\verb+LR|RL+
+% \hfill\tcboxverb{Default: LR}\\
+% The writing direction of the apparatus criticus, either
+% left-to-right (|LR|) or right-to-left (|LR|).\\
+% \DescribeOption{sep} |sep|$=$\meta{command \textbar\ chars}
+% \hfill\tcboxverb{Default: ]␣}\\
+% The separator between lemma texts and variant readings.\\
+% \DescribeOption{delim} |delim|$=$\meta{delimiter}
+% \hfill\tcboxverb{Default: not set}\\
+% The delimiter between entries in the apparatus criticus. As said
+% above, there is no default delimiter except a simple space.\\
+% \DescribeOption{bhook} |bhook|$=$\meta{characters\textbar commands}
+% \hfill\tcboxverb{Default: empty}\\
+% The characters or commands to be appended at the beginning of the
+% apparatus block.\\
+% \DescribeOption{ehook} |ehook|$=$\meta{characters}
+% \hfill\tcboxverb{Default: empty}\\
+% The characters to be appended at the end of the apparatus block.\\
+% \DescribeOption{rule} |rule|$=$\meta{command}\verb+|+|none|
+% \hfill\tcboxverb{Default: \rule{0.4\columnwidth}{0.4pt}}\\
+% As described above, |rule| is used to draw the separating line
+% between the edition text and the apparatus criticus. |rule=none| can
+% also be used to remove the line.\\
+% \DescribeOption{norule}\hfill\tcboxverb{Default: not set}\\
+% |norule| does not accept any value and has the same effect as
+% |rule=none|.\label{ref:apparatus-settings-e}
+%
+% As an example, an apparatus criticus with references to line numbers
+% printed in normal font, a colon as a separator between lemma texts
+% and variant readings, a broad space as a delimiter between entries
+% and a \unit[0.7]{in} line above could be laid out as follows:---
+%
+% \label{ex:single-layer-app-layout}
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\SetHooks{
+ refnumstyle=\normalfont
+}
+\SetApparatus{
+ sep={: },
+ delim=\hskip 1em,
+ rule=\rule{0.7in}{0.4pt}
+}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \paragraph{Footnote Separator}
+% \DescribeMacro{\footnoteruletrue} \DescribeMacro{\footnoterulefalse}
+% As already seen above, \pkg{ekdosis} takes care of drawing a
+% separating line between the edition text and the apparatus
+% criticus. Therefore, it may be not desirable to have the standard
+% \LaTeX\ \enquote{footnoterule} printed on every page where regular
+% footnotes are found. \cs{footnoterulefalse} removes it while
+% \cs{footnoteruletrue} leaves it untouched. The latter is set by
+% default.
+%
+% \subsection{Multiple-Layer Apparatus Criticus}
% \label{sec:multilayer-apparatus}
+% As said above in \vref{it:multilayer-feature}, \pkg{ekdosis} can
+% print edition texts equipped with multiple-layer apparatus
+% criticus. To take an example, most classical editions provide at
+% least two layers of notes: one to collect references to testimonia
+% or parallel passages (apparatus testium) and the other to record
+% variant readings (the apparatus criticus \emph{stricto sensu}). The
+% former is always printed above the latter.
+%
+% \danger The default single-layer apparatus criticus that is
+% described above in \vref{sec:single-layer-app} is called |default|
+% internally. If any additional layer of notes be declared in the
+% preamble, this |default| layer must be included in the list of
+% declared layers.\\
+% \DescribeMacro{\SetDefaultApparatus}\label{ref:ekd-default-app}
+% \cs{SetDefaultApparatus}\marg{name} can be used at any point of
+% the document to change the default name that is used by
+% \pkg{ekdosis}.
+%
+% \subsubsection{Declaring Additional Layers}
+% \label{sec:declaring-layers}
+% \DescribeMacro{\DeclareApparatus}
+% \cs{DeclareApparatus}\marg{name}\oarg{csv list of apparatus
+% settings} is a preamble-only command. As a mandatory argument, it
+% takes the name of the new layer of notes to be inserted in the
+% apparatus block. Declared layers are then printed one below the
+% other in the exact same order as they are declared in the
+% preamble. Therefore, one additional layer meant to print the
+% testimonia above the variant readings (apparatus testium) can be
+% declared as follows:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+% preamble:
+\DeclareApparatus{testium}
+\DeclareApparatus{default}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% In this example, |testium| is a new name for |default|, as said
+% just above, is already known to \pkg{ekdosis} and used as the
+% default layer of notes. Furthermore, as |testium| is declared before
+% |default|, \pkg{ekdosis} will print the testimonia at the top of the
+% apparatus block.
+%
+% \subsubsection{Laying Out Layers With The Optional Argument
+% of \cs{DeclareApparatus}}
+% \label{sec:layout-layers}
+% \DescribeOption{direction}
+% \DescribeOption{sep}
+% \DescribeOption{delim}
+% \DescribeOption{bhook}
+% \DescribeOption{ehook}
+% \DescribeOption{rule}
+% \DescribeOption{norule}
+% With regard to layout, any declared layer inherits the defaut values
+% described above in \vref{sec:single-layer-app}. That said, as the
+% optional argument of \cs{DeclareApparatus} accepts the exact same
+% |key-value| options as \cs{SetApparatus} described
+% \vpagerefrange{ref:apparatus-settings-b}{ref:apparatus-settings-e},
+% \pkg{ekdosis} provides a straightforward mechanism to have any layer
+% printed in a distinct layout.
+%
+% To return to the example provided
+% \vpageref[above]{ex:single-layer-app-layout}, one could keep the
+% same settings as above for the variant readings, declare an
+% apparatus testium with a closing square bracket as a separator and
+% finally remove the line between the testimonia and the variant
+% readings like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\SetHooks{
+ refnumstyle=\normalfont
+}
+\DeclareApparatus{testium}[
+ sep={] },
+ delim=\hskip 1em,
+ rule=\rule{0.7in}{0.4pt}
+]
+\DeclareApparatus{default}[
+ sep={: },
+ delim=\hskip 1em,
+ norule
+]
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \paragraph{Limiting the Number of Entries per Page}
+% \label{ref:maxentries}
+% In some instances, it can be useful to set a limit to the number of
+% entries per page that a given layer of critical notes may accept,
+% notably when entries are so abundant in number that \pkg{ekdosis}
+% may oscillate indefinitely between different sets of page decisions
+% without being able to settle down.\\
+% \DescribeOption{maxentries} |maxentries|=\meta{n} (where $n \geq
+% 10$) \hfill\tcboxverb{Default: not set}\\
+% If |maxentries|$=$\meta{n} be set, then \pkg{ekdosis} will issue
+% \cs{pagebreak} (namely \cs{penalty}|-10000|) just after the
+% \emph{n\textsuperscript{th}} entry has been inserted in the layer of
+% the apparatus criticus this option is related to. As a result, the
+% page will actually break at the end of the current line. The
+% particulars of this technique will be discussed below in
+% \vref{sec:tricks-of-trade}.
+%
+% \section{Inserting Notes in Multiple-Layer Apparatus}
+% \label{sec:notes-in-multilayer-app}
+% As said above in \vref{sec:multilayer-apparatus}, \pkg{ekdosis}
+% initially sets one layer of notes that is called the
+% \textooquote|default|\textcoquote\ layer. As a result, any note
+% inserted within the argument of \cs{app}|{}| as described
+% \vpageref{ref:app-cmd} will go into that layer of the apparatus,
+% unless \cs{SetDefaultApparatus} has been used to set another
+% name for the default layer (see above
+% \vpageref{ref:ekd-default-app}).
+%
+% \subsection{Variant Readings}
+% \label{sec:variant-readings}
+% In most cases, all variant readings go into the
+% \textooquote|default|\textcoquote\ layer of the apparatus
+% criticus. But in some other cases, for example when the manuscripts
+% used refer to different recensions, it may happen that one wishes to
+% record the related variants in separate layers. As already described
+% \vpageref{ref:app-type}, the |type| optional argument of the
+% \cs{app} command can be used to insert lemma texts and associated
+% variants in any other \enquote*{declared} layer of the apparatus
+% criticus.
+%
+% The following example assumes that some edition text is received in
+% two different recensions and the variant readings that belong to the
+% first recension are recorded in the default layer of notes while
+% those of the second recension are to be printed in a second layer,
+% below the default one. First, both layers must be declared in the
+% preamble in sequence, like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\DeclareApparatus{default} % default layer
+\DeclareApparatus{rec2} % additional layer below the default one
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% If one wishes to refer to |rec1| as the default layer, then
+% \cs{SetDefaultApparatus} must be used, like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\SetDefaultApparatus{rec1}
+\DeclareApparatus{rec1} % new layer set as default
+\DeclareApparatus{rec2} % additional layer below the default one
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% Then, whatever option has been chosen, lemma texts and variants
+% inserted with \cs{app}|{}| will go into the upper, default layer of
+% notes, while those inserted with \cs{app}|[type=rec2]{}| will go
+% into the lower one:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+Some \app{
+ \lem{word}
+ \rdg{reading}
+} to go into the default layer of notes.
+
+Some \app[type=rec2]{
+ \lem{note}
+ \rdg{comment}
+} to be recorded as part of the second recension.
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% At any rate, |type=default| or |type=rec1|, depending on what has
+% been chosen, must be used if the editor wishes to retain that
+% information in the \texttt{TEI xml} output file.
+%
+% \subsection{Other Notes for Comments, Sources or Testimonia}
+% \label{ref:type-note}
+% Additional layers of notes can be used to print short comments or to
+% record references to texts quoted by the author of the edited text
+% or references to the edited text by other authors or
+% translators. The former set is called an \emph{apparatus fontium}
+% while the latter is called an \emph{apparatus testium}.
+%
+% \danger From a technical standpoint, these notes are very different
+% from the short editorial notes inserted between lemma texts and
+% variant readings that have been described above
+% \vpageref{ref:editorial-notes}. However, for the sake of consistency
+% with \texttt{TEI xml} encoding, \pkg{ekdosis} uses the same command
+% \cs{note} to insert both kinds of notes.
+%
+% \danger One must also keep in mind that the notes that are described
+% in this section refer either to a single word or to a span of
+% text. By consequence, as boundaries must always be set outside spans
+% of text, notes must be inserted immediately before the word or words
+% they are related to. As a result of this rule, all spaces subsequent
+% to \cs{note} are ignored.
+%
+% \DescribeMacro{\note} \cs{note}\oarg{options}\marg{text}\\
+% As said above, \cs{note}, when found outside \cs{app}|{}|, is used
+% to insert in additional layers of the apparatus short comments or
+% references to texts quoted or cited in the edition text. It accepts
+% the following comma-separated list of |key-value| optional
+% arguments:---\\
+% \DescribeOption{type} |type|$=$\meta{type}\\
+% |type| is used to specify the name of the layer where the note is to
+% be printed.\footnote{See \vref{sec:declaring-layers} to learn how to
+% declare and lay out new layers of notes.}\\
+% \DescribeOption{sep} |sep|$=$\meta{command \textbar\ chars}\\
+% The separator between the lemma text and the contents of the note.\\
+% \DescribeOption{nosep} |nosep|$=$\verb+true|false+\\
+% This named argument does not need a value as it defaults to |true|
+% if it is used. Obviously, |nosep| removes the separator mentioned
+% above.\\
+% \DescribeOption{lem} |lem|$=$\meta{lemma text}\\
+% |lem| is the span of text the note is about. It may consist of one
+% or more words, or of an abridged lemma text.\\
+% \DescribeOption{labelb} |labelb|$=$\meta{label}
+% \hfill\tcboxverb{Mandatory}\\
+% |labelb| is the unique label to serve as a reference for the point
+% immediately preceding the lemma text. \danger |labelb| is used by
+% \pkg{ekdosis} to print the line numbers in the apparatus criticus
+% and to set the |left()| XPointer should \texttt{TEI} output be
+% required. Therefore, it must be specified. Otherwise, \pkg{ekdosis}
+% will issue an error message.\\
+% \DescribeOption{labele} |labele|$=$\meta{label}\\
+% |labele| is the unique label to serve as a reference for the point
+% immediately following the lemma text. Contrary to |labelb|, |labele|
+% may be left unspecified if the note is only about one word. If it is
+% about a span, then |labele| ought to be specified.\\
+% \DescribeMacro{\linelabel} \cs{linelabel}\marg{label}\\
+% If |labele|$=$\meta{some\_label} be specified in the optional
+% argument of \cs{note}, \cs{linelabel}\marg{some\allowbreak\_label}
+% must be inserted immediately after the span of text that the note is
+% about so that \pkg{ekdosis} can locate the exact point where the
+% lemma text addressed by the note ends, like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Preamble:
+% \DeclareApparatus{fontium}[
+% delim=\hskip0.75em,
+% bhook=\textbf{Sources:},
+% ehook=.]
+% \DeclareApparatus{default}[
+% delim=\hskip0.75em,
+% ehook=.]
+% Document:
+\begin{ekdosis}
+ The oldest monument of the Germans is their language, which, before
+ untold centuries, was the companion of their travels from central
+ Asia; a language, copious, elastic, inviting self-explaining
+ combinations and independent development; lending itself alike to
+ daily life and imagination, to description and abstract thought.
+ \note[type=fontium, labelb=61e, labele=62a, lem={They
+ had... slave}]{Waitz, \emph{Deutsche Verfassungs Geschichte},
+ i. 86} They had a class of nobles, but their tongue knew no word
+ for slave.\linelabel{62a}\footnote{George Bancroft, \emph{History of
+ the United States from the Discovery of the American Continent},
+ II.61--2.}
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \needspace{5\baselineskip}
+% PDF output:---
+% \medskip
+% \resetlinenumber
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \begin{specimen}
+% The oldest monument of the Germans is their language, which,
+% before untold centuries, was the companion of their travels from
+% central Asia; a language, copious, elastic, inviting
+% self-explaining combinations and independent development;
+% lending itself alike to daily life and imagination, to
+% description and abstract thought. \note[type=fontium,
+% labelb=61e, labele=62a, lem={They had... slave}]{Waitz,
+% \emph{Deutsche Verfassungs Geschichte}, i. 86} They had a class
+% of nobles, but their tongue knew no word for
+% slave.\linelabel{62a}\footnote{George Bancroft, \emph{History of
+% the United States from the Discovery of the American Continent},
+% II.61--2.}
+% \end{specimen}
+% \end{alignment}
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<p>The oldest monument of the Germans is their language,
+which, before untold centuries, was the companion of their
+travels from central Asia; a language, copious, elastic,
+inviting self-explaining combinations and independent
+development; lending itself alike to daily life and
+imagination, to description and abstract thought.
+<note type="fontium" target="#range(right(61e),left(62a))">Waitz,
+<emph>Deutsche Verfassungs Geschichte</emph>, i. 86</note>
+<anchor xml:id="61e" />They had a class of nobles, but
+their tongue knew no word for slave.
+<anchor xml:id="#62a" />
+<note place="bottom">George Bancroft,
+<emph>History of the United States from the Discovery of
+the American Continent</emph>, II.61--2.</note></p>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
%
-% \label{ref:type-app}
+% \paragraph{\cs{note} or \cs{linelabel} inside \cs{lem}}
+% It may happen that \cs{note} or \cs{linelabel} commands be found
+% inside the argument of \cs{lem}. Obviously, inserting such commands
+% in the apparatus criticus in print makes no sense and will lead to
+% an error. The solution is to insert in the value of the |alt|
+% optional argument of \cs{lem} a duplicate of the lemma text devoid
+% of those commands, like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+This is some \app{
+ \lem[alt=dummy]{\note[type=fontium, labelb=bnote, labele=enote,
+ lem=dummy... command]{Text of the note}
+ dummy}
+ \rdg{pseudo}}
+text to demonstrate how to insert a note in the argument of the
+\emph{lem} command.\linelabel{enote}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \needspace{5\baselineskip}
+% PDF output:---
+% \medskip
+% \resetlinenumber
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \begin{specimen}
+% This is some \app{
+% \lem[alt=dummy]{\note[type=fontium, labelb=bnote, labele=enote,
+% lem=dummy... command]{Text of the note}
+% dummy}
+% \rdg{pseudo}}
+% text to demonstrate how to insert a note in the argument of the
+% \emph{lem} command.\linelabel{enote}
+% \end{specimen}
+% \end{alignment}
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{xml}
+<p>This is some
+<app>
+ <lem>
+ <anchor xml:id="bnote" />dummy</lem>
+ <note type="fontium"
+ target="#range(right(bnote),left(enote))">Text of the
+ note</note>
+ <rdg>pseudo</rdg>
+</app>text to demonstrate how to insert a note in the
+argument of the
+<emph>lem</emph>command.
+<anchor xml:id="#enote" /></p>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% As can be seen from the \texttt{TEI xml} output above, the span of
+% text the note is about has been carefully delimited by two anchors
+% (ll.~4 and 12), the first of which falls within |<lem>| (l.~4), but
+% \pkg{ekdosis} has taken care of moving the note itself out of this
+% element (ll.~5--7). Otherwise, the \texttt{TEI} output would not be
+% valid.
+%
+% \section{Lineation Settings}
+% \label{sec:lineation}
+% \danger \pkg{ekdosis} uses \pkg{lineno} internally for line
+% numbering.\footcite{lineno} But it must be noted that \pkg{ekdosis}
+% strictly prohibits the \enquote{pagewise} mode of operation that is
+% provided by \pkg{lineno}. As a result of this hinderance, all
+% \enquote{margin switching} functions of \pkg{lineno} are disabled
+% within the environments that are specific to \pkg{ekdosis},
+% viz. \env{ekdosis} and \env{alignment}.
+%
+% That said, \pkg{ekdosis} provides equivalents of its own to handle
+% the line numbers the same way as \pkg{lineno}'s \enquote{pagewise}
+% mode of operation does.
+%
+% \DescribeMacro{\SetLineation} \cs{SetLineation}\marg{csv list of
+% options} may be used in the preamble or at any point of the document
+% to set lineation preferences. Its argument processes the |key=value|
+% options that follow:---\\
+% \DescribeOption{lineation} |lineation|$=$\verb+page|document+
+% \hfill\tcboxverb{Default: document}\\
+% |lineation=document| has the lines numbered continuously throughout
+% the document while |lineation=page| instructs \pkg{ekdosis} that the
+% numbering should start afresh at the top of each page.\\
+% \DescribeOption{modulo} |modulo| \hfill\tcboxverb{Default: not set}\\
+% |modulo| does not accept any value. When this option is set, every
+% fifth line is numbered.\\
+% \DescribeOption{modulonum} |modulonum|$=$\emph{n} (where \emph{n} is
+% an integer)\hfill\tcboxverb{Default: not set}\\
+% |modulonum| allows to modify the interval between the numbers that
+% are printed. |modulo| must be set for this option to have effect. As
+% examples, |modulo, modulonum=3| has every third line numbered and
+% |modulonum=1| disables modulo numbering.\\
+% \DescribeOption{margin} |margin|$=$\verb+right|left|inner|outer+
+% \hfill\tcboxverb{Default: left}\\
+% |margin| sets the margin in which the line numbers are to be
+% printed.\\
+% \DescribeOption{numbers} |numbers|$=$\verb+elided|full+
+% \hfill\tcboxverb{Default: elided}\\
+% This option only has effect on the numbers that are printed in the
+% apparatus criticus. |numbers=elided| applies on spans of numbers and
+% elides the last number of a range to the fewest number of figures
+% possible\---viz. 35--7, 129--31 \emph{\&c.}\---without eliding
+% digits in the group 10 to 19 in each hundred\---viz. 17--19, 115--18
+% \emph{\&c.} |numbers=full| leaves the numbers untouched.
+%
+% \DescribeMacro{\innerlinenumbers} \DescribeMacro{\outerlinenumbers}
+% \cs{innerlinenumbers} and \cs{outerlinenumbers} are equivalent to
+% \cs{SetLineation}|{numb|\allowbreak|ers=outer}| and
+% \cs{SetLineation}|{numbers=inner}| respectively. Both commands are
+% complementary to \cs{rightlinenumbers} and \cs{leftlinenumbers}
+% already provided by the \pkg{lineno} package.
+%
+% \paragraph{Useful Lineation Commands}
+% As implied above, pretty much all commands that are provided by the
+% \enquote{running} mode of operation of the \pkg{lineno} package will
+% work with \pkg{ekdosis}, notably the following:---\\
+% \DescribeMacro{\modulolinenumbers} \cs{modulolinenumbers}\oarg{n}
+% can be used to enable modulo line numbering as described above.\\
+% \DescribeMacro{\resetlinenumber} \cs{resetlinenumber}\oarg{n} resets
+% the line number to one or to \emph{n} if specified.\\
+% \DescribeMacro{\linenumberfont}
+% \cs{renewcommand}|{\linenumberfont}|\marg{commands} can be used to
+% set the font used for the line numbers that are printed in the
+% margins. By default, the definition is
+% \cs{normalfont}\cs{footnotesize}.\\
+% \DescribeMacro{\linenumbersep} \cs{linenumbersep} is the distance
+% between the numbers and the margin. By default, this distance is set
+% to \unit[10]{pt}. It can be redefined like so:
+% \cs{setlength}\cs{linenumbersep}\marg{length}.\\
+% \DescribeMacro{\linelabel} \DescribeMacro{\lineref}
+% \cs{linelabel}\marg{label} sets a line label that can be referred to
+% with \cs{lineref}\marg{label}.
+%
+% The reader is invited to refer to the documentation of the
+% \pkg{lineno} package for more information.
+%
+% As an example, what follows has every fifth line number printed in
+% the inner margins. Additionally, the numbering shall start afresh at
+% the top of each page:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\SetLineation{
+ lineation=page,
+ modulo,
+ margin=inner
+}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \section{Languages}
+% \label{sec:languages}
+% \danger \pkg{ekdosis} is fully compatible with \pkg{babel}.
+% \enquote{Fully compatible} means that all features provided by
+% \pkg{babel}, including language switching commands, are supported by
+% \pkg{ekdosis}. \pkg{ekdosis} is also compatible with
+% \pkg{polyglossia} with one notable exception: \pkg{luabidi}, which
+% \pkg{polyglossia} loads for languages written from right to left, is
+% not supported by \pkg{ekdosis}, and most probably never will
+% be. That said, as far as the author could see, single-layer
+% apparatus, as described in \vref{sec:single-layer-app}, can be
+% typeset within the Arabic environment that is provided by
+% \pkg{polyglossia}. Unfortunately, the same cannot be said for
+% multi-layer apparatus.
+%
+% Whether \pkg{babel} or \pkg{polyglossia} is used, \pkg{ekdosis}
+% automatically applies the current language to the entries of the
+% apparatus criticus, including the fonts that may have been
+% associated to the languages in the preamble. In this respect, as
+% \pkg{polyglossia} can use the same language switching commands as
+% \pkg{babel},\footcite[See][3.2 \pno~14]{polyglossia} the general
+% advice given above in \vref{sec:alignment-hooks} applies in all
+% cases.
+%
+% \subsection{Languages Written From Right to Left}
+% \label{sec:rtl-languages}
+% As said above, \pkg{polyglossia} is not supported by \pkg{ekdosis}
+% for languages that are written and read from right to left, like
+% Arabic, Hebrew or Syriac. However, as \pkg{babel} is supported and
+% can be loaded concurrently with \pkg{polyglossia}, an easy way is to
+% use \pkg{babel} to print such languages.
+%
+% \danger The reader is invited to refer to and become acquainted with
+% the relevant parts of the documentation of the \pkg{babel}
+% package.\footcite{babel}
+%
+% \paragraph{\pkg{babel} Only}
+% In the following example, \pkg{babel} is used exclusively to set
+% three different languages: Arabic, ancient Greek and English:---
+%
+% \captof{Multilingual editions with \pkg{babel} only}
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+\usepackage{fontspec}
+
+\usepackage[greek.ancient,english]{babel}
+\babelprovide[onchar=fonts]{arabic}
+
+\babelfont{rm}{Old Standard}
+\babelfont[greek]{rm}[RawFeature={+ss05;+ss06}]{Old Standard}
+\babelfont[*arabic]{rm}{Amiri}
+
+\babeltags{ancientgreek = greek}
+\newcommand{\sg}[1]{\textancientgreek{#1}}
+
+\newcommand{\RL}[1]{\bgroup\textdir TRT#1\egroup}
+\newenvironment{Arabic}{\par\pardir TRT\textdir TRT}{\par}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \begin{remarks}
+% \item As can be seen, \pkg{fontspec} has been loaded before
+% \pkg{babel}. To the author's knowledge, this gives better results
+% when \cs{babelfont} is used.
+% \item Line~3 loads \pkg{babel} and instructs it to use English as
+% the default language and ancient Greek as a second optional
+% language. The built-in |bidi| mechanism provided by \pkg{babel} is
+% not enabled. As a result, specific language switching commands for
+% Arabic must be defined just as it must be for every other
+% language.
+% \item Line~4 does not load any Arabic, but instructs \pkg{babel}
+% that it should use the Arabic font that is set below with
+% \cs{babelfont} whenever an Arabic letter is encountered.
+% \item Lines~6--8 select the fonts: |Old Standard| is the default
+% font to be used for Roman shape (l.~6); the same font is used for
+% Greek, with some additional Open Type features enabled; finally,
+% the |Amiri| font is used for Arabic.
+% \item Lines~10--11 define so-called \enquote{tags} for easier access
+% to ancient Greek through \cs{begin}|{ancient|\allowbreak|greek}|
+% \dots\ \cs{end}|{ancientgreek}| for running paragraphs and
+% \cs{textancientgreek}\marg{text} for short insertions of Greek in
+% English text. \cs{sg}\marg{text} is just a shorthand for this
+% latter command.
+% \item Finally, lines~13--14 define simple language switching
+% commands for Arabic. As can be seen, no commands other than the
+% \LuaTeX\ primitives \cs{pardir} and \cs{textdir} have been used
+% for \pkg{babel} already takes care of selecting the Arabic
+% font. \cs{RL} is for short insertions of Arabic words in English
+% paragraphs while \cs{begin}|{Arabic}| \dots\ \cs{end}|{Arabic}| is
+% for running paragraphs of Arabic text.
+% \end{remarks}
+%
+% \paragraph{Changing the Writing Direction}
+% \DescribeMacro{\setRL} \DescribeMacro{\setLR} \cs{setRL} and
+% \cs{setLR} are two argument-less commands provided by \pkg{ekdosis}
+% that can be used to change the writing direction of running
+% paragraphs. The former sets the direction from right to left and the
+% latter form left to right. If \pkg{babel} has been set as above,
+% \cs{setRL} \dots\ \cs{setLR} can be used in place of
+% \cs{begin}|{Arabic}| \dots\ \cs{end}|{Arabic}|.
+%
+% \paragraph{\pkg{polyglossia} Associated With \cs{babelprovide}}
+% What follows illustrates how \pkg{babel} can be used conjointly with
+% \pkg{polyglossia} for the same three languages as above without
+% having to load \pkg{luabidi}:---
+%
+% \captof{Multilingual editions with \pkg{babel} and
+% \pkg{polyglossia}}
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+\usepackage{fontspec}
+
+\usepackage{babel}
+\babelprovide[onchar=fonts]{arabic}
+
+\setmainfont{Old Standard}
+\newfontfamily\greekfont{Old Standard}[RawFeature={+ss05;+ss06}]
+\babelfont[*arabic]{rm}{Amiri}
+
+\usepackage{polyglossia}
+\setdefaultlanguage{english}
+\setotherlanguage[variant=ancient]{greek}
+
+\newcommand{\textarabic}[1]{\bgroup\textdir TRT#1\egroup}
+\newenvironment{Arabic}{\par\pardir TRT\textdir TRT}{\par}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \begin{remarks}
+% \item Line~3 just loads \pkg{babel} with no default language.
+% \item Lines~4 and 8 are used to have the Arabic font automatically
+% selected as above.
+% \item Lines~14--15 define the exact language switching commands that
+% would have been defined if \pkg{polyglossia} and \pkg{luabidi} had
+% been used for Arabic.
+% \end{remarks}
+%
+% As one can see, the important points about languages written from
+% right to left are to use \pkg{babel} only to select the Arabic
+% fonts, avoid using the bidirectional mechanism it provides and
+% define commands and environments that use only \LuaTeX\ primitives
+% to set the writing direction. Then, an Arabic edition text\---to
+% continue with this example\---can be entered as plainly as
+% follows:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false,escapeinside=++]{latex}
+\begin{ekdosis}
+ \begin{Arabic}
+ +\txarb{إِنَّ أَبِي كَانَ مِنَ}+ \app{
+ \lem{+\txarb{ٱلْمُقَاتِلَةِ}+}
+ \rdg{+\txarb{ٱلْمُقَاتِلِينَ}+}
+ } +\txarb{وَ كَانَتْ أُمِّي مِنْ عُظَمَآءِ بُيُوتِ ٱلزَّمَازِمَةِ۔}+
+ \end{Arabic}
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% It should be reminded that the writing direction of the apparatus
+% criticus itself is independent of that of the edition text and must
+% be set either with \cs{Set(LTR{\textbar}RTL)app} or with the
+% |direction| optional argument of \cs{SetApparatus} for single-layer
+% apparatus criticus, or by means of \cs{DeclareApparatus} for
+% multiple-layer apparatus criticus.\footnote{See above
+% \vref{sec:single-layer-app} (single-layer apparatus criticus) and
+% \vref{sec:multilayer-apparatus} (multiple-layer apparatus
+% criticus).}
+%
+% \needspace{5\baselineskip}
+% The PDF output with left-to-right apparatus criticus follows:---
+% \medskip
+% \resetlinenumber
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \begin{specimen}
+% \begin{arab}[fullvoc]
+% 'inna 'abI kAna mina \app[type=ltr]{
+% \lem{'l-muqAtilaTi}
+% \rdg{'l-muqAtilIna}}
+% wa-kAnat 'ummI min `u.zamA'i buyUti 'l-zamAzimaTi.
+% \end{arab}
+% \end{specimen}
+% \end{alignment}
+%
+% \needspace{5\baselineskip}
+% And here follows the PDF output with right-to-left apparatus
+% criticus:---
+% \medskip \resetlinenumber
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \begin{specimen}
+% \begin{arab}[fullvoc]
+% 'inna 'abI kAna mina \app[type=rtl]{
+% \lem{'l-muqAtilaTi}
+% \rdg{'l-muqAtilIna}}
+% wa-kAnat 'ummI min `u.zamA'i buyUti 'l-zamAzimaTi.
+% \end{arab}
+% \end{specimen}
+% \end{alignment}
+%
+% \subsection{Using \pkg{arabluatex}}
+% \label{sec:using-arabluatex}
+% \pkg{arabluatex} is a \hologo{LuaLaTeX} package that provides
+% commands and environments which return Arabic writing from an ASCII
+% transliteration (either Arab\TeX\ or Buckwalter
+% scheme).\footcite{arabluatex} It is particularly well-suited for
+% complex documents such as critical editions where a lot of commands
+% intertwine with Arabic writing. \pkg{arabluatex} can output Unicode
+% Arabic in the same modes as \pkg{arabtex}\footcite{arabtex} or in
+% different accepted standards of romanization. It is also able to
+% produce a duplicate of the original |.tex| source file in which all
+% |arabtex| or |buckwalter| strings are replaced with Unicode
+% equivalents, either in Arabic script or in any accepted standard of
+% transliteration.\footcite[\mkbibquote{Exporting Unicode Arabic
+% to an External File}]{arabluatex}
+%
+% \pkg{arabluatex} is fully supported by \pkg{ekdosis}. The following
+% example illustrates how \pkg{arabluatex} and \pkg{ekdosis} interact
+% with each other to produce distinct \texttt{TEI xml} outputs from a
+% single |.tex| source file:---
+%
+% \captof{\pkg{ekdosis} and \pkg{arabluatex}}[\label{lst:arabluatex-ekd}]
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+% Preamble:
+% load ekdosis and ask for TEI xml output:
+\usepackage[teiexport]{ekdosis}
+% load arabluatex and request a LaTeX ouput with Unicode Arabic:
+\usepackage[export,fullvoc]{arabluatex}
+
+% document:
+\begin{arabexport} % export arabtex strings to Unicode Arabic
+ \begin{ekdosis}
+ \begin{arab}
+ 'inna 'abI kAna mina
+ \app{
+ \lem{'l-muqAtilaTi}
+ \rdg{'l-muqAtilIna}
+ }
+ wa-kAnat 'ummI min `u.zamA'i buyUti 'l-zamAzimaTi.
+ \end{arab}
+ \end{ekdosis}
+\end{arabexport}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \needspace{7\baselineskip}
+% The PDF output with left-to-right apparatus criticus is of course
+% the same as above:---
+% \resetlinenumber
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \begin{specimen}
+% \begin{arab}[fullvoc]
+% 'inna 'abI kAna mina \app[type=ltr]{
+% \lem{'l-muqAtilaTi}
+% \rdg{'l-muqAtilIna}}
+% wa-kAnat 'ummI min `u.zamA'i buyUti 'l-zamAzimaTi.
+% \end{arab}
+% \end{specimen}
+% \end{alignment}
+%
+% However, assuming that the source file is called |source.tex|,
+% \pkg{ekdosis} produces as instructed from this file an additional
+% |source-tei.xml| as follows:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<p xml:lang="ar-Latn" type="transliterated"
+subtype="arabtex">'inna 'abI kAna mina
+<app>
+ <lem>'l-muqAtilaTi</lem>
+ <rdg>'l-muqAtilIna</rdg>
+</app>wa-kAnat 'ummI min `u.zamA'i buyUti
+'l-zamAzimaTi.</p>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% At the same time, \pkg{arabluatex} is instructed to produce on its
+% own from the same |source.tex| an additional |source_out.tex| in
+% which all |arabtex| strings found within \cs{begin}|{arabexport}|
+% \dots\ \cs{end}|{arabexport}| (see \vref{lst:arabluatex-ekd},
+% ll.~9--19) are replaced with full-vocalized Arabic Unicode
+% script. Finally, compiling this latter file produces the following
+% |sample-arabic_out-tei.xml| an extract of which follows:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false,escapeinside=++]{xml}
+<p xml:lang="arb">+\txarb{إِنَّ أَبِي كَانَ مِنَ}+
+<app>
+ <lem>+\txarb{ٱلْمُقَاتِلَةِ}+</lem>
+ <rdg>+\txarb{ٱلْمُقَاتِلِينَ}+</rdg>
+</app>+\txarb{وَكَانَتْ أُمِّي مِنْ عُظَمَآءِ بُيُوتِ}+
++\txarb{ٱلزَّمَازِمَةِ.}+</p>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% The reader will find the full |arabic-sample.tex| source file with
+% instructions in \vref{sec:arabic-sample}, and is invited to refer to
+% the documentation of the \pkg{arabluatex} package for more
+% information on the way to use its Arabic environments and built-in
+% functions dedicated to export |arabtex| ASCII strings to
+% Unicode.\footcite{arabluatex}
+%
+% \section{Divisions of the Body}
+% \label{sec:body-divisions}
+% The features that are described in this section call for one general
+% remark. \pkg{ekdosis} is designed to figure out where any \LaTeX\
+% command that is converted to a \texttt{TEI} opening element allowed
+% to nest recursively, such as |<div>|, |<lg>| and the like, is to be
+% closed, even though there is no explicit indication of the point
+% where the closure occurs. Thoroughly scanning \LaTeX\ source files
+% with \textsf{Lua} functions which involve complex string matching
+% and recursions was required, as \LaTeX\ \enquote*{open} commands
+% such as \cs{chapter} or \cs{section} only act as milestones,
+% contrary to \texttt{TEI} elements.
+%
+% \danger It must be noted that the two styles described hereinafter
+% are mutually exclusive. \texttt{TEI xml} forbids that both be
+% combined within a single |<body>| element.\footnote{See
+% \url{https://tei-c.org/release/doc/tei-p5-doc/en/html/DS.html\#DSDIV}.}
+% As a result, \pkg{ekdosis} will disregard whichever one is not
+% selected.
+% \vskip\baselineskip
+%
+% \subsection{\LaTeX\ Standard Divisions}
+% \label{sec:latex-divs}
+% \pkg{ekdosis} can use the \LaTeX\ standard textual divisions, such
+% as \cs{book}, \cs{chapter}, \cs{section} and the like.
+%
+% \danger However, to have these divisions properly translated into
+% \texttt{TEI} numbered |<div>| elements, the |divs| general option
+% must be set to |latex| explicitly\---viz. |divs=latex|\---as
+% described above \vpageref{ref:divs-opt}.
+%
+% \danger As the \env{alignment} environment that is provided by
+% \pkg{ekdosis} places all aligned texts within \texttt{TEI xml}
+% un-numbered |<div>| elements and \LaTeX\ textual divisions are
+% converted into numbered |<div|\textsubscript{\emph{n}}|>| elements,
+% inserting such divisions in texts to be aligned will result in an
+% invalid \texttt{TEI xml} output. Instead, un-numbered divisions
+% through \cs{ekddiv} must be used as described below in
+% \vref{sec:ekddiv}.
+%
+% Once |divs| has been set to |latex|, \pkg{ekdosis} converts
+% \cs{book}, \cs{part}, \cs{chapter}, \cs{section}, \cs{subsection}
+% and \cs{subsubsection} into corresponding \texttt{TEI}
+% \enquote*{numbered} |<div|\textsubscript{\emph{n}}|>| elements,
+% where $1\leq n\leq 6$.
+%
+% \paragraph{Adjusting the Levels of Textual Subdivisions}
+% \DescribeMacro{\MkBodyDivs}
+% \cs{MkBodyDivs}\marg{div1}\marg{div2}\marg{div3}\allowbreak\marg{div4}\marg{div5}\marg{div6}
+% takes six mandatory arguments. This command can be used in the
+% preamble or at any point of the document to make the number of the
+% first-level subdivision of the edition text, viz.\ |<div1>|, match
+% to any \LaTeX\ command other than \cs{book}. For example, if
+% \cs{section} be the highest-level sectional command used, then
+% \cs{MkBodyDivs}|{section}{subsection}{subsubsection}{}{}|\allowbreak|{}|
+% will have \cs{section}, \cs{subsection} and \cs{subsubsection}
+% converted into |<div1>|, |<div2>| and |<div3>| respectively.
+%
+% \paragraph{Inserting Variants in Headings}
+% Variant readings can be inserted in headings. In this case, the
+% optional argument of the \LaTeX\ sectional command must naturally be
+% used to prevent variants from going into headers, footers or the
+% table of contents, like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Preamble:
+\usepackage[teiexport=tidy, divs=latex]{ekdosis}
+\MkBodyDivs{chapter}{section}{}{}{}{}
+
+% Document:
+\chapter[Ἱπποκράτους ἐπιδημιῶν βιβλίον δεύτερον]{Ἱπποκράτους ἐπιδημιῶν
+ \app{
+ \lem[wit={I,R,H}]{βιβλίον δεύτερον}
+ \rdg[wit=V]{λόγος β’}}}
+
+\section{<Τμῆμα πρῶτον>}
+Ἄνθρακες θερινοὶ ἐν Κραννῶνι· [...]
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<div1 type="chapter">
+ <head>Ἱπποκράτους ἐπιδημιῶν
+ <app>
+ <lem wit="#I #R #H">βιβλίον δεύτερον</lem>
+ <rdg wit="#V">λόγος β’</rdg>
+ </app></head>
+ <div2 type="section">
+ <head>&lt;Τμῆμα πρῶτον&gt;</head>
+ <p>Ἄνθρακες θερινοὶ ἐν Κραννῶνι· [...]</p>
+ </div2>
+</div1>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \subsection{Using \texttt{TEI} Un-numbered Divisions}
+% \label{sec:ekddiv}
+% \danger As already described \vpageref{ref:divs-opt}, the
+% un-numbered style of division is the one that is set by default. It
+% is congruous to the general option |divs=ekdosis|.
+%
+% This style provides a flexible mechanism in which format and
+% presentation are separated from content. It is designed to meet the
+% requirements of classical and literary texts the divisions of which
+% may depend on many different received traditions.
+%
+% \DescribeMacro{\ekddiv} \cs{ekddiv}\marg{key-value arguments} is the
+% unique sectional command provided by \pkg{ekdosis}. This command
+% converts the divisions into un-numbered \texttt{TEI} |<div>|
+% elements allowed to nest recursively and takes one mandatory
+% argument in which the following |key-value| arguments are
+% accepted:---\\
+% \DescribeOption{type} |type|$=$\meta{name}
+% \hfill\tcboxverb{Default: none}\\
+% |type| corresponds to the \texttt{TEI} class |att.typed| and can be
+% used to classify the element in which it is found in any
+% way. Suitable values here can be |book|, |chapter|, |section| and
+% the like.\\
+% \DescribeOption{n} |n|$=$\meta{value} \hfill
+% \tcboxverb{Default: none}\\
+% |n| is meant to provide a number or any kind of label for the
+% division and does not have to be unique in the document.\\
+% \DescribeOption{head} |head|$=$\meta{name}
+% \hfill\tcboxverb{Default: none}\\
+% |head| holds the title of the division and may further contain
+% variant readings.\\
+% \DescribeOption{barehead} |barehead|$=$\meta{name}
+% \hfill\tcboxverb{Default: none}\\
+% |barehead| is supposed to be used to prevent unwanted commands from
+% going into such places as headers, footers and the table of
+% contents.\\
+% \DescribeOption{depth} |depth|$=$\meta{n} where $1\leq n\leq 9$
+% \hfill\tcboxverb{Default: 1}\\
+% As \texttt{TEI} un-numbered divisions are simply |<div>| elements
+% allowed to nest recursively to indicate their hierarchic depth and
+% \cs{ekddiv} is an \enquote*{open} \LaTeX\ command, |n| is needed to
+% indicate the depth of the division within the hierarchy, the largest
+% being |1| and the smallest being |9|.\\
+% \DescribeOption{toc}
+% |toc|$=$\verb+|book|part|chapter|section|subsection|subsubsection|paragraph+\\
+% |subparagraph|\hfill\tcboxverb{Default: not set}\\
+% If |toc| be set, the title of the division goes into the table of
+% contents at the hierarchic level that is specified as value.
+%
+% \paragraph{Formatting the Titles}
+% \DescribeMacro{\FormatDiv} By design, \pkg{ekdosis} does
+% not format the titles. Instead, depending on what is needed for the
+% edition text, \cs{FormatDiv}\marg{n}\marg{code
+% before}\marg{code after} is provided to lay out the titles of any
+% hierarchic depth of division. This command takes three mandatory
+% arguments as follows: \meta{n}, which is the number referring to the
+% particular depth of division to be formatted and some \LaTeX\
+% commands to go before and after the title itself. The following
+% example illustrates how the titles of the largest division can be
+% printed horizontally centered in a larger size:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\FormatDiv{1}{\begin{center}\Large}{\end{center}}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% To elaborate on the example provided above in \vref{sec:latex-divs},
+% here follows how the first three hierarchical levels could be
+% formatted as un-numbered divisions:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Preamble:
+\FormatDiv{1}{\begin{center}\Large}{\end{center}}
+\FormatDiv{2}{\begin{center}\large}{\end{center}}
+\FormatDiv{3}{\bfseries}{.}
+
+% Document:
+\begin{ekdosis}
+ \ekddiv{
+ head={Ἱπποκράτους ἐπιδημιῶν
+ \app{
+ \lem[wit={I,R,H}]{βιβλίον δεύτερον}
+ \rdg[wit=V]{λόγος β’}}},
+ type=book,
+ depth=1,
+ n=II
+ }
+
+ \ekddiv{
+ head={<Τμῆμα πρῶτον>},
+ type=section,
+ depth=2,
+ n=II.1
+ }
+
+ \ekddiv{head=1, type=paragraph, depth=3, n=II.1.1}
+ Ἄνθρακες θερινοὶ ἐν Κραννῶνι· [...]
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \needspace{5\baselineskip}
+% PDF output:---
+% \medskip
+%
+% \resetlinenumber
+% \FormatDiv{1}{\begin{center}\Large}{\end{center}}
+% \FormatDiv{2}{\begin{center}\large}{\end{center}}
+% \FormatDiv{3}{\bfseries}{.}
+% \begin{alignment}[flush,
+% tcols=1,
+% texts=hippocrates[xml:lang="grc"],
+% apparatus=hippocrates]
+% \AtBeginEnvironment{hippocrates}{\selectlanguage{greek}}
+% \begin{hippocrates}
+% \ekddiv{
+% head={Ἱπποκράτους ἐπιδημιῶν
+% \app{
+% \lem[wit={hI,hR,hH}]{βιβλίον δεύτερον}
+% \rdg[wit=hV]{λόγος β’}}},
+% type=book,
+% depth=1,
+% n=II}
+%
+% \ekddiv{head={<Τμῆμα πρῶτον>}, type=section, depth=2, n=II.1}
+%
+% \ekddiv{head=1, type=paragraph, depth=3, n=II.1.1} Ἄνθρακες
+% θερινοὶ ἐν Κραννῶνι· [...]
+% \end{hippocrates}
+% \end{alignment}
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<div xml:id="div-hippocrates_1" xml:lang="grc">
+ <div type="book" n="II">
+ <head>Ἱπποκράτους ἐπιδημιῶν
+ <app>
+ <lem wit="#I #R #H">βιβλίον δεύτερον</lem>
+ <rdg wit="#V">λόγος β’</rdg>
+ </app></head>
+ <div type="section" n="II.1">
+ <head>&lt;Τμῆμα πρῶτον&gt;</head>
+ <div type="paragraph" n="II.1.1">
+ <head>1</head>
+ <p>Ἄνθρακες θερινοὶ ἐν Κραννῶνι· [...]</p>
+ </div>
+ </div>
+ </div>
+</div>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \section{The Tricks of the Trade}
+% \label{sec:tricks-of-trade}
+% As the |.tex| source file is compiled, \pkg{ekdosis} has to compute
+% a tremendous amount of data. Most of this work is performed by
+% \textsf{Lua} functions. An edition text narrowed down to a single
+% page needs to be compiled at least three times. On the first run,
+% the apparatus criticus does not show. Instead, \pkg{ekdosis}
+% produces an auxiliary file named \cs{jobname}|.ekd| in which all the
+% entries of the apparatus criticus are collected. Then, on the second
+% run a test is performed on this auxliary file to determine whether
+% there are entries\---and if so, which ones\---to be printed on the
+% current page. At the same time, references to the line numbers are
+% updated if necessary. Then, on the third run, the apparatus criticus
+% is printed.
+%
+% Of course, every change made to the input may similarly require
+% \hologo{LuaLaTeX} to be run three more times to get everything to
+% the right place with the right numbers.
+%
+% In some instances, notably when on a given page entries are very
+% abundant in number, specifically when the edition text is getting
+% close to the bottom of the page, \pkg{ekdosis} may oscillate
+% indefinitely between different sets of page decisions without being
+% able to settle down. The condition may be typically illustrated as
+% follows: after Lua\LaTeX\ has been run, an entry is attached to the
+% last line of the page. As said above, this entry does not show
+% yet. But when it does, if it results in an additional line being
+% printed in the apparatus criticus, the last line of the edition
+% text\---the one the entry was previously attached to\---goes to the
+% next page. As a result, this entry also moves to the next page with
+% the line it belongs to. This point is literally critical, because
+% unless a \cs{pagebreak} is inserted just here so as to keep the
+% contentious line on the next page, \pkg{ekdosis} enters a vicious
+% circle from which it cannot escape, not to mention that right
+% entries with right line numbers cannot come on pages that follow a
+% wrong page either.
+%
+% An alert reader may have guessed that inserting a \cs{pagebreak} is
+% a good way to get out of the vicious circle. And surely, if only a
+% few pages are at stake, this is the way to go. However,
+% \cs{pagebreak} commands should only be inserted when the whole
+% edition text is ready for any subtantial change in the preceding
+% pages may result in pages that break just after they begin.
+%
+% Another way\---should the edition text fall into the vicious circle
+% too often\---is to limit the number of entries per page that a given
+% layer of apparatus criticus may accept as described above
+% \vpageref{ref:maxentries}. As a result, \pkg{ekdosis} will take care
+% of inserting automatic breakpoints between pages whenever the number
+% of entries on a given page reaches the value set as |maxnumber|.
+%
+% |maxnumber| must not be too small: otherwise offensive to look at
+% vertical spaces may come between the edition text and the apparatus
+% criticus. Conversely, |maxnumber| must not be too big: otherwise,
+% should entries overflow on a given page, the edition text and the
+% apparatus criticus may clash. As said above, a couple of clashes can
+% be managed with a couple of manually inserted page breaks. But if
+% there are too many ot them, it is a good indication that the
+% selected value of |maxentries| is too to high.
+%
+% Complex edition texts do have a magic number. An advisable way to
+% figure it out would be to start from a sample of only a few pages,
+% selected as evidence for the complexity of the whole. As only a few
+% pages would need to be compiled, the magic number should emerge
+% quite rapidly.
+%
+% \section{\texttt{TEI xml} Output}
+% \label{sec:teixml-output}
+% Several examples of \texttt{TEI xml} output have been provided
+% hitherto. Before proceeding, the reader is invited to return to
+% every one of them. In this respect, it may be of interest to review
+% carefully the excerpt of Caesar's \emph{Gallic War} of which the
+% \LaTeX\ source file and its corresponding \texttt{TEI xml} output
+% are printed in full below in \vref{sec:caesar-gw-6-1-13}. Once
+% \pkg{ekdosis} has been instructed to convert the edition text into
+% \texttt{TEI xml} (l.~11), the preamble of this file shows how to set
+% languages and fonts to be used in the document (ll.~2--6), format
+% the titles (l.~16) and lay out the alignment of an edition text
+% associated with two translations (ll.~18--25) in modern
+% languages. Furthermore, it shows how information related to each
+% language (Latin, English and French) is to be found in two different
+% places, namely for \texttt{TEI xml} output (ll.~21--3) and for PDF
+% output through \LaTeX\ (ll.~27--9). Finally, it provides examples of
+% declaring witnesses, hands, scholars and shorthands (ll.~31--60). As
+% to the document itself, it shows how to lay out a conspectus
+% siglorum in a table (ll.~64--80), before giving detailed examples of
+% how the edition text is entered (ll.~85--101) and sectional commands
+% provided by \pkg{ekdosis} are used (ll.~86, 103 and
+% 110).\footnote{The PDF output is available as
+% \href{samples/Caesar_BG-6-13-1.pdf}{a separate file}.}
+%
+% \subsection{Requesting \texttt{TEI xml} Output}
+% \label{sec:request-tei-output}
+% \texttt{TEI xml} output is requested by means of the |teiexport|
+% global option as described above
+% \vpageref{ref:teiexport-option}. Once instructed to output
+% \texttt{TEI}, \pkg{ekdosis} converts and exports in sequence the
+% contents of \env{ekdosis} environments (see above
+% \vref{sec:single-text-editing}). As regards the contents of
+% \env{alignment} environments (see above \vref{sec:alignment-basic}),
+% \pkg{ekdosis} first collates the contents of the environments that
+% have been declared as values of the |texts| optional argument of
+% \env{alignment} or \cs{SetAlignment},\footnote{See above
+% \vref{sec:multiple-alignment}.} then places each of the
+% corresponding \texttt{TEI xml} outputs within distinct |<div>|
+% elements named after the declared environments themselves. For
+% example, to return to Caesar's text, the Latin edition text is found
+% between a \cs{begin}|{latin}| \dots\ \cs{end}|{latin}| environment
+% (see the |.tex| source file, \vref{sec:caesar-gw-tex}, ll.~85--101)
+% which is declared at l.~21. Then, the corresponding \texttt{xml}
+% output is found within a |<div>| element, the |xml:id| of which has
+% been given by \pkg{ekdosis} the value |div-latin_1| (see
+% \vref{sec:caesar-gw-tei}, ll.~176--200).
+%
+% \paragraph{\texttt{TEI} File Name} \DescribeMacro{\SetTEIFilename}
+% \cs{SetTEIFilename}\marg{basename} is a preamble-only command. It
+% can be used to set the base name of the \texttt{TEI xml} output
+% file, to which the suffix |.xml| is appended. By default, the base
+% name is \cs{jobname}|-tei|.
+%
+% \subsection{General Principles}
+% \label{sec:totei-general-principles}
+% \paragraph{Validation of the \texttt{TEI xml} Structure}
+% The reference tool that the author relies on is that provided by the
+% \emph{\texttt{TEI} by Example Project}.\footnote{\cite{TBE}.
+% The \texttt{TEI} validator is here:
+% \url{http://teibyexample.com/xquery/TBEvalidator.xq}.} As for
+% \pkg{ekdosis}, it is designed to produce on request, in addition to
+% an edition in print, a \texttt{TEI xml} compliant output file. That
+% said, one must keep in mind that the \LaTeX\ packages that are part
+% of {\TeX}Live can be counted in thousands, and the commands they
+% provide in tens of thousands. There may even be grounds in asserting
+% that the possibilities offered by \TeX\ and \LaTeX\ quite exceed
+% what can be afforded by \texttt{TEI xml}. On another hand, many
+% \LaTeX\ commands make no sense in \texttt{TEI}. Therefore, a
+% sensible choice is to keep them out of the environments the contents
+% of which are to be translated into \texttt{xml} elements, as will be
+% illustrated by the following.
+%
+% Converting a \LaTeX\ document into \texttt{TEI xml} can be quite an
+% intricate business. In many cases, however, \LaTeX\ strings are
+% found within environments or groups that are easy to convert into
+% \texttt{TEI} equivalents: unless instructed otherwise, whether such
+% groups are delimited by opening and closing braces or by explicit
+% \cs{begin} \dots\ \cs{end} commands, \pkg{ekdosis} translates them
+% into |xml| so that for example \cs{emph}|{word}| and
+% \cs{begin}|{quote}| \meta{quoted words} \cs{end}|{quote}| become
+% |<emph>| \meta{word} |</emph>| and |<quote>| \meta{quoted words}
+% |</quote>| respectively.
+%
+% But \LaTeX\ does not place everything into groups or
+% environments. To take here but a few examples, sectional divisions
+% are marked in \LaTeX\ with \enquote{open} commands such as
+% \cs{chapter} or \cs{section} with no clear indication where the
+% closure of divisions occurs, contrary to \texttt{TEI xml} markup
+% with numered or un-numbered |<div>| elements allowed to nest
+% recursively. As regards running paragraphs of text, the situation is
+% even worse than in the latter case, as the following simple example
+% shows:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+\begin{document}
+\begin{ekdosis}
+ ...
+
+ ... These are the final words of some section in the body text.
+
+ \section{New Section}
+
+ Here is how some new section begins...
+
+ ... Final words.
+ \section{Other Section}
+ Opening words of the section...
+
+ ... Final words
+
+ \section{Other Section}
+ Opening words...
+
+ ... Final words.
+\end{ekdosis}
+\end{document}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% Obviously, construing this \LaTeX\ source file into \texttt{TEI xml}
+% is a fairly complex task. For example, line~6 only closes a
+% paragraph for line~7 opens a division (hence |</p><div1>|), line~8
+% only opens a paragraph just after the heading of the section (hence
+% |</head><p>|) while line~14 both closes the foregoing paragraph and
+% opens a new one (hence |</p><p>|), contrary to line~16 which both
+% closes a paragraph and a sectional division (hence |</p></div1>|),
+% not to mention lines~20--1, where notwithstanding the absence of
+% blank line or any other indication,
+% |</p></div1></body></text></TEI>| is needed.
+%
+% \pkg{ekdosis} has been designed to implement this task through
+% \textsf{Lua} functions which involve string matching (both forward
+% and reverse matching) and recursions.
+%
+% \paragraph{The \texttt{xml:id} Attribute}
+% As a general rule, the |xml:id| global attribute must be unique for
+% the element that bears the attribute. Furthermore, it must begin
+% with a letter or an underscore and contain no characters other that
+% letters, digits, hyphens underscores and full stops. \pkg{ekdosis}
+% issues a warning when it finds that any \meta{unique id} of
+% \meta{unique label} expected in the first argument of
+% \cs{DeclareWitness}, \cs{DeclareHand} or \cs{DeclareScholar} is not
+% unique or breaks the rules just described, but does not prevent the
+% |.tex| source file from compiling. Instead, it prints the string
+% |<??>| in place of the expected formatted siglum so that the error
+% in the |.tex| source file can be easily spotted and corrected.
+%
+% \danger As the \meta{unique id} declared with \cs{DeclareShorthand}
+% is not to be exported in the \texttt{TEI xml} outputfile,
+% \pkg{ekdosis} checks neither its uniqueness nor its validness.
+%
+% \danger It must be noted that \LaTeX\ labels that are provided in
+% commands such as \cs{label}, \cs{cite} and the like must also be
+% unique in the document. As \LaTeX\ will issue warnings if it finds
+% duplicates, \cs{ekdosis} does not check their uniqueness but will
+% issue warnings if such labels contain invalid strings.
+%
+% \paragraph{\texttt{TEI xml} Export Settings}
+% \label{ref:setteixmlexport}
+% \DescribeMacro{\SetTEIxmlExport} \cs{SetTEIxmlExport}\marg{csv list
+% of options} can be used in the preamble or at any point of the
+% document, except inside environments set to receive an apparatus
+% criticus, namely the \env{ekdosis} environment or any other similar
+% environment declared by means of \cs{DeclareApparatus}.\footnote{See
+% above \vref{sec:declaring-layers}.} At the time of writing, there is
+% only one option, as follows:---\\
+% \DescribeOption{autopar} |autopar|$=$\verb+true|false+
+% \hfill\tcboxverb{Default: true}\\
+% The algorithm described above applies for edition texts composed in
+% running paragraphs or in lines of poetry, but it may fail to produce
+% a valid \texttt{TEI xml} output with other arrangements, such as
+% performance texts or transcriptions of speech for which the
+% \texttt{TEI} Guidelines define specific rules. |autopar=false|
+% instructs \pkg{ekdosis} to ignore blank lines in the |.tex| source
+% file as markers for paragraph boundaries. As a result, each
+% paragraph of the edition text must be found within an environment
+% associated with the \texttt{xml} |<p>| element, such as \env{ekdpar}
+% or any other environment declared as such by means of \cs{EnvtoTEI}
+% described below in \vref{sec:new-cmds-envs}. A typical use case of
+% |autopar=false| is provided below in
+% \vref{sec:specific-tei-modules}.
+%
+% \DescribeEnv{ekdpar} \cs{begin}|{ekdpar}| \dots\ \cs{end}|{ekdpar}|
+% is a simple environment that does nothing but insert \cs{par}
+% primitives. It can be used to instruct \pkg{ekdosis} to place
+% paragraphs within |<p>| elements when |autopar| has been set to
+% |false| by means of \cs{SetTEIxmlExport} described above.
+%
+% \subsection{Routine \LaTeX\ Commands and Environments}
+% \label{sec:routine-cmds}
+% The list of \LaTeX\ commands known by \pkg{ekdosis} at the time of
+% writing follows. To this list must be added the \LaTeX\ standard
+% commands that are used for sectional divisions as described above in
+% \vref{sec:latex-divs} and most of the commands provided by the
+% \pkg{arabluatex} and \pkg{icite}\footcite{icite} packages. Standard
+% citation commands are also supported as will be described below in
+% \vref{sec:citation-cmds}:---
+%
+% \begin{xltabular}{0.825\linewidth}{XX}
+% \toprule
+% \LaTeX\ command & \texttt{TEI xml} element\\
+% \midrule\endhead
+% \cs{textsuperscript}|{}| & |<hi rend="sup"></hi>| \\
+% \cs{textsubscript}|{}| & |<hi rend="sub"></hi>| \\
+% \cs{textbf}|{}| & |<hi rend="bold"></hi>| \\
+% \cs{textit}|{}| & |<hi rend="italic"></hi>| \\
+% \cs{textsc}|{}| & |<hi rend="smallcaps"></hi>| \\
+% \cs{textsf}|{}| & |<hi rend="sf"></hi>| \\
+% \cs{footnote}|{}| & |<note place="bottom"></note>| \\
+% \cs{enquote}\meta{*}|{}| & |<quote></quote>| \\
+% \cs{label}|{label}| & |<anchor xml:id="label"/>| \\
+% \cs{linelabel}|{label}| & |<anchor xml:id="label"/>| \\
+% \cs{ref}|{label}| & |<ptr ="#label"/>| \\
+% \cs{pageref}|{label}| & |<ptr ="#label"/>| \\
+% \cs{vref}|{label}| & |<ptr ="#label"/>| \\
+% \cs{vpageref}|{label}| & |<ptr ="#label"/>| \\
+% \cs{pagebreak}\meta{\oarg{1-4}} & no output \\
+% \cs{mbox}|{}| & no output \\
+% \bottomrule
+% \end{xltabular}
+%
+% As for environments:---
+%
+% \begin{xltabular}{0.825\linewidth}{XX}
+% \toprule
+% \LaTeX\ environment & \texttt{TEI xml} element\\
+% \midrule\endhead
+% |flushright| & |<p rend="align(right)"></p>| \\
+% |flushleft| & |<p rend="align(left)"></p>| \\
+% |center| & |<p rend="align(center)"></p>| \\
+% |quotation| & |<quote></quote>| \\
+% |quoting| & |<quote></quote>| \\
+% |ekdpar| & |<p></p>| \\
+% |ekdverse| & |<lg></lg>| \\
+% |verse| & |<lg></lg>| \\
+% \bottomrule
+% \end{xltabular}
+%
+% Regarding other, very frequently used commands or environments, some
+% do not need to be inserted in the translation tables: as already
+% said above, \pkg{ekdosis} converts by default the original names of
+% these into \texttt{xml} elements. For instance, \cs{emph}|{}| and
+% \cs{begin}|{quote}| \dots\ \cs{end}|{quote}| will result in
+% |<emph></emph>| and |<quote></quote>| respectively.
+%
+% For the same simple reason, if one wishes to have words within a
+% \texttt{TEI xml} element that does not have any \LaTeX\ equivalent,
+% all is needed is to define an inoperative \LaTeX\ command named
+% after the \texttt{TEI} element, like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Preamble:
+\newcommand{\mentioned}[1]{#1}
+
+% Document:
+
+Our usage corresponds to the \mentioned{aggregate} of many
+mathematical writings and to the sense of \mentioned{class} found in
+older logical writings.
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<p>Our usage corresponds to the <mentioned>aggregate</mentioned> of
+many mathematical writings and to the sense of
+<mentioned>class</mentioned> found in older logical writings.</p>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% Of course, it is also possible to have the \enquote{mentioned} words
+% printed in a different font family:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\newcommand{\mentioned}[1]{\textsf{#1}}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% This command will print them in a sans serif font family, with the
+% exact same \texttt{TEI xml} output as above.
+%
+% \subsection{Processing New Commands or Environments}
+% \label{sec:new-cmds-envs}
+% The following three commands are provided to instruct \pkg{ekdosis}
+% how to convert unknown or unusual \hologo{(La)TeX} commands or
+% environments into \texttt{TEI xml} equivalents.
+%
+% \DescribeMacro{\TeXtoTEI} \cs{TeXtoTEI}\marg{csname}\marg{TEI
+% element}\oarg{TEI attribute(s)}\\
+% \cs{TeXtoTEI} takes two mandatory arguments and one optional
+% argument, namely: the control sequence name to be converted, the
+% \texttt{TEI} element it is to be converted into and any additional
+% \texttt{xml} attributes to be appended to the opening \texttt{TEI}
+% element. For example, the \cs{sidenote} command that is provided by
+% the \cs{sidenotes} package can be processed like so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Preamble:
+\TeXtoTEI{sidenote}{note}[place="margin"]
+
+% Document:
+\begin{ekdosis}
+ \begin{ekdverse}
+ The self-same moment I could pray;\sidenote{The spell begins to
+ break}\footnote{The turning point of the poem...}
+ \end{ekdverse}
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<lg>
+ <l>The self-same moment I could pray;
+ <note place="margin">The spell begins to break</note>
+ <note place="bottom">The turning point of the
+ poem...</note></l>
+</lg>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% Even more subtly, provided that the code |#STC| points to some more
+% information identifying the agency concerned:\footnote{At the time
+% of writing, \enquote*{scholars} can be declared with
+% \cs{DeclareScholar} as described above
+% \vpageref{ref:declare-scholar}. Then the unique ID used in the first
+% argument of this command can point to the list of references
+% inserted by \pkg{ekdosis} in the back matter section of the
+% \texttt{TEI} ouput file. See below \vref{sec:references-cited-works}
+% for more information on how to do this.}---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Preamble:
+\usepackage{sidenotes}
+\usepackage[teiexport=tidy]{ekdosis}
+
+\TeXtoTEI{sidenote}{note}[place="margin"]
+
+\newcommand{\STCsnote}[1]{\sidenote{#1}}
+\TeXtoTEI{STCsnote}{note}[place="margin" resp="#STC"]
+
+% Document:
+\begin{ekdosis}
+ \begin{ekdverse}
+ The self-same moment I could pray;\STCsnote{The spell begins to
+ break}\footnote{The turning point of the poem...}
+ \end{ekdverse}
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<lg>
+ <l>The self-same moment I could pray;
+ <note place="margin" resp="#STC">The spell begins to
+ break</note>
+ <note place="bottom">The turning point of the
+ poem...</note></l>
+</lg>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \DescribeMacro{\EnvtoTEI} \DescribeMacro{\EnvtoTEI*}
+% \cs{EnvtoTEI}\meta{*}\marg{env name}\marg{TEI element}\oarg{TEI
+% attribute(s)}\\
+% \cs{EnvtoTEI} instructs \pkg{ekdosis} how to convert \LaTeX\
+% environments into \texttt{TEI xml} equivalents. It takes two
+% mandatory arguments and one optional argument, namely the name of
+% the \LaTeX\ environment to be converted, the \texttt{TEI} element it
+% is to be converted into and any additional attributes to be appended
+% to the \texttt{TEI} opening element. \cs{EnvtoTEI*} is restricted to
+% \texttt{TEI} elements that must never appear within |<p>| elements,
+% such as |<p>| itself, |<div>|, |<lg>| and the like. The following
+% example illustrates how \cs{EnvtoTEI} can be used conjointly with
+% \pkg{babel} to convey information about the languages used from
+% \LaTeX\ to \texttt{TEI}:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Preamble:
+% Use babel and babeltags:
+\usepackage[greek.ancient, english]{babel}
+\babeltags{ancientgreek = greek}
+
+\EnvtoTEI{ancientgreek}{p}[xml:lang="grc"]
+
+% Document:
+\begin{ekdosis}
+ \begin{ancientgreek}
+ περὶ πολλοῦ ἂν ποιησαίμην, ὦ ἄνδρες, τὸ τοιούτους ὑμᾶς ἐμοὶ
+ δικαστὰς περὶ τούτου τοῦ πράγματος γενέσθαι, οἷοίπερ ἂν ὑμῖν
+ αὐτοῖς εἴητε τοιαῦτα πεπονθότες...
+ \end{ancientgreek}
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<p xml:lang="grc">περὶ πολλοῦ ἂν ποιησαίμην, ὦ ἄνδρες, τὸ
+τοιούτους ὑμᾶς ἐμοὶ δικαστὰς περὶ τούτου τοῦ πράγματος
+γενέσθαι, οἷοίπερ ἂν ὑμῖν αὐτοῖς εἴητε τοιαῦτα πεπονθότες...</p>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \DescribeMacro{\TeXtoTEIPatt}
+% \cs{TeXtoTEIPatt}\marg{\TeX\ pattern}\marg{TEI pattern}\\
+% Finally, this more flexible\---and more delicate to
+% handle\---command uses pattern matching to instruct \pkg{ekdosis}
+% how to convert \hologo{(La)TeX} commands into \texttt{TEI}
+% equivalents. In the first mandatory argument, strings to be captured
+% are marked in sequence with numbers prefixed by |#|, like so: |#1|,
+% |#2|, |#3| and so forth. Then, in the second mandatory argument, the
+% strings captured are inserted where each of them is expected in
+% the \texttt{TEI} element.
+%
+% \danger Strings must be entered exactly as \pkg{ekdosis} will find
+% them as the |.tex| source file is compiled. Specifically,
+% \emph{control sequences}, namely the coded commands immediately
+% preceded by `\verb+\+' are always found followed by a space. For
+% instance, |\emph{}| will be seen and processed by \pkg{ekdosis} as
+% \verb*|\emph {}|.
+%
+% The following example illustrates how \pkg{ekdosis} can be
+% instructed to process the
+% \cs{textcolor}\allowbreak\marg{color}\marg{text} command:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\TeXtoTEIPatt{\textcolor {#1}{#2}}{<hi rend="#1">#2</hi>}
+
+Sample text with a \textcolor{red}{word} in red.
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<p>Sample text with a
+<hi rend="red">word</hi>in red.</p>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \subsection{Specific \texttt{TEI} Modules}
+% \label{sec:specific-tei-modules}
+% The following example illustrates how \pkg{ekdosis} can be adapted
+% in a straightforward way to modules provided by the \texttt{TEI} for
+% encoding specific texts such as transcriptions of
+% speech.\footnote{See
+% \url{https://tei-c.org/release/doc/tei-p5-doc/en/html/TS.html}.} The
+% technique applied below uses \cs{EnvtoTEI} conjointly with
+% \cs{SetTEIxmlExport}|{autopar=|\allowbreak|false}| described above
+% \vpageref{ref:setteixmlexport}:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+% Preamble:
+\newenvironment{speech}{\par}{\par}
+\newcommand{\speaker}[1]{\textbf{#1}\par}
+\EnvtoTEI{speech}{sp}
+
+\SetTEIxmlExport{autopar=false}
+
+% Document:
+\begin{ekdosis}
+ \begin{speech}
+ \speaker{Σωκράτης}
+ \begin{ekdpar}
+ κατέβην χθὲς εἰς Πειραιᾶ μετὰ Γλαύκωνος τοῦ Ἀρίστωνος
+ προσευξόμενός τε τῇ θεῷ καὶ ἅμα τὴν ἑορτὴν βουλόμενος θεάσασθαι
+ τίνα τρόπον ποιήσουσιν ἅτε νῦν πρῶτον ἄγοντες. καλὴ μὲν οὖν μοι
+ καὶ ἡ τῶν ἐπιχωρίων πομπὴ ἔδοξεν εἶναι, οὐ μέντοι ἧττον ἐφαίνετο
+ πρέπειν ἣν οἱ Θρᾷκες ἔπεμπον.
+ \end{ekdpar}
+ \end{speech}
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \begin{remarks}
+% \item Lines~2--3 define a basic environment meant to contain
+% indivivual speeches and a command to hold the name of the
+% speaker. This name is printed in bold face and followed by a new
+% paragraph in the PDF output.
+% \item Line~4 instructs \pkg{ekdosis} to convert \env{speech} \LaTeX\
+% environments into |<sp>| \texttt{TEI xml} elements.
+% \item Line~6 disables the |autopar| algorithm that \cs{ekdosis}
+% provides by default for running paragraphs of text. As a
+% consequence, \env{ekdpar} is used to mark the paragraphs.
+% \end{remarks}
+%
+% PDF output:---
+% \medskip
+%
+% \SetTEIxmlExport{autopar=false}
+% \begingroup
+% \newenvironment{speech}{\par\selectlanguage{greek}}{\par}
+% \newcommand{\speaker}[1]{\textbf{#1}\par}
+% \EnvtoTEI{speech}{sp}
+% \resetlinenumber
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \begin{specimen}
+% \begin{speech}
+% \speaker{Σωκράτης}
+% \begin{ekdpar}
+% κατέβην χθὲς εἰς Πειραιᾶ μετὰ Γλαύκωνος τοῦ Ἀρίστωνος
+% προσευξόμενός τε τῇ θεῷ καὶ ἅμα τὴν ἑορτὴν βουλόμενος θεάσασθαι
+% τίνα τρόπον ποιήσουσιν ἅτε νῦν πρῶτον ἄγοντες. καλὴ μὲν οὖν μοι
+% καὶ ἡ τῶν ἐπιχωρίων πομπὴ ἔδοξεν εἶναι, οὐ μέντοι ἧττον ἐφαίνετο
+% πρέπειν ἣν οἱ Θρᾷκες ἔπεμπον.
+% \end{ekdpar}
+% \end{speech}
+% \end{specimen}
+% \end{alignment}
+% \endgroup
+% \SetTEIxmlExport{autopar=true}
+%
+% \texttt{TEI xml} output:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<sp>
+ <speaker>Σωκράτης</speaker>
+ <p>κατέβην χθὲς εἰς Πειραιᾶ μετὰ Γλαύκωνος τοῦ Ἀρίστωνος
+ προσευξόμενός τε τῇ θεῷ καὶ ἅμα τὴν ἑορτὴν βουλόμενος
+ θεάσασθαι τίνα τρόπον ποιήσουσιν ἅτε νῦν πρῶτον ἄγοντες.
+ καλὴ μὲν οὖν μοι καὶ ἡ τῶν ἐπιχωρίων πομπὴ ἔδοξεν εἶναι, οὐ
+ μέντοι ἧττον ἐφαίνετο πρέπειν ἣν οἱ Θρᾷκες ἔπεμπον.</p>
+</sp>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \subsection{References to Cited Works}
+% \label{sec:references-cited-works}
+% A full example of what is technically called a \emph{Conspectus
+% Siglorum} can be found above in \vref{sec:print-witnesses}. Such a
+% list of manuscript sigla should be found immediately before the
+% edition text. Traditionally, this section is followed by a list of
+% other sources used to establish the text, so that the edited text is
+% in the end established both from manuscript evidence (the
+% \enquote{witnesses}) and other works based on a scholarly approach
+% of the text (the \enquote{sources}) which are called in Latin
+% \emph{Editiones uel Studia}. As a consequence of this classification
+% as \enquote{witness} or \enquote{source}, the former must go within
+% the |<listWit>| element of the \texttt{TEI} header, whereas the
+% latter is to be found within the |<listBibl>| element.
+%
+% \DescribeMacro{\SetxmlBibResource}
+% \cs{SetxmlBibResource}\marg{basename} is a preamble-only command. If
+% a base name for a \texttt{TEI xml} compliant bibliographical
+% database be provided, \pkg{ekdosis} will use it and insert formatted
+% data in the back matter section of its own \texttt{TEI xml} output
+% file, as |<biblStruct>| elements within a |listBibl| section.
+%
+% As an example, the following Bib\hologo{(La)TeX} entry and its
+% \texttt{TEI} equivalent follow:\footnote{\label{fn:zotero}To the
+% author's knowledge, \textsf{Zotero} (\url{https://www.zotero.org})
+% provides excellent \texttt{TEI xml} output from Bib\hologo{(La)TeX}
+% input files.}---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{bibtex}
+@Book{Drak,
+ title = {Punicorum Libri Septemdecim},
+ author = {Silius Italicus, Tiberius Catius},
+ editor = {Drakenborch, Arnold},
+ date = {1717},
+ publisher = {Trajecti ad Rhenum},
+ location = {Utrecht}
+}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{xml}
+<?xml version="1.0" encoding="UTF-8"?>
+<listBibl xmlns="http://www.tei-c.org/ns/1.0">
+ <biblStruct type="book" xml:id="Drak">
+ <monogr>
+ <title level="m">Punicorum libri septemdecim</title>
+ <author>
+ <forename>Tiberius Catius</forename>
+ <surname>Silius Italicus</surname>
+ </author>
+ <editor>
+ <forename>Arnold</forename>
+ <surname>Drakenborch</surname>
+ </editor>
+ <imprint>
+ <pubPlace>Utrecht</pubPlace>
+ <publisher>Trajecti ad Rhenum</publisher>
+ <date>1717</date>
+ </imprint>
+ </monogr>
+ </biblStruct>
+</listBibl>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \danger As can be seen, the same string |Drak| is used as a label in
+% the Bib\hologo{(La)TeX} file (l.~1) and an |xml:id| in the
+% \texttt{TEI} file (l.~3). This same label must be used again in the
+% preamble of the |.tex| source file to declare Arnold Drakenborch as a
+% scholar,\footnote{See above \vpageref{ref:declare-scholar}.} like
+% so:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+% Use 'bibl.xml' as a TEI xml bibliographical database:
+\SetxmlBibResource{bibl} % 'bibl' is the basename of 'bibl.xml'
+
+% Declare A. Drakenborch as scholar:
+\DeclareScholar{Drak}{\emph{Drakenborch}}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \label{ref:ekdverse-ex}
+% Finally, an extract of Silius Italicus' \emph{Punica}, Book~9,
+% ll.~30-2 follows (|.tex| source file, PDF output and \texttt{TEI}
+% output files):---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{latex}
+% Preamble:
+\usepackage[teiexport=tidy]{ekdosis}
+
+% Witnesses:
+\DeclareWitness{L}{L}{Laurentianus, plut, XXXVII, cod. 16}[
+ origDate=s. XV]
+% Other witnesses [...]
+
+% Scholars:
+\DeclareScholar{Drak}{\emph{Drakenborch}}
+% Other scholars [...]
+
+% basename of the .xml bibliographical database:
+\SetxmlBibResource{bibl}
+
+% Document:
+\begin{ekdosis}
+ \begin{ekdverse}
+ Sed uos, quorum oculos atque ora humentia uidi,\\
+ uertere cum consul terga et remeare iuberet,\\
+ \app{
+ \lem[wit=Drak]{ne morem}
+ \rdg[wit={L, F}]{me morem}
+ \rdg[wit={O, V}]{memorem}
+ } et pugnae signum exspectate petendae:
+ \end{ekdverse}
+\end{ekdosis}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \needspace{7\baselineskip}
+% PDF output:---
+% \medskip
+%
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \resetlinenumber[30]\rightlinenumbers
+% \setlength{\linenumbersep}{-1.5in}
+% \begin{specimen}
+% \begin{ekdverse}
+% Sed uos, quorum oculos atque ora humentia uidi,\\
+% uertere cum consul terga et remeare iuberet,\\
+% \app{
+% \lem[wit=sDrak]{ne morem}
+% \rdg[wit={sL, sF}]{me morem}
+% \rdg[wit={sO, sV}]{memorem}
+% } et pugnae signum exspectate petendae:
+% \end{ekdverse}
+% \end{specimen}
+% \end{alignment}
+%
+% \texttt{TEI xml} output file produced by \pkg{ekdosis} (narrowed
+% down to the |<text>| element):---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}{xml}
+<text>
+ <body>
+ <lg>
+ <l>Sed uos, quorum oculos atque ora humentia uidi,</l>
+ <l>uertere cum consul terga et remeare iuberet,</l>
+ <l>
+ <app>
+ <lem wit="#Drak">ne morem</lem>
+ <rdg wit="#L #F">me morem</rdg>
+ <rdg wit="#O #V">memorem</rdg>
+ </app>et pugnae signum exspectate petendae:</l>
+ </lg>
+ </body>
+ <back>
+ <listBibl>
+ <biblStruct type="book" xml:id="Drak">
+ <monogr>
+ <title level="m">Punicorum libri septemdecim</title>
+ <author>
+ <forename>Tiberius Catius</forename>
+ <surname>Silius Italicus</surname>
+ </author>
+ <editor>
+ <forename>Arnold</forename>
+ <surname>Drakenborch</surname>
+ </editor>
+ <imprint>
+ <pubPlace>Utrecht</pubPlace>
+ <publisher>Trajecti ad Rhenum</publisher>
+ <date>1717</date>
+ </imprint>
+ </monogr>
+ </biblStruct>
+ </listBibl>
+ </back>
+</text>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% \subsection{Citation Commands}
+% \label{sec:citation-cmds}
+% \pkg{ekdosis} can also convert into \texttt{TEI xml} references to
+% cited works. Depending on the optional arguments used in the
+% citation command, references will be converted into |<ptr>| or
+% |<ref>| elements with the appropriate ID supplied by means of the
+% |target| attribute.
+%
+% Of course, for this mechanism to work, Bib\TeX\ or Bib\LaTeX\ must
+% be used and connected to some |.bib| bibliographical database
+% file. Additionally, this |.bib| file must have been converted into a
+% \texttt{TEI xml} compliant file where all the Bib\hologo{(La)TeX}
+% entries that are used in the document are found within
+% |<biblStruct>| elements.\footnote{See above n.~\vref{fn:zotero} for
+% information on how to do this.} Finally, this |.xml| bibliographical
+% database must have been connected to the |.tex| source file by means
+% of \cs{SetxmlBibResource} described above in
+% \vref{sec:references-cited-works}.
+%
+% As an example, the following |sample.bib| file is used:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{bibtex}
+@Book{ReynoldsWilson1991,
+ author = {Reynolds, L. D. and Wilson, N. G},
+ title = {Scribes and Scholars},
+ year = {1991},
+ subtitle = {A Guide to the Translation of Greek and Latin
+ Literature},
+ edition = {3},
+ publisher = {Clarendon Press},
+ location = {Oxford}
+}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% It has been converted into |sample.xml| as follows:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<?xml version="1.0" encoding="UTF-8"?>
+<listBibl xmlns="http://www.tei-c.org/ns/1.0">
+ <biblStruct type="book" xml:id="ReynoldsWilson1991">
+ <monogr>
+ <title level="m">Scribes and Scholars</title>
+ <author>
+ <forename>L. D.</forename>
+ <surname>Reynolds</surname>
+ </author>
+ <author>
+ <forename>N. G.</forename>
+ <surname>Wilson</surname>
+ </author>
+ <edition>3</edition>
+ <imprint>
+ <pubPlace>Oxford</pubPlace>
+ <publisher>Clarendon Press</publisher>
+ <date>1991</date>
+ </imprint>
+ </monogr>
+ </biblStruct>
+</listBibl>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% Once both files have been prepared, inserting references and
+% exporting them into the \texttt{TEI xml} ouput file can be achieved
+% in a straightforward way. (The full |sample.tex| is provided
+% below.)---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+\documentclass{article}
+
+\usepackage[teiexport=tidy]{ekdosis}
+\SetxmlBibResource{sample} % base name supplied here, without the
+ % extension
+
+\usepackage[style=oxnotes]{biblatex}
+\addbibresource{sample.bib}
+
+\begin{document}
+\begin{ekdosis}
+ On textual criticism, see \cite[207--241]{ReynoldsWilson1991}.
+\end{ekdosis}
+\end{document}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% PDF output:---
+% \medskip
+%
+% \resetlinenumber
+% \begin{alignment}[flush,tcols=1,texts=specimen,apparatus=specimen]
+% \begin{specimen}
+% On textual criticism, see \cite[207--241]{ReynoldsWilson1991}.
+% \end{specimen}
+% \end{alignment}
+%
+% \medskip
+% \texttt{TEI xml} ouput narrowed down to the contents of the |<text>|
+% element:---
+%
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{xml}
+<text>
+ <body>
+ <p>On textual criticism, see
+ <ref target="#ReynoldsWilson1991">207--241</ref>.</p>
+ </body>
+ <back>
+ <listBibl>
+ <biblStruct type="book" xml:id="ReynoldsWilson1991">
+ <monogr>
+ <title level="m">Scribes and Scholars</title>
+ <author>
+ <forename>L. D.</forename>
+ <surname>Reynolds</surname>
+ </author>
+ <author>
+ <forename>N. G.</forename>
+ <surname>Wilson</surname>
+ </author>
+ <edition>3</edition>
+ <imprint>
+ <pubPlace>Oxford</pubPlace>
+ <publisher>Clarendon Press</publisher>
+ <date>1991</date>
+ </imprint>
+ </monogr>
+ </biblStruct>
+ </listBibl>
+ </back>
+</text>
+\end{minted}
+% \iffalse
+%</example>
+% \fi
+%
+% At the time of writing, the following citation commands are
+% converted into \texttt{TEI xml} by \pkg{ekdosis}:---
+% \begin{enumerate}
+% \item
+% \cs{icite}\oarg{prenote}\oarg{postnote}\marg{key}\footnote{From the
+% \pkg{icite} package. \cs{icite} can be used in place of almost any
+% standard citation command. See \cite{icite}.}
+% \item \cs{cite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{Cite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{cite*}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{parencite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{Parencite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{parencite*}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{footcite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{footcitetext}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{textcite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{Textcite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{smartcite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{Smartcite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{autocite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{Autocite}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{autocite*}\oarg{prenote}\oarg{postnote}\marg{key}
+% \item \cs{Autocite*}\oarg{prenote}\oarg{postnote}\marg{key}
+% \end{enumerate}
+%
+% The next release of \pkg{ekdosis} will include all citation commands
+% with the exception of so-called \enquote{qualified citation lists}.
+%
+% \section{Future Work}
+% \label{sec:future-work}
+% A short, uncommented list of what is planned in the versions of
+% \pkg{ekdosis} to come follows:---
+% \begin{enumerate}
+% \item Very short-term (weeks):---
+% \begin{enumerate}
+% \item Editorial changes, for inserting corrections and
+% conjectures.
+% \item Text structure: milestone elements.
+% \end{enumerate}
+% \item Short-term (months):---
+% \begin{enumerate}
+% \item Poetry: The standard \env{verse} environment is supported by
+% the current version of \pkg{ekdosis}, in addition to
+% \env{ekdverse} an example of which has been provided above
+% \vpageref{ref:ekdverse-ex}. \env{ekdverse} will provide refined
+% options, such as metrical analysis, stanzaic forms, \emph{\&c.}
+% Arabic poetry through the environments and commands provided by
+% the \pkg{arabluatex} package will also be supported.
+% \item Correspondence and alignment, segmentation: The functions
+% are being tested at the time of writing and will be included
+% shortly in \pkg{ekdosis}.
+% \end{enumerate}
+% \item Medium-term: Indexing, commands and environments for specific
+% modules of the \texttt{TEI}.
+% \end{enumerate}
+%
% \begin{comment}
% \section{Correspondence and Alignment}
% \end{comment}
-% \label{sec:correspondance-alignment}
+% \label{sec:correspondence-alignment}
%
% \label{ref:segmentation}
%
@@ -2309,8 +4855,70 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% recommend releasing these examples in parallel under your choice of
% free software license, such as the GNU General Public License,
% to permit their use in free software.
+%
+% \section{References}
+% \label{sec:references}
+% \printbibliography[heading=none]
+%
+% \section{Sample: C. J. Caesar, \emph{Gallic War},
+% VI, XIII.1}
+% \label{sec:caesar-gw-6-1-13}
+% \subsection{\texttt{.tex} Source File}
+% \label{sec:caesar-gw-tex}
+% \inputminted[linenos=true]{latex}{samples/Caesar_BG-6-13-1.tex}
+% \subsection{\texttt{TEI xml} Output}
+% \label{sec:caesar-gw-tei}
+% \inputminted[linenos=true]{xml}{samples/Caesar_BG-6-13-1-tei.xml}
%
-% \printbibliography[heading=bibintoc]
+% \section{Arabic Sample File}
+% \label{sec:arabic-sample}
+% |arabic-sample.tex|:---
+% \iffalse
+%<*example>
+% \fi
+\begin{minted}[linenos=false]{latex}
+% Instructions:
+% 1. Compile this file three times.
+% - Open arabic-sample.pdf and arabic-sample-tei.xml and see the
+% result.
+% 2. Compile arabic-sample_out.tex three times.
+% - Open arabic-sample_out.pdf and arabic-sample-out-tei.xml and
+% see the result.
+%
+\documentclass{article}
+
+% The following three lines are only needed by the
+% 'arabic-sample_out.tex' that arabluatex is instructed to produce:
+\usepackage{babel}
+\babelprovide[onchar=fonts]{arabic}
+\babelfont[*arabic]{rm}{Amiri}
+
+% instruct ekdosis to output TEI xml (arabic-sample-tei.xml):
+\usepackage[teiexport=tidy]{ekdosis}
+
+% instruct arabluatex to ouput sample-arabic_out.tex with Unicode
+% Arabic strings in place of arabtex ASCII scheme:
+\usepackage[fullvoc,export]{arabluatex}
+
+\begin{document}
+
+\begin{arabexport} % export arabtex strings to Unicode Arabic
+ \begin{ekdosis}
+ \begin{arab}
+ 'inna 'abI kAna mina
+ \app{
+ \lem{'l-muqAtilaTi}
+ \rdg{'l-muqAtilIna}
+ }
+ wa-kAnat 'ummI min `u.zamA'i buyUti 'l-zamAzimaTi.
+ \end{arab}
+ \end{ekdosis}
+\end{arabexport}
+\end{document}
+\end{minted}
+% \iffalse
+%</example>
+% \fi
%
% \StopEventually{}
%
@@ -2344,7 +4952,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\newif\iftei@export
\ekvdefinekeys{ekdosis}{
choice layout = {float = {\@pkg@floattrue},
- footins = {\@pkg@footinstrue}},
+ footins = {\@pkg@floatfalse\@pkg@footinstrue}},
initial layout = float,
unknown-choice layout = \PackageError{ekdosis}{unknown
layout=#1}{`layout' must be either `float' or `footins'.},
@@ -2389,8 +4997,11 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\RequirePackage{lineno}
\RequirePackage{keyfloat}
\RequirePackage{refcount}
-\RequirePackage[user,abspage]{zref}
+\RequirePackage{zref-user}
+\RequirePackage{zref-abspage}
\RequirePackage{ltxcmds}
+\RequirePackage{atbegshi}
+\RequirePackage{ifoddpage}
\if@pkg@parnotes
\RequirePackage{parnotes}
\fi
@@ -2404,11 +5015,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\luadirect{ekdosis.closestream()}
}
% \end{macrocode}
-% Use |\normalfont| for line numbers:---
-% \begin{macrocode}
-\renewcommand\linenumberfont{\normalfont\footnotesize}
-% \end{macrocode}
-% \begin{macro}{\SetEkdosisHooks} \cs{SetEkdosisHooks} is used to set
+% \begin{macro}{\SetHooks} \cs{SetHooks} is used to set
% hooks meant to be shared by all declared apparatuses, such as the
% font size, the format of numerals, \emph{\&c.} This command can be
% used in the preamble or at any point of the document.
@@ -2421,7 +5028,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
initial refnumstyle = \bfseries,
initial postrefnum = ~
}
-\NewDocumentCommand{\SetEkdosisHooks}{m}{\ekvset{ekd@hooks}{#1}}
+\NewDocumentCommand{\SetHooks}{m}{\ekvset{ekd@hooks}{#1}}
% \end{macrocode}
% \end{macro}
% Build and process the list of witnesses and hands:---
@@ -2508,15 +5115,54 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\@onlypreamble\DeclareShorthand
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\getsiglum}
+% \cs{getsiglum}\marg{csv list} takes a comma-separated list of
+% declared ids by means of \cs{DeclareWitness}, \cs{DeclareHand},
+% \cs{DeclareShorthand} or \cs{DeclareScholar} and returns their
+% respective renditions.
% \begin{macrocode}
\NewDocumentCommand{\getsiglum}{m}{%
\luadirect{tex.sprint(ekdosis.getsiglum(\luastringN{#1}))}%
}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\SigLine}
+% \cs{Sigline}\marg{unique id} takes the unique id of any declared
+% witness by means of \cs{DeclareWitness} as argument and returns a
+% line ready to be inserted in a table set to print a Conspectus
+% Siglorum. \cs{SigLine} returns three fields separated by the symbol
+% |&| that is used in tables as follows: the siglum referring to the
+% witness, the contents of the |description| field and the contents of
+% the optional |origDate| field.
+% \begin{macrocode}
\NewDocumentCommand{\SigLine}{m}{%
\luadirect{tex.sprint(ekdosis.basic_cs(\luastringN{#1}))}
}
% \end{macrocode}
+% \end{macro}
% \paragraph{\TeX\ to \texttt{TEI xml}}
+% Here follow the |key-value| options to be used by \cs{SetTEIxmlExport}
+% below:---
+% \begin{macrocode}
+\ekvdefinekeys{tei@settings}{
+ choice autopar = {true = \luadirect{ekdosis.setteiautopar("yes")},
+ false = {\luadirect{ekdosis.setteiautopar("no")}}},
+ initial autopar = true,
+ unknown-choice autopar = \PackageError{ekdosis}{unknown
+ autopar=#1}{`autopar' must be either `true' or `false'.}
+}
+% \end{macrocode}
+% \begin{macro}{\SetTEIxmlExport}
+% \cs{SetTEIxmlExport} collects the settings to be applied
+% to \texttt{TEI xml} export. For now, there is only one option. This
+% command can be used at any point of the document, except inside
+% environments meant to receive an apparatus criticus.
+% \begin{macrocode}
+\NewDocumentCommand{\SetTEIxmlExport}{m}{
+ \unless\ifekd@state\ekvset{tei@settings}{#1}\fi
+}
+% \end{macrocode}
+% \end{macro}
% The following three commands can be used to instruct \pkg{ekdosis}
% how to convert unknown or unusual \hologo{(La)TeX} commands into
% \texttt{TEI xml} equivalents.
@@ -2587,8 +5233,8 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \begin{macro}{\SetxmlBibResource} This is a preamble-only command.
% If a base name for a \texttt{TEI xml} compliant bibliographical
% database file is provided with
-% \cs{SetxmlBibResource}\marg{basename}, \pkg{ekdosis} will use
-% insert formatted data in the back matter section of its own
+% \cs{SetxmlBibResource}\marg{basename}, \pkg{ekdosis} will use it
+% and insert formatted data in the back matter section of its own
% \texttt{TEI xml} output file, as |<biblStruct>| elements within a
% |<listBibl>| section.
% \begin{macrocode}
@@ -2600,7 +5246,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \end{macro}
%
%\paragraph{Multi-layer apparatuses}
-% \pkg{ekdosis} must know is an entry is to be processed in a single-
+% \pkg{ekdosis} must know if an entry is to be processed in a single-
% or multiple-layer context:---
% \begin{macrocode}
\newif\ifekd@mapps
@@ -2613,11 +5259,14 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
unknown-choice direction = \PackageError{ekdosis}{unknown
direction=#1}{`direction' must be either `LR' or `RL'.},
store rule = \rule@val,
- store delim = \delim@val,
+ nmeta norule = {rule=none},
+ code delim = \def\delim@val{\unexpanded{#1}},
store sep = \sep@val,
store bhook = \bhook@val,
store ehook = \ehook@val,
+ store maxentries = \limit@val,
initial direction = LR,
+ initial delim = {},
initial ehook = {\csname ekd@end@apparatus\endcsname}
}
% \end{macrocode}
@@ -2625,11 +5274,13 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \cs{DeclareApparatus}\marg{apparatus name}\oarg{options} is a
% preamble-only command. As a mandatory argument, it takes the name of
% the new layer of notes to be inserted in the apparatus block. Then,
-% the following six key-value options can be used to lay out the
+% the following seven key-value options can be used to lay out the
% layer: \verb+direction=LR|RL+, |rule|, |delim| (the delimiter between
% entries), |sep| (the separator between lemma part and readings or
% notes), |bhook| (\LaTeX{} code inserted as the layer begins),
-% |ehook| (\LaTeX{} code inserted as the layer ends):---
+% |ehook| (\LaTeX{} code inserted as the layer ends), |maxentries|
+% (if set and |maxentries >= 10|, the number of entries at which a
+% \cs{pagebreak} is issued):---
% \begin{macrocode}
\NewDocumentCommand{\DeclareApparatus}{m O{}}{
\newbool{subsq@unit@#1}
@@ -2644,7 +5295,8 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\luastringO{\delim@val},
\luastringO{\sep@val},
\luastringO{\bhook@val},
- \luastringO{\ehook@val}
+ \luastringO{\ehook@val},
+ \luastringO{\limit@val}
)}
\egroup
}
@@ -2712,14 +5364,42 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \end{macro}
% \paragraph{Single-layer apparatus} The following commands are for
% general settings. All of them can be used in the preamble or at any
-% point of the document:---
+% point of the document. The keys to be used follow:---
+% \begin{macrocode}
+\newif\ifrtl@app
+\edef\ekdsep{] }
+\ekvdefinekeys{default@app}{
+ choice direction = {LR = \rtl@appfalse,
+ RL = \rtl@apptrue},
+ unknown-choice direction = \PackageError{ekdosis}{unknown
+ direction=#1}{`direction' must be either `LR' or `RL'.},
+ code sep = \edef\ekdsep{#1},
+ store bhook = \ekd@begin@apparatus,
+ initial bhook = {},
+ store ehook = \ekd@end@apparatus,
+ initial ehook = {},
+ store delim = \ekd@unit@delim,
+ initial delim = {},
+ store rule = \ekd@default@rule,
+ initial rule = \rule{0.4\columnwidth}{0.4pt},
+ noval norule = \def\ekd@default@rule{\mbox{}}
+}
+% \end{macrocode}
+% \begin{macro}{\SetApparatus}
+% All settings can also be defined as |key-value| options within the
+% argument of \cs{SetApparatus}:---
+% \begin{macrocode}
+\NewDocumentCommand{\SetApparatus}{m}{
+ \ekvset{default@app}{#1}
+}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\SetLTRapp}
% \begin{macro}{\SetRTLapp}
% \cs{SetLTRapp} and \cs{SetRTLapp} are two argument-less commands to
% set the direction of single-layer apparatus criticus, either LTR or
% RTL:---
% \begin{macrocode}
-\newif\ifrtl@app
\NewDocumentCommand{\SetRTLapp}{}{\rtl@apptrue}
\NewDocumentCommand{\SetLTRapp}{}{\rtl@appfalse}
% \end{macrocode}
@@ -2730,17 +5410,23 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% between lemma texts and variant readings, which is by default
% a closing square bracket followed by a space (\verb*+] +):---
% \begin{macrocode}
-\edef\ekdsep{] }
\NewDocumentCommand{\SetSeparator}{m}{\edef\ekdsep{#1}}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\SetBeginApparatus}
+% \cs{SetBeginApparatus}\marg{characters} can be used to append
+% characters at the beginning of the apparatus block. By default,
+% nothing is appended:---
+% \begin{macrocode}
+\NewDocumentCommand{\SetBeginApparatus}{m}{\edef\ekd@begin@apparatus{#1}}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\SetEndApparatus}
% \cs{SetEndApparatus}\marg{characters} can be used to append
-% characters at the end of the apparatus block\---such as a full stop,
+% characters at the end of the apparatus block\---such as a period,
% as it is customary in some editions. By default, nothing is
% appended:---
% \begin{macrocode}
-\edef\ekd@end@apparatus{}
\NewDocumentCommand{\SetEndApparatus}{m}{\edef\ekd@end@apparatus{#1}}
% \end{macrocode}
% \end{macro}
@@ -2751,7 +5437,6 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% can be used to insert a broad space (with |\hskip| for instance, as
% in the OCT series) or the divider-sign (‖, as in the Budé series):---
% \begin{macrocode}
-\def\ekd@unit@delim{}
\NewDocumentCommand{\SetUnitDelimiter}{m}{\def\ekd@unit@delim{#1}}
% \end{macrocode}
% \end{macro}
@@ -2765,7 +5450,6 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \cs{footnoteruletrue} leaves it untouched. The latter is set by
% default.
% \begin{macrocode}
-\def\ekd@default@rule{\rule{2truein}{0.5pt}}
\newif\iffootnoterule
\footnoteruletrue
\let\dflt@footnoterule\footnoterule
@@ -2784,11 +5468,12 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \end{macro}
% \end{macro}
% \begin{macro}{\SetDefaultRule}
-% By default, \pkg{ekdosis} draws separating rules the definition of
-% which is |\rule{2truein}{0.5pt}|. This can be changed in the
-% preamble or at any point of the document with
-% \cs{SetDefaultRule}\marg{\allowbreak{}rule definition}. Leaving this
-% argument empty as in \cs{SetDefaultRule}|{}| removes the rule.
+% By default, \pkg{ekdosis} draws separating rules the definition of
+% which is |\rule{0.4\columnwid|\allowbreak|th}{0.4pt}|. This can be
+% changed in the preamble or at any point of the document with
+% \cs{SetDefaultRule}\marg{\allowbreak{}rule definition}. Leaving
+% this argument empty as in \cs{SetDefaultRule}|{}| removes the
+% rule.
% \begin{macrocode}
\NewDocumentCommand{\SetDefaultRule}{m}{%
\def\@tempa{#1}
@@ -2849,7 +5534,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\fi%
}
% \end{macrocode}
-% Before inserting any new entry, \cs{add@apparatus} is called
+% Before inserting any new entry, \cs{add@apparatus} calls
% \cs{test@apparatus} to decide whether a new apparatus block must be
% created on a given page.
% \begin{macrocode}
@@ -2878,16 +5563,96 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
{\luadirect{tex.sprint(ekdosis.mdvappend(\luastringO{#2},
\luastringO{#1}))}}}
% \end{macrocode}
-% \begin{macro}{\EkdosisDefaultApparatus}
+% \paragraph{Lineation settings}
+% \begin{macro}{\outerlinenumbers}
+% \begin{macro}{\innerlinenumbers}
+% \pkg{ekdosis} does not use the \enquote{pagewise} numbering mode
+% that is provided by \pkg{lineno}. Therefore,
+% \cs{outerlinenumbers} and \cs{innerlinenumbers} are defined in
+% addition to \cs{rightlinenum{\allowbreak}bers} and
+% \cs{leftlinenumbers}.
+% \begin{macrocode}
+\def\outerlinenumbers{
+ \def\makeLineNumberRunning{
+ \checkoddpage
+ \ifoddpage
+ \linenumberfont\hskip\linenumbersep\hskip\textwidth
+ \hbox to\linenumberwidth{\hss\LineNumber}\hss
+ \else
+ \hss\linenumberfont\LineNumber\hskip\linenumbersep
+ \fi
+ }
+}
+\def\innerlinenumbers{
+ \def\makeLineNumberRunning{
+ \checkoddpage
+ \ifoddpage
+ \hss\linenumberfont\LineNumber\hskip\linenumbersep
+ \else
+ \linenumberfont\hskip\linenumbersep\hskip\textwidth
+ \hbox to\linenumberwidth{\hss\LineNumber}\hss
+ \fi
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% The keys to be used for lineation settings follow. A conditional is
+% defined beforehand so that \pkg{ekdosis} may know whether the
+% numbering should start afresh at the top of each page.
+% \begin{macrocode}
+\newif\ifekd@pagelineation
+\NewDocumentCommand{\ekdatbegshihook}{}{%
+ \ifekd@pagelineation\resetlinenumber\fi
+}
+\AtBeginShipout{\ekdatbegshihook}
+\newif\ifekd@elidednumbers
+\ekvdefinekeys{ekd@lineation}{
+ choice lineation = {page = \ekd@pagelineationtrue,
+ document = \ekd@pagelineationfalse},
+ unknown-choice lineation = \PackageError{ekdosis}{unknown
+ lineation=#1}{`lineation' must be either `page' or `document'.},
+ code modulonum = \chardef\c@linenumbermodulo#1\relax,
+ noval modulo = \modulolinenumbers,
+ choice numbers = {elided = \ekd@elidednumberstrue,
+ full = \ekd@elidednumbersfalse},
+ unknown-choice numbers = \PackageError{ekdosis}{unknown
+ numbers=#1}{`numbers' must be either `elided' or `full'.},
+ initial numbers = elided,
+ choice margin = {right = \rightlinenumbers,
+ left = \leftlinenumbers,
+ inner = \innerlinenumbers,
+ outer = \outerlinenumbers},
+ unknown-choice margin = \PackageError{ekdosis}{unknown
+ margin=#1}{`margin' must be either `left', `right', \MessageBreak
+ `inner' or `outer'}
+}
+% \end{macrocode}
+% \begin{macro}{\SetLineation}
+% Then \cs{SetLineation}\marg{options} can be used in the preamble or
+% at any point of the document to set lineation preferences. Its
+% argument processes the |key-value| options that are defined just
+% above.
+% \begin{macrocode}
+\NewDocumentCommand{\SetLineation}{m}{
+ \ekvset{ekd@lineation}{#1}
+}
+% \end{macrocode}
+% \end{macro}
+% Use |\normalfont| for line numbers:---
+% \begin{macrocode}
+\renewcommand\linenumberfont{\normalfont\footnotesize}
+% \end{macrocode}
+% \begin{macro}{\SetDefaultApparatus}
% By default, \pkg{ekdosis} defines one layer of critical notes which
% is called |default|. This name can be changed at any point of the
-% document with \cs{EkdosisDefaultApparatus}\marg{name}.
+% document with \cs{SetDefaultApparatus}\marg{name}.
% \begin{macrocode}
\ekvdefinekeys{appnote}{
store type = \ekdan@type,
initial type = default
}
-\NewDocumentCommand{\EkdosisDefaultApparatus}{m}{%
+\NewDocumentCommand{\SetDefaultApparatus}{m}{%
\ekvset{appnote}{type=#1}}
% \end{macrocode}
% \end{macro}
@@ -2956,8 +5721,13 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\fi
%
\else
+ \ifekd@elidednumbers
+ \luadirect{tex.sprint(ekdosis.numrange(\luastring{\getrefnumber{#1}},
+ \luastring{\getrefnumber{#2}}))}%
+ \else
\LRnum{\getrefnumber{#1}}--%
\LRnum{\getrefnumber{#2}}% issue the nos
+ \fi
\fi%
\else
\LRnum{\getrefnumber{#1}}--%
@@ -3009,8 +5779,14 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\fi
%
\else
+ \ifekd@elidednumbers
+ \luadirect{tex.sprint(ekdosis.numrange(
+ \luastring{\getrefnumber{\luadirect{tex.sprint(ekdosis.getlnlab())}-b}},
+ \luastring{\getrefnumber{\luadirect{tex.sprint(ekdosis.getlnlab())}-e}}))}% issue the nos
+ \else
\LRnum{\getrefnumber{\luadirect{tex.sprint(ekdosis.getlnlab())}-b}}--%
\LRnum{\getrefnumber{\luadirect{tex.sprint(ekdosis.getlnlab())}-e}}% issue the nos
+ \fi
\fi%
\else
\LRnum{\getrefnumber{\luadirect{tex.sprint(ekdosis.getlnlab())}-b}}--%
@@ -3057,6 +5833,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\NewDocumentCommand{\lem}{O{} m}{%
\ekd@isinlemtrue%
\luadirect{ekdosis.dolnlab(\luastringN{#2})}%
+ \null
\bgroup%
\ekvset{lem}{#1}%
\ifekd@mapps%
@@ -3068,6 +5845,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\luadirect{ekdosis.increment_bagunits(\luastringO{\ekdan@type})}%
\def\ekd@munit@delim{%
\luadirect{tex.sprint(ekdosis.getappdelim(\luastringO{\ekdan@type}))}}%
+ \luadirect{tex.sprint(ekdosis.limit_bagunits(\luastringO{\ekdan@type}))}%
\fi%
\ifekdl@nolem\edef\lem@app{%
% \hskip .75em
@@ -3133,8 +5911,8 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\ifdefined\ekdlr@pre%
\space\unexpanded\expandafter{\ekdlr@pre}\space\else\fi
\ltx@ifpackageloaded{babel}%
- {\noexpand\selectlanguage{\languagename}\unexpanded{#2}}{%
- \unexpanded{#2}}%
+ {{\noexpand\selectlanguage{\languagename}\unexpanded{#2}}}{%
+ {\unexpanded{#2}}}%
\ifdefined\ekdlr@post%
\space\unexpanded\expandafter{\ekdlr@post}\space\else\fi
\fi
@@ -3214,8 +5992,8 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\ifdefined\ekdlr@pre%
\space\unexpanded\expandafter{\ekdlr@pre}\space\else\fi
\ltx@ifpackageloaded{babel}%
- {\noexpand\selectlanguage{\languagename}\unexpanded{#2}}{%
- \unexpanded{#2}}%
+ {{\noexpand\selectlanguage{\languagename}\unexpanded{#2}}}{%
+ {\unexpanded{#2}}}%
\ifdefined\ekdlr@post%
\space\unexpanded\expandafter{\ekdlr@post}\space\else\fi
\fi
@@ -3245,6 +6023,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
code labelb = \def\ekdn@labelb{#1},
code labele = \def\ekdn@labele{#1},
store sep = \ekdn@sep,
+ bool nosep = \ifekdn@nosep,
initial type = default,
initial sep = \ekdsep
}
@@ -3258,6 +6037,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% specified; otherwise \pkg{ekdosis} will issue an error message.
% \begin{macrocode}
\NewDocumentCommand{\note@noapp}{O{} +m}{%
+ \null
\bgroup%
\ekvset{note}{#1}%
\stepcounter{ekd@lab}%
@@ -3274,6 +6054,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\luadirect{ekdosis.increment_bagunits(\luastringO{\ekdan@type})}%
\def\ekd@munit@delim{%
\luadirect{tex.sprint(ekdosis.getappdelim(\luastringO{\ekdan@type}))}}%
+ \luadirect{tex.sprint(ekdosis.limit_bagunits(\luastringO{\ekdan@type}))}%
\fi%
\ifdefined\ekdn@labelb%
\luadirect{tex.sprint(ekdosis.setnotelab(\luastringO{\ekdn@labelb}))}%
@@ -3292,7 +6073,9 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\current@ref@arg{\ekdn@labelb}{\ekdn@labele}%\hskip .25em
\ifdefined\ekdn@lem%
{\textdir TRT\unexpanded\expandafter{\ekdn@lem}}%
- \unexpanded\expandafter{\ekdn@sep}\else\fi%
+ \unless\ifekdn@nosep
+ \unexpanded\expandafter{\ekdn@sep}\fi
+ \else\fi%
{\textdir TRT\unexpanded{#2}}}}%
{\edef\note@contents{%
% \hskip .75em
@@ -3308,18 +6091,21 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
{\noexpand\selectlanguage{\languagename}%
\unexpanded\expandafter{\ekdn@lem}}%
{\unexpanded\expandafter{\ekdn@lem}}%
- \unexpanded\expandafter{\ekdn@sep}\else\fi%
+ \unless\ifekdn@nosep
+ \unexpanded\expandafter{\ekdn@sep}\fi
+ \else\fi%
\ltx@ifpackageloaded{babel}%
- {\noexpand\selectlanguage{\languagename}\unexpanded{#2}}{%
- \unexpanded{#2}}}}%
+ {{\noexpand\selectlanguage{\languagename}\unexpanded{#2}}}{%
+ {\unexpanded{#2}}}}}%
\ifekd@mapps%
\unconditional@appin[\ekdan@type]{\note@contents}%
\else%
\unconditional@appin{\note@contents}%
\fi%
\luadirect{ekdosis.setprevnotelab(\luastringO{\ekdn@labelb})}%
- \egroup%
- \subsq@unittrue%
+ \egroup
+ \subsq@unittrue
+ \ignorespaces
}
% \end{macrocode}
% Define keys to be used by the optional argument of \cs{note} when
@@ -3344,7 +6130,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\edef\note@contents{%
\ekvifdefinedNoVal{note}{pre}{}{%
\unexpanded\expandafter{\pre@value}}%
- \unexpanded{#2}%
+ {\unexpanded{#2}}%
\ekvifdefinedNoVal{note}{post}{}{%
\unexpanded\expandafter{\post@value}}%
}%
@@ -3358,7 +6144,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\edef\note@contents{%
\ekvifdefinedNoVal{note}{pre}{}{%
\unexpanded\expandafter{\pre@value}}%
- \unskip\noexpand\parnote{#2}%
+ \unskip\noexpand\parnote{\unexpanded{#2}}%
\ekvifdefinedNoVal{note}{post}{}{%
\unexpanded\expandafter{\post@value}}%
}%
@@ -3453,12 +6239,11 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\luadirect{ekdosis.exporttei(\luastringN{\par #1\par })}\fi}
% \end{macrocode}
% \end{environment}
-% \paragraph{Alignment} What follows isto arrange texts in parallel
+% \paragraph{Alignment} What follows is to arrange texts in parallel
% columns either on single pages or on facing pages.
%
% Define keys to be used by the \env{alignment} environment:---
% \begin{macrocode}
-\newif\ifekd@pagelineation
\ekvdefinekeys{ekd@align}{
store tcols = \tcols@num,
store lcols = \lcols@num,
@@ -3482,12 +6267,12 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
default segmentation = auto
}
% \end{macrocode}
-% \begin{macro}{\SetEkdosisAlignment}
-% \cs{SetEkdosisAlignment}\marg{settings} can be used either in the
+% \begin{macro}{\SetAlignment}
+% \cs{SetAlignment}\marg{settings} can be used either in the
% preamble or at any point of the document to set or modify the
% keys-value settings just defined above.
% \begin{macrocode}
-\NewDocumentCommand{\SetEkdosisAlignment}{m}{
+\NewDocumentCommand{\SetAlignment}{m}{
\ekvset{ekd@align}{#1}
}
% \end{macrocode}
@@ -3533,10 +6318,10 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% right-hand pages. To that effect, it provides by default two new
% environments, \env{edition} and \env{translation}, to be used to
% typeset both texts. (Either whole texts or texts entered by
-% paragraphs alternately.) The optional argument of \env{aligment}
-% accepts the exact same key-value options as \cs{SetEkdosisAlignment}
+% paragraphs alternately.) The optional argument of \env{alignment}
+% accepts the exact same key-value options as \cs{SetAlignment}
% described above. One may contrast these options with those accepted
-% by \cs{SetEkdosisAlignment} as \enquote{local settings}.
+% by \cs{SetAlignment} as \enquote{local settings}.
% \begin{macrocode}
\NewDocumentEnvironment{alignment}{O{}}
{%
@@ -3619,14 +6404,14 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
initial depth = 1
}
% \end{macrocode}
-% \begin{macro}{\ekdfmtdiv}
-% \cs{ekdfmtdiv}\marg{n}\marg{code before}\marg{code after} is
-% used to lay out the heading of the title. It takes three mandatory
-% arguments: \emph{n}, namely the number referring to the particular
-% depth of the division, and then some \LaTeX{} formatting commands
-% to go before and after the heading itself:---
+% \begin{macro}{\FormatDiv}
+% \cs{FormatDiv}\marg{n}\marg{code before}\marg{code
+% after} is used to lay out the heading of the title. It takes three
+% mandatory arguments: \emph{n}, namely the number referring to the
+% particular depth of the division, and then some \LaTeX{} formatting
+% commands to go before and after the heading itself:---
% \begin{macrocode}
-\NewDocumentCommand{\ekdfmtdiv}{m m m}{
+\NewDocumentCommand{\FormatDiv}{m m m}{
\luadirect{ekdosis.fmtdiv(\luastring{#1},
\luastringN{#2},
\luastringN{#3})}
@@ -3634,7 +6419,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \end{macrocode}
% \end{macro}
% \cs{ekd@getfmtdiv} gets the formatting commands that have been
-% stored by \cs{ekdfmtdiv}.
+% stored by \cs{FormatDiv}.
% \begin{macrocode}
\NewDocumentCommand{\ekd@getfmtdiv}{m m}{%
\luadirect{tex.sprint(ekdosis.getfmtdiv(\luastringO{#1},
@@ -3645,7 +6430,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
% \cs{ekddiv}\marg{key-value arguments} is the standard command
% provided by \pkg{ekdosis} to meet the requirements of classical and
% literary texts the divisions of which depend on many different
-% received traditions. It takes one optional argument in which the
+% received traditions. It takes one mandatory argument in which the
% key-value arguments defined above are accepted, and converts the
% divisions into \texttt{TEI} \enquote*{un-numbered} |<div>|
% elements.
@@ -3687,7 +6472,16 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
\item[]
}{\end{list}}
% \end{macrocode}
-%
+% \begin{environment}{ekdpar}
+% When |autopar| is set to |false| by means of \cs{SetTEIxmlExport},
+% \env{ekdpar}\---or any other environment set to be inserted within
+% |<p>| elements\---must be used so that \pkg{ekdosis} can be
+% informed of paragraph boundaries.
+% \begin{macrocode}
+\NewDocumentEnvironment{ekdpar}{}{\par}{\par}
+% \end{macrocode}
+% \end{environment}
+%
% \iffalse
%</package>
% \fi
@@ -3733,10 +6527,35 @@ local endpoem = lpeg.Cs(lnbrk * lpeg.S("*!") * bsqbrackets^-1)
local sections = lpeg.Cs(lpeg.P("book") + lpeg.P("part") + lpeg.P("chapter")
+ lpeg.P("section") + lpeg.P("subsection")
+ lpeg.P("subsubsection"))
-local par = lpeg.P(lpeg.P("\\par") * spce^1)
-local parb = lpeg.P(lpeg.Cs("\\p@rb") * spce^1)
-local para = lpeg.P(lpeg.Cs("\\p@ra") * spce^1)
-
+local par = lpeg.P(lpeg.P("\\par") * spce^0)
+local parb = lpeg.P(lpeg.Cs("\\p@rb") * spce^0)
+local para = lpeg.P(lpeg.Cs("\\p@ra") * spce^0)
+local labelrefcmds = lpeg.Cs(lpeg.P("label")
+ + lpeg.P("linelabel")
+ + lpeg.P("lineref")
+ + lpeg.P("ref")
+ + lpeg.P("pageref")
+ + lpeg.P("vref")
+ + lpeg.P("vpageref"))
+local citecmds = lpeg.Cs(lpeg.P("icite")
+ + lpeg.P("cite")
+ + lpeg.P("Cite")
+ + lpeg.P("cite *")
+ + lpeg.P("parencite")
+ + lpeg.P("Parencite")
+ + lpeg.P("parencite *")
+ + lpeg.P("footcite")
+ + lpeg.P("footcitetext")
+ + lpeg.P("textcite")
+ + lpeg.P("Textcite")
+ + lpeg.P("smartcite")
+ + lpeg.P("Smartcite")
+ + lpeg.P("autocite")
+ + lpeg.P("Autocite")
+ + lpeg.P("autocite *")
+ + lpeg.P("Autocite *")
+)
+--
-- Bind to local variables
local next = next
@@ -3752,6 +6571,16 @@ local function xmlidfound(element)
return false
end
+local function checkxmlid(str)
+ if string.find(str, "^[0-9]")
+ or string.find(str, "[:; ]")
+ then
+ return false
+ else
+ return true
+ end
+end
+
-- Witnesses
listWit = {}
idsRend = {}
@@ -3813,7 +6642,14 @@ function ekdosis.newwitness(id,
then
tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
..id..
- "\" already exists as a xml:id. "
+ "\" already exists as an xml:id. "
+ ..
+ "Please pick another id.}}")
+ elseif not checkxmlid(id)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..id..
+ "\" is not a valid xml:id. \\MessageBreak "
..
"Please pick another id.}}")
else
@@ -3846,7 +6682,14 @@ function ekdosis.newhand(id, witid, siglum, description)
then
tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
..id..
- "\" already exists as a xml:id. "
+ "\" already exists as an xml:id. "
+ ..
+ "Please pick another id.}}")
+ elseif not checkxmlid(id)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..id..
+ "\" is not a valid xml:id. \\MessageBreak "
..
"Please pick another id.}}")
else
@@ -3896,9 +6739,16 @@ function ekdosis.newscholar(id, siglum)
then
tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
..id..
- "\" already exists as a xml:id. "
+ "\" already exists as an xml:id. "
..
"Please pick another id.}}")
+ elseif not checkxmlid(id)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..id..
+ "\" is not a valid xml:id. \\MessageBreak "
+ ..
+ "Please pick another id.}}")
else
table.insert(xmlids, {xmlid = id})
table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end)
@@ -3955,18 +6805,17 @@ local cmdtotags = {
{a="textsf", b="hi", c=" rend=\"sf\""},
{a="arbup", b="hi", c=" rend=\"sup\""},
{a="txarb", b="s", c=" xml:lang=\"arb\""},
+ {a="mbox", b="", c=""},
{a="arb", b="foreign",
c=" xml:lang=\"ar-Latn\" type=\"transliterated\" subtype=\"arabtex\""}
}
local texpatttotags = {
- {a="\\icite%s?%[(.-)%]%[(.-)%]{(.-)}", b="%1 <ref target=\"#%3\">%2</ref>"},
- {a="\\icite%s?%[(.-)%]{(.-)}", b="<ref target=\"#%2\">%1</ref>"},
- {a="\\icite%s?{(.-)}", b="<ptr target=\"#%1\"/>"},
- {a="\\linelabel%s?{(.-)}", b="<anchor xml:id=\"%1\"/>"},
- {a="\\label%s?{(.-)}", b="<anchor xml:id=\"%1\"/>"},
- {a="\\v?pageref%s?{(.-)}", b="<ptr target=\"#%1\"/>"},
- {a="\\v?ref%s?{(.-)}", b="<ptr target=\"#%1\"/>"}
+ {a="\\pagebreak%s+%[[1-4]%]", b=""},
+ {a="\\pagebreak%s+", b=""},
+ {a="\\altrfont%s+", b=""},
+ {a="\\LR%s+{(.-)}", b="%1"},
+ {a="\\RL%s+{(.-)}", b="%1"}
}
local envtotags = {
@@ -3975,6 +6824,8 @@ local envtotags = {
{a="quotation", b="quote", c=""},
{a="ekdverse", b="lg", c=""},
{a="txarabtr", b="p", c=" xml:lang=\"ar-Latn\" type=\"transliterated\""},
+ {a="quoting", b="quote", c=""},
+ {a="ekdpar", b="p", c=""},
{a="txarab", b="p", c=" xml:lang=\"arb\""},
{a="center", b="p", c=" rend=\"align(center)\""},
{a="verse", b="lg", c=""},
@@ -4229,6 +7080,70 @@ local function texpatttotei(str)
return str
end
+local function icitetotei(str)
+ str = gsub(str, lpeg.P("\\")
+ * citecmds
+ * spcenc^-1
+ * bsqbrackets
+ * bsqbrackets
+ * bcbraces
+ * bsqbrackets^-1,
+ function(cmd, pre, post, body, opt)
+ pre = string.sub(pre, 2, -2)
+ post = string.sub(post, 2, -2)
+ body = string.sub(body, 2, -2)
+ if not checkxmlid(body)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..body..
+ "\" is not a valid xml:id. \\MessageBreak "
+ ..
+ "Please pick another id.}}")
+ else
+ end
+ return string.format("%s <ref target=\"#%s\">%s</ref>", pre, body, post)
+ end)
+ str = gsub(str, lpeg.P("\\")
+ * citecmds
+ * spcenc^-1
+ * bsqbrackets
+ * bcbraces
+ * bsqbrackets^-1,
+ function(cmd, post, body, opt)
+ post = string.sub(post, 2, -2)
+ body = string.sub(body, 2, -2)
+ if not checkxmlid(body)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..body..
+ "\" is not a valid xml:id. \\MessageBreak "
+ ..
+ "Please pick another id.}}")
+ else
+ end
+ return string.format("<ref target=\"#%s\">%s</ref>", body, post)
+ end)
+ str = gsub(str, lpeg.P("\\")
+ * citecmds
+ * spcenc^-1
+ * bcbraces
+ * bsqbrackets^-1,
+ function(cmd, body, opt)
+ body = string.sub(body, 2, -2)
+ if not checkxmlid(body)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..body..
+ "\" is not a valid xml:id. \\MessageBreak "
+ ..
+ "Please pick another id.}}")
+ else
+ end
+ return string.format("<ptr target=\"#%s\"/>", body)
+ end)
+ return str
+end
+
local function cmdtotei(str)
for i = 1,#cmdtotags
do
@@ -4264,6 +7179,25 @@ local function cmdtotei(str)
return string.format("<ref target=\"%s\">%s</ref>",
teisiglum, printsiglum)
end)
+ str = gsub(str, lpeg.P("\\") * labelrefcmds * spcenc^-1 * bcbraces,
+ function(cmd, body)
+ body = string.sub(body, 2, -2)
+ if not checkxmlid(body)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..body..
+ "\" is not a valid xml:id. \\MessageBreak "
+ ..
+ "Please pick another id.}}")
+ else
+ end
+ if string.find(cmd, "label")
+ then
+ return string.format("<anchor xml:id=\"%s\"/>", body)
+ else
+ return string.format("<ptr target=\"#%s\"/>", body)
+ end
+ end)
str = string.gsub(str, "\\(%a+)%s?%*?(%b[])(%b{})",
function(cmd, opt, body)
body = string.sub(body, 2, -2)
@@ -4280,19 +7214,36 @@ local function cmdtotei(str)
return str
end
+local teiautopar = true
+
+function ekdosis.setteiautopar(choice)
+ if choice == "yes"
+ then
+ teiautopar = true
+ else
+ teiautopar = false
+ end
+ return true
+end
+
local function partotei(str)
- str = gsub(str, lpeg.P(lpeg.P("\\par") * spcenc^1)^1, "\\par ")
- str = gsub(str, ((para + parb) * par^-1)^2, "\\p@r ")
- str = string.gsub(str, "\\p@ra%s+", "<p>")
- str = string.gsub(str, "\\p@rb%s+", "</p>")
- str = string.gsub(str, "\\p@r%s+", "")
- str = string.gsub(str, "%s?\\par%s?", "<p>", 1)
- str = string.gsub(str, "(%<p%>)(%s-)(%<%/?div%d?)", "%3")
- str = string.gsub(str, "%s?\\par%s?", "</p><p>")
- str = string.gsub(str, "<p>%s?</p>", "")
- str = string.gsub(str, "(%<p%>)%s?(%</div%>)$", "%2")
- str = string.gsub(str, "(%<p%>)%s?$", "")
- str = string.gsub(str, "(<p>)%s?(<div.->)", "%2%1")
+ if teiautopar
+ then
+ str = gsub(str, lpeg.P(lpeg.P("\\par") * spcenc^1)^1, "\\par ")
+ str = gsub(str, ((para + parb) * par^-1)^2, "\\p@r ")
+ str = string.gsub(str, "\\p@ra%s+", "<p>")
+ str = string.gsub(str, "\\p@rb%s+", "</p>")
+ str = string.gsub(str, "\\p@r%s+", "")
+ str = string.gsub(str, "%s?\\par%s?", "<p>", 1)
+ str = string.gsub(str, "(%<p%>)(%s-)(%<%/?div%d?)", "%3")
+ str = string.gsub(str, "%s?\\par%s?", "</p><p>")
+ str = string.gsub(str, "<p>%s?</p>", "")
+ str = string.gsub(str, "(%<p%>)%s?(%</div%>)$", "%2")
+ str = string.gsub(str, "(%<p%>)%s?$", "")
+ str = string.gsub(str, "(<p>)%s?(<div.->)", "%2%1")
+ else
+ str = gsub(str, par + para + parb, "")
+ end
return str
end
@@ -4597,6 +7548,7 @@ local function textotei(str)
str = envtotei(str)
str = ekddivs_totei(str)
str = section_totei(str)
+ str = icitetotei(str)
str = cmdtotei(str)
str = self_close_tags(str)
str = partotei(str)
@@ -4855,7 +7807,7 @@ function ekdosis.newalignment(str)
then
newalignment = false
cur_alignment = "-"
- cur_alignment_patt = "-"
+ cur_alignment_patt = "%-"
end
return true
end
@@ -4943,24 +7895,6 @@ end
local environment_div = {}
-function ekdosis.newscholar(id, siglum)
- if xmlidfound(id)
- then
- tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
- ..id..
- "\" already exists as a xml:id. "
- ..
- "Please pick another id.}}")
- else
- table.insert(xmlids, {xmlid = id})
- table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end)
- table.insert(idsRend, {xmlid = id, abbr = siglum})
- table.sort(idsRend, function(a ,b) return(#a.xmlid > #b.xmlid) end)
- end
- return true
-end
-
-
local function build_envdiv(str)
if not environment_div[str]
then
@@ -4973,10 +7907,17 @@ local function build_envdiv(str)
then
tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
..div..
- "\" already exists as a xml:id. "
+ "\" already exists as an xml:id. "
..
"ekdosis has generated some random id.}}")
return "div-"..math.random(1000,9999)
+ elseif not checkxmlid(div)
+ then
+ tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
+ ..div..
+ "\" is not a valid xml:id. \\MessageBreak "
+ ..
+ "Please pick another id.}}")
else
table.insert(xmlids, {xmlid = div})
table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end)
@@ -5075,7 +8016,8 @@ function ekdosis.newapparatus(teitype,
appdelim,
appsep,
appbhook,
- appehook)
+ appehook,
+ applimit)
if isintable(apparatuses, teitype)
then
tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\""
@@ -5088,7 +8030,8 @@ function ekdosis.newapparatus(teitype,
delim = appdelim,
sep = appsep,
bhook = appbhook,
- ehook = appehook})
+ ehook = appehook,
+ limit = applimit})
end
bagunits[teitype] = 1
return true
@@ -5109,6 +8052,38 @@ function ekdosis.get_bagunits(teitype)
return bagunits[teitype]
end
+local function getapplimit(str)
+ for i = 1,#apparatuses
+ do
+ if apparatuses[i].a == str then
+ limitfound = apparatuses[i].limit
+ break
+ end
+ end
+ if tonumber(limitfound) ~= nil
+ then
+ if tonumber(limitfound) < 10
+ then
+ return 0
+ else
+ return limitfound
+ end
+ else
+ return 0
+ end
+end
+
+function ekdosis.limit_bagunits(teitype)
+ local limit = tonumber(getapplimit(teitype))
+ if limit >= 10 and bagunits[teitype] > limit
+ then
+ bagunits[teitype] = 2
+ return "\\pagebreak"
+ else
+ return ""
+ end
+end
+
function ekdosis.increment_bagunits(teitype)
bagunits[teitype] = (bagunits[teitype] or 0) + 1
end
@@ -5149,7 +8124,8 @@ function ekdosis.appout()
local output = {}
if next(apparatuses) == nil then
-- table.insert(output, "BEGIN")
- table.insert(output, "\\noindent\\csname ekd@default@rule\\endcsname\\NLS{}")
+ table.insert(output, "\\noindent\\csname ekd@default@rule\\endcsname\\NLS")
+ table.insert(output, "\\csname ekd@begin@apparatus\\endcsname\\ignorespaces")
-- table.insert(output, "\\noindent ")
for i in string.gmatch(t,
"<"..cur_abs_pg
@@ -5166,8 +8142,8 @@ function ekdosis.appout()
local n = 1
while apparatuses[n]
do
- if string.match(t, "<"..cur_abs_pg..
- cur_alignment_patt
+ if string.match(t, "<"..cur_abs_pg
+ ..cur_alignment_patt
..curcol.."%-"..n..">.-</"
..cur_abs_pg
..cur_alignment_patt
@@ -5280,10 +8256,54 @@ function ekdosis.testapparatus()
if next(apparatuses) ~= nil then
reset_bagunits()
end
+ newalignment = false
return "\\booltrue{do@app}"
end
end
+local function get_ln_prefix(x, y)
+ for index = 1, string.len(x)
+ do
+ if string.sub(x, index, index) ~= string.sub(y, index, index)
+ then
+ return string.sub(x, 1, index - 1)
+ end
+ end
+end
+
+function ekdosis.numrange(x, y)
+ xstr = tostring(x)
+ ystr = tostring(y)
+ if x == y -- which will never apply
+ then
+ return "\\LRnum{" .. xstr .. "}"
+ elseif string.len(xstr) ~= string.len(ystr)
+ then
+ return "\\LRnum{" .. xstr .. "}--\\LRnum{" .. ystr .. "}"
+ else
+ common = get_ln_prefix(xstr, ystr)
+ if string.len(common) == 0
+ then
+ return "\\LRnum{" .. xstr .. "}--\\LRnum{" .. ystr .. "}"
+ elseif string.sub(xstr, -2, -2) == "1"
+ then
+ return "\\LRnum{"
+ .. string.sub(common, 1, -2)
+ .. string.sub(xstr, string.len(common), -1)
+ .. "}--\\LRnum{"
+ .. string.sub(ystr, string.len(common), -1)
+ .. "}"
+ else
+ return "\\LRnum{"
+ .. string.sub(common, 1, -1)
+ .. string.sub(xstr, string.len(common) + 1, -1)
+ .. "}--\\LRnum{"
+ .. string.sub(ystr, string.len(common) + 1, -1)
+ .. "}"
+ end
+ end
+end
+
local lnlabs = {}
local lnlab_salt = 0
local current_lnlab = nil
@@ -5374,15 +8394,5 @@ end
% \iffalse
%</lua>
% \fi
-%
-% \section{Sample: C. J. Caesar, \emph{Gallic War},
-% VI, XIII.1}
-% \label{sec:caesar-gw-6-1-13}
-% \subsection{\texttt{.tex} Source File}
-% \label{sec:caesar-gw-tex}
-% \inputminted[linenos=false]{latex}{samples/Caesar_BG-6-13-1.tex}
-% \subsection{\texttt{TEI xml} Output}
-% \label{sec:caesar-gw-tei}
-% \inputminted[linenos=false]{xml}{samples/Caesar_BG-6-13-1-tei.xml}
%
\endinput
diff --git a/macros/luatex/latex/ekdosis/ekdosis.el b/macros/luatex/latex/ekdosis/ekdosis.el
new file mode 100644
index 0000000000..3d1547b4c8
--- /dev/null
+++ b/macros/luatex/latex/ekdosis/ekdosis.el
@@ -0,0 +1,150 @@
+;;; ekdosis.el --- AUCTeX style for `ekdosis.sty'
+;; This file is part of the `ekdosis' package
+
+;; ekdosis -- TEI xml compliant critical editions
+;; Copyright (C) 2020 Robert Alessi
+
+;; Please send error reports and suggestions for improvements to Robert
+;; Alessi <alessi@robertalessi.net>
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see
+;; <http://www.gnu.org/licenses/>.
+
+(defvar LaTeX-ekdosis-preamble-options
+ '(("parnotes" ("true" "false" "roman"))
+ ("teiexport" ("true" "false" "tidy"))
+ ("layout" ("float" "footins")))
+ "Package options for the ekdosis package.")
+
+(defun LaTeX-ekdosis-package-options ()
+ "Prompt for package options for ekdosis package."
+ (TeX-read-key-val t LaTeX-ekdosis-preamble-options))
+
+(defun LaTeX-ekdosis-long-key-val (optional arg)
+ (let ((crm-local-completion-map
+ (remove (assoc 32 crm-local-completion-map)
+ crm-local-completion-map))
+ (minibuffer-local-completion-map
+ (remove (assoc 32 minibuffer-local-completion-map)
+ minibuffer-local-completion-map)))
+ (TeX-argument-insert
+ (TeX-read-key-val optional arg)
+ optional)))
+
+(defvar LaTeX-ekdosis-declarewitness-options
+ '(("settlement")
+ ("repository")
+ ("msName")
+ ("origDate")
+ ("idno"))
+ "List of local options for DeclareWitness macro.")
+
+(defvar LaTeX-ekdosis-app-options
+ '(("type"))
+ "Local option for app|note macro.")
+
+(defvar LaTeX-ekdosis-lem-options
+ '(("wit")
+ ("alt")
+ ("pre")
+ ("post")
+ ("prewit")
+ ("postwit")
+ ("sep")
+ ("nolem" ("true" "false"))
+ ("nosep" ("true" "false")))
+ "Local options for lem macro")
+
+(defvar LaTeX-ekdosis-rdg-options
+ '(("wit")
+ ("alt")
+ ("pre")
+ ("post")
+ ("prewit")
+ ("postwit")
+ ("nordg" ("true" "false")))
+ "Local options for rdg macro.")
+
+(defvar LaTeX-ekdosis-note-options
+ '(("type")
+ ("lem")
+ ("labelb")
+ ("labele")
+ ("sep")
+ ("pre")
+ ("post"))
+ "Local options for note macro.")
+
+(defvar LaTeX-ekdosis-note-star-options
+ '(("pre")
+ ("post"))
+ "Local options for note* macro.")
+
+(defvar LaTeX-ekdosis-alignment-key-val-options
+ '(("tcols")
+ ("lcols")
+ ("texts")
+ ("apparatus")
+ ("flush" ("true" "false"))
+ ("paired" ("true" "false"))
+ ("pagelineation" ("true" "false")))
+ "Local options for alignment env.")
+
+(TeX-add-style-hook
+ "ekdosis"
+ (lambda ()
+ ;; Folding features:
+ (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
+ '("{1}" ("app"))
+ t)
+ (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
+ '("{7}||{6}||{5}||{4}||{3}||{2}||{1}" ("lem"))
+ t)
+ (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
+ '("[r]" ("rdg"))
+ t)
+ (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
+ '("[n]" ("note"))
+ t)
+ (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
+ '("[l]" ("linelabel"))
+ t)
+ ;; This package relies on lualatex, so check for it:
+ (TeX-check-engine-add-engines 'luatex)
+ (TeX-add-symbols
+ '("DeclareWitness" "xml:id" "rendition" "description"
+ [ LaTeX-ekdosis-long-key-val LaTeX-ekdosis-declarewitness-options ]
+ 0)
+ '("app" [ TeX-arg-key-val LaTeX-ekdosis-app-options ]
+ t)
+ '("lem" [ LaTeX-ekdosis-long-key-val LaTeX-ekdosis-lem-options ]
+ t)
+ '("rdg" [ LaTeX-ekdosis-long-key-val LaTeX-ekdosis-rdg-options ]
+ t)
+ '("note" [ LaTeX-ekdosis-long-key-val LaTeX-ekdosis-note-options ]
+ t)
+ '("note*" [ LaTeX-ekdosis-long-key-val LaTeX-ekdosis-note-star-options ]
+ t)
+ '("SetEkdosisAlignment"
+ (TeX-arg-key-val LaTeX-ekdosis-alignment-key-val-options))
+ )
+ (LaTeX-add-environments
+ "ekdosis"
+ '("alignment" LaTeX-env-args
+ [ TeX-arg-key-val LaTeX-ekdosis-alignment-key-val-options ]
+ ))
+ )
+ LaTeX-dialect)
+
+;;; ekdosis.el ends here
diff --git a/macros/luatex/latex/ekdosis/ekdosis.pdf b/macros/luatex/latex/ekdosis/ekdosis.pdf
index ef69e146fa..a13dd5b571 100644
--- a/macros/luatex/latex/ekdosis/ekdosis.pdf
+++ b/macros/luatex/latex/ekdosis/ekdosis.pdf
Binary files differ
diff --git a/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml b/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
index b9e4f9a23a..ef8b7c150d 100644
--- a/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
+++ b/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
@@ -30,9 +30,7 @@
<settlement>Amsterdam</settlement>
<institution>University Library</institution>
<idno>81</idno>
- <msName>
- <emph>Bongarsianus</emph>
- </msName>
+ <msName>Bongarsianus</msName>
</msIdentifier>
<physDesc>
<handDesc hands="1">
diff --git a/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf b/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf
index 4f80ccc137..3e394efb86 100644
--- a/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf
+++ b/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf
Binary files differ
diff --git a/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex b/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex
index 8002aec9e2..2b1b442a97 100644
--- a/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex
+++ b/macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex
@@ -13,9 +13,9 @@
delim=\hskip0.75em,
ehook=.]
-\ekdfmtdiv{2}{}{.}
+\FormatDiv{2}{}{.}
-\SetEkdosisAlignment{
+\SetAlignment{
tcols=3,
lcols=1,
texts=latin[xml:lang="la"];
@@ -29,7 +29,7 @@
\AtBeginEnvironment{french}{\sloppy\selectlanguage{french}}
\DeclareWitness{A}{A}{\emph{Bongarsianus} 81}[
- msName=\emph{Bongarsianus},
+ msName=Bongarsianus,
settlement=Amsterdam,
idno=81,
institution=University Library,
diff --git a/macros/luatex/latex/ekdosis/samples/Makefile b/macros/luatex/latex/ekdosis/samples/Makefile
new file mode 100644
index 0000000000..8cb7a982cd
--- /dev/null
+++ b/macros/luatex/latex/ekdosis/samples/Makefile
@@ -0,0 +1,33 @@
+SHELL = bash
+CMP = lualatex-dev
+PWD = $(shell pwd)
+
+exts := .tex .pdf -tei.xml
+texsamples := $(basename $(wildcard $(PWD)/*.tex))
+findopts := $(foreach ext,$(exts),-or -iname "*$(ext)")
+
+define dosamples
+ $(CMP) --shell-escape $1 >/dev/null
+ $(CMP) --shell-escape $1 >/dev/null
+ $(CMP) --shell-escape $1 >/dev/null
+ $(CMP) --shell-escape $1 >/dev/null
+endef
+
+all: test
+ cp ../ekdosis.{lua,sty} .
+ $(foreach file,$(texsamples), $(call dosamples, $(file)))
+ rm -rf auto
+ find -iname "*~" -or -iname "*_out*.tex" | xargs rm -rf
+ find ./* -type f -iname "Makefile" $(findopts) > ls-R
+ rsync -aPr --files-from=ls-R . .backup
+ rm -rf *
+ cp -p -r .backup/* .
+ rm -rf .backup
+
+test:
+ if [ ! -e ../ekdosis.sty ] || [ ! -e ../ekdosis.lua ] ;\
+ then echo "This Makefile cannot be invoked but recursively. Aborting." && exit 1 ;\
+ fi
+
+.SILENT: test
+.PHONY: all
diff --git a/macros/luatex/latex/luaprogtable/README.md b/macros/luatex/latex/luaprogtable/README.md
new file mode 100644
index 0000000000..fb2827a679
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/README.md
@@ -0,0 +1,13 @@
+# The `luaprogtable` package: programmatic table interface for `LuaLaTeX`
+
+The LaTeX3 project provides LaTeX users with a handful of macros to interpret and manipulate various types of objects (e.g. integers, floating point numbers, token lists, sequences, ...) However, there is few existing function that allows users to interact with tables in a programmatic fashion. For example, if a user needs to modify the content of the cell on 20th row and 8th column, he/she needs to navigate the correct cell location among a pile of `&`'s and `\\`'s, which is very inefficient and error-prone. It is very difficult for someone to modify a cell based on the content within it using LaTeX macros.
+
+`luaprogtable` aims to tackle these problems by providing a series of *programmatic* interface for tables. The `\LPTGetCellData` and `\LPTSetCell` commands allow one to access and alter the content of a single cell. The `lptview` environment allows one to modify a small sub-view of a larger table.
+
+**For more information, please refer to the [documentation](./luaprogtable-doc.pdf)**.
+
+
+
+## License
+
+This package adopts MIT license. \ No newline at end of file
diff --git a/macros/luatex/latex/luaprogtable/luaprogtable-doc.pdf b/macros/luatex/latex/luaprogtable/luaprogtable-doc.pdf
new file mode 100644
index 0000000000..9839f60795
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/luaprogtable-doc.pdf
Binary files differ
diff --git a/macros/luatex/latex/luaprogtable/luaprogtable-doc.tex b/macros/luatex/latex/luaprogtable/luaprogtable-doc.tex
new file mode 100644
index 0000000000..6c072d5cfe
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/luaprogtable-doc.tex
@@ -0,0 +1,616 @@
+\documentclass{l3doc}
+\usepackage[T1]{fontenc}
+\usepackage[english]{babel}
+\usepackage{metalogo}
+\usepackage{tikz}
+\usepackage[normalem]{ulem}
+\usepackage{tcolorbox}
+\usepackage{booktabs}
+\usepackage{multirow}
+\usepackage{colortbl}
+\usepackage{scrextend}
+\usepackage{graphicx}
+\usepackage{luaprogtable}
+
+\tcbuselibrary{breakable,listings, skins}
+
+\newcommand{\thispkg}{\pkg{luaprogtable}}
+
+\title{The \href{https://github.com/xziyue/luaprogtable}{\thispkg}\ package: programmatic table interface for \LuaLaTeX}
+\author{\href{https://www.alanshawn.com}{Ziyue ``Alan'' Xiang}\\
+{\scriptsize\ttfamily ziyue.alan.xiang@gmail.com}}
+\date{\today}
+
+\NewDocumentEnvironment{optiondetail}{m}{%
+\par\bigskip\noindent \textbf{Description of #1} \medskip%
+}{\bigskip}
+
+\NewDocumentEnvironment{authornote}{}{
+\paragraph{Author's note}
+}{\medskip}
+
+\ExplSyntaxOn
+
+\dim_new:N \g_enum_indent_dim
+
+\NewDocumentEnvironment{optionitem}{mm}{
+\par\noindent\texttt{#1~=~#2}\smallskip
+\dim_gset:Nn \g_enum_indent_dim {\l__codedoc_trial_width_dim}
+\begin{addmargin}[2em]{0em}
+}{\end{addmargin}\medskip}
+
+\newlist{optionlst}{enumerate}{10}
+\setlist[optionlst]{label={}, font=\ttfamily, left=\g_enum_indent_dim}
+
+\newcommand{\optiondf}[1]{\uline{#1}}
+
+\ExplSyntaxOff
+
+\newtcblisting{tablesample}{enhanced jigsaw, breakable, colback=white, colframe=black!20}
+
+
+\begin{document}
+
+\pagenumbering{Roman}
+
+\maketitle
+\tableofcontents
+
+\clearpage
+
+\pagenumbering{arabic}
+
+
+\begin{documentation}
+
+\section{Introduction}
+
+The \LaTeX3 project provides \LaTeX\ users with a handful of macros to interpret and manipulate various types of objects (e.g. integers, floating point numbers, token lists, sequences, \ldots) However, there is few existing function that allows users to interact with tables in a programmatic fashion. For example, if a user needs to modify the content of the cell on 20\textsuperscript{th} row and 8\textsuperscript{th} column, he/she needs to navigate the correct cell location among a pile of |&|'s and |\\|'s, which is very inefficient and error-prone. It is very difficult for someone to modify a cell based on the content within it using \LaTeX\ macros.
+
+\thispkg\ aims to tackle these problems by providing a series of \emph{programmatic} interface for tables. The \cs{LPTGetCellData} and \cs{LPTSetCell} commands allow one to access and alter the content of a single cell. The \env{lptview} environment allows one to modify a small sub-view of a larger table.
+
+\section{Basic Usage}
+
+\subsection{Concepts}
+
+\begin{itemize}
+\item Coordinate system
+
+This package uses a 1-indexed row-column-order coordinate system.
+
+\begin{center}
+ \ExplSyntaxOn
+ \int_new:N \l_tmpc_int
+
+ \begin{tikzpicture}
+ \int_set:Nn \l_tmpa_int {1}
+
+ \int_do_while:nNnn { \l_tmpa_int } < { 5 } {
+ \int_set:Nn \l_tmpb_int {0}
+ \int_set:Nn \l_tmpc_int { \l_tmpa_int }
+ \int_do_while:nNnn {\l_tmpb_int} < {\l_tmpa_int} {
+ \node[minimum~width=1.5cm,
+ minimum~height=0.6cm,
+ outer~sep=0cm, draw=black] at
+ (\fp_eval:n {1.5 * \l_tmpb_int}cm, \fp_eval:n {0.6 * \l_tmpa_int }cm)
+ {\small (\int_eval:n {5 - \l_tmpa_int},~ \int_eval:n {\l_tmpb_int + 1}) };
+ \int_incr:N \l_tmpb_int
+ }
+ \int_incr:N \l_tmpa_int
+ }
+ \end{tikzpicture}
+ \ExplSyntaxOff
+\end{center}
+
+\item \hypertarget{index-expr}{Index expressions}
+
+This package adopts a \emph{Pythonic} indexing convention: each \emph{component} is delimited by `|,|'; within each component, a \emph{range} is separated by a colon (`|:|'). For example, the expression |1,2,3:5| has three components, where the first and second components contain a single index 1, 2, respectively; the third component holds the range $[3, 5]$.
+
+To comply with \LaTeX\ conventions, both ends of a range are \emph{inclusive}. Therefore, the range |3:5| is made up of three indices, namely 3, 4 and 5. Negative indices indicate reverse access. For example, |-1| refers to the last element; the range |3:-1| contains all indices between 3 and the last element (both ends included).
+
+
+\item \hypertarget{view-expr}{View expressions}
+
+In \LaTeX , tables are usually constructed with `|&|' and `|\\|'. However, it is very difficult to write a simple parser for this syntax, because these special symbols can appear in other environments with different meanings. For simplicity, \thispkg\ builds table using \emph{view expressions}. In view expressions, each column is enclosed with braces (|{}|); rows are broken with |\\|. For example, the view expression on the right is equivalent to traditional \LaTeX\ table notation on the left. Note that \textbf{one cannot abbreviate outermost braces in view expressions}.
+
+\begin{center}
+\begin{BVerbatim}[gobble=0]
+a & b & c & d \\
+e & f & g & h \\
+i & j & k & l
+\end{BVerbatim}
+\hspace{1cm}
+\begin{BVerbatim}[gobble=0]
+{a} {b} {c} {d} \\
+{e} {f} {g} {h} \\
+{i} {j} {k} {l}
+\end{BVerbatim}
+\end{center}
+
+Sometimes table cells can span across multiple rows/columns. Because \thispkg\ cannot parse \LaTeX\ content, one needs to specify the shape of the cell explicitly for these scenarios. The shape of a cell can be altered by adding |[]| after the closing brace. If a cell spans $n$ columns, one can type |[-n]|; if a cell spans $n$ rows, one can type \verb`[|n]`. For example, view expression (2) is equivalent to traditional \LaTeX\ table (1).
+
+\begin{enumerate}[label=(\arabic*)]
+\item
+\begin{BVerbatim}[baseline=t, gobble=0]
+\multirow{3}{*}{a} & b & c & d \\
+ & \multicolumn{3}{c}{e} \\
+ & f & g & h
+\end{BVerbatim}
+
+
+\item
+\begin{BVerbatim}[baseline=t, gobble=0]
+{\multirow{3}{*}{a}}[|3] {b} {c} {d} \\
+ {\multicolumn{3}{c}{e}}[-3] \\
+ {f} {g} {h}
+\end{BVerbatim}
+
+\end{enumerate}
+
+
+\end{itemize}
+
+\subsection{Creating a new table}
+
+% \LPTNewTable{table1}{5}{|c|c|c|c|c|}[nrows=5, input method=file]
+\begin{function}{\LPTNewTable}
+ \begin{syntax}
+ \cs{LPTNewTable} \Arg{table name} \Arg{num cols} \Arg{table preamble} \oarg{table options}
+ \end{syntax}
+
+ Creates a new table named after \meta{table name}. The name of the new table must not be the same as existing ones. The number of columns specified in \meta{num cols} needs to match \meta{table preamble} for the table to work correctly. In general, \meta{table name} should not contain comma and back slash. Starting and trailing white spaces in \meta{table name} will be ignored.
+
+ \begin{optiondetail}{\meta{table options}}
+ \begin{optionitem}{backend}{\optiondf{\{tabular\}}}
+ Specifies the table environment to be used for this table. Apart from |tabular|, one can also use |longtable|, |tabu| and so on. However, the corresponding package must be loaded manually.
+ \end{optionitem}
+ \begin{optionitem}{default before line}{\optiondf{\{\}}}
+ Specifies the default line style before each row.
+ \end{optionitem}
+ \begin{optionitem}{default after line}{\optiondf{\{\}}}
+ Specifies the default line style after each row.
+ \end{optionitem}
+ \begin{optionitem}{default after spacing}{\optiondf{\{\}}}
+ Specifies the default additional spacing after each row. This is achieved by appending |[<dim expr>]| to each row.
+ \end{optionitem}
+ \begin{optionitem}{input method}{file,\optiondf{stringbuffer}}
+ Specifies how \LaTeX\ will read the table source generated by \thispkg.
+ \begin{optionlst}
+ \item[file] The constructed table source will be saved to file system as:
+ \begin{verbatim}
+ \jobname_<table name>.table
+ \end{verbatim}
+
+ It is then read into \LaTeX\ by |\input| macro. This is ideal for debug purposes because the source is visible to the user.
+ \item[stringbuffer] The constructed table source will be fed into \LaTeX\ directly, without the need of file system operations. On \LaTeX\ side, this is still achieved by calling |\input|. However, the corresponding file callback functions on Lua side are changed, which allows \LaTeX\ to read from Lua string buffers directly.
+ \end{optionlst}
+ \end{optionitem}
+ \begin{optionitem}{nrows}{\optiondf{\{0\}}}
+ Specifies the number of rows in the table.
+ \end{optionitem}
+ \end{optiondetail}
+
+\end{function}
+
+\subsection{Selecting current table}
+
+\begin{function}{\LPTSetCurrentTable}
+ \begin{syntax}
+ \cs{LPTSetCurrentTable} \Arg{table name}
+ \end{syntax}
+
+ For many subsequent commands, there is no need to specify \meta{table name} repeatedly: they fetch this information from a global variable. This macro sets the global variable for current table.
+\end{function}
+
+\begin{function}{\LPTGetCurrentTable}
+ \begin{syntax}
+ \cs{LPTGetCurrentTable}
+ \end{syntax}
+
+ Get the Lua-escaped name of current table.
+\end{function}
+
+\subsection{Modifying table rows}
+
+\begin{function}{\LPTAddRow}
+
+ \begin{syntax}
+ \cs{LPTAddRow} \oarg{row options}
+ \end{syntax}
+
+ This command appends one more row to the current table. If an option is not specified in \meta{row options}, the default value is taken from \meta{table options} of the table.
+
+ \begin{optiondetail}{\meta{row options}}
+ \begin{optionitem}{before line}{\optiondf{\{\}}}
+ Specifies the line before this row.
+ \end{optionitem}
+ \begin{optionitem}{after line}{\optiondf{\{\}}}
+ Specifies the line after this row.
+ \end{optionitem}
+ \begin{optionitem}{after spacing}{\optiondf{\{\}}}
+ Specifies the extra spacing after this row.
+ \end{optionitem}
+ \end{optiondetail}
+
+\end{function}
+
+
+\begin{function}{\LPTSetRowProp}
+
+ \begin{syntax}
+ \cs{LPTSetRowProp} \Arg{index expr} \Arg{row options}
+ \end{syntax}
+
+ This command modifies the properties of rows specified in \meta{index expr}. In this case, \meta{index expr} can point to multiple rows. For example, the index expression |:3,4,6| will trigger the modification of 5 rows, namely row 1, 2, 3, 4 and 6.
+
+ \begin{optiondetail}{\meta{row options}}
+ \begin{optionitem}{before line}{\optiondf{\{\}}}
+ Specifies the line before this row.
+ \end{optionitem}
+ \begin{optionitem}{after line}{\optiondf{\{\}}}
+ Specifies the line after this row.
+ \end{optionitem}
+ \begin{optionitem}{after spacing}{\optiondf{\{\}}}
+ Specifies the extra spacing after this row.
+ \end{optionitem}
+ \end{optiondetail}
+
+\end{function}
+
+\subsection{Modifying table contents}
+
+\begin{environment}{lptview}
+
+\begin{syntax}
+|\begin{lptview}| \Arg{index expr}
+\Arg{view expr}
+|\end{lptview}|
+\end{syntax}
+
+This environment creates a sub-view of current table. The sub-view region is specified by \meta{index expr}, and the content of this sub-view is specified by \meta{view expr}. The index expression should always consist of two components, where the first defines the range of rows and the second defines the range of columns.
+\end{environment}
+
+
+\begin{environment}{lptfill}
+
+\begin{syntax}
+|\begin{lptfill}| \Arg{index expr}
+\Arg{content}
+|\end{lptfill}|
+\end{syntax}
+
+This environment fills table region specified by \meta{index expr} with \meta{content}. When \meta{index expr} is empty, the entire table is filled. Even when \meta{index expr} is empty, the braces surrounding it cannot be abbreviated.
+
+\end{environment}
+
+\subsection{Using table source}
+
+\begin{function}{\LPTUseTable}
+
+\begin{syntax}
+\cs{LPTUseTable}
+\end{syntax}
+
+Reads the source of current table into input stream.
+
+\end{function}
+
+\subsection{Deleting existing tables}
+
+\begin{function}{\LPTDeleteTable}
+
+\begin{syntax}
+\cs{LPTDeleteTable} \Arg{table name}
+\end{syntax}
+
+Remove a table from Lua storage to save memory.
+
+\end{function}
+
+\section{Advanced Usage}
+
+\subsection{Internal design}
+
+In Lua, each cell is a \emph{class} with three attributes: |data|, |shape| and |parent|. Apparently, |data| holds the content of the cell. By default, the |shape| of all cells is |{1,1}|; the parent of all cells is |nil|. When there is a cell that spans multiple rows/columns, the top-left cell will be considered \emph{parent cell}, and the remaining cells in the region would have |shape| set to |nil| and |parent| set to the coordinates of parent cell.
+
+\subsection{Programmatic interface}
+
+The following macros allow one to access and modify table cells programmatically.
+
+\begin{function}{\LPTSetCell}
+
+\begin{syntax}
+\cs{LPTSetCell} \Arg{index expr} \oarg{shape} \Arg{content}
+\end{syntax}
+
+Set the content of the cell specified in \meta{index expr} to \meta{content}. The index expression should always consist of two components, where each component only points to one integer. The shape is given by |<row span>, <column span>|. By default, the shape of a cell is |1,1|. When a cell occupies more then one cell space, the shape of its children cells will be set to |nil| automatically.
+
+\begin{authornote}
+\cs{LPTSetCell} is not completely identical to \env{lptview}. More concretely, \env{lptview} and \env{lptfill} override \LuaLaTeX 's |process_input_buffer| callback, which allows Lua side to receive verbatim content as is. However, the \meta{content} of \cs{LPTSetCell} needs to be processed by \cs{tl_to_str:n} before being passed to Lua. While the outcome is the same most of the time, \cs{tl_to_str:n} does append an empty space after macros, which stops verbatim commands from working properly.
+\end{authornote}
+
+\end{function}
+
+\begin{function}{\LPTFill}
+\begin{syntax}
+\cs{LPTFill} \Arg{index expr} \Arg{content}
+\end{syntax}
+
+Fills table region specified by \meta{index expr} with \meta{content}. When \meta{index expr} is empty, the entire table is filled.
+
+\end{function}
+
+\begin{function}{\LPTGetTableNames}
+\begin{syntax}
+\cs{LPTGetTableNames}
+\end{syntax}
+
+Returns a comma-separated string containing the names of all tables.
+\end{function}
+
+\begin{function}{\LPTGetTableShape}
+\begin{syntax}
+\cs{LPTGetTableShape}
+\end{syntax}
+
+Returns the shape of the current table as a token list string. The number of rows is stored in first group; the number of columns is stored in second group.
+\end{function}
+
+\begin{function}{\LPTGetCellData}
+\begin{syntax}
+\cs{LPTGetCellData} \Arg{index expr}
+\end{syntax}
+
+Returns the data of the cell specified by \meta{index expr}.
+\end{function}
+
+\begin{function}{\LPTGetCellShape}
+\begin{syntax}
+\cs{LPTGetCellShape} \Arg{index expr}
+\end{syntax}
+
+Returns the shape of the cell specified by \meta{index expr} as a token list string. The number of rows is stored in first group; the number of columns is stored in second group. When the shape is |nil|, the macro returns |\c_novalue_tl|.
+\end{function}
+
+\begin{function}{\LPTGetCellParent}
+\begin{syntax}
+\cs{LPTGetCellParent} \Arg{index expr}
+\end{syntax}
+
+Returns the coordinates of the parent of the cell specified by \meta{index expr} as a token list string. The row index is stored in first group; the column index is stored in second group. When the parent is |nil|, the macro returns |\c_novalue_tl|.
+\end{function}
+
+\section{Examples}
+
+\subsection{Creating and filling a table}
+
+\begin{tablesample}
+\LPTNewTable{oruVVAVhbMD0}{3}{|c|c|c|}[
+ default after line=\hline,
+ nrows=3]
+\LPTSetCurrentTable{oruVVAVhbMD0}
+\LPTSetRowProp{1}{before line=\hline}
+\begin{lptfill}{}
+\verb|#&_^|
+\end{lptfill}
+\LPTUseTable
+\end{tablesample}
+
+
+\subsection{Changing sub-table}
+
+\begin{tablesample}
+\LPTNewTable{IAs5OwqBcv0R}{4}{|c|c|c|c|}[
+ default after line=\cline{2-4},
+ nrows=4]
+\LPTSetCurrentTable{IAs5OwqBcv0R}
+\LPTFill{:-2,:-2}{Lorem}
+\LPTFill{-1,2:-2}{Sit}
+\LPTFill{:,-1}{Dolor}
+\LPTSetRowProp{1}{before line=\hline}
+\LPTSetRowProp{-1}{after line=\hline}
+\begin{lptview}{:, 1}
+{ \multirow{4}{*}{\rotatebox{90}{Ipsum}} }[|4] \\ \\ \\
+\end{lptview}
+\LPTUseTable
+\end{tablesample}
+
+\begin{tablesample}
+\LPTNewTable{4Fz0h0ES2zU9}{6}{|c|c|c|c|c|c|}[
+ default after line=\hline,
+ nrows=6]
+\LPTSetCurrentTable{4Fz0h0ES2zU9}
+\begin{lptfill}{}
+\verb|Lorem|
+\end{lptfill}
+\LPTSetRowProp{1}{before line=\hline}
+\LPTSetRowProp{3}{after line=\cline{1-2}\cline{5-6}}
+\begin{lptview}{3:4, 3:4}
+{ \multicolumn{2}{c|}{\multirow{2}{*}{Ipsum}} }[-2]\\
+{ \multicolumn{2}{c|}{} }[-2]
+\end{lptview}
+\LPTUseTable
+\end{tablesample}
+
+\subsection{Modifying row spacing}
+
+\begin{tablesample}
+\LPTNewTable{KSDJ4C6wUgXL}{4}{|c|c|c|c|}[
+ default after line=\hline,
+ nrows=4]
+\LPTSetCurrentTable{KSDJ4C6wUgXL}
+\LPTFill{}{$\int_a^b f(x) dx$}
+\LPTSetRowProp{1}{before line=\hline}
+\LPTSetRowProp{-2:-1}{after spacing=1em}
+\LPTUseTable
+\end{tablesample}
+
+\subsection{Sequentially constructing a table}
+
+\begin{tablesample}
+\LPTNewTable{yTvLL6PEYgoE}{3}{ccc}
+\LPTSetCurrentTable{yTvLL6PEYgoE}
+\LPTAddRow[before line=\toprule, after line=\midrule]
+\begin{lptview}{-1,:}
+{Field 1} {Field 2} {Field 3}
+\end{lptview}
+\LPTAddRow
+\begin{lptview}{-1,:}
+{Data 1} {Data 2} {Data 3}
+\end{lptview}
+\LPTAddRow[after line=\bottomrule]
+\begin{lptview}{-1,:}
+{Data 4} {\multicolumn{2}{c}{Data 5}}[-2]
+\end{lptview}
+\LPTUseTable
+\end{tablesample}
+
+\subsection{Change the color of cells based on value}
+
+\begin{tablesample}
+\LPTNewTable{hJXHnablQ14y}{8}{cccccccc}[nrows=8]
+\LPTSetCurrentTable{hJXHnablQ14y}
+\begin{lptview}{:,:}
+{20} {90} {43} {36} {73} {72} {77} {68} \\
+{60} {48} {41} {52} {39} {31} {90} {65} \\
+{81} {47} {58} {62} {67} {35} {49} {51} \\
+{85} {41} {59} {69} {46} {77} {46} {39} \\
+{24} {64} {69} {64} {89} {90} {64} {67} \\
+{27} {75} {47} {40} {43} {63} {29} {27} \\
+{86} {21} {40} {79} {55} {40} {36} {40} \\
+{71} {63} {65} {53} {74} {58} {75} {63}
+\end{lptview}
+\ExplSyntaxOn
+\int_step_inline:nn {8} {
+ \int_step_inline:nn {8} {
+ \str_set:Nx \l_tmpa_str {\LPTGetCellData{#1,##1}}
+ \tl_set:Nx \l_tmpa_tl {\int_eval:n {100 - \l_tmpa_str}}
+ \str_set:Nx \l_tmpb_str {\exp_not:N\cellcolor{black!\l_tmpa_str}
+ \exp_not:N\color{blue!\l_tmpa_tl}\l_tmpa_str}
+ \exp_args:Nno \LPTSetCell {#1,##1} {\l_tmpb_str}
+ }
+}
+\ExplSyntaxOff
+\LPTUseTable
+\end{tablesample}
+
+\subsection{Listing the name and shape of all tables}
+
+
+\begin{tablesample}
+\ExplSyntaxOn
+\clist_set:Nx \l_tmpa_clist {\LPTGetTableNames}
+\LPTNewTable{oOnXsQcb7f8j}{2}{cc}
+\LPTSetCurrentTable{oOnXsQcb7f8j}
+\LPTAddRow
+\begin{lptview}{1,:}
+{Table~Name} {Shape}
+\end{lptview}
+\clist_map_inline:Nn \l_tmpa_clist {
+ \LPTAddRow
+ \LPTSetCell{-1,1}{\texttt{#1}}
+ \LPTSetCurrentTable{#1}
+ \tl_set:Nx \l_tmpa_tl {\LPTGetTableShape}
+ \LPTSetCurrentTable{oOnXsQcb7f8j}
+ \tl_set:Nx \l_tmpb_tl {$(\tl_item:Nn \l_tmpa_tl {1},
+ \tl_item:Nn \l_tmpa_tl {2})$}
+ \exp_args:Nno \LPTSetCell {-1,2} {\l_tmpb_tl}
+}
+\LPTSetRowProp{1}{before~line=\toprule, after~line=\midrule}
+\LPTSetRowProp{-1}{after~line=\bottomrule}
+\LPTUseTable
+\ExplSyntaxOff
+\end{tablesample}
+
+\section{Test cases}
+
+\subsection*{Testing robustness of table modification}
+
+\begin{tablesample}
+\LPTNewTable{mnEfCpDkN3OL}{6}{|c|c|c|c|c|c|}[
+ default after line=\hline,
+ nrows=6]
+\LPTSetCurrentTable{mnEfCpDkN3OL}
+\begin{lptfill}{}
+\verb|Lorem|
+\end{lptfill}
+\LPTSetRowProp{1}{before line=\hline}
+\LPTSetRowProp{3}{after line=\cline{1-2}\cline{5-6}}
+\begin{lptview}{3:4, 3:4}
+{ \multicolumn{2}{c|}{\multirow{2}{*}{Ipsum}} }[-2]\\
+{ \multicolumn{2}{c|}{} }[-2]
+\end{lptview}
+\LPTUseTable\par\vspace*{1em}
+\begin{lptview}{3:4, 3:4}
+{ \multicolumn{2}{c|}{Change} }[-2]\\
+{ \multicolumn{2}{c|}{Change} }[-2]
+\end{lptview}
+\LPTUseTable\par\vspace*{1em}
+\begin{lptview}{3:4, 3:4}
+{A} {B}\\
+{C} {D}
+\end{lptview}
+\LPTUseTable
+\end{tablesample}
+
+
+\begin{tablesample}
+\LPTNewTable{869CviFSrnEy}{6}{|c|c|c|c|c|c|}[
+ default after line=\hline,
+ nrows=6]
+\LPTSetCurrentTable{869CviFSrnEy}
+\begin{lptfill}{}
+\verb|Lorem|
+\end{lptfill}
+\LPTSetRowProp{1}{before line=\hline}
+\LPTSetRowProp{3}{after line=\cline{1-2}\cline{5-6}}
+\LPTSetCell{3,3}[1,2]{\multicolumn{2}{c|}{\multirow{2}{*}{Ipsum}}}
+\LPTSetCell{4,3}[1,2]{\multicolumn{2}{c|}{}}
+\LPTUseTable\par\vspace*{1em}
+\LPTSetCell{3,3}[1,2]{\multicolumn{2}{c|}{Change}}
+\LPTSetCell{4,3}[1,2]{\multicolumn{2}{c|}{Change}}
+\LPTUseTable\par\vspace*{1em}
+Notice how \verb|Lorem| appears because we haven't changed
+the values of cell $(3,4)$ and $(4,4)$.\par
+\LPTSetCell{3,3}{A}
+\LPTSetCell{4,3}{C}
+\LPTUseTable\par\vspace*{1em}
+\end{tablesample}
+
+\subsection*{Testing other functions}
+
+\begin{tablesample}
+\LPTNewTable{kCYKq42SyQtf}{5}{|c|c|c|c|c|}[
+ default after line=\hline,
+ nrows=6]
+\LPTSetCurrentTable{kCYKq42SyQtf}
+\LPTSetRowProp{1}{before line=\hline}
+\ExplSyntaxOn
+\int_step_inline:nn {6} {
+ \int_step_inline:nn {5} {
+ \tl_set:Nx \l_tmpa_tl {\LPTGetCellShape{#1,##1}}
+ \tl_set:Nx \l_tmpb_tl {shape=\tl_item:Nn \l_tmpa_tl {1},
+ \tl_item:Nn \l_tmpa_tl {2}}
+ \exp_args:Nno \LPTSetCell {#1,##1} {\l_tmpb_tl}
+ }
+}
+\ExplSyntaxOff
+\LPTUseTable\par\vspace*{1em}
+\ExplSyntaxOn
+\int_step_inline:nn {6} {
+ \int_step_inline:nn {5} {
+ \tl_set:Nx \l_tmpa_tl {\LPTGetCellParent{#1,##1}}
+ \tl_if_eq:NNTF \l_tmpa_tl \c_novalue_tl {
+ \LPTSetCell {#1,##1} {NoP}
+ }{
+ \LPTSetCell {#1,##1} {HasP}
+ }
+ }
+}
+\LPTUseTable
+\ExplSyntaxOff
+\end{tablesample}
+
+\end{documentation}
+
+\end{document} \ No newline at end of file
diff --git a/macros/luatex/latex/luaprogtable/luaprogtable-parse.lua b/macros/luatex/latex/luaprogtable/luaprogtable-parse.lua
new file mode 100644
index 0000000000..8947535a22
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/luaprogtable-parse.lua
@@ -0,0 +1,116 @@
+require "luaprogtable-utility.lua"
+
+local _std_shape = {1, 1}
+
+function _lpt_parse_new_cell()
+ local cur_cell = {data={}, shape=_std_shape}
+ return cur_cell
+end
+
+function _lpt_parse_table_view(str)
+ local str = _lpt_strip(str)
+
+ local level = 0
+ local pos = 1
+
+ local cur_cell = nil
+ local cur_row = {}
+ local ret = {cur_row}
+
+ function _add_str(s)
+ if level > 0 then
+ table.insert(cur_cell["data"], s)
+ end
+ end
+
+ while pos <= str:len() do
+ local chr = str:sub(pos, pos)
+ local next_pos = pos + 1
+
+ if chr == "\\" then
+ local next_chr = str:sub(pos + 1, pos + 1)
+ if next_chr == nil then
+ -- do nothing
+ elseif next_chr == "\\" then
+ if level == 0 then
+ cur_row = {}
+ -- change of row
+ table.insert(ret, cur_row)
+ end
+ elseif next_chr == "{" or next_chr == "}" then
+ next_pos = pos + 2
+ _add_str(str:sub(pos, pos + 1))
+ else
+ _add_str(chr)
+ end
+ elseif chr == "{" then
+ if level == 0 then
+ cur_cell = _lpt_parse_new_cell()
+ else
+ _add_str(chr)
+ end
+ level = level + 1
+ elseif chr == "}" then
+ level = level - 1
+ if level < 0 then
+ raise_error("extra '}' found when parsing table view expression")
+ elseif level == 0 then
+ local data_str = table.concat(cur_cell["data"], "")
+ cur_cell["data"] = data_str
+ table.insert(cur_row, cur_cell)
+ cur_cell = nil
+ else
+ _add_str(chr)
+ end
+ elseif chr == "[" then
+ if level == 0 then
+ local close = string.find(str, "]", pos + 1)
+
+ if close == nil then
+ raise_error("unable to find closing ']'")
+ end
+
+ local size_str = str:sub(pos + 1, close - 1)
+ size_str = _lpt_strip(size_str)
+
+ local size_1 = size_str:sub(1, 1)
+ local shape = nil
+
+ if size_1 == "|" then
+ local nrow = _lpt_tonumber(size_str:sub(2))
+ shape = {nrow, 1}
+ elseif size_1 == "-" then
+ local ncol = _lpt_tonumber(size_str:sub(2))
+ shape = {1, ncol}
+ else
+ raise_error(string.format("invalid size '[%s]' in table view, size_str", size_str))
+ end
+
+ if shape[1] < 1 or shape[2] < 1 then
+ raise_error(string.format("invalid size '[%s]' in table view, size_str", size_str))
+ end
+
+ local n_cell = #cur_row
+ local cell = cur_row[n_cell]
+ if cell == nil then
+ raise_error(string.format("no suitable cell for size [%s]", size_str))
+ end
+ cell["shape"] = shape
+
+ pos = close + 1
+ else
+ _add_str(chr)
+ end
+ else
+ _add_str(chr)
+ end
+
+ pos = next_pos
+ end
+
+ if level ~= 0 then
+ raise_error("extra '{' found when parsing table view expression")
+ end
+
+ return ret
+end \ No newline at end of file
diff --git a/macros/luatex/latex/luaprogtable/luaprogtable-stringbuffer.lua b/macros/luatex/latex/luaprogtable/luaprogtable-stringbuffer.lua
new file mode 100644
index 0000000000..80ba990776
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/luaprogtable-stringbuffer.lua
@@ -0,0 +1,74 @@
+TeXStringBuffer = {content={}, finished=false}
+
+function TeXStringBuffer:new()
+ o = {}
+ setmetatable(o, self)
+ self.__index = self
+ return o
+end
+
+function TeXStringBuffer:clear()
+ while #self.content ~= 0 do rawset(self.content, #self.content, nil) end
+end
+
+function TeXStringBuffer:content_to_string()
+ return table.concat(self.content, "")
+end
+
+function TeXStringBuffer:show()
+ tex.write(self:content_to_string())
+end
+
+function TeXStringBuffer:append(data)
+ table.insert(self.content, data)
+end
+
+function TeXStringBuffer:append_carriage_return(data)
+ self:append("\r")
+end
+
+function _tex_buffer_remove_callback(name, description)
+ for k, v in pairs(luatexbase.callback_descriptions(name)) do
+ if v == description then
+ texio.write("\nsafely removing callback " .. name .. " : " .. description)
+ luatexbase.remove_from_callback(name, description)
+ end
+ end
+end
+
+function tex_buffer_remove_callback()
+ _tex_buffer_remove_callback("find_read_file", "tex_file_buffer_find")
+ _tex_buffer_remove_callback("open_read_file", "tex_file_buffer_read")
+end
+
+function tex_file_buffer_reader(env)
+ local ret = nil
+ if not env["finished"] then
+ ret = env["content"]
+ env["finished"] = true
+ -- remove callback immediately
+ tex_buffer_remove_callback()
+ end
+ return ret
+end
+
+function tex_file_buffer_find(id_number, asked_name)
+ -- arguments and return value doesn't matter
+ texio.write("\nTeXStringBuffer tries to find ".. asked_name .. " id=" .. id_number)
+ return asked_name
+end
+
+function TeXStringBuffer:register_callback()
+ tex_file_buffer_read = function (filename)
+ local env = {}
+ texio.write("\nTeXStringBuffer opens ".. filename)
+ env["finished"] = false
+ env["content"] = self:content_to_string()
+ env["reader"] = tex_file_buffer_reader
+ return env
+ end
+
+ -- register callback
+ luatexbase.add_to_callback("find_read_file", tex_file_buffer_find, "tex_file_buffer_find")
+ luatexbase.add_to_callback("open_read_file", tex_file_buffer_read, "tex_file_buffer_read")
+end
diff --git a/macros/luatex/latex/luaprogtable/luaprogtable-utility.lua b/macros/luatex/latex/luaprogtable/luaprogtable-utility.lua
new file mode 100644
index 0000000000..4ac10f5fd5
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/luaprogtable-utility.lua
@@ -0,0 +1,109 @@
+inspect = require "inspect.lua"
+
+function raise_error(...)
+ local arg = {...}
+ local description = "a luaprogtable package exception occured:\n" .. table.concat(arg, ", ")
+ tex.error(description)
+ error(description)
+end
+
+local _spacer = lpeg.S(" \t\f\v\n\r")
+local _non_spacer = 1 - _spacer
+local _stripper = _spacer^0 * lpeg.C((_spacer^0 * _non_spacer^1)^0)
+
+
+function _lpt_strip(s)
+ return s and lpeg.match(_stripper,s) or ""
+end
+
+function _lpt_split(s, sep)
+ sep = lpeg.P(sep)
+ local elem = lpeg.C((1 - sep)^0)
+ local p = lpeg.Ct(elem * (sep * elem)^0) -- make a table capture
+ return lpeg.match(p, s)
+end
+
+
+function _lpt_tonumber(s)
+ local n = tonumber(s)
+ if n == nil then
+ raise_error(string.format("'{%s}' is not a valid number expression", s))
+ end
+ return n
+end
+
+
+function _lpt_parse_index_expr(expr)
+ local expr = _lpt_strip(expr)
+ local parts = _lpt_split(expr, ",")
+ local ret = {}
+
+ for i=1,#parts do
+ local subexpr = _lpt_strip(parts[i])
+
+ if subexpr:len() == 0 then
+ raise_error(string.format("empty field in index expression '%s'", expr))
+ end
+
+ local colon_pos = subexpr:find(":")
+ local str_l = ""
+ local str_r = ""
+
+ if colon_pos == nil then
+ str_l = subexpr
+ str_r = subexpr
+ else
+ local subsubexpr = _lpt_split(subexpr, ":")
+ str_l = _lpt_strip(subsubexpr[1])
+ str_r = _lpt_strip(subsubexpr[2])
+ if str_l:len() == 0 then
+ str_l = "1"
+ end
+ if str_r:len() == 0 then
+ str_r = "-1"
+ end
+ end
+
+ local n_l = _lpt_tonumber(str_l)
+ local n_r = _lpt_tonumber(str_r)
+
+ table.insert(ret, {n_l, n_r})
+ end
+
+ return ret
+end
+
+function _lpt_parse_shape(shape_expr)
+ local shape_expr = _lpt_strip(shape_expr)
+ local parts = _lpt_split(shape_expr, ",")
+ if #parts ~= 2 then
+ raise_error(string.format("invalid shape: '%s'", shape_expr))
+ end
+ local shape1 = _lpt_tonumber(parts[1])
+ local shape2 = _lpt_tonumber(parts[2])
+ if shape1 < 1 or shape2 < 1 then
+ raise_error(string.format("invalid shape: '%s'", shape_expr))
+ end
+ return {shape1, shape2}
+end
+
+function table.slice(tbl, first, last, step)
+ local sliced = {}
+
+ for i = first or 1, last or #tbl, step or 1 do
+ sliced[#sliced+1] = tbl[i]
+ end
+
+ return sliced
+end
+
+function table.find(tbl, item, index)
+ for i=index or 1, #tbl do
+ local tbl_item = tbl[i]
+ if tbl_item == item then
+ return i
+ end
+ end
+ return nil
+end
+
diff --git a/macros/luatex/latex/luaprogtable/luaprogtable.lua b/macros/luatex/latex/luaprogtable/luaprogtable.lua
new file mode 100644
index 0000000000..1e3c2a7657
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/luaprogtable.lua
@@ -0,0 +1,559 @@
+require "luaprogtable-parse.lua"
+require "luaprogtable-stringbuffer.lua"
+
+TeXTable = {}
+TeXTable.__index = TeXTable
+
+function TeXTable:new()
+ local ret = {
+ rows = {}
+ }
+ setmetatable(ret, TeXTable)
+ return ret
+end
+
+TeXTableCell = {}
+TeXTableCell.__index = TeXTableCell
+
+local _std_shape = {1, 1}
+
+function TeXTableCell:new(default_val)
+ local ret = {
+ data=default_val,
+ shape=_std_shape,
+ parent=nil
+ }
+ setmetatable(ret, TeXTableCell)
+ return ret
+end
+
+
+TeXTableRow = {}
+TeXTableRow.__index = TeXTableRow
+
+function TeXTableRow:new(tex_table)
+
+ local ncols = tex_table.ncols
+ local default_val = rawget(tex_table, "default value")
+
+ local cells = {}
+
+ for i=1,ncols do
+ table.insert(cells, TeXTableCell:new(default_val))
+ end
+
+ local ret = {
+ ["before line"] = "",
+ ["after line"] = rawget(tex_table, "default after line"),
+ ["after spacing"] = rawget(tex_table, "default after spacing"),
+ ["cells"] = cells
+ }
+
+ setmetatable(ret, TeXTableRow)
+ return ret
+end
+
+
+function TeXTable:resize(nrows, ncols)
+ local now_nrows = #self.rows
+ local now_ncols = self.ncols
+
+ if nrows < now_nrows or ncols < now_ncols then
+ raise_error("'TeXTable:resize' doesn not support table truncation")
+ end
+
+ local nrows_delta = nrows - now_nrows
+ local ncols_delta = ncols - now_ncols
+
+ -- change column for existing rows
+ self.ncols = ncols
+ for i=1,now_nrows do
+ local row = self.rows[i]
+ for j=1,ncols_delta do
+ table.insert(row.cells, TeXTableCell:new(rawget(self, "default value")))
+ end
+ end
+
+ -- add new rows
+ for i=1,nrows_delta do
+ table.insert(self.rows, TeXTableRow:new(self))
+ end
+end
+
+function TeXTable:to_string(no_linebreak)
+ local ret = {}
+ local no_linebreak = no_linebreak or false
+ local lb = "\n"
+ if no_linebreak then
+ lb = " "
+ end
+
+ table.insert(ret, string.format([[\begin{%s}{%s}]], self.backend, rawget(self, "table preamble")))
+
+ local nrows = #self.rows
+ for i=1,nrows do
+
+ local row = self.rows[i]
+
+ local cell_data = {}
+ local j = 1
+
+ while j <= self.ncols do
+ local cell = row.cells[j]
+
+ local next_j = nil
+
+ if cell.shape ~= nil then
+ table.insert(cell_data, cell.data)
+ next_j = j + cell.shape[2]
+ else
+ local parent_row = cell.parent[1]
+ local parent_col = cell.parent[2]
+ local parent_cell = self:get_cell(parent_row, parent_col)
+ table.insert(cell_data, "")
+ next_j = j + parent_cell.shape[2]
+ end
+
+ j = next_j
+ end
+
+ local row_str = ""
+
+ if string.len(rawget(row, "before line")) > 0 then
+ row_str = rawget(row, "before line") .. lb .. row_str
+ end
+
+ row_str = row_str .. table.concat(cell_data, " & ") .. [[ \\]]
+
+ if string.len(rawget(row, "after spacing")) > 0 then
+ row_str = row_str .. "[" .. rawget(row, "after spacing") .. "]"
+ end
+
+ row_str = row_str .. rawget(row, "after line")
+
+ table.insert(ret, row_str)
+ end
+
+ table.insert(ret, string.format([[\end{%s}]], self.backend))
+
+ return table.concat(ret, lb)
+
+end
+
+
+function TeXTable:get_cell(row_id, cell_id)
+ local row = self.rows[row_id]
+ if row == nil then
+ raise_error(string.format("row id '%d' is invalid for table '%s'", row_id, rawget(self, "table name")))
+ end
+ local cell = row.cells[cell_id]
+ if cell == nil then
+ raise_error(string.format("cell location '(%d,%d)' is invalid for table '%s'", row_id, cell_id, rawget(self, "table name")))
+ end
+ return cell
+end
+
+function TeXTable:set_cell(row_id, cell_id, data, shape)
+ local cell = self:get_cell(row_id, cell_id)
+
+ -- check if we can modify this cell
+ if cell.parent ~= nil then
+ local parent_1 = cell.parent[1]
+ local parent_2 = cell.parent[2]
+ raise_error(string.format("cell location '(%d,%d)' of table '%s' is not acceesible because it is overlapped by cell '(%d,%d)'", row_id, cell_id, rawget(self, "table name"), parent_1, parent_2))
+ end
+
+
+ -- check cell boundary
+ local max_row = row_id + shape[1] - 1
+ local max_col = cell_id + shape[2] - 1
+ if max_row > #self.rows or max_col > self.ncols then
+ raise_error(string.format("cell '(%d,%d)' is too large for table '%s'", row_id, col_id, rawget(self, "table name")))
+ end
+
+
+ local old_shape = cell.shape
+
+ local std_shape = {1, 1}
+ -- clear control info for children
+ for i=1, old_shape[1] do
+ local row_id = row_id + i - 1
+ for j = 1, old_shape[2] do
+ local col_id = cell_id + j - 1
+ local other_cell = self:get_cell(row_id, col_id)
+ other_cell.parent = nil
+ other_cell.shape = std_shape
+ end
+ end
+
+ local parent_t = {row_id, cell_id}
+ -- adjust control info based on new shape
+ for i=1, shape[1] do
+ local row_id = row_id + i - 1
+ for j = 1, shape[2] do
+ local col_id = cell_id + j - 1
+ local other_cell = self:get_cell(row_id, col_id)
+ other_cell.parent = parent_t
+ other_cell.shape = nil
+ end
+ end
+
+ -- adjust control info for this cell
+ cell.parent = nil
+ cell.shape = shape
+ cell.data = data
+end
+
+function TeXTable:fill(data)
+ local nrows = #self.rows
+ for i=1,nrows do
+ for j=1,self.ncols do
+ local cell = self:get_cell(i, j)
+ cell.shape = _std_shape
+ cell.parent = nil
+ cell.data = data
+ end
+ end
+end
+
+function TeXTable:fix_row_index(index_pair)
+ local ret = {index_pair[1], index_pair[2]}
+
+ if ret[1] < 0 then
+ ret[1] = #self.rows + ret[1] + 1
+ end
+ if ret[2] < 0 then
+ ret[2] = #self.rows + ret[2] + 1
+ end
+
+ if ret[2] < ret[1] then
+ raise_error("invalid index expression: second element must not be smaller than the first")
+ end
+
+ if ret[1] <= 0 then
+ raise_error("invalid index expression: index must be greater than zero after conversion")
+ end
+
+ return ret
+end
+
+function TeXTable:fix_col_index(index_pair)
+ local ret = {index_pair[1], index_pair[2]}
+
+ if ret[1] < 0 then
+ ret[1] = self.ncols + ret[1] + 1
+ end
+ if ret[2] < 0 then
+ ret[2] = self.ncols + ret[2] + 1
+ end
+
+ if ret[2] < ret[1] then
+ raise_error("invalid index expression: second element must not be smaller than the first")
+ end
+
+ if ret[1] <= 0 then
+ raise_error("invalid index expression: index must be greater than zero after conversion")
+ end
+
+ return ret
+end
+
+-- fix the index of a single cell
+function TeXTable:fix_cell_index(index_expr)
+ local the_table = self
+ local index_parse = _lpt_parse_index_expr(index_expr)
+ if #index_parse ~= 2 then
+ raise_error(string.format("invalid index expression for cell: '%s'", index_expr))
+ end
+
+ local row_expr = the_table:fix_row_index(index_parse[1])
+ local col_expr = the_table:fix_col_index(index_parse[2])
+
+ if row_expr[1] ~= row_expr[2] then
+ raise_error(string.format("invalid row index expression for cell: '%s'", index_expr))
+ end
+ if col_expr[1] ~= col_expr[2] then
+ raise_error(string.format("invalid column index expression for cell: '%s'", index_expr))
+ end
+
+ return {row_expr[1], col_expr[1]}
+end
+
+-- make sure table views do not cut through multicol/multirow
+function TeXTable:check_view_validity(start_row, start_col, row_span, col_span)
+ local max_row = start_row + row_span - 1
+ local max_col = start_col + col_span - 1
+
+ for i = 1, row_span do
+ local row_id = start_row + i - 1
+ for j=1,col_span do
+ local col_id = start_col + j - 1
+ local cell = self:get_cell(row_id, col_id)
+ if cell.shape ~= nil then
+ local boundary_1 = row_id + cell.shape[1] - 1
+ local boundary_2 = col_id + cell.shape[2] - 1
+ if boundary_1 > max_row or boundary_2 > max_col then
+ raise_error(string.format("invalid table view: cell '(%d, %d)' has shape '(%d, %d)', which does not fit into viewed region", row_id, col_id, cell.shape[1], cell.shape[2]))
+ end
+ end
+ end
+ end
+end
+
+
+lpt_info = {}
+
+function _lpt_get_table(table_name)
+ local table_name = _lpt_strip(table_name)
+ local the_table = lpt_info[table_name]
+ if the_table == nil then
+ raise_error(string.format("table '%s' does not exist", table_name))
+ end
+ return the_table
+end
+
+
+_verb_lines = {}
+_verb_end_env = ""
+
+function _lpt_store_verbatim_lines(str)
+ if string.find(str , _verb_end_env) then
+ luatexbase.remove_from_callback("process_input_buffer" , "lpt_store_verbatim_lines")
+ return _verb_end_env
+ else
+ if str ~= nil then
+ table.insert(_verb_lines, str)
+ end
+ return ""
+ end
+end
+
+function _lpt_register_verbatim(end_env)
+ for k in next, _verb_lines do rawset(_verb_lines, k, nil) end
+ _verb_end_env = end_env
+ luatexbase.add_to_callback("process_input_buffer", _lpt_store_verbatim_lines, "lpt_store_verbatim_lines")
+end
+
+local _lpt_ignored_fields = {nrows=true}
+local _lpt_numeric_fields = {ncols=true}
+
+
+
+function lpt_new_table(param)
+ local new_table = TeXTable:new()
+
+ for key, val in pairs(param) do
+ if _lpt_numeric_fields[key] then
+ rawset(new_table, key, _lpt_tonumber(val))
+ elseif _lpt_ignored_fields[key] then
+ -- do nothing
+ else
+ rawset(new_table, key, val)
+ end
+ end
+
+ local table_name = new_table["table name"]
+
+ local table_fetch = lpt_info[table_name]
+ if table_fetch ~= nil then
+ raise_error(string.format("table '%s' already exists", table_name))
+ end
+
+ local nrows = _lpt_tonumber(param["nrows"])
+
+ -- integrity check
+ if nrows < 0 then
+ raise_error(string.format("'nrows' (%d) of table '%s' is invalid", nrows, table_name))
+ end
+ if new_table.ncols <= 0 then
+ raise_error(string.format("'ncols' (%d) of table '%s' is invalid", new_table.ncols, table_name))
+ end
+
+ -- create table
+ new_table:resize(nrows, new_table.ncols)
+
+ lpt_info[table_name] = new_table
+end
+
+function lpt_table_fill(table_name, index_expr, env_content)
+ local the_table = _lpt_get_table(table_name)
+ local env_content = env_content or table.concat(_verb_lines, " ")
+
+ if index_expr:len() == 0 then
+ the_table:fill(env_content)
+ else
+ local index_parse = _lpt_parse_index_expr(index_expr)
+ if #index_parse ~= 2 then
+ raise_error(string.format("invalid index expr '%s' for table '%s'", index_expr, table_name))
+ end
+
+ local row_expr = the_table:fix_row_index(index_parse[1])
+ local col_expr = the_table:fix_col_index(index_parse[2])
+
+ local row_span = row_expr[2] - row_expr[1] + 1
+ local col_span = col_expr[2] - col_expr[1] + 1
+
+ the_table:check_view_validity(row_expr[1], col_expr[1], row_span, col_span)
+
+ for i=1,row_span do
+ local row_id = i + row_expr[1] - 1
+ for j=1,col_span do
+ local col_id = j + col_expr[1] - 1
+ the_table:set_cell(row_id, col_id, env_content, _std_shape)
+ end
+ end
+ end
+end
+
+
+function lpt_table_view(table_name, index_expr)
+ local env_content = table.concat(_verb_lines, "\n")
+ local the_table = _lpt_get_table(table_name)
+
+ local index_parse = _lpt_parse_index_expr(index_expr)
+ if #index_parse ~= 2 then
+ raise_error(string.format("invalid index expr '%s' for table '%s'", index_expr, table_name))
+ end
+
+ local row_expr = the_table:fix_row_index(index_parse[1])
+ local col_expr = the_table:fix_col_index(index_parse[2])
+
+ local row_span = row_expr[2] - row_expr[1] + 1
+ local col_span = col_expr[2] - col_expr[1] + 1
+
+ the_table:check_view_validity(row_expr[1], col_expr[1], row_span, col_span)
+
+ local parsed_table = _lpt_parse_table_view(env_content)
+
+ if #parsed_table ~= row_span then
+ raise_error(string.format("lpttableview: expecting '%d' rows, but get '%d' instead for table '%s'", row_span, #parsed_table, table_name))
+ end
+
+ for i=1,row_span do
+ local row_id = i + row_expr[1] - 1
+ local cols = parsed_table[i]
+
+ -- sum the number of total columns in this row
+ local n_table_cols = 0
+ local max_row_size = 0
+ for _, val in ipairs(cols) do
+ n_table_cols = n_table_cols + val["shape"][2]
+ max_row_size = math.max(max_row_size, val["shape"][1])
+ end
+
+ local max_row = row_id + max_row_size - 1
+ if max_row > row_expr[2] then
+ raise_error("lpttableview: the height of table is greater than table view")
+ end
+
+
+ -- count the numbers of columns needs to be filled in this row
+ local pending_table_cols = 0
+ for j=1,col_span do
+ local col_id = j + col_expr[1] - 1
+ local cell = the_table:get_cell(row_id, col_id)
+ if cell.shape ~= nil then
+ pending_table_cols = pending_table_cols + 1
+ else
+ local parent_row = cell.parent[1]
+ -- if the parent is in the same row,
+ -- then this space needs to be filled in the same row
+ if parent_row == row_id then
+ pending_table_cols = pending_table_cols + 1
+ end
+ end
+ end
+
+ if n_table_cols ~= pending_table_cols then
+ raise_error(string.format("lpttableview: expecting '%d' cols for row '%d', but get '%d' instead for table '%s'", pending_table_cols, i, n_table_cols, table_name))
+ end
+
+
+ --[[
+ if n_table_cols ~= col_span then
+ raise_error(string.format("lpttableview: expecting '%d' cols for row '%d', but get '%d' instead for table '%s'", col_span, i, n_table_cols, table_name))
+ end
+ --]]
+
+ local k = 1
+ for j=1,col_span do
+ local col_id = j + col_expr[1] - 1
+ local cell = the_table:get_cell(row_id, col_id)
+ if cell.shape ~= nil then
+ local col_data = cols[k]["data"]
+ local col_shape = cols[k]["shape"]
+ the_table:set_cell(row_id, col_id, col_data, col_shape)
+ k = k + 1
+ end
+ end
+
+ end
+
+
+end
+
+local _s_buf = TeXStringBuffer:new()
+
+function lpt_use_table(table_name)
+ local the_table = _lpt_get_table(table_name)
+ local input_method = rawget(the_table, "input method")
+
+ if input_method == "stringbuffer" then
+ local table_str = the_table:to_string(true)
+ _s_buf:clear()
+ _s_buf:append(table_str)
+ _s_buf:register_callback()
+ tex.print([[\input{stringbuffer}]])
+ elseif input_method == "file" then
+ local table_str = the_table:to_string()
+ local filename = tex.jobname .. "-" .. table_name .. ".table"
+ local outfile = io.open(filename, "w")
+ outfile:write(table_str)
+ outfile:close()
+ tex.print(string.format([[\input{%s}]], filename))
+ else
+ raise_error(string.format("invalid input method '%s' for table '%s'", input_method, table_name))
+ end
+
+end
+
+function lpt_set_row_prop(table_name, index_expr, param)
+
+ local the_table = _lpt_get_table(table_name)
+ local index_parse = _lpt_parse_index_expr(index_expr)
+ for key, val in ipairs(index_parse) do
+ local fixed_val = the_table:fix_row_index(val)
+
+ local l = fixed_val[1]
+ local r = fixed_val[2]
+
+ for i=l,r do
+ local row = the_table.rows[i]
+ if row == nil then
+ raise_error(string.format("lpt_set_row_prop: invalid index expression '%s'", index_expr))
+ end
+ for kkey, vval in pairs(param) do
+ if rawget(row, kkey) == nil then
+ raise_error(string.format("row '%d' of table '%s' does not have attribute '%s'", i, table_name, kkey))
+ end
+ rawset(row, kkey, vval)
+ end
+ end
+ end
+end
+
+
+function lpt_add_row(table_name, param)
+ local the_table = _lpt_get_table(table_name)
+ local nrows = #the_table.rows
+ local ncols = the_table.ncols
+ the_table:resize(nrows+1, ncols)
+ lpt_set_row_prop(table_name, "-1", param)
+end
+
+function lpt_get_table_shape(table_name)
+ local the_table = _lpt_get_table(table_name)
+ local nrows = #the_table.rows
+ local ncols = the_table.ncols
+ tex.print(string.format("{%d}{%d}", nrows, ncols))
+end \ No newline at end of file
diff --git a/macros/luatex/latex/luaprogtable/luaprogtable.sty b/macros/luatex/latex/luaprogtable/luaprogtable.sty
new file mode 100644
index 0000000000..d05a633c21
--- /dev/null
+++ b/macros/luatex/latex/luaprogtable/luaprogtable.sty
@@ -0,0 +1,237 @@
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{luatexbase}
+\RequirePackage{iftex}
+
+\RequireLuaTeX
+
+\ProvidesExplPackage {luaprogtable}{08/06/2020}{1.0}{Programmatic table interface}
+
+\makeatletter
+\savecatcodetable 20996
+
+\directlua{
+ require~"luaprogtable.lua"
+}
+
+\tl_new:N \g__luaprogtable_tmpa_tl
+\tl_new:N \g__luaprogtable_tmpb_tl
+\tl_new:N \g__luaprogtable_tmpc_tl
+
+\str_new:N \g__luaprogtable_tmpa_str
+\str_new:N \g__luaprogtable_tmpb_str
+\str_new:N \g__luaprogtable_tmpc_str
+
+\int_new:N \g__luaprogtable_tmpa_int
+\int_new:N \g__luaprogtable_tmpb_int
+\int_new:N \g__luaprogtable_tmpc_int
+
+\cs_set:Npn \__luaprogtable_lua_table_item:nn #1#2 {
+ ["#1"]="#2"
+}
+
+\seq_new:N \g__luaprogtable_prop_item_seq
+
+\cs_set:Npn \__luaprogtable_add_lua_table_item:nn #1#2 {
+ \str_gset:Nx \g__luaprogtable_tmpa_str {\luaescapestring{\tl_to_str:n {#1}}}
+ \str_gset:Nx \g__luaprogtable_tmpb_str {\luaescapestring{\tl_to_str:n {#2}}}
+ \seq_gput_right:Nx \g__luaprogtable_prop_item_seq {
+ \exp_args:NVV \__luaprogtable_lua_table_item:nn \g__luaprogtable_tmpa_str \g__luaprogtable_tmpb_str
+ }
+}
+
+\str_new:N \g__luaprogtable_lua_table_str
+
+\cs_set:Npn \__luaprogtable_prop_to_lua_table:N #1 {
+ \seq_gclear:N \g__luaprogtable_prop_item_seq
+ \prop_map_function:NN #1 \__luaprogtable_add_lua_table_item:nn
+ \str_gclear:N \g__luaprogtable_lua_table_str
+ \str_gput_right:NV \g__luaprogtable_lua_table_str \c_left_brace_str
+ \str_gput_right:Nx \g__luaprogtable_lua_table_str {\seq_use:Nn \g__luaprogtable_prop_item_seq {,~}}
+ \str_gput_right:NV \g__luaprogtable_lua_table_str \c_right_brace_str
+}
+
+\prop_new:N \g__luaprogtable_new_prop
+\keys_define:nn { __luaprogtable_new }
+{
+ backend .prop_gput:N = \g__luaprogtable_new_prop,
+ ncols .prop_gput:N = \g__luaprogtable_new_prop,
+ nrows .prop_gput:N = \g__luaprogtable_new_prop,
+ default~before~line .prop_gput:N = \g__luaprogtable_new_prop,
+ default~after~line .prop_gput:N = \g__luaprogtable_new_prop,
+ default~after~spacing .prop_gput:N = \g__luaprogtable_new_prop,
+ input~method .prop_gput:N = \g__luaprogtable_new_prop
+}
+
+\str_new:N \g__luaprogtable_lua_cur_table_str
+\DeclareDocumentCommand{\LPTSetCurrentTable}{m}{
+ \directlua{
+ local _test_table = _lpt_get_table("\luaescapestring{#1}")
+ }
+ \str_gset:Nx \g__luaprogtable_lua_cur_table_str {\luaescapestring{#1}}
+}
+
+\newcommand{\LPTGetCurrentTable}{
+ \str_use:N \g__luaprogtable_lua_cur_table_str
+}
+
+\DeclareDocumentCommand{\LPTNewTable}{mmmO{}}{
+ \prop_gclear:N \g__luaprogtable_new_prop
+ \prop_gput:Nnn \g__luaprogtable_new_prop {backend} {tabular}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {nrows} {0}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {default~before~line} {}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {default~after~line} {}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {default~after~spacing} {}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {input~method} {stringbuffer}
+
+ \keys_set:nn { __luaprogtable_new } {#4}
+
+ \prop_gput:Nnn \g__luaprogtable_new_prop {table~name} {#1}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {ncols} {#2}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {table~preamble} {#3}
+ \prop_gput:Nnn \g__luaprogtable_new_prop {default~value} {}
+
+ \__luaprogtable_prop_to_lua_table:N \g__luaprogtable_new_prop
+
+ \directlua{
+ local~_tmp_table = \str_use:N \g__luaprogtable_lua_table_str;
+ lpt_new_table(_tmp_table);
+ }
+}
+
+\newcommand{\LPTUseTable}{
+ \directlua{
+ lpt_use_table("\LPTGetCurrentTable");
+ }
+}
+
+\DeclareDocumentEnvironment{lptview}{m}{
+ \directlua{
+ _lpt_register_verbatim([[\string\end{lptview}]])
+ }
+}{
+ % now that verbatim material is passed to lua, call corresponding handler
+ \directlua{
+ lpt_table_view("\LPTGetCurrentTable", "\luaescapestring{#1}")
+ }
+}
+
+\DeclareDocumentEnvironment{lptfill}{m}{
+ \directlua{
+ _lpt_register_verbatim([[\string\end{lptfill}]])
+ }
+}{
+ \directlua{
+ lpt_table_fill("\LPTGetCurrentTable", "\luaescapestring{#1}")
+ }
+}
+
+\DeclareDocumentCommand{\LPTFill}{mm}{
+ \directlua{
+ lpt_table_fill("\LPTGetCurrentTable", "\luaescapestring{#1}", "\luaescapestring{\tl_to_str:n {#2}}")
+ }
+}
+
+\prop_new:N \g__luaprogtable_row_prop
+\keys_define:nn { __luaprogtable_row }
+{
+ before~line .prop_gput:N = \g__luaprogtable_row_prop,
+ after~line .prop_gput:N = \g__luaprogtable_row_prop,
+ after~spacing .prop_gput:N = \g__luaprogtable_row_prop
+}
+
+\DeclareDocumentCommand{\LPTSetRowProp}{mm}{
+ \prop_gclear:N \g__luaprogtable_row_prop
+ \keys_set:nn { __luaprogtable_row } {#2}
+
+ \__luaprogtable_prop_to_lua_table:N \g__luaprogtable_row_prop
+ \directlua{
+ local~_tmp_table = \str_use:N \g__luaprogtable_lua_table_str;
+ lpt_set_row_prop("\LPTGetCurrentTable", "\luaescapestring{#1}", _tmp_table)
+ }
+}
+
+\DeclareDocumentCommand{\LPTAddRow}{O{}}{
+ \prop_gclear:N \g__luaprogtable_row_prop
+ \keys_set:nn { __luaprogtable_row } {#1}
+
+ \__luaprogtable_prop_to_lua_table:N \g__luaprogtable_row_prop
+ \directlua{
+ local~_tmp_table = \str_use:N \g__luaprogtable_lua_table_str;
+ lpt_add_row("\LPTGetCurrentTable", _tmp_table)
+ }
+}
+
+\DeclareDocumentCommand{\LPTSetCell}{mO{1,1}m}{
+ \directlua{
+ local~_table = _lpt_get_table("\LPTGetCurrentTable");
+ local~_index = _table:fix_cell_index("\luaescapestring{#1}");
+ local~_shape = _lpt_parse_shape("\luaescapestring{#2}");
+ _table:set_cell(_index[1], _index[2], "\luaescapestring{ \tl_to_str:n {#3} }", _shape)
+ }
+}
+
+\newcommand{\LPTGetTableShape}{
+ \directlua{
+ lpt_get_table_shape("\LPTGetCurrentTable")
+ }
+}
+
+\ExplSyntaxOff
+
+\newcommand{\LPTGetTableNames}{%
+ \directlua{
+ local _names = {}
+ for key, val in pairs(lpt_info) do
+ table.insert(_names, key)
+ end
+ table.sort(_names)
+ local _ret = table.concat(_names, ",")
+ tex.print(_ret)
+ }%
+}
+
+\newcommand{\LPTGetCellData}[1]{%
+ \directlua{
+ local _table = _lpt_get_table("\LPTGetCurrentTable");
+ local _index = _table:fix_cell_index("\luaescapestring{#1}");
+ local _cell = _table:get_cell(_index[1], _index[2]);
+ tex.print([[\string\unexpanded{]] .. _cell.data .. "}")
+ }%
+}
+
+\newcommand{\LPTGetCellMetaIndex}[2]{%
+ \directlua{
+ local _table = _lpt_get_table("\LPTGetCurrentTable");
+ local _index = _table:fix_cell_index("\luaescapestring{#2}");
+ local _cell = _table:get_cell(_index[1], _index[2]);
+ local _field = "\luaescapestring{#1}"
+ local _ret = rawget(_cell, _field)
+ if _ret == nil then
+ tex.print(20996, [[\string\c_novalue_tl]])
+ else
+ tex.print("{".. tostring(_ret[1]) .. "}{".. tostring(_ret[2]) .. "}")
+ end
+ }%
+}
+
+\newcommand{\LPTGetCellShape}[1]{%
+ \LPTGetCellMetaIndex{shape}{#1}%
+}
+
+\newcommand{\LPTGetCellParent}[1]{%
+ \LPTGetCellMetaIndex{parent}{#1}%
+}
+
+\newcommand{\LPTDeleteTable}[1]{
+ \directlua{
+ local _name = "\luaescapestring{#1}"
+ local _table = _lpt_get_table(_name)
+ lpt_info[_name] = nil
+ }
+}
+
+
+\makeatother
+
+\endinput \ No newline at end of file
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index fd48716ada..42bbdd06bd 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/56107
+depend revision/56113
name 00texlive.image
category TLCore
-revision 56106
+revision 56113
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
@@ -2487,6 +2487,7 @@ runfiles size=5026
tlpkg/tlpsrc/luamplib.tlpsrc
tlpkg/tlpsrc/luaotfload.tlpsrc
tlpkg/tlpsrc/luapackageloader.tlpsrc
+ tlpkg/tlpsrc/luaprogtable.tlpsrc
tlpkg/tlpsrc/luarandom.tlpsrc
tlpkg/tlpsrc/luasseq.tlpsrc
tlpkg/tlpsrc/luatex.tlpsrc
@@ -32182,15 +32183,15 @@ catalogue-version 0.2
name beebe
category Package
-revision 56098
+revision 56109
catalogue biblio
shortdesc A collection of bibliographies
relocated 1
longdesc A collection of BibTeX bibliographies on TeX-related topics
longdesc (including, for example, spell-checking and SGML). Each
longdesc includes a LaTeX wrapper file to typeset the bibliography.
-containersize 867948
-containerchecksum 1890a146c134494ba2feb7433f37438858149abdb990aa78e88dc7914b4dd13e563d0c63f7821b13647cb875d405e97577ff459d5f88396016cff35844e57d72
+containersize 867928
+containerchecksum f3e3ef5a3967b6f33468a44e7da8e76af81c5f86257d1d5f0568f53ca2beeeec95c8795b0fd9622840039450edf4fc641e04105aeeb289cd9e89064cbbedfd3e
runfiles size=2156
RELOC/bibtex/bib/beebe/epodd.bib
RELOC/bibtex/bib/beebe/font.bib
@@ -65955,7 +65956,7 @@ containerchecksum dfab2d2976b532689105fcc1a4081f86faa400af78dbd089bdf1f26e7d5f4f
name collection-luatex
category Collection
-revision 55786
+revision 56113
shortdesc LuaTeX packages
relocated 1
longdesc Packages for LuaTeX, a Unicode-aware extension of pdfTeX, using
@@ -65996,6 +65997,7 @@ depend lualibs
depend luamplib
depend luaotfload
depend luapackageloader
+depend luaprogtable
depend luarandom
depend luatex85
depend luatexbase
@@ -66012,8 +66014,8 @@ depend plantuml
depend selnolig
depend spelling
depend typewriter
-containersize 672
-containerchecksum d304ee21eb5ad4e64456e2d5d6e57a0a180d3a7f5504fd8f2673285943a10c1d85ffcf6cd349c7dd06a1afc643527b9916d52653234533883983721aed73138e
+containersize 680
+containerchecksum 245efc02e9d65f7931c18309b0ec23df2e350e35cd6afc1da25882b9610a5c41d8d5aa35ba83e7ff23fd3f779331972cb7a0f9262c5fcb601669b2f9e681e328
name collection-mathscience
category Collection
@@ -99795,7 +99797,7 @@ catalogue-version 1.06
name ekdosis
category Package
-revision 55786
+revision 56112
shortdesc Typesetting TEI xml Compliant Critical Editions
relocated 1
longdesc ekdosis is a LuaLaTeX package designed for multilingual
@@ -99809,24 +99811,25 @@ longdesc critical editions. Database-driven encoding under LaTeX then
longdesc allows extraction of texts entered segment by segment according
longdesc to various criteria: main edited text, variant readings,
longdesc translations or annotated borrowings between texts.
-containersize 15176
-containerchecksum 87c6255ad51b9e0960267a717bd722bd413ceccf171a55a2a5476231192cbc193f31b7554e83199166531bc25f58a081a434779b5eae7c14f47534ef672ea748
-doccontainersize 332944
-doccontainerchecksum 6111dc7e78f28e9fc94e41572fd8536cba89adf345cfda44973b387496d38f4047e589afd708c99cc6da31e0b85eb9436c6ae2fae8826f0dce814ccd7e305d5c
-docfiles size=101
+containersize 16464
+containerchecksum 7f7cbe7a8df107562afab92b8e550610d6962925fdb21c47dd821fc2be58ed95f90278108a6592a8a8b8d1898a4d567cdc01987395c315407a94a917f5b4ce75
+doccontainersize 513188
+doccontainerchecksum 848c7ee3a706f510f557000a2f8ebe9edd5566eb07908fc351839cdfda12f2f07793abeb47484c0c5aaeca897e3e1ad858151ca79fc528639ea1acc81a0fbffe
+docfiles size=160
RELOC/doc/lualatex/ekdosis/README.md details="Readme"
RELOC/doc/lualatex/ekdosis/ekdosis.el
RELOC/doc/lualatex/ekdosis/ekdosis.pdf details="Package documentation"
RELOC/doc/lualatex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
RELOC/doc/lualatex/ekdosis/samples/Caesar_BG-6-13-1.pdf
RELOC/doc/lualatex/ekdosis/samples/Caesar_BG-6-13-1.tex
-srccontainersize 45708
-srccontainerchecksum 5116c8dcf36c5949e8134af0daeebc01a5f9d92d8bb3e48f3f7044f19cac90cc73d910072f26574e207e6f74efebbac6aca7d0da4ed69d7bb724ab0e762ba613
-srcfiles size=49
+ RELOC/doc/lualatex/ekdosis/samples/Makefile
+srccontainersize 68024
+srccontainerchecksum 2a2b663657c752c9e3dfe1e91f8b40b6de3cde0c2ff8742b84e7bee11aceb584f1402ae038dcee3ed4eca20363582ccbef7bfdbb33cc42c550b473fc3440e0bb
+srcfiles size=76
RELOC/source/lualatex/ekdosis/Makefile
RELOC/source/lualatex/ekdosis/ekdosis.dtx
RELOC/source/lualatex/ekdosis/ekdosis.ins
-runfiles size=20
+runfiles size=23
RELOC/tex/lualatex/ekdosis/ekdosis.lua
RELOC/tex/lualatex/ekdosis/ekdosis.sty
catalogue-contact-bugs https://gitlab.com/ralessi/ekdosis/issues
@@ -99836,7 +99839,7 @@ catalogue-contact-support http://www.robertalessi.net/mailman/listinfo/ekdosis
catalogue-ctan /macros/luatex/latex/ekdosis
catalogue-license gpl3+ fdl
catalogue-topics crit-ed parallel bidi luatex multilingual
-catalogue-version 0.99a
+catalogue-version 1.0
name ektype-tanka
category Package
@@ -118524,17 +118527,17 @@ catalogue-version 0.7.2
name fontsetup
category Package
-revision 55666
+revision 56111
shortdesc A front-end to fontspec, for selected fonts with math support
relocated 1
longdesc This package facilitates the use of fontspec for users who do
longdesc not wish to bother with details, with a special focus on
longdesc quality fonts supporting Mathematics.
-containersize 5084
-containerchecksum 63634cca3ec592885ad06b234a1c8f2a0c470a2a6d6472b54a35873ba2694bd1773bd0d7df302fe11329c365d414f18b857e7192c47f476077dda7eaa063e89f
-doccontainersize 709324
-doccontainerchecksum c1c45e08861e805d5d57f58ccf4c03e7cbc70e14410decc94263b817be06563354957edc2029fc354fe9e2a84766ef00742c3ac17dc51e20bbe66184696cc6b5
-docfiles size=305
+containersize 5688
+containerchecksum ba1ee401278cbc7dbf3c03ea81e15dbc8157e24a0181e62f9c6d0342cacbe655a50ae53deb5e24c65ce289b918e404933779511e690a4cb050acfb8eeade049e
+doccontainersize 736760
+doccontainerchecksum b35e7440411b70a1f57aa0fa9e1bb65594e03f57e34dd5aa547ef384fa22968b109b6dd72ddb28cc2bce65f2bf088d1434837e4843c3d59488901520c033aece
+docfiles size=314
RELOC/doc/latex/fontsetup/README details="Readme"
RELOC/doc/latex/fontsetup/README.TEXLIVE
RELOC/doc/latex/fontsetup/fontsetup-doc.pdf details="Package documentation"
@@ -118556,7 +118559,7 @@ docfiles size=305
RELOC/doc/latex/fontsetup/fspsample.tex
RELOC/doc/latex/fontsetup/system-install-fonts/fsplpscel.otf
RELOC/doc/latex/fontsetup/system-install-fonts/fspmnscel.otf
-runfiles size=16
+runfiles size=18
RELOC/tex/latex/fontsetup/fontsetup.sty
RELOC/tex/latex/fontsetup/fspdefault.sty
RELOC/tex/latex/fontsetup/fspebgaramondot.sty
@@ -118574,7 +118577,7 @@ runfiles size=16
catalogue-ctan /macros/latex/contrib/fontsetup
catalogue-license gpl3
catalogue-topics font-sel font-supp xetex luatex maths
-catalogue-version 1.005
+catalogue-version 1.006
name fontsize
category Package
@@ -178204,6 +178207,33 @@ catalogue-license lppl1.3c
catalogue-topics luatex lua-supp use-lua
catalogue-version 0.2
+name luaprogtable
+category Package
+revision 56113
+shortdesc Programmable table interface for LuaLaTeX
+relocated 1
+longdesc This package allows you to modify a cell based on the contents
+longdesc of other cells using LaTeX macros.
+containersize 7092
+containerchecksum 68ed668fcc84eddad444edfdd18ede2c94ad81fd61162d62c5a052fabcda6e5bcb519d6eb473721fc2cc090bb7f642dd55ac35b9f1f0a682b2fb8c480a0a1014
+doccontainersize 442728
+doccontainerchecksum d91bb2fdf9851b1aeb3dba0b5eeb75bd1f9aa8c806fc3a99e063af7f56e0878152630aa18731c1c40aa00de72a0d192981a272d586fb25f7a19d14b4fc25b5e6
+docfiles size=114
+ RELOC/doc/lualatex/luaprogtable/README.md details="Readme"
+ RELOC/doc/lualatex/luaprogtable/luaprogtable-doc.pdf details="Package documentation"
+ RELOC/doc/lualatex/luaprogtable/luaprogtable-doc.tex
+runfiles size=10
+ RELOC/tex/lualatex/luaprogtable/luaprogtable-parse.lua
+ RELOC/tex/lualatex/luaprogtable/luaprogtable-stringbuffer.lua
+ RELOC/tex/lualatex/luaprogtable/luaprogtable-utility.lua
+ RELOC/tex/lualatex/luaprogtable/luaprogtable.lua
+ RELOC/tex/lualatex/luaprogtable/luaprogtable.sty
+catalogue-contact-repository https://github.com/xziyue/luaprogtable
+catalogue-ctan /macros/luatex/latex/luaprogtable
+catalogue-license mit
+catalogue-topics table
+catalogue-version 1.0
+
name luarandom
category Package
revision 49419
@@ -202187,22 +202217,23 @@ catalogue-version 2.0
name newcomputermodern
category Package
-revision 55809
+revision 56110
shortdesc Computer Modern fonts including matching non-latin alphabets
relocated 1
longdesc This is a new assembly of Computer Modern fonts plus glyphs for
longdesc non Latin alphabets which are considered compatible in style to
longdesc CM fonts. In addition to the Regular weight of Computer Modern,
longdesc it provides a Book weight for heavier printing.
-containersize 4381688
-containerchecksum 8f1491c6e95b431b49008c67fb0d121c1d706c527f65305c6c5521388db17b5d20c0155690c72a160b2005c833df6533acff1171ed7f14d940b4f109db9747e5
-doccontainersize 134704
-doccontainerchecksum ecaf8ef733d3562ee13469ae991bde9e8bc362d8691cc55be261d49f7355612892189c236367cf3e230b03f2c473f678e9cf7fdad49f844604b6fd458caea3d4
-docfiles size=37
+containersize 4479552
+containerchecksum 5d474f299b1f5a116314c358bb5747ad6ab0e9f5930a5d598208473935ad059579c8f7954b754034b1d3699477ae09cea135160e7f948b195c73482e8a994b68
+doccontainersize 1662184
+doccontainerchecksum a91ba9e8aa331cd0733b1e8851278bf9d0a933e201f595773cd3548b1ce39c4728bd3ec640b42fdfa329522ce5dea4976250a6d17dec35232c575abaae23a662
+docfiles size=426
RELOC/doc/fonts/newcomputermodern/README details="Readme"
+ RELOC/doc/fonts/newcomputermodern/newcm-unimath-symbols.pdf
RELOC/doc/fonts/newcomputermodern/newcomputermodern-sample.pdf details="Font samples"
RELOC/doc/fonts/newcomputermodern/newcomputermodern-sample.tex
-runfiles size=3044
+runfiles size=3105
RELOC/fonts/opentype/public/newcomputermodern/NewCM10-Bold.otf
RELOC/fonts/opentype/public/newcomputermodern/NewCM10-BoldItalic.otf
RELOC/fonts/opentype/public/newcomputermodern/NewCM10-Book.otf
@@ -202232,7 +202263,7 @@ runfiles size=3044
catalogue-ctan /fonts/newcomputermodern
catalogue-license gfl
catalogue-topics font font-cm font-body font-proportional font-mono font-serif font-sans font-multilingual font-greek font-cyrillic font-hebrew font-maths font-otf cherokee
-catalogue-version 2.1
+catalogue-version 2.2
name newenviron
category Package
@@ -287060,15 +287091,15 @@ docfiles size=592
name texlive-docindex
category TLCore
-revision 56098
+revision 56109
shortdesc top-level TeX Live doc.html, etc.
longdesc These files are regenerated as needed, which is often, so we
longdesc make them a separate package. See the tl-update-auto script for
longdesc the process.
containersize 388
-containerchecksum cdddf4dafc8de36a99de4ffbff59fbaa345c0db3f05ffcac6116014b6ac2f2d3ac9fbced8040d08c1bd8de6a3d8a75671b483ad4337c75cd5d5168152a026296
-doccontainersize 168160
-doccontainerchecksum e854cd253e9bc1d6683edb28e7396125ba38421f5d48120f69e4ca443813623981f201690862c9ec1a862fb0fee3f7b6b69fb7df5c30e82511fe88f53d059468
+containerchecksum 626ef4ca901097acc6bc8e66013feb5a1d39460e44b145c7236ce1742d72f1b8eccdd64973cf019c1c1e954d57c97e3476c94e15f9b0910733913058e13a295f
+doccontainersize 168084
+doccontainerchecksum 741f0c13e61d8eab30bd92159c2dd9fa286424dd5364dc18748b383d2159992401e620279d558215bf5462a86d919c1be46ac4f97838cb86d5d1eb17176f37da
docfiles size=333
doc.html
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 22763d529c..8a1ddedb78 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-1ab151349d4a46d8e439890ededbc939 texlive.tlpdb
+5233227640934da42adeb028c58fefce texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 9643898a94..fb68f52a4d 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-3d945650ed3fecd88bea7c5a44724e632be287532ee936a34857c46d75e4ad5e879c3fb6e2946983c61697e87158d3a28fdec9588a320f833942a272b6fb5850 texlive.tlpdb
+5c0eb38cf731ff423bb458f9ee018fda7030ee4f66826a3024733a6df5730b8757b600509b88697043742ac6023499195f46549c77d85e9c1ae4af4eafe59837 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index cc0aaffe3a..90a1e8ed16 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-----
-iQEcBAEBCgAGBQJfNdNjAAoJEEzhh34ZQ4xwRbsIAJvksv+e0zPnck6NesfZYYCN
-IHwOjlxM+WF4H+vupuTANg+1GEWvjQjCzZjDXU/iSauCJRaAQpvie4jUuZCDKPr4
-X0atsOJcVFW40HIuxhrX5Qvr3hSQIxboP/bN3PHR/Upk548nIiXPTqpGDbZFLgz1
-Nj5lKxlDSpQcls/CNxFpqFz2ZX7Jkt/FP4SyPAVHW13xnM4gUuhfliYx6qdPWTc9
-/X/7PJ+i5geGhP1hfCh5yBfz2BQQTmCjhtjJS92k+KgKdElJbJnn52dtChKlLfwl
-sXbMLl7UmIbkekdeEyV97eg8A90l+1O+xj1+TS8nVM4XM+VTPqA5yk8JP96chbw=
-=8R+Z
+iQEcBAEBCgAGBQJfNyTVAAoJEEzhh34ZQ4xw3sMH/j/kzpIMVANxskt06e112/Ue
+oSACjyNwTPQ0nCFSOPRE6wcFUa7WwGr/drENBcspP8MiQnqeCuOZUbj7r+wcHud4
+qdiSdrMeDmlZ9eeUeFa/voCDZjbQ45twqWnh38X+ZFQSMPMV1CwhmdnZQ1PB7ySW
+Md7bvW6jjagXMd+2ybgrLx21sE0jqfnApebJZy+fSj7j2brQO3G+mx+LnlMmMO81
+SaOarMTuYUpb1G9UxL+z9NCVrb+cARN8Z5LvHZbuuP1BbMkPjTHxxdkoa/rZKPus
+m5Gww9GdSCrmaUgeexJThVpg8tCGDn4K0dR9OJofiZT2VuseXbdblexRNS9tKFI=
+=U9cV
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index ca0d7fdc42..ac83fc34e5 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 9b07ab52be..3f1ecaa5a1 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=1597349728
+date=1597436091
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=ac235fa196d4ff513ff34ff55122ea12
+lstdigest=0c4b4820ff5860b77f7ef09e50d840f2
numpkg=3958
relstate=next
-version=7530
+version=7531
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: aCqA4e+5LwSYGtUctKWb8Lmyz2+Gjv2ObqPt3mzZ6EkDfcUhqJfz5aROGBKkyoGvULzjNJBQE4P8Un5i2dWwmgDyXmNeu+RpX/R64eJ004d6ScWZNzMoUqlnhKyNrvtHPSgeIMbnr4YjL+1nuZzpX7zl65sHwPzrUYbpqyVxAESR5x6Gm7P4k3VEHV5TeU5qM8GDfr7MezudFyQTCn1HHhhce5Eec+hNPcUduudHuCdnmMlsPE6p8mIjruxhsVsH5pBILIaemDX4AZxjyIlfpZwWZcptioutxlEhfIRKge9bK5ksp7oV1bLJwxACxMJVvHO7FPN/ETp3rL4A6hmrVQ==
+;;;; signature/miktex: wb7dsF2EA04/KRMNz2QuS+RQ9GjU2tr0dRVQkmslIxu7x7GrPJg0gUk26T3W+TnOx/n0kDIHXVrKHPoKqnVo1wQgUFJ603hHjDKVxR19+4fTv/jFNV8QIYzkbR8PWh9nHlVsYnH8wpaMsY3o3AnKB6ToMmWHopb13kGxrB1oVZNuZiSiaTvrxYiqfO4n0Pz4tqavH1GgkFvPTsg+z5T9llzTorfQKXqcq1g8JM+QmEu+A5FS8fMDfQ0c4EHR4tX3CigAED2gydhz5Q0+CzzAysWbAFm1107BZW/kmVWaGssqZo9Cp3WFX+zdNdQz3C16M4CGQ0z/Vjq4bgsde1Lgmw==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 7a3f3648ef..b6e21269c4 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1597349496
+date=1597435889
lastupd=almendra animate annee-scolaire apa7 archaeologie babel-german beamer-rl biblatex-publist bitter circuitikz clefval ejpecp expkv-cs fontools forum frpseudocode genealogytree hausarbeit-jura horoscop l3backend
-lstdigest=e5bae39693fb8ab59613b989bbd30151
+lstdigest=91084021dbf9e87cf2129dcc66728ead
numpkg=3958
relstate=stable
-version=7530
+version=7531
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: PjGZQghdCerifRCQ6Cz0P94YNh2g5eSBQHFt6Fkn0S6gzrjSCT+lck/4b6iF84739z/MfgkZrGM+rnd8OW2grXTldCqjQEcgRO4hi+UUP9Jo9v5K4kCL+Yc5Tg/7sp1wpoL0qXzAGIH2Q9srenS2B6SkKykU+NQs2JL+YIHkqbVUCnTX7qIV1+XsvamctbnkemAVNJRGwMypPeFR9qH3z/fH4AYzcuz59G6XiN8WYQuAlwqiqyj1zjQWswDA15dFHgTmQia4TmIWvH2PNEAaSeP7VdIH6HbefXOAE4qjST83i1jcEpo7blW+A8aSrNXT/xZu4yz06/pGUeXkgFTtlA==
+;;;; signature/miktex: d/83K/WUd+7Ix9yOOyll6zNkvAf1kSFJuvkFNG5QuPavnqAqzzG8v1qPpbzMG3e7mlLGoJnCPM+th1chCwXIGHOF+bRY6/YmLf5DU4tWv+WLud956ggKk83RNcLK4LqBpPkZnjhYnocdi4s94xIfsxxLVVSwQxvcP+SrHd7oJiagAwQwpbSWDmMoHeR46gBDpCO8qelBhgF+OdVet/MaqwxlGQfL8td2iSUDdBB+MeARBYXnKS8KQ5jYHENhyrzPMNYeZSVOuA9+E+5bCGy9/sZfwZtsgfTdRTekkoxxpayPJopJsJ0DoBcAqFWYOVMnbKwrns1RKEKaE5JU0u02xQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index eda9414f69..4942f9e957 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -1,5 +1,38 @@
W32TeX (x86 & x64) ChangeLog
+[2020/08/14]
+(01) ltxpkgs.tar.xz
+ Update oberdiek. Add hopatch (moved from oberdiek), and
+ pagesel (moved from oberdiek).
+(02) luajittex-dev-w32.tar.xz
+ Update harfbuzz (2.7.1) in luajithbtex.dll.
+(03) luajittex-exp-w32.tar.xz
+ Update harfbuzz (2.7.1) in luajithbtex.dll.
+(04) luajittex-w32.tar.xz
+ Update harfbuzz (2.7.1) in luajithbtex.dll.
+(05) luatex-dev-w32.tar.xz
+ Update harfbuzz (2.7.1) in luahbtex.dll.
+(06) luatex-exp-w32.tar.xz
+ Update harfbuzz (2.7.1) in luahbtex.dll.
+(07) luatex-w32.tar.xz
+ Update harfbuzz (2.7.1) in luahbtex.dll.
+(08) xetex-w32.tar.xz
+ Update harfbuzz (2.7.1) in xetex.dll.
+(09) win64/luajittex-dev-w64.tar.xz
+ Update harfbuzz (2.7.1) in luajithbtex.dll.
+(10) win64/luajittex-exp-w64.tar.xz
+ Update harfbuzz (2.7.1) in luajithbtex.dll.
+(11) win64/luajittex-w64.tar.xz
+ Update harfbuzz (2.7.1) in luajithbtex.dll.
+(12) win64/luatex-dev-w64.tar.xz
+ Update harfbuzz (2.7.1) in luahbtex.dll.
+(13) win64/luatex-exp-w64.tar.xz
+ Update harfbuzz (2.7.1) in luahbtex.dll.
+(14) win64/luatex-w64.tar.xz
+ Update harfbuzz (2.7.1) in luahbtex.dll.
+(15) win64/xetex-w64.tar.x
+ Update harfbuzz (2.7.1) in xetex.dll.
+
[2020/08/12]
(01) context.tar.xz
ConTeXt version: 2020.08.11 15:56.
diff --git a/timestamp b/timestamp
index dd6fc914c2..62e9798ae1 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-08-14-02-02
+2020-08-15-02-02