summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-11-02 03:01:48 +0000
committerNorbert Preining <norbert@preining.info>2019-11-02 03:01:48 +0000
commit3479a92321ed7fe7e2133d3daec2d4f5fd53fbc6 (patch)
treef81c77e1742124279f68e41484d9e53ad40248ff
parent61b8d58232b999b6cc966aee9152fb86bbb759cd (diff)
CTAN sync 201911020301
-rw-r--r--FILES.byname548
-rw-r--r--FILES.byname.gzbin2131516 -> 2131658 bytes
-rw-r--r--FILES.last07days535
-rw-r--r--indexing/makeindexk/ChangeLog6
-rwxr-xr-xindexing/makeindexk/mkindex18
-rw-r--r--macros/latex/contrib/asmejour/README.md4
-rw-r--r--macros/latex/contrib/asmejour/asmejour-sample.bib12
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.pdfbin494919 -> 476616 bytes
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.tex112
-rw-r--r--macros/latex/contrib/asmejour/asmejour.cls18
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdfbin710746 -> 711899 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx2
-rw-r--r--macros/latex/contrib/circledsteps/README.md2
-rw-r--r--macros/latex/contrib/circledsteps/circledsteps-manual.pdfbin326130 -> 337762 bytes
-rw-r--r--macros/latex/contrib/circledsteps/circledsteps-manual.tex23
-rw-r--r--macros/latex/contrib/circledsteps/circledsteps.sty49
-rw-r--r--macros/latex/contrib/circledsteps/ctikzexample.tex10
-rw-r--r--macros/latex/contrib/cnltx/README4
-rw-r--r--macros/latex/contrib/cnltx/cnltx-base.sty9
-rw-r--r--macros/latex/contrib/cnltx/cnltx-doc.cls136
-rw-r--r--macros/latex/contrib/cnltx/cnltx-example.sty228
-rw-r--r--macros/latex/contrib/cnltx/cnltx-listings.sty7
-rw-r--r--macros/latex/contrib/cnltx/cnltx-tools.sty2
-rw-r--r--macros/latex/contrib/cnltx/cnltx-translations.sty4
-rw-r--r--macros/latex/contrib/cnltx/cnltx.bbx97
-rw-r--r--macros/latex/contrib/cnltx/cnltx.bib451
-rw-r--r--macros/latex/contrib/cnltx/cnltx.cbx2
-rw-r--r--macros/latex/contrib/cnltx/cnltx.dbx2
-rw-r--r--macros/latex/contrib/cnltx/cnltx.sty2
-rw-r--r--macros/latex/contrib/cnltx/cnltx_en.pdfbin778786 -> 773057 bytes
-rw-r--r--macros/latex/contrib/cnltx/cnltx_en.tex6
-rw-r--r--macros/latex/contrib/halloweenmath/00readme.txt4
-rw-r--r--macros/latex/contrib/halloweenmath/Makefile2
-rw-r--r--macros/latex/contrib/halloweenmath/README2
-rw-r--r--macros/latex/contrib/halloweenmath/halloweenmath-doc.pdfbin335762 -> 336123 bytes
-rw-r--r--macros/latex/contrib/halloweenmath/halloweenmath-man.pdfbin540738 -> 540967 bytes
-rw-r--r--macros/latex/contrib/halloweenmath/halloweenmath-man.tex12
-rw-r--r--macros/latex/contrib/halloweenmath/halloweenmath.dtx35
-rw-r--r--macros/latex/contrib/halloweenmath/halloweenmath.ins8
-rw-r--r--macros/latex/contrib/halloweenmath/manifest.txt4
-rw-r--r--macros/latex/contrib/l3build/CHANGELOG.md21
-rw-r--r--macros/latex/contrib/l3build/README.md2
-rw-r--r--macros/latex/contrib/l3build/l3build-check.lua27
-rw-r--r--macros/latex/contrib/l3build/l3build.12
-rw-r--r--macros/latex/contrib/l3build/l3build.dtx176
-rwxr-xr-xmacros/latex/contrib/l3build/l3build.lua10
-rw-r--r--macros/latex/contrib/l3build/l3build.pdfbin705508 -> 704268 bytes
-rw-r--r--support/make4ht/README1168
-rw-r--r--support/make4ht/changelog.tex258
-rw-r--r--support/make4ht/domfilters/make4ht-aeneas.lua3
-rw-r--r--support/make4ht/domfilters/make4ht-collapsetoc.lua198
-rw-r--r--support/make4ht/domfilters/make4ht-joincharacters.lua8
-rw-r--r--support/make4ht/domfilters/make4ht-joincolors.lua3
-rw-r--r--support/make4ht/domfilters/make4ht-odtimagesize.lua3
-rw-r--r--support/make4ht/domfilters/make4ht-odtpartable.lua9
-rw-r--r--support/make4ht/domfilters/make4ht-tablerows.lua58
-rw-r--r--support/make4ht/extensions/common_domfilters.lua29
-rw-r--r--support/make4ht/extensions/dvisvgm_hashes.lua7
-rw-r--r--support/make4ht/extensions/preprocess_input.lua108
-rw-r--r--support/make4ht/extensions/staticsite.lua3
-rw-r--r--support/make4ht/extensions/tidy.lua3
-rw-r--r--support/make4ht/filters/make4ht-domfilter.lua7
-rw-r--r--support/make4ht/filters/make4ht-entities-to-unicode.lua8
-rw-r--r--support/make4ht/filters/make4ht-mathjaxnode.lua11
-rw-r--r--support/make4ht/filters/make4ht-staticsite.lua6
-rw-r--r--support/make4ht/filters/make4ht-svg-height.lua4
-rw-r--r--support/make4ht/formats/docbook.lua3
-rw-r--r--support/make4ht/formats/odt.lua23
-rwxr-xr-xsupport/make4ht/make4ht32
-rw-r--r--support/make4ht/make4ht-doc.pdfbin110638 -> 126657 bytes
-rw-r--r--support/make4ht/make4ht-doc.tex17
-rw-r--r--support/make4ht/make4ht-errorlogparser.lua97
-rw-r--r--support/make4ht/make4ht-htlatex.lua75
-rw-r--r--support/make4ht/make4ht-indexing.lua190
-rw-r--r--support/make4ht/make4ht-lib.lua29
-rw-r--r--support/make4ht/make4ht-logging.lua105
-rw-r--r--support/make4ht/make4ht-xtpipes.lua15
-rw-r--r--support/make4ht/mkparams.lua134
-rw-r--r--support/make4ht/mkutils.lua131
-rw-r--r--support/make4ht/readme.tex1353
-rw-r--r--support/tex4ebook/README139
-rw-r--r--support/tex4ebook/changelog.tex100
-rw-r--r--support/tex4ebook/exec_epub.lua372
-rw-r--r--support/tex4ebook/exec_epub3.lua129
-rw-r--r--support/tex4ebook/exec_mobi.lua3
-rw-r--r--support/tex4ebook/readme.tex137
-rwxr-xr-xsupport/tex4ebook/tex4ebook99
-rw-r--r--support/tex4ebook/tex4ebook-doc.pdfbin73368 -> 78095 bytes
-rw-r--r--support/tex4ebook/tex4ebook.4ht20
-rw-r--r--support/tex4ebook/tex4ebook.sty45
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb130
-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.xzbin2128924 -> 2129964 bytes
-rw-r--r--systems/win32/w32tex/ChangeLog44
-rw-r--r--timestamp2
171 files changed, 5247 insertions, 2853 deletions
diff --git a/FILES.byname b/FILES.byname
index 23f8ad74f7..6ef30fb8ea 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -4990,7 +4990,7 @@
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
2014/04/13 | 4600576 | dviware/xdvi/22.87/xdvik-22.87.tar.gz
-2019/10/31 | 82255 | FILES.last07days
+2019/11/01 | 91758 | 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
@@ -158143,7 +158143,7 @@
2019/10/13 | 15682209 | install/macros/latex/contrib/koma-script.tds.zip
2015/12/09 | 171418 | install/macros/latex/contrib/ksp-thesis.tds.zip
2019/10/11 | 781473 | install/macros/latex/contrib/l3backend.tds.zip
-2019/10/02 | 786307 | install/macros/latex/contrib/l3build.tds.zip
+2019/11/01 | 785644 | install/macros/latex/contrib/l3build.tds.zip
2019/10/11 | 4942596 | install/macros/latex/contrib/l3experimental.tds.zip
2019/10/28 | 9428971 | install/macros/latex/contrib/l3kernel.tds.zip
2019/10/11 | 2111774 | install/macros/latex/contrib/l3packages.tds.zip
@@ -174649,15 +174649,15 @@
2019/07/08 | 91105 | macros/latex/contrib/asmeconf/sample-figure-2b.pdf
2019/10/03 | 705929 | macros/latex/contrib/asmeconf.zip
2019/07/07 | 35226 | macros/latex/contrib/asmejour/asmejour.bst
-2019/10/02 | 25946 | macros/latex/contrib/asmejour/asmejour.cls
-2019/10/01 | 12642 | macros/latex/contrib/asmejour/asmejour-sample.bib
-2019/10/02 | 494919 | macros/latex/contrib/asmejour/asmejour-template.pdf
-2019/10/02 | 35248 | macros/latex/contrib/asmejour/asmejour-template.tex
-2019/10/02 | 3849 | macros/latex/contrib/asmejour/README.md
+2019/10/31 | 26265 | macros/latex/contrib/asmejour/asmejour.cls
+2019/10/31 | 12987 | macros/latex/contrib/asmejour/asmejour-sample.bib
+2019/10/31 | 476616 | macros/latex/contrib/asmejour/asmejour-template.pdf
+2019/10/31 | 35614 | macros/latex/contrib/asmejour/asmejour-template.tex
+2019/10/31 | 4011 | macros/latex/contrib/asmejour/README.md
2019/03/24 | 17689 | macros/latex/contrib/asmejour/sample-figure-1.pdf
2019/07/08 | 95556 | macros/latex/contrib/asmejour/sample-figure-2a.pdf
2019/07/08 | 91105 | macros/latex/contrib/asmejour/sample-figure-2b.pdf
-2019/10/02 | 700512 | macros/latex/contrib/asmejour.zip
+2019/11/01 | 683228 | macros/latex/contrib/asmejour.zip
2008/02/08 | 3136 | macros/latex/contrib/aspectratio/amarbi.pfb
2008/02/08 | 144 | macros/latex/contrib/aspectratio/amarbi.tfm
2008/01/27 | 3138 | macros/latex/contrib/aspectratio/amarri.pfb
@@ -176410,84 +176410,84 @@
2017/06/17 | 9858 | macros/latex/contrib/biblatex-contrib/biblatex-enc/enc.cbx
2017/06/17 | 5005 | macros/latex/contrib/biblatex-contrib/biblatex-enc/README
2017/06/17 | 11479 | macros/latex/contrib/biblatex-contrib/biblatex-enc.zip
-2019/10/31 | 1290 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-examples.bib
-2019/10/31 | 3637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty
-2019/10/31 | 15109 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
-2019/10/31 | 7668 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
-2019/10/31 | 5586 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty
-2019/10/31 | 6074 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
-2019/10/31 | 710746 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf
-2019/10/31 | 8804 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
-2019/10/31 | 132566 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
-2019/10/31 | 8936 | macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua
-2019/10/31 | 8747 | macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md
-2019/10/31 | 628 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx
-2019/10/31 | 3811 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
-2019/10/31 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
-2019/10/31 | 3249 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
-2019/10/31 | 684 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx
-2019/10/31 | 4612 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx
-2019/10/31 | 1391 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx
-2019/10/31 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx
-2019/10/31 | 5833 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx
-2019/10/31 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx
-2019/10/31 | 4830 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx
-2019/10/31 | 6137 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx
-2019/10/31 | 3985 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx
-2019/10/31 | 1848 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
-2019/10/31 | 705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx
-2019/10/31 | 4576 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx
-2019/10/31 | 677 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx
-2019/10/31 | 5257 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx
-2019/10/31 | 4933 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx
-2019/10/31 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx
-2019/10/31 | 8255 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx
-2019/10/31 | 688 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx
-2019/10/31 | 11663 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
-2019/10/31 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx
-2019/10/31 | 5587 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx
-2019/10/31 | 698 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx
-2019/10/31 | 8705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx
-2019/10/31 | 691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx
-2019/10/31 | 12128 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx
-2019/10/31 | 697 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx
-2019/10/31 | 5336 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx
-2019/10/31 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx
-2019/10/31 | 6171 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
-2019/10/31 | 692 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx
-2019/10/31 | 2086 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
-2019/10/31 | 700 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx
-2019/10/31 | 5773 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx
-2019/10/31 | 6671 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx
-2019/10/31 | 11708 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
-2019/10/31 | 2939 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx
-2019/10/31 | 619 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
-2019/10/31 | 4111 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx
-2019/10/31 | 4617 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx
-2019/10/31 | 3548 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
-2019/10/31 | 36728 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
-2019/10/31 | 622 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx
-2019/10/31 | 2673 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx
-2019/10/31 | 2686 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx
-2019/10/31 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx
-2019/10/31 | 2846 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx
-2019/10/31 | 2841 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
-2019/10/31 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx
-2019/10/31 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx
-2019/10/31 | 688 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx
-2019/10/31 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx
-2019/10/31 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx
-2019/10/31 | 2689 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx
-2019/10/31 | 6067 | macros/latex/contrib/biblatex-contrib/biblatex-ext/README.md
-2019/10/31 | 651549 | macros/latex/contrib/biblatex-contrib/biblatex-ext.zip
+2019/11/01 | 1290 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-examples.bib
+2019/11/01 | 3637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty
+2019/11/01 | 15109 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
+2019/11/01 | 7668 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
+2019/11/01 | 5586 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty
+2019/11/01 | 6074 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
+2019/11/01 | 711899 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf
+2019/11/01 | 8804 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
+2019/11/01 | 132695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
+2019/11/01 | 8936 | macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua
+2019/11/01 | 8906 | macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md
+2019/11/01 | 628 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx
+2019/11/01 | 3811 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
+2019/11/01 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
+2019/11/01 | 3249 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
+2019/11/01 | 684 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx
+2019/11/01 | 4612 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx
+2019/11/01 | 1391 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx
+2019/11/01 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx
+2019/11/01 | 5833 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx
+2019/11/01 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx
+2019/11/01 | 4830 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx
+2019/11/01 | 6137 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx
+2019/11/01 | 3985 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx
+2019/11/01 | 1848 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
+2019/11/01 | 705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx
+2019/11/01 | 4576 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx
+2019/11/01 | 677 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx
+2019/11/01 | 5257 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx
+2019/11/01 | 4933 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx
+2019/11/01 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx
+2019/11/01 | 8255 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx
+2019/11/01 | 688 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx
+2019/11/01 | 11663 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
+2019/11/01 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx
+2019/11/01 | 5587 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx
+2019/11/01 | 698 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx
+2019/11/01 | 8705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx
+2019/11/01 | 691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx
+2019/11/01 | 12128 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx
+2019/11/01 | 697 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx
+2019/11/01 | 5336 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx
+2019/11/01 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx
+2019/11/01 | 6171 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
+2019/11/01 | 692 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx
+2019/11/01 | 2086 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
+2019/11/01 | 700 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx
+2019/11/01 | 5773 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx
+2019/11/01 | 6671 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx
+2019/11/01 | 11708 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
+2019/11/01 | 2939 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx
+2019/11/01 | 619 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
+2019/11/01 | 4111 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx
+2019/11/01 | 4617 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx
+2019/11/01 | 3548 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
+2019/11/01 | 36728 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
+2019/11/01 | 622 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx
+2019/11/01 | 2673 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx
+2019/11/01 | 2686 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx
+2019/11/01 | 2846 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx
+2019/11/01 | 2841 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx
+2019/11/01 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx
+2019/11/01 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx
+2019/11/01 | 2689 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx
+2019/11/01 | 6067 | macros/latex/contrib/biblatex-contrib/biblatex-ext/README.md
+2019/11/01 | 652246 | macros/latex/contrib/biblatex-contrib/biblatex-ext.zip
2017/11/21 | 241897 | macros/latex/contrib/biblatex-contrib/biblatex-fiwi/doc/biblatex-fiwi.pdf
2017/11/21 | 86976 | macros/latex/contrib/biblatex-contrib/biblatex-fiwi/doc/biblatex-fiwi.tex
2017/11/21 | 570 | macros/latex/contrib/biblatex-contrib/biblatex-fiwi/doc/dissff.xdy
@@ -178610,13 +178610,13 @@
2010/02/22 | 185801 | macros/latex/contrib/circle/circle.pdf
1998/10/12 | 1729 | macros/latex/contrib/circle/circle.sty
2010/02/22 | 1518 | macros/latex/contrib/circle/circle.tex
-2019/10/27 | 326130 | macros/latex/contrib/circledsteps/circledsteps-manual.pdf
-2019/10/27 | 5822 | macros/latex/contrib/circledsteps/circledsteps-manual.tex
-2019/10/27 | 2719 | macros/latex/contrib/circledsteps/circledsteps.sty
-2019/10/27 | 1378 | macros/latex/contrib/circledsteps/ctikzexample.tex
-2019/10/27 | 19106 | macros/latex/contrib/circledsteps/lppl-1-3c_license.txt
-2019/10/27 | 1148 | macros/latex/contrib/circledsteps/README.md
-2019/10/27 | 335917 | macros/latex/contrib/circledsteps.zip
+2019/11/01 | 337762 | macros/latex/contrib/circledsteps/circledsteps-manual.pdf
+2019/11/01 | 5991 | macros/latex/contrib/circledsteps/circledsteps-manual.tex
+2019/11/01 | 3485 | macros/latex/contrib/circledsteps/circledsteps.sty
+2019/11/01 | 1519 | macros/latex/contrib/circledsteps/ctikzexample.tex
+2019/11/01 | 19106 | macros/latex/contrib/circledsteps/lppl-1-3c_license.txt
+2019/11/01 | 1196 | macros/latex/contrib/circledsteps/README.md
+2019/11/01 | 347724 | macros/latex/contrib/circledsteps.zip
2010/02/22 | 181164 | macros/latex/contrib/circle.zip
2015/03/03 | 11765 | macros/latex/contrib/cite/chapterbib.ltx
2015/03/03 | 147894 | macros/latex/contrib/cite/chapterbib.pdf
@@ -178880,23 +178880,23 @@
2014/01/01 | 2558 | macros/latex/contrib/cnbwp/doc/widematrix.tex
2014/01/01 | 1138 | macros/latex/contrib/cnbwp/README
2014/01/02 | 818350 | macros/latex/contrib/cnbwp.zip
-2015/08/17 | 26745 | macros/latex/contrib/cnltx/cnltx-base.sty
-2015/08/17 | 6433 | macros/latex/contrib/cnltx/cnltx.bbx
-2015/08/17 | 29353 | macros/latex/contrib/cnltx/cnltx.bib
-2015/08/17 | 1620 | macros/latex/contrib/cnltx/cnltx.cbx
-2015/08/17 | 1704 | macros/latex/contrib/cnltx/cnltx.dbx
-2015/08/17 | 27600 | macros/latex/contrib/cnltx/cnltx-doc.cls
-2015/08/17 | 778786 | macros/latex/contrib/cnltx/cnltx_en.pdf
-2015/08/17 | 126452 | macros/latex/contrib/cnltx/cnltx_en.tex
-2015/08/17 | 32078 | macros/latex/contrib/cnltx/cnltx-example.sty
-2015/08/17 | 317 | macros/latex/contrib/cnltx/cnltx.ist
-2015/08/17 | 30253 | macros/latex/contrib/cnltx/cnltx-listings.sty
-2015/08/17 | 5207 | macros/latex/contrib/cnltx/cnltx-names.sty
-2015/08/17 | 1688 | macros/latex/contrib/cnltx/cnltx.sty
-2015/08/17 | 6942 | macros/latex/contrib/cnltx/cnltx-tools.sty
-2015/08/17 | 5433 | macros/latex/contrib/cnltx/cnltx-translations.sty
-2015/08/17 | 1514 | macros/latex/contrib/cnltx/README
-2015/08/17 | 843163 | macros/latex/contrib/cnltx.zip
+2019/11/01 | 26849 | macros/latex/contrib/cnltx/cnltx-base.sty
+2019/11/01 | 7083 | macros/latex/contrib/cnltx/cnltx.bbx
+2019/11/01 | 30487 | macros/latex/contrib/cnltx/cnltx.bib
+2019/11/01 | 1621 | macros/latex/contrib/cnltx/cnltx.cbx
+2019/11/01 | 1705 | macros/latex/contrib/cnltx/cnltx.dbx
+2019/11/01 | 28433 | macros/latex/contrib/cnltx/cnltx-doc.cls
+2019/11/01 | 773057 | macros/latex/contrib/cnltx/cnltx_en.pdf
+2019/11/01 | 126420 | macros/latex/contrib/cnltx/cnltx_en.tex
+2019/11/01 | 34365 | macros/latex/contrib/cnltx/cnltx-example.sty
+2019/11/01 | 317 | macros/latex/contrib/cnltx/cnltx.ist
+2019/11/01 | 30308 | macros/latex/contrib/cnltx/cnltx-listings.sty
+2019/11/01 | 5207 | macros/latex/contrib/cnltx/cnltx-names.sty
+2019/11/01 | 1689 | macros/latex/contrib/cnltx/cnltx.sty
+2019/11/01 | 6943 | macros/latex/contrib/cnltx/cnltx-tools.sty
+2019/11/01 | 5434 | macros/latex/contrib/cnltx/cnltx-translations.sty
+2019/11/01 | 1515 | macros/latex/contrib/cnltx/README
+2019/11/01 | 838590 | macros/latex/contrib/cnltx.zip
2014/11/26 | 52680 | macros/latex/contrib/cntdwn/cntdwn.dtx
2010/08/10 | 2123 | macros/latex/contrib/cntdwn/cntdwn.ins
2010/09/01 | 101623 | macros/latex/contrib/cntdwn/doc/cntdwn_man.pdf
@@ -185429,16 +185429,16 @@
2019/05/11 | 16662 | macros/latex/contrib/hagenberg-thesis/latex/hgbthesis.cls
2019/05/11 | 622 | macros/latex/contrib/hagenberg-thesis/README.md
2019/05/17 | 10061668 | macros/latex/contrib/hagenberg-thesis.zip
-2017/04/25 | 9426 | macros/latex/contrib/halloweenmath/00readme.txt
-2017/04/25 | 335762 | macros/latex/contrib/halloweenmath/halloweenmath-doc.pdf
-2017/04/25 | 182332 | macros/latex/contrib/halloweenmath/halloweenmath.dtx
-2017/04/25 | 5285 | macros/latex/contrib/halloweenmath/halloweenmath.ins
-2017/04/25 | 540738 | macros/latex/contrib/halloweenmath/halloweenmath-man.pdf
-2017/04/25 | 38991 | macros/latex/contrib/halloweenmath/halloweenmath-man.tex
-2017/04/25 | 4156 | macros/latex/contrib/halloweenmath/Makefile
-2017/04/25 | 3213 | macros/latex/contrib/halloweenmath/manifest.txt
-2017/04/25 | 1375 | macros/latex/contrib/halloweenmath/README
-2017/04/25 | 928805 | macros/latex/contrib/halloweenmath.zip
+2019/11/01 | 9427 | macros/latex/contrib/halloweenmath/00readme.txt
+2019/11/01 | 336123 | macros/latex/contrib/halloweenmath/halloweenmath-doc.pdf
+2019/11/01 | 182671 | macros/latex/contrib/halloweenmath/halloweenmath.dtx
+2019/11/01 | 5287 | macros/latex/contrib/halloweenmath/halloweenmath.ins
+2019/11/01 | 540967 | macros/latex/contrib/halloweenmath/halloweenmath-man.pdf
+2019/11/01 | 38993 | macros/latex/contrib/halloweenmath/halloweenmath-man.tex
+2019/11/01 | 4156 | macros/latex/contrib/halloweenmath/Makefile
+2019/11/01 | 3214 | macros/latex/contrib/halloweenmath/manifest.txt
+2019/11/01 | 1375 | macros/latex/contrib/halloweenmath/README
+2019/11/01 | 929512 | macros/latex/contrib/halloweenmath.zip
2018/07/22 | 149922 | macros/latex/contrib/handin/example.pdf
2018/07/22 | 625 | macros/latex/contrib/handin/example.tex
2018/07/22 | 176554 | macros/latex/contrib/handin/handin-doc.pdf
@@ -187426,31 +187426,31 @@
2019/10/11 | 63624 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
2019/10/11 | 545 | macros/latex/contrib/l3backend/README.md
2019/10/11 | 757955 | macros/latex/contrib/l3backend.zip
-2019/10/02 | 10514 | macros/latex/contrib/l3build/CHANGELOG.md
-2019/10/02 | 2339 | macros/latex/contrib/l3build/CONTRIBUTING.md
-2019/10/02 | 1817 | macros/latex/contrib/l3build/l3build.1
-2019/10/02 | 7438 | macros/latex/contrib/l3build/l3build-arguments.lua
-2019/10/02 | 3239 | macros/latex/contrib/l3build/l3build-aux.lua
-2019/10/02 | 33223 | macros/latex/contrib/l3build/l3build-check.lua
-2019/10/02 | 1495 | macros/latex/contrib/l3build/l3build-clean.lua
-2019/10/02 | 4472 | macros/latex/contrib/l3build/l3build-ctan.lua
-2019/10/02 | 103567 | macros/latex/contrib/l3build/l3build.dtx
-2019/10/02 | 11748 | macros/latex/contrib/l3build/l3build-file-functions.lua
-2019/10/02 | 2191 | macros/latex/contrib/l3build/l3build-help.lua
-2019/10/02 | 1537 | macros/latex/contrib/l3build/l3build.ins
-2019/10/02 | 8797 | macros/latex/contrib/l3build/l3build-install.lua
-2019/10/02 | 5154 | macros/latex/contrib/l3build/l3build.lua
-2019/10/02 | 7205 | macros/latex/contrib/l3build/l3build-manifest.lua
-2019/10/02 | 11024 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
-2019/10/02 | 705508 | macros/latex/contrib/l3build/l3build.pdf
-2019/10/02 | 4305 | macros/latex/contrib/l3build/l3build-stdmain.lua
-2019/10/02 | 2305 | macros/latex/contrib/l3build/l3build-tagging.lua
-2019/10/02 | 6789 | macros/latex/contrib/l3build/l3build-typesetting.lua
-2019/10/02 | 3106 | macros/latex/contrib/l3build/l3build-unpack.lua
-2019/10/02 | 11575 | macros/latex/contrib/l3build/l3build-upload.lua
-2019/10/02 | 6790 | macros/latex/contrib/l3build/l3build-variables.lua
-2019/10/02 | 1024 | macros/latex/contrib/l3build/README.md
-2019/10/02 | 782606 | macros/latex/contrib/l3build.zip
+2019/11/01 | 11010 | macros/latex/contrib/l3build/CHANGELOG.md
+2019/11/01 | 2339 | macros/latex/contrib/l3build/CONTRIBUTING.md
+2019/11/01 | 1817 | macros/latex/contrib/l3build/l3build.1
+2019/11/01 | 7438 | macros/latex/contrib/l3build/l3build-arguments.lua
+2019/11/01 | 3239 | macros/latex/contrib/l3build/l3build-aux.lua
+2019/11/01 | 33539 | macros/latex/contrib/l3build/l3build-check.lua
+2019/11/01 | 1495 | macros/latex/contrib/l3build/l3build-clean.lua
+2019/11/01 | 4472 | macros/latex/contrib/l3build/l3build-ctan.lua
+2019/11/01 | 104610 | macros/latex/contrib/l3build/l3build.dtx
+2019/11/01 | 11748 | macros/latex/contrib/l3build/l3build-file-functions.lua
+2019/11/01 | 2191 | macros/latex/contrib/l3build/l3build-help.lua
+2019/11/01 | 1537 | macros/latex/contrib/l3build/l3build.ins
+2019/11/01 | 8797 | macros/latex/contrib/l3build/l3build-install.lua
+2019/11/01 | 5392 | macros/latex/contrib/l3build/l3build.lua
+2019/11/01 | 7205 | macros/latex/contrib/l3build/l3build-manifest.lua
+2019/11/01 | 11024 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
+2019/11/01 | 704268 | macros/latex/contrib/l3build/l3build.pdf
+2019/11/01 | 4305 | macros/latex/contrib/l3build/l3build-stdmain.lua
+2019/11/01 | 2305 | macros/latex/contrib/l3build/l3build-tagging.lua
+2019/11/01 | 6789 | macros/latex/contrib/l3build/l3build-typesetting.lua
+2019/11/01 | 3106 | macros/latex/contrib/l3build/l3build-unpack.lua
+2019/11/01 | 11575 | macros/latex/contrib/l3build/l3build-upload.lua
+2019/11/01 | 6790 | macros/latex/contrib/l3build/l3build-variables.lua
+2019/11/01 | 1024 | macros/latex/contrib/l3build/README.md
+2019/11/01 | 781694 | macros/latex/contrib/l3build.zip
2019/10/11 | 3539 | macros/latex/contrib/l3experimental/CHANGELOG.md
2019/10/11 | 17815 | macros/latex/contrib/l3experimental/l3benchmark.dtx
2019/10/11 | 1564 | macros/latex/contrib/l3experimental/l3benchmark.ins
@@ -241362,57 +241362,65 @@
2019/05/27 | 96489 | support/lyluatex/lyluatex.tex
2019/05/27 | 2868 | support/lyluatex/README.md
2019/05/28 | 1334865 | support/lyluatex.zip
-2019/05/24 | 15532 | support/make4ht/changelog.tex
-2019/05/24 | 4604 | support/make4ht/domfilters/make4ht-aeneas.lua
-2019/05/24 | 1047 | support/make4ht/domfilters/make4ht-fixinlines.lua
-2019/05/24 | 595 | support/make4ht/domfilters/make4ht-idcolons.lua
-2019/05/24 | 2761 | support/make4ht/domfilters/make4ht-joincharacters.lua
-2019/05/24 | 2175 | support/make4ht/domfilters/make4ht-joincolors.lua
-2019/05/24 | 584 | support/make4ht/domfilters/make4ht-odtimagesize.lua
-2019/05/24 | 986 | support/make4ht/domfilters/make4ht-t4htlinks.lua
-2019/05/24 | 677 | support/make4ht/extensions/common_domfilters.lua
-2019/05/24 | 627 | support/make4ht/extensions/common_filters.lua
-2019/05/24 | 8265 | support/make4ht/extensions/dvisvgm_hashes.lua
-2019/05/24 | 309 | support/make4ht/extensions/join_colors.lua
-2019/05/24 | 974 | support/make4ht/extensions/latexmk_build.lua
-2019/05/24 | 271 | support/make4ht/extensions/mathjaxnode.lua
-2019/05/24 | 288 | support/make4ht/extensions/odttemplate.lua
-2019/05/24 | 4261 | support/make4ht/extensions/staticsite.lua
-2019/05/24 | 1290 | support/make4ht/extensions/tidy.lua
-2019/05/24 | 798 | support/make4ht/filters/make4ht-cleanspan.lua
-2019/05/24 | 264 | support/make4ht/filters/make4ht-cleanspan-nat.lua
-2019/05/24 | 2216 | support/make4ht/filters/make4ht-domfilter.lua
-2019/05/24 | 291 | support/make4ht/filters/make4ht-entities.lua
-2019/05/24 | 639 | support/make4ht/filters/make4ht-entities-to-unicode.lua
-2019/05/24 | 596 | support/make4ht/filters/make4ht-filter.lua
-2019/05/24 | 386 | support/make4ht/filters/make4ht-fixligatures.lua
-2019/05/24 | 425 | support/make4ht/filters/make4ht-fix-links.lua
-2019/05/24 | 402 | support/make4ht/filters/make4ht-hruletohr.lua
-2019/05/24 | 3108 | support/make4ht/filters/make4ht-mathjaxnode.lua
-2019/05/24 | 2324 | support/make4ht/filters/make4ht-odttemplate.lua
-2019/05/24 | 3378 | support/make4ht/filters/make4ht-staticsite.lua
-2019/05/24 | 1147 | support/make4ht/filters/make4ht-svg-height.lua
-2019/05/24 | 1103 | support/make4ht/formats/docbook.lua
-2019/05/24 | 464 | support/make4ht/formats/html5.lua
-2019/05/24 | 7326 | support/make4ht/formats/odt.lua
-2019/05/24 | 344 | support/make4ht/formats/tei.lua
-2019/05/24 | 349 | support/make4ht/formats/xhtml.lua
-2019/05/24 | 9796 | support/make4ht/lapp-mk4.lua
-2019/05/24 | 3445 | support/make4ht/make4ht
-2019/05/24 | 7915 | support/make4ht/make4ht-aeneas-config.lua
-2019/05/24 | 2465 | support/make4ht/make4ht-config.lua
-2019/05/24 | 110638 | support/make4ht/make4ht-doc.pdf
-2019/05/24 | 547 | support/make4ht/make4ht-doc.tex
-2019/05/24 | 5355 | support/make4ht/make4ht-dvireader.lua
-2019/05/24 | 1039 | support/make4ht/make4ht-filterlib.lua
-2019/05/24 | 6278 | support/make4ht/make4ht-lib.lua
-2019/05/24 | 3163 | support/make4ht/make4ht-xtpipes.lua
-2019/05/24 | 2595 | support/make4ht/mathnode.lua
-2019/05/24 | 8005 | support/make4ht/mkparams.lua
-2019/05/24 | 16943 | support/make4ht/mkutils.lua
-2019/05/24 | 29323 | support/make4ht/README
-2019/05/24 | 36447 | support/make4ht/readme.tex
-2019/05/24 | 183436 | support/make4ht.zip
+2019/11/01 | 20997 | support/make4ht/changelog.tex
+2019/11/01 | 4641 | support/make4ht/domfilters/make4ht-aeneas.lua
+2019/11/01 | 6807 | support/make4ht/domfilters/make4ht-collapsetoc.lua
+2019/11/01 | 1047 | support/make4ht/domfilters/make4ht-fixinlines.lua
+2019/11/01 | 595 | support/make4ht/domfilters/make4ht-idcolons.lua
+2019/11/01 | 2768 | support/make4ht/domfilters/make4ht-joincharacters.lua
+2019/11/01 | 2216 | support/make4ht/domfilters/make4ht-joincolors.lua
+2019/11/01 | 627 | support/make4ht/domfilters/make4ht-odtimagesize.lua
+2019/11/01 | 321 | support/make4ht/domfilters/make4ht-odtpartable.lua
+2019/11/01 | 986 | support/make4ht/domfilters/make4ht-t4htlinks.lua
+2019/11/01 | 2169 | support/make4ht/domfilters/make4ht-tablerows.lua
+2019/11/01 | 995 | support/make4ht/extensions/common_domfilters.lua
+2019/11/01 | 627 | support/make4ht/extensions/common_filters.lua
+2019/11/01 | 8335 | support/make4ht/extensions/dvisvgm_hashes.lua
+2019/11/01 | 309 | support/make4ht/extensions/join_colors.lua
+2019/11/01 | 974 | support/make4ht/extensions/latexmk_build.lua
+2019/11/01 | 271 | support/make4ht/extensions/mathjaxnode.lua
+2019/11/01 | 288 | support/make4ht/extensions/odttemplate.lua
+2019/11/01 | 3861 | support/make4ht/extensions/preprocess_input.lua
+2019/11/01 | 4301 | support/make4ht/extensions/staticsite.lua
+2019/11/01 | 1329 | support/make4ht/extensions/tidy.lua
+2019/11/01 | 798 | support/make4ht/filters/make4ht-cleanspan.lua
+2019/11/01 | 264 | support/make4ht/filters/make4ht-cleanspan-nat.lua
+2019/11/01 | 2270 | support/make4ht/filters/make4ht-domfilter.lua
+2019/11/01 | 291 | support/make4ht/filters/make4ht-entities.lua
+2019/11/01 | 713 | support/make4ht/filters/make4ht-entities-to-unicode.lua
+2019/11/01 | 596 | support/make4ht/filters/make4ht-filter.lua
+2019/11/01 | 386 | support/make4ht/filters/make4ht-fixligatures.lua
+2019/11/01 | 425 | support/make4ht/filters/make4ht-fix-links.lua
+2019/11/01 | 402 | support/make4ht/filters/make4ht-hruletohr.lua
+2019/11/01 | 3191 | support/make4ht/filters/make4ht-mathjaxnode.lua
+2019/11/01 | 2324 | support/make4ht/filters/make4ht-odttemplate.lua
+2019/11/01 | 3412 | support/make4ht/filters/make4ht-staticsite.lua
+2019/11/01 | 1215 | support/make4ht/filters/make4ht-svg-height.lua
+2019/11/01 | 1143 | support/make4ht/formats/docbook.lua
+2019/11/01 | 464 | support/make4ht/formats/html5.lua
+2019/11/01 | 7468 | support/make4ht/formats/odt.lua
+2019/11/01 | 344 | support/make4ht/formats/tei.lua
+2019/11/01 | 349 | support/make4ht/formats/xhtml.lua
+2019/11/01 | 9796 | support/make4ht/lapp-mk4.lua
+2019/11/01 | 4027 | support/make4ht/make4ht
+2019/11/01 | 7915 | support/make4ht/make4ht-aeneas-config.lua
+2019/11/01 | 2465 | support/make4ht/make4ht-config.lua
+2019/11/01 | 126657 | support/make4ht/make4ht-doc.pdf
+2019/11/01 | 798 | support/make4ht/make4ht-doc.tex
+2019/11/01 | 5355 | support/make4ht/make4ht-dvireader.lua
+2019/11/01 | 2679 | support/make4ht/make4ht-errorlogparser.lua
+2019/11/01 | 1039 | support/make4ht/make4ht-filterlib.lua
+2019/11/01 | 3277 | support/make4ht/make4ht-htlatex.lua
+2019/11/01 | 6005 | support/make4ht/make4ht-indexing.lua
+2019/11/01 | 6356 | support/make4ht/make4ht-lib.lua
+2019/11/01 | 2905 | support/make4ht/make4ht-logging.lua
+2019/11/01 | 3247 | support/make4ht/make4ht-xtpipes.lua
+2019/11/01 | 2595 | support/make4ht/mathnode.lua
+2019/11/01 | 9928 | support/make4ht/mkparams.lua
+2019/11/01 | 16324 | support/make4ht/mkutils.lua
+2019/11/01 | 36892 | support/make4ht/README
+2019/11/01 | 46112 | support/make4ht/readme.tex
+2019/11/01 | 217196 | support/make4ht.zip
2018/02/21 | 59658 | support/makedtx/makedtx.dtx
2018/02/21 | 1370 | support/makedtx/makedtx.ins
2018/02/21 | 300434 | support/makedtx/makedtx.pdf
@@ -243688,22 +243696,22 @@
2005/06/29 | 3686 | support/tex2tok/_tex2tok.tex
2005/06/29 | 20547 | support/tex2tok/tex2tok.tex
2005/06/30 | 8863 | support/tex2tok.zip
-2019/03/21 | 9093 | support/tex4ebook/changelog.tex
-2019/03/21 | 307 | support/tex4ebook/config-t4e.lua
-2019/03/21 | 4916 | support/tex4ebook/exec_epub3.lua
-2019/03/21 | 12008 | support/tex4ebook/exec_epub.lua
-2019/03/21 | 868 | support/tex4ebook/exec_mobi.lua
-2019/03/21 | 3923 | support/tex4ebook/list-fonts.lua
-2019/03/21 | 10932 | support/tex4ebook/README
-2019/03/21 | 12620 | support/tex4ebook/readme.tex
-2019/03/21 | 6023 | support/tex4ebook/tex4ebook
-2019/03/21 | 13818 | support/tex4ebook/tex4ebook.4ht
-2019/03/21 | 73368 | support/tex4ebook/tex4ebook-doc.pdf
-2019/03/21 | 752 | support/tex4ebook/tex4ebook-doc.tex
-2019/03/21 | 4325 | support/tex4ebook/tex4ebook-epub3.4ht
-2019/03/21 | 3969 | support/tex4ebook/tex4ebook.sty
-2019/03/21 | 2677 | support/tex4ebook/tidyconf.conf
-2019/03/21 | 103480 | support/tex4ebook.zip
+2019/11/01 | 11029 | support/tex4ebook/changelog.tex
+2019/11/01 | 307 | support/tex4ebook/config-t4e.lua
+2019/11/01 | 9397 | support/tex4ebook/exec_epub3.lua
+2019/11/01 | 11455 | support/tex4ebook/exec_epub.lua
+2019/11/01 | 907 | support/tex4ebook/exec_mobi.lua
+2019/11/01 | 3923 | support/tex4ebook/list-fonts.lua
+2019/11/01 | 11175 | support/tex4ebook/README
+2019/11/01 | 14355 | support/tex4ebook/readme.tex
+2019/11/01 | 5553 | support/tex4ebook/tex4ebook
+2019/11/01 | 14636 | support/tex4ebook/tex4ebook.4ht
+2019/11/01 | 78095 | support/tex4ebook/tex4ebook-doc.pdf
+2019/11/01 | 752 | support/tex4ebook/tex4ebook-doc.tex
+2019/11/01 | 4325 | support/tex4ebook/tex4ebook-epub3.4ht
+2019/11/01 | 4434 | support/tex4ebook/tex4ebook.sty
+2019/11/01 | 2677 | support/tex4ebook/tidyconf.conf
+2019/11/01 | 110376 | support/tex4ebook.zip
2017/04/17 | 463 | support/TeX4ht/README
2008/06/16 | 13958556 | support/TeX4ht/tex4ht-all.zip
1988/10/16 | 7680 | support/texcalc/TEXCALC.INS
@@ -247707,8 +247715,8 @@
2019/02/28 | 16432 | systems/texlive/tlnet/archive/biblatex-dw.tar.xz
2019/02/28 | 2284 | systems/texlive/tlnet/archive/biblatex-enc.doc.tar.xz
2019/02/28 | 8476 | systems/texlive/tlnet/archive/biblatex-enc.tar.xz
-2019/08/26 | 549948 | systems/texlive/tlnet/archive/biblatex-ext.doc.tar.xz
-2019/08/26 | 25920 | systems/texlive/tlnet/archive/biblatex-ext.tar.xz
+2019/11/01 | 541092 | systems/texlive/tlnet/archive/biblatex-ext.doc.tar.xz
+2019/11/01 | 25956 | systems/texlive/tlnet/archive/biblatex-ext.tar.xz
2019/02/28 | 595408 | systems/texlive/tlnet/archive/biblatex-fiwi.doc.tar.xz
2019/02/28 | 16768 | systems/texlive/tlnet/archive/biblatex-fiwi.tar.xz
2019/08/30 | 1488868 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.tar.xz
@@ -251207,9 +251215,9 @@
2019/02/28 | 368 | systems/texlive/tlnet/archive/glossaries.x86_64-linux.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/glossaries.x86_64-solaris.tar.xz
2019/02/28 | 102720 | systems/texlive/tlnet/archive/gloss.doc.tar.xz
-2019/02/28 | 69740 | systems/texlive/tlnet/archive/gloss-occitan.doc.tar.xz
-2019/02/28 | 6340 | systems/texlive/tlnet/archive/gloss-occitan.source.tar.xz
-2019/02/28 | 2008 | systems/texlive/tlnet/archive/gloss-occitan.tar.xz
+2019/11/01 | 69740 | systems/texlive/tlnet/archive/gloss-occitan.doc.tar.xz
+2019/11/01 | 6340 | systems/texlive/tlnet/archive/gloss-occitan.source.tar.xz
+2019/11/01 | 408 | systems/texlive/tlnet/archive/gloss-occitan.tar.xz
2019/02/28 | 5588 | systems/texlive/tlnet/archive/gloss.tar.xz
2019/02/28 | 24760 | systems/texlive/tlnet/archive/glyphlist.tar.xz
2019/02/28 | 918216 | systems/texlive/tlnet/archive/gmdoc.doc.tar.xz
@@ -253691,8 +253699,8 @@
2019/03/05 | 184868 | systems/texlive/tlnet/archive/moderntimeline.doc.tar.xz
2019/03/05 | 6048 | systems/texlive/tlnet/archive/moderntimeline.source.tar.xz
2019/03/05 | 2304 | systems/texlive/tlnet/archive/moderntimeline.tar.xz
-2019/02/28 | 625648 | systems/texlive/tlnet/archive/modiagram.doc.tar.xz
-2019/02/28 | 8612 | systems/texlive/tlnet/archive/modiagram.tar.xz
+2019/11/01 | 534332 | systems/texlive/tlnet/archive/modiagram.doc.tar.xz
+2019/11/01 | 8860 | systems/texlive/tlnet/archive/modiagram.tar.xz
2019/02/28 | 148376 | systems/texlive/tlnet/archive/modref.doc.tar.xz
2019/02/28 | 14244 | systems/texlive/tlnet/archive/modref.source.tar.xz
2019/02/28 | 2604 | systems/texlive/tlnet/archive/modref.tar.xz
@@ -255028,9 +255036,9 @@
2019/02/28 | 32696 | systems/texlive/tlnet/archive/prettyref.doc.tar.xz
2019/02/28 | 2464 | systems/texlive/tlnet/archive/prettyref.source.tar.xz
2019/02/28 | 1212 | systems/texlive/tlnet/archive/prettyref.tar.xz
-2019/02/28 | 172176 | systems/texlive/tlnet/archive/preview.doc.tar.xz
-2019/02/28 | 22596 | systems/texlive/tlnet/archive/preview.source.tar.xz
-2019/02/28 | 6796 | systems/texlive/tlnet/archive/preview.tar.xz
+2019/11/01 | 172144 | systems/texlive/tlnet/archive/preview.doc.tar.xz
+2019/11/01 | 22556 | systems/texlive/tlnet/archive/preview.source.tar.xz
+2019/11/01 | 6824 | systems/texlive/tlnet/archive/preview.tar.xz
2019/06/20 | 363452 | systems/texlive/tlnet/archive/prftree.doc.tar.xz
2019/06/20 | 11796 | systems/texlive/tlnet/archive/prftree.tar.xz
2019/02/28 | 245536 | systems/texlive/tlnet/archive/printlen.doc.tar.xz
@@ -256446,9 +256454,9 @@
2019/02/28 | 344716 | systems/texlive/tlnet/archive/subfigure.doc.tar.xz
2019/02/28 | 36364 | systems/texlive/tlnet/archive/subfigure.source.tar.xz
2019/02/28 | 4868 | systems/texlive/tlnet/archive/subfigure.tar.xz
-2019/10/26 | 205404 | systems/texlive/tlnet/archive/subfiles.doc.tar.xz
-2019/10/26 | 6004 | systems/texlive/tlnet/archive/subfiles.source.tar.xz
-2019/10/26 | 1696 | systems/texlive/tlnet/archive/subfiles.tar.xz
+2019/11/01 | 211320 | systems/texlive/tlnet/archive/subfiles.doc.tar.xz
+2019/11/01 | 7028 | systems/texlive/tlnet/archive/subfiles.source.tar.xz
+2019/11/01 | 1920 | systems/texlive/tlnet/archive/subfiles.tar.xz
2019/02/28 | 89332 | systems/texlive/tlnet/archive/subfloat.doc.tar.xz
2019/02/28 | 7148 | systems/texlive/tlnet/archive/subfloat.source.tar.xz
2019/02/28 | 2032 | systems/texlive/tlnet/archive/subfloat.tar.xz
@@ -256753,13 +256761,13 @@
2019/03/19 | 109552 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.tar.xz
2019/03/08 | 86808 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.tar.xz
2019/03/09 | 71980 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.tar.xz
-2019/10/25 | 61188 | systems/texlive/tlnet/archive/tex4ht.doc.tar.xz
+2019/11/01 | 61192 | systems/texlive/tlnet/archive/tex4ht.doc.tar.xz
2019/03/19 | 50444 | systems/texlive/tlnet/archive/tex4ht.i386-cygwin.tar.xz
2019/03/20 | 90236 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.tar.xz
2019/03/08 | 88904 | systems/texlive/tlnet/archive/tex4ht.i386-linux.tar.xz
2019/03/08 | 75544 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.tar.xz
2019/03/08 | 83892 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.tar.xz
-2019/10/25 | 896936 | systems/texlive/tlnet/archive/tex4ht.tar.xz
+2019/11/01 | 897040 | systems/texlive/tlnet/archive/tex4ht.tar.xz
2019/03/01 | 57724 | systems/texlive/tlnet/archive/tex4ht.win32.tar.xz
2019/04/10 | 57752 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.tar.xz
2019/03/08 | 85540 | systems/texlive/tlnet/archive/tex4ht.x86_64-darwinlegacy.tar.xz
@@ -256994,13 +257002,13 @@
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.tar.xz
-2019/10/31 | 51244 | systems/texlive/tlnet/archive/texlive-scripts.doc.tar.xz
+2019/11/01 | 51244 | systems/texlive/tlnet/archive/texlive-scripts.doc.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.i386-cygwin.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.i386-freebsd.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.tar.xz
-2019/10/31 | 85476 | systems/texlive/tlnet/archive/texlive-scripts.tar.xz
+2019/11/01 | 85456 | systems/texlive/tlnet/archive/texlive-scripts.tar.xz
2019/08/31 | 11636 | systems/texlive/tlnet/archive/texlive-scripts.win32.tar.xz
2019/02/28 | 372 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.tar.xz
2019/02/28 | 376 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-darwinlegacy.tar.xz
@@ -258310,13 +258318,13 @@
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.amd64-freebsd.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.amd64-netbsd.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.armhf-linux.tar.xz
-2019/10/29 | 447948 | systems/texlive/tlnet/archive/xindex.doc.tar.xz
+2019/11/01 | 446268 | systems/texlive/tlnet/archive/xindex.doc.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-cygwin.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.i386-freebsd.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-linux.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-netbsd.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-solaris.tar.xz
-2019/10/29 | 29820 | systems/texlive/tlnet/archive/xindex.tar.xz
+2019/11/01 | 30016 | systems/texlive/tlnet/archive/xindex.tar.xz
2019/02/28 | 680 | systems/texlive/tlnet/archive/xindex.win32.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.x86_64-cygwin.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/xindex.x86_64-darwinlegacy.tar.xz
@@ -258536,16 +258544,16 @@
2019/02/28 | 136844 | systems/texlive/tlnet/archive/zxjatype.doc.tar.xz
2019/02/28 | 8412 | systems/texlive/tlnet/archive/zxjatype.tar.xz
2019/10/19 | 106951 | systems/texlive/tlnet/install-tl
-2019/10/31 | 3946061 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2019/10/31 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2019/10/31 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2019/11/01 | 3946061 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2019/11/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2019/11/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2019/05/09 | 4543 | systems/texlive/tlnet/install-tl-windows.bat
-2019/10/31 | 18694018 | systems/texlive/tlnet/install-tl-windows.exe
-2019/10/31 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2019/10/31 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2019/10/31 | 22538060 | systems/texlive/tlnet/install-tl.zip
-2019/10/31 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2019/10/31 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2019/11/01 | 18695173 | systems/texlive/tlnet/install-tl-windows.exe
+2019/11/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2019/11/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2019/11/01 | 22538072 | systems/texlive/tlnet/install-tl.zip
+2019/11/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2019/11/01 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2019/04/29 | 1221 | systems/texlive/tlnet/README.md
2019/03/13 | 5351 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
2016/04/12 | 600 | systems/texlive/tlnet/tlpkg/gpg/random_seed
@@ -258554,7 +258562,7 @@
2019/03/13 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2019/09/14 | 48351 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2019/10/30 | 5959 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2019/10/31 | 5841 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2018/04/29 | 13647 | systems/texlive/tlnet/tlpkg/installer/DirSelect.pm
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
2019/06/25 | 5491 | systems/texlive/tlnet/tlpkg/installer/install-menu-extl.pl
@@ -258600,12 +258608,12 @@
2019/09/23 | 18176 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2016/10/11 | 4618 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2017/11/14 | 27560 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2019/10/31 | 15914351 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2019/10/31 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2019/11/01 | 15914704 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2019/11/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2019/09/24 | 87255 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2019/10/31 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2019/10/31 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2019/10/31 | 2128924 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2019/11/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2019/11/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2019/11/01 | 2129964 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2019/03/03 | 57785 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2018/12/17 | 36910 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2018/08/31 | 14972 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -264815,7 +264823,7 @@
2019/10/16 | 4909460 | systems/win32/w32tex/aleph-w32.tar.xz
2019/10/03 | 62949728 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2019/10/30 | 536010 | systems/win32/w32tex/ChangeLog
+2019/10/31 | 537344 | systems/win32/w32tex/ChangeLog
2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0
2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1
2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2
@@ -264825,45 +264833,45 @@
2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz
2019/10/30 | 132044448 | systems/win32/w32tex/context.tar.xz
2019/08/14 | 904952 | systems/win32/w32tex/cweb-w32.tar.xz
-2019/10/22 | 6209020 | systems/win32/w32tex/datetime2.tar.xz
+2019/10/31 | 6210360 | systems/win32/w32tex/datetime2.tar.xz
2019/08/14 | 838256 | systems/win32/w32tex/dvi2ps-w32.tar.xz
2019/09/11 | 483568 | systems/win32/w32tex/dvi2tty-w32.tar.xz
-2019/10/26 | 4648840 | systems/win32/w32tex/dvipdfm-w32.tar.xz
-2019/10/25 | 4450888 | systems/win32/w32tex/dvipsk-w32.tar.xz
+2019/10/31 | 4648748 | systems/win32/w32tex/dvipdfm-w32.tar.xz
+2019/10/31 | 4450824 | systems/win32/w32tex/dvipsk-w32.tar.xz
2019/10/26 | 2619492 | systems/win32/w32tex/dvitools-w32.tar.xz
2019/10/27 | 684496 | systems/win32/w32tex/extractpdfmark-w32.tar.xz
2019/08/14 | 17348028 | systems/win32/w32tex/gregorio-w32.tar.xz
2009/08/03 | 1072620 | systems/win32/w32tex/gtftex.zip
-2019/10/30 | 4609888 | systems/win32/w32tex/harftex-w32.tar.xz
+2019/10/31 | 4609140 | systems/win32/w32tex/harftex-w32.tar.xz
2019/10/16 | 1807036 | systems/win32/w32tex/jtex-w32.tar.xz
2019/09/30 | 31786872 | systems/win32/w32tex/latex-dev.tar.xz
2019/10/17 | 28082096 | systems/win32/w32tex/latex.tar.xz
2019/08/14 | 996476 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz
2019/10/28 | 378470352 | systems/win32/w32tex/ltxpkgdocs.tar.xz
2019/10/28 | 34251032 | systems/win32/w32tex/ltxpkgs.tar.xz
-2019/10/30 | 5021920 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
-2019/10/30 | 5021992 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
-2019/10/30 | 5023284 | systems/win32/w32tex/luajittex-w32.tar.xz
-2019/10/30 | 16203196 | systems/win32/w32tex/luatex-dev-w32.tar.xz
-2019/10/30 | 16206520 | systems/win32/w32tex/luatex-exp-w32.tar.xz
+2019/10/31 | 5026300 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
+2019/10/31 | 5021988 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
+2019/10/31 | 5024152 | systems/win32/w32tex/luajittex-w32.tar.xz
+2019/10/31 | 16166024 | systems/win32/w32tex/luatex-dev-w32.tar.xz
+2019/10/31 | 16168744 | systems/win32/w32tex/luatex-exp-w32.tar.xz
2019/09/27 | 17698764 | systems/win32/w32tex/luatexja.tar.xz
-2019/10/30 | 15245568 | systems/win32/w32tex/luatex-w32.tar.xz
+2019/10/31 | 15206052 | systems/win32/w32tex/luatex-w32.tar.xz
2019/10/05 | 1598764 | systems/win32/w32tex/makeindex-w32.tar.xz
2015/05/26 | 1542676 | systems/win32/w32tex/manual.tar.xz
-2019/10/26 | 438364 | systems/win32/w32tex/mftools.tar.xz
+2019/10/31 | 438344 | systems/win32/w32tex/mftools.tar.xz
2019/10/12 | 526496 | systems/win32/w32tex/mftrace-w32.tar.xz
2018/07/14 | 6364952 | systems/win32/w32tex/minitoc.tar.xz
2019/01/25 | 882860 | systems/win32/w32tex/m-tx.tar.xz
-2019/10/26 | 8207844 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
+2019/10/31 | 8212268 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
2019/10/15 | 1220780 | systems/win32/w32tex/omegaj-w32.tar.xz
2019/09/08 | 357888 | systems/win32/w32tex/otfbeta.tar.xz
-2019/10/27 | 12850320 | systems/win32/w32tex/pdftex-w32.tar.xz
+2019/10/31 | 12843780 | systems/win32/w32tex/pdftex-w32.tar.xz
2019/10/15 | 94780792 | systems/win32/w32tex/pgfcontrib.tar.xz
2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz
2019/10/22 | 2933444 | systems/win32/w32tex/platex.tar.xz
2018/03/05 | 1467972 | systems/win32/w32tex/pmx.tar.xz
2019/08/14 | 1170904 | systems/win32/w32tex/pstoedit-w32.tar.xz
-2019/10/21 | 284297680 | systems/win32/w32tex/pstricks.tar.xz
+2019/10/31 | 284407164 | systems/win32/w32tex/pstricks.tar.xz
2019/08/14 | 517352 | systems/win32/w32tex/psutils-w32.tar.xz
2019/10/29 | 5656820 | systems/win32/w32tex/ptex-ng-w32.tar.xz
2019/10/22 | 7760056 | systems/win32/w32tex/ptex-w32.tar.xz
@@ -264878,7 +264886,7 @@
2019/04/15 | 97136 | systems/win32/w32tex/tiff2png-w32.tar.xz
2013/04/08 | 308444 | systems/win32/w32tex/timesnew.tar.xz
2019/03/14 | 1739 | systems/win32/w32tex/TLW64/00README.TLW64
-2019/10/30 | 87530484 | systems/win32/w32tex/TLW64/tl-win64.zip
+2019/10/31 | 87531660 | systems/win32/w32tex/TLW64/tl-win64.zip
2019/08/14 | 819188 | systems/win32/w32tex/ttf2pk-w32.tar.xz
2019/08/14 | 830416 | systems/win32/w32tex/ttf2pt1-w32.tar.xz
2017/10/13 | 1773368 | systems/win32/w32tex/tuftelatex.tar.xz
@@ -264903,16 +264911,16 @@
2019/10/26 | 2390460 | systems/win32/w32tex/win64/dvitools-w64.tar.xz
2019/10/27 | 591060 | systems/win32/w32tex/win64/extractpdfmark-w64.tar.xz
2019/08/28 | 304752 | systems/win32/w32tex/win64/gregorio-w64.tar.xz
-2019/10/30 | 2673168 | systems/win32/w32tex/win64/harftex-w64.tar.xz
+2019/10/31 | 2673672 | systems/win32/w32tex/win64/harftex-w64.tar.xz
2019/08/28 | 586816 | systems/win32/w32tex/win64/jtex-w64.tar.xz
2019/07/27 | 2652 | systems/win32/w32tex/win64/latex-dev-w64.tar.xz
2019/08/28 | 799776 | systems/win32/w32tex/win64/lcdf-typetools-w64.tar.xz
-2019/10/30 | 3498328 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
-2019/10/30 | 3503980 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
-2019/10/30 | 3496564 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
-2019/10/30 | 3123184 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
-2019/10/30 | 3115368 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
-2019/10/30 | 3122464 | systems/win32/w32tex/win64/luatex-w64.tar.xz
+2019/10/31 | 3509788 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
+2019/10/31 | 3498132 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
+2019/10/31 | 3501508 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
+2019/10/31 | 3113612 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
+2019/10/31 | 3122916 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
+2019/10/31 | 3115856 | systems/win32/w32tex/win64/luatex-w64.tar.xz
2019/10/05 | 1068520 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
2019/08/14 | 430688 | systems/win32/w32tex/win64/mftools-w64.tar.xz
2019/10/12 | 376164 | systems/win32/w32tex/win64/mftrace-w64.tar.xz
@@ -265031,7 +265039,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2019/11/01 | 186 | timestamp
+2019/11/02 | 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 b4e9a84e18..f77909ddd2 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 52f4c57600..c752c6243f 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,148 +1,330 @@
+2019/11/01 | 995 | support/make4ht/extensions/common_domfilters.lua
+2019/11/01 | 9928 | support/make4ht/mkparams.lua
+2019/11/01 | 986 | support/make4ht/domfilters/make4ht-t4htlinks.lua
+2019/11/01 | 9796 | support/make4ht/lapp-mk4.lua
+2019/11/01 | 974 | support/make4ht/extensions/latexmk_build.lua
+2019/11/01 | 9427 | macros/latex/contrib/halloweenmath/00readme.txt
+2019/11/01 | 9397 | support/tex4ebook/exec_epub3.lua
+2019/11/01 | 929512 | macros/latex/contrib/halloweenmath.zip
+2019/11/01 | 907 | support/tex4ebook/exec_mobi.lua
+2019/11/01 | 897040 | systems/texlive/tlnet/archive/tex4ht.tar.xz
+2019/11/01 | 8936 | macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua
+2019/11/01 | 8906 | macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md
+2019/11/01 | 8860 | systems/texlive/tlnet/archive/modiagram.tar.xz
+2019/11/01 | 8804 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
+2019/11/01 | 8797 | macros/latex/contrib/l3build/l3build-install.lua
+2019/11/01 | 8705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx
+2019/11/01 | 85456 | systems/texlive/tlnet/archive/texlive-scripts.tar.xz
+2019/11/01 | 838590 | macros/latex/contrib/cnltx.zip
+2019/11/01 | 8335 | support/make4ht/extensions/dvisvgm_hashes.lua
+2019/11/01 | 8255 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx
+2019/11/01 | 798 | support/make4ht/make4ht-doc.tex
+2019/11/01 | 798 | support/make4ht/filters/make4ht-cleanspan.lua
+2019/11/01 | 7915 | support/make4ht/make4ht-aeneas-config.lua
+2019/11/01 | 785644 | install/macros/latex/contrib/l3build.tds.zip
+2019/11/01 | 781694 | macros/latex/contrib/l3build.zip
+2019/11/01 | 78095 | support/tex4ebook/tex4ebook-doc.pdf
+2019/11/01 | 773057 | macros/latex/contrib/cnltx/cnltx_en.pdf
+2019/11/01 | 7668 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
+2019/11/01 | 752 | support/tex4ebook/tex4ebook-doc.tex
+2019/11/01 | 7468 | support/make4ht/formats/odt.lua
+2019/11/01 | 7438 | macros/latex/contrib/l3build/l3build-arguments.lua
+2019/11/01 | 7205 | macros/latex/contrib/l3build/l3build-manifest.lua
+2019/11/01 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
+2019/11/01 | 713 | support/make4ht/filters/make4ht-entities-to-unicode.lua
+2019/11/01 | 711899 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf
+2019/11/01 | 7083 | macros/latex/contrib/cnltx/cnltx.bbx
+2019/11/01 | 705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx
+2019/11/01 | 704268 | macros/latex/contrib/l3build/l3build.pdf
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx
+2019/11/01 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx
+2019/11/01 | 7028 | systems/texlive/tlnet/archive/subfiles.source.tar.xz
+2019/11/01 | 700 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx
+2019/11/01 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx
+2019/11/01 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx
+2019/11/01 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx
+2019/11/01 | 698 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx
+2019/11/01 | 697 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx
+2019/11/01 | 69740 | systems/texlive/tlnet/archive/gloss-occitan.doc.tar.xz
+2019/11/01 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx
+2019/11/01 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx
+2019/11/01 | 6943 | macros/latex/contrib/cnltx/cnltx-tools.sty
+2019/11/01 | 692 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx
+2019/11/01 | 691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx
+2019/11/01 | 688 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx
+2019/11/01 | 684 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx
+2019/11/01 | 683228 | macros/latex/contrib/asmejour.zip
+2019/11/01 | 6824 | systems/texlive/tlnet/archive/preview.tar.xz
+2019/11/01 | 6807 | support/make4ht/domfilters/make4ht-collapsetoc.lua
+2019/11/01 | 6790 | macros/latex/contrib/l3build/l3build-variables.lua
+2019/11/01 | 6789 | macros/latex/contrib/l3build/l3build-typesetting.lua
+2019/11/01 | 677 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx
+2019/11/01 | 6671 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx
+2019/11/01 | 652246 | macros/latex/contrib/biblatex-contrib/biblatex-ext.zip
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx
+2019/11/01 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx
+2019/11/01 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx
+2019/11/01 | 6356 | support/make4ht/make4ht-lib.lua
+2019/11/01 | 6340 | systems/texlive/tlnet/archive/gloss-occitan.source.tar.xz
+2019/11/01 | 628 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx
+2019/11/01 | 627 | support/make4ht/extensions/common_filters.lua
+2019/11/01 | 627 | support/make4ht/domfilters/make4ht-odtimagesize.lua
+2019/11/01 | 622 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx
+2019/11/01 | 619 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
+2019/11/01 | 6171 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
+2019/11/01 | 6137 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
+2019/11/01 | 61192 | systems/texlive/tlnet/archive/tex4ht.doc.tar.xz
+2019/11/01 | 6074 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
+2019/11/01 | 6067 | macros/latex/contrib/biblatex-contrib/biblatex-ext/README.md
+2019/11/01 | 6005 | support/make4ht/make4ht-indexing.lua
+2019/11/01 | 5991 | macros/latex/contrib/circledsteps/circledsteps-manual.tex
+2019/11/01 | 596 | support/make4ht/filters/make4ht-filter.lua
+2019/11/01 | 595 | support/make4ht/domfilters/make4ht-idcolons.lua
+2019/11/01 | 5833 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx
+2019/11/01 | 5773 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx
+2019/11/01 | 5587 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx
+2019/11/01 | 5586 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty
+2019/11/01 | 5553 | support/tex4ebook/tex4ebook
+2019/11/01 | 5434 | macros/latex/contrib/cnltx/cnltx-translations.sty
+2019/11/01 | 541092 | systems/texlive/tlnet/archive/biblatex-ext.doc.tar.xz
+2019/11/01 | 540967 | macros/latex/contrib/halloweenmath/halloweenmath-man.pdf
+2019/11/01 | 5392 | macros/latex/contrib/l3build/l3build.lua
+2019/11/01 | 5355 | support/make4ht/make4ht-dvireader.lua
+2019/11/01 | 534332 | systems/texlive/tlnet/archive/modiagram.doc.tar.xz
+2019/11/01 | 5336 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx
+2019/11/01 | 5287 | macros/latex/contrib/halloweenmath/halloweenmath.ins
+2019/11/01 | 5257 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx
+2019/11/01 | 5207 | macros/latex/contrib/cnltx/cnltx-names.sty
+2019/11/01 | 51244 | systems/texlive/tlnet/archive/texlive-scripts.doc.tar.xz
+2019/11/01 | 4933 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx
+2019/11/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2019/11/01 | 4830 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx
+2019/11/01 | 464 | support/make4ht/formats/html5.lua
+2019/11/01 | 4641 | support/make4ht/domfilters/make4ht-aeneas.lua
+2019/11/01 | 4617 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx
+2019/11/01 | 4612 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx
+2019/11/01 | 46112 | support/make4ht/readme.tex
+2019/11/01 | 4576 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx
+2019/11/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2019/11/01 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2019/11/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2019/11/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2019/11/01 | 4472 | macros/latex/contrib/l3build/l3build-ctan.lua
+2019/11/01 | 446268 | systems/texlive/tlnet/archive/xindex.doc.tar.xz
+2019/11/01 | 4434 | support/tex4ebook/tex4ebook.sty
+2019/11/01 | 4325 | support/tex4ebook/tex4ebook-epub3.4ht
+2019/11/01 | 4305 | macros/latex/contrib/l3build/l3build-stdmain.lua
+2019/11/01 | 4301 | support/make4ht/extensions/staticsite.lua
+2019/11/01 | 425 | support/make4ht/filters/make4ht-fix-links.lua
+2019/11/01 | 4156 | macros/latex/contrib/halloweenmath/Makefile
+2019/11/01 | 4111 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
+2019/11/01 | 408 | systems/texlive/tlnet/archive/gloss-occitan.tar.xz
+2019/11/01 | 402 | support/make4ht/filters/make4ht-hruletohr.lua
+2019/11/01 | 4027 | support/make4ht/make4ht
+2019/11/01 | 3985 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
+2019/11/01 | 3946061 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2019/11/01 | 3923 | support/tex4ebook/list-fonts.lua
+2019/11/01 | 38993 | macros/latex/contrib/halloweenmath/halloweenmath-man.tex
+2019/11/01 | 386 | support/make4ht/filters/make4ht-fixligatures.lua
+2019/11/01 | 3861 | support/make4ht/extensions/preprocess_input.lua
+2019/11/01 | 3811 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
+2019/11/01 | 36892 | support/make4ht/README
+2019/11/01 | 36728 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
+2019/11/01 | 3637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty
+2019/11/01 | 3548 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
+2019/11/01 | 349 | support/make4ht/formats/xhtml.lua
+2019/11/01 | 3485 | macros/latex/contrib/circledsteps/circledsteps.sty
+2019/11/01 | 347724 | macros/latex/contrib/circledsteps.zip
+2019/11/01 | 344 | support/make4ht/formats/tei.lua
+2019/11/01 | 34365 | macros/latex/contrib/cnltx/cnltx-example.sty
+2019/11/01 | 3412 | support/make4ht/filters/make4ht-staticsite.lua
+2019/11/01 | 337762 | macros/latex/contrib/circledsteps/circledsteps-manual.pdf
+2019/11/01 | 336123 | macros/latex/contrib/halloweenmath/halloweenmath-doc.pdf
+2019/11/01 | 33539 | macros/latex/contrib/l3build/l3build-check.lua
+2019/11/01 | 3277 | support/make4ht/make4ht-htlatex.lua
+2019/11/01 | 3249 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
+2019/11/01 | 3247 | support/make4ht/make4ht-xtpipes.lua
+2019/11/01 | 3239 | macros/latex/contrib/l3build/l3build-aux.lua
+2019/11/01 | 321 | support/make4ht/domfilters/make4ht-odtpartable.lua
+2019/11/01 | 3214 | macros/latex/contrib/halloweenmath/manifest.txt
+2019/11/01 | 3191 | support/make4ht/filters/make4ht-mathjaxnode.lua
+2019/11/01 | 317 | macros/latex/contrib/cnltx/cnltx.ist
+2019/11/01 | 3106 | macros/latex/contrib/l3build/l3build-unpack.lua
+2019/11/01 | 309 | support/make4ht/extensions/join_colors.lua
+2019/11/01 | 307 | support/tex4ebook/config-t4e.lua
+2019/11/01 | 30487 | macros/latex/contrib/cnltx/cnltx.bib
+2019/11/01 | 30308 | macros/latex/contrib/cnltx/cnltx-listings.sty
+2019/11/01 | 30016 | systems/texlive/tlnet/archive/xindex.tar.xz
+2019/11/01 | 2939 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx
+2019/11/01 | 291 | support/make4ht/filters/make4ht-entities.lua
+2019/11/01 | 2905 | support/make4ht/make4ht-logging.lua
+2019/11/01 | 288 | support/make4ht/extensions/odttemplate.lua
+2019/11/01 | 2846 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
+2019/11/01 | 28433 | macros/latex/contrib/cnltx/cnltx-doc.cls
+2019/11/01 | 2841 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
+2019/11/01 | 2768 | support/make4ht/domfilters/make4ht-joincharacters.lua
+2019/11/01 | 271 | support/make4ht/extensions/mathjaxnode.lua
+2019/11/01 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx
+2019/11/01 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx
+2019/11/01 | 2689 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx
+2019/11/01 | 2686 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx
+2019/11/01 | 26849 | macros/latex/contrib/cnltx/cnltx-base.sty
+2019/11/01 | 2679 | support/make4ht/make4ht-errorlogparser.lua
+2019/11/01 | 2677 | support/tex4ebook/tidyconf.conf
+2019/11/01 | 2673 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx
+2019/11/01 | 264 | support/make4ht/filters/make4ht-cleanspan-nat.lua
+2019/11/01 | 2595 | support/make4ht/mathnode.lua
+2019/11/01 | 25956 | systems/texlive/tlnet/archive/biblatex-ext.tar.xz
+2019/11/01 | 2465 | support/make4ht/make4ht-config.lua
+2019/11/01 | 2339 | macros/latex/contrib/l3build/CONTRIBUTING.md
+2019/11/01 | 2324 | support/make4ht/filters/make4ht-odttemplate.lua
+2019/11/01 | 2305 | macros/latex/contrib/l3build/l3build-tagging.lua
+2019/11/01 | 2270 | support/make4ht/filters/make4ht-domfilter.lua
+2019/11/01 | 22556 | systems/texlive/tlnet/archive/preview.source.tar.xz
+2019/11/01 | 22538072 | systems/texlive/tlnet/install-tl.zip
+2019/11/01 | 2216 | support/make4ht/domfilters/make4ht-joincolors.lua
+2019/11/01 | 2191 | macros/latex/contrib/l3build/l3build-help.lua
+2019/11/01 | 217196 | support/make4ht.zip
+2019/11/01 | 2169 | support/make4ht/domfilters/make4ht-tablerows.lua
+2019/11/01 | 2129964 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2019/11/01 | 211320 | systems/texlive/tlnet/archive/subfiles.doc.tar.xz
+2019/11/01 | 20997 | support/make4ht/changelog.tex
+2019/11/01 | 2086 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
+2019/11/01 | 1920 | systems/texlive/tlnet/archive/subfiles.tar.xz
+2019/11/01 | 19106 | macros/latex/contrib/circledsteps/lppl-1-3c_license.txt
+2019/11/01 | 18695173 | systems/texlive/tlnet/install-tl-windows.exe
+2019/11/01 | 1848 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
+2019/11/01 | 182671 | macros/latex/contrib/halloweenmath/halloweenmath.dtx
+2019/11/01 | 1817 | macros/latex/contrib/l3build/l3build.1
+2019/11/01 | 172144 | systems/texlive/tlnet/archive/preview.doc.tar.xz
+2019/11/01 | 1705 | macros/latex/contrib/cnltx/cnltx.dbx
+2019/11/01 | 1689 | macros/latex/contrib/cnltx/cnltx.sty
+2019/11/01 | 16324 | support/make4ht/mkutils.lua
+2019/11/01 | 1621 | macros/latex/contrib/cnltx/cnltx.cbx
+2019/11/01 | 15914704 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2019/11/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2019/11/01 | 1537 | macros/latex/contrib/l3build/l3build.ins
+2019/11/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2019/11/01 | 1519 | macros/latex/contrib/circledsteps/ctikzexample.tex
+2019/11/01 | 1515 | macros/latex/contrib/cnltx/README
+2019/11/01 | 15109 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
+2019/11/01 | 1495 | macros/latex/contrib/l3build/l3build-clean.lua
+2019/11/01 | 14636 | support/tex4ebook/tex4ebook.4ht
+2019/11/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2019/11/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2019/11/01 | 14355 | support/tex4ebook/readme.tex
+2019/11/01 | 1391 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx
+2019/11/01 | 1375 | macros/latex/contrib/halloweenmath/README
+2019/11/01 | 1329 | support/make4ht/extensions/tidy.lua
+2019/11/01 | 132695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
+2019/11/01 | 1290 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-examples.bib
+2019/11/01 | 126657 | support/make4ht/make4ht-doc.pdf
+2019/11/01 | 126420 | macros/latex/contrib/cnltx/cnltx_en.tex
+2019/11/01 | 1215 | support/make4ht/filters/make4ht-svg-height.lua
+2019/11/01 | 12128 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx
+2019/11/01 | 1196 | macros/latex/contrib/circledsteps/README.md
+2019/11/01 | 11748 | macros/latex/contrib/l3build/l3build-file-functions.lua
+2019/11/01 | 11708 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
+2019/11/01 | 11663 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
+2019/11/01 | 11575 | macros/latex/contrib/l3build/l3build-upload.lua
+2019/11/01 | 11455 | support/tex4ebook/exec_epub.lua
+2019/11/01 | 1143 | support/make4ht/formats/docbook.lua
+2019/11/01 | 11175 | support/tex4ebook/README
+2019/11/01 | 110376 | support/tex4ebook.zip
+2019/11/01 | 11029 | support/tex4ebook/changelog.tex
+2019/11/01 | 11024 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
+2019/11/01 | 11010 | macros/latex/contrib/l3build/CHANGELOG.md
+2019/11/01 | 1047 | support/make4ht/domfilters/make4ht-fixinlines.lua
+2019/11/01 | 104610 | macros/latex/contrib/l3build/l3build.dtx
+2019/11/01 | 1039 | support/make4ht/make4ht-filterlib.lua
+2019/11/01 | 1024 | macros/latex/contrib/l3build/README.md
2019/10/31 | 988 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.bbx
2019/10/31 | 9814 | indexing/xindex/lualatex/xindex-lapp.lua
-2019/10/31 | 8936 | macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua
-2019/10/31 | 8804 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
-2019/10/31 | 8747 | macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md
-2019/10/31 | 8705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx
-2019/10/31 | 85476 | systems/texlive/tlnet/archive/texlive-scripts.tar.xz
+2019/10/31 | 87531660 | systems/win32/w32tex/TLW64/tl-win64.zip
2019/10/31 | 8506 | indexing/xindex/lualatex/xindex-base.lua
2019/10/31 | 8358 | indexing/xindex/lualatex/xindex-pretty.lua
-2019/10/31 | 8255 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx
+2019/10/31 | 8212268 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
2019/10/31 | 805720 | systems/texlive/tlnet/archive/newtx.doc.tar.xz
2019/10/31 | 80323 | indexing/xindex/lualatex/xindex-unicode.lua
2019/10/31 | 80241 | macros/latex/contrib/modiagram/modiagram.sty
2019/10/31 | 776 | systems/texlive/tlnet/archive/collection-langother.tar.xz
2019/10/31 | 7680 | indexing/xindex/lualatex/xindex-yannis.lua
-2019/10/31 | 7668 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
-2019/10/31 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
-2019/10/31 | 710746 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf
-2019/10/31 | 705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx
-2019/10/31 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx
-2019/10/31 | 700 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx
-2019/10/31 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx
-2019/10/31 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx
-2019/10/31 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx
-2019/10/31 | 698 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx
-2019/10/31 | 697 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx
-2019/10/31 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx
-2019/10/31 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx
-2019/10/31 | 692 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx
-2019/10/31 | 691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx
-2019/10/31 | 688 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx
-2019/10/31 | 688 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx
-2019/10/31 | 684 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx
-2019/10/31 | 677 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx
-2019/10/31 | 6671 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx
-2019/10/31 | 651549 | macros/latex/contrib/biblatex-contrib/biblatex-ext.zip
-2019/10/31 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx
-2019/10/31 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx
-2019/10/31 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx
-2019/10/31 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx
-2019/10/31 | 628 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx
-2019/10/31 | 622 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx
-2019/10/31 | 619 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
-2019/10/31 | 6171 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
+2019/10/31 | 6210360 | systems/win32/w32tex/datetime2.tar.xz
2019/10/31 | 614092 | systems/texlive/tlnet/archive/pseudo.doc.tar.xz
-2019/10/31 | 6137 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
2019/10/31 | 610 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-fullcite.cbx
-2019/10/31 | 6074 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
-2019/10/31 | 6067 | macros/latex/contrib/biblatex-contrib/biblatex-ext/README.md
-2019/10/31 | 5833 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx
-2019/10/31 | 5773 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx
-2019/10/31 | 5587 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx
-2019/10/31 | 5586 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty
+2019/10/31 | 5841 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2019/10/31 | 544081 | macros/latex/contrib/modiagram.zip
2019/10/31 | 5426 | indexing/xindex/scripts/xindex.lua
+2019/10/31 | 537344 | systems/win32/w32tex/ChangeLog
2019/10/31 | 536264 | indexing/xindex.zip
-2019/10/31 | 5336 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx
2019/10/31 | 528067 | macros/latex/contrib/modiagram/modiagram_en.pdf
-2019/10/31 | 5257 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx
-2019/10/31 | 51244 | systems/texlive/tlnet/archive/texlive-scripts.doc.tar.xz
+2019/10/31 | 5026300 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
+2019/10/31 | 5024152 | systems/win32/w32tex/luajittex-w32.tar.xz
+2019/10/31 | 5021988 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
2019/10/31 | 5012 | systems/texlive/tlnet/archive/pseudo.tar.xz
-2019/10/31 | 4933 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx
2019/10/31 | 4924 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/mybib.bib
-2019/10/31 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2019/10/31 | 483 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/czech-iso.lbx
-2019/10/31 | 4830 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx
+2019/10/31 | 476616 | macros/latex/contrib/asmejour/asmejour-template.pdf
2019/10/31 | 469 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/german-iso.lbx
2019/10/31 | 46891 | indexing/xindex/doc/xindex-doc.tex
-2019/10/31 | 4617 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx
-2019/10/31 | 4612 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx
-2019/10/31 | 4576 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx
-2019/10/31 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2019/10/31 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2019/10/31 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2019/10/31 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2019/10/31 | 4648748 | systems/win32/w32tex/dvipdfm-w32.tar.xz
+2019/10/31 | 4609140 | systems/win32/w32tex/harftex-w32.tar.xz
2019/10/31 | 4531788 | systems/texlive/tlnet/archive/newtx.tar.xz
+2019/10/31 | 4450824 | systems/win32/w32tex/dvipsk-w32.tar.xz
2019/10/31 | 444 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx
2019/10/31 | 4449 | indexing/xindex/lualatex/xindex-dtk.lua
+2019/10/31 | 438344 | systems/win32/w32tex/mftools.tar.xz
2019/10/31 | 41409 | macros/latex/contrib/modiagram/modiagram_en.tex
-2019/10/31 | 4111 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
2019/10/31 | 401 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/slovak-iso.lbx
-2019/10/31 | 3985 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
+2019/10/31 | 4011 | macros/latex/contrib/asmejour/README.md
2019/10/31 | 394 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/english-iso.lbx
-2019/10/31 | 3946061 | systems/texlive/tlnet/install-tl-unx.tar.gz
2019/10/31 | 3888 | systems/texlive/tlnet/archive/latino-sine-flexione.doc.tar.xz
-2019/10/31 | 3811 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
2019/10/31 | 3802 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/README.md
2019/10/31 | 375486 | indexing/xindex/doc/xindex-doc.pdf
-2019/10/31 | 36728 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
-2019/10/31 | 3637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty
-2019/10/31 | 3548 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
+2019/10/31 | 35614 | macros/latex/contrib/asmejour/asmejour-template.tex
+2019/10/31 | 3509788 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
+2019/10/31 | 3501508 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
+2019/10/31 | 3498132 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
2019/10/31 | 33801 | indexing/xindex/lualatex/xindex-lib.lua
2019/10/31 | 333 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.cbx
2019/10/31 | 333 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.dbx
2019/10/31 | 332 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.dbx
2019/10/31 | 329 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.dbx
-2019/10/31 | 3249 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
-2019/10/31 | 2939 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx
+2019/10/31 | 3122916 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
+2019/10/31 | 3115856 | systems/win32/w32tex/win64/luatex-w64.tar.xz
+2019/10/31 | 3113612 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
2019/10/31 | 2886 | indexing/xindex/lualatex/xindex-DIN2.lua
-2019/10/31 | 2846 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
-2019/10/31 | 2841 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
-2019/10/31 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx
-2019/10/31 | 2691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx
-2019/10/31 | 2689 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx
-2019/10/31 | 2686 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx
-2019/10/31 | 2673 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx
+2019/10/31 | 284407164 | systems/win32/w32tex/pstricks.tar.xz
+2019/10/31 | 2673672 | systems/win32/w32tex/win64/harftex-w64.tar.xz
2019/10/31 | 2638 | indexing/xindex/lualatex/xindex-cfg-common.lua
+2019/10/31 | 26265 | macros/latex/contrib/asmejour/asmejour.cls
2019/10/31 | 2556 | indexing/xindex/lualatex/xindex-cfg.lua
2019/10/31 | 230 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.cbx
-2019/10/31 | 22538060 | systems/texlive/tlnet/install-tl.zip
2019/10/31 | 21464 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx
-2019/10/31 | 2128924 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2019/10/31 | 2086 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
2019/10/31 | 20449 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex
2019/10/31 | 195521 | macros/latex/contrib/preview.zip
2019/10/31 | 191129 | install/macros/latex/contrib/biblatex-contrib/biblatex-iso690.tds.zip
2019/10/31 | 188725 | macros/latex/contrib/biblatex-contrib/biblatex-iso690.zip
-2019/10/31 | 18694018 | systems/texlive/tlnet/install-tl-windows.exe
-2019/10/31 | 1848 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
2019/10/31 | 171 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.bbx
2019/10/31 | 167673 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf
-2019/10/31 | 15914351 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2019/10/31 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2019/10/31 | 16168744 | systems/win32/w32tex/luatex-exp-w32.tar.xz
+2019/10/31 | 16166024 | systems/win32/w32tex/luatex-dev-w32.tar.xz
2019/10/31 | 153 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.cbx
-2019/10/31 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2019/10/31 | 15109 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
-2019/10/31 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2019/10/31 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2019/10/31 | 15206052 | systems/win32/w32tex/luatex-w32.tar.xz
2019/10/31 | 1420 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.bbx
2019/10/31 | 1400 | systems/texlive/tlnet/archive/latino-sine-flexione.tar.xz
-2019/10/31 | 1391 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx
-2019/10/31 | 132566 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
-2019/10/31 | 1290 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-examples.bib
+2019/10/31 | 12987 | macros/latex/contrib/asmejour/asmejour-sample.bib
2019/10/31 | 1287 | macros/latex/contrib/modiagram/README
+2019/10/31 | 12843780 | systems/win32/w32tex/pdftex-w32.tar.xz
2019/10/31 | 124 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.cbx
2019/10/31 | 1232 | indexing/xindex/doc/Makefile
-2019/10/31 | 12128 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx
-2019/10/31 | 11708 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
-2019/10/31 | 11663 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
2019/10/31 | 10941 | indexing/xindex/lualatex/xindex-HAdW-eKO.lua
2019/10/31 | 1075 | indexing/xindex/CHANGELOG
2019/10/31 | 1069 | macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx
@@ -159,7 +341,6 @@
2019/10/30 | 88764 | systems/texlive/tlnet/archive/poemscol.source.tar.xz
2019/10/30 | 88749 | macros/latex/contrib/oberdiek/tabularkv.pdf
2019/10/30 | 8840 | systems/texlive/tlnet/archive/chicagoa.tar.xz
-2019/10/30 | 87530484 | systems/win32/w32tex/TLW64/tl-win64.zip
2019/10/30 | 862904 | systems/texlive/tlnet/archive/beebe.tar.xz
2019/10/30 | 8276 | systems/texlive/tlnet/archive/authordate.tar.xz
2019/10/30 | 803729 | support/auctex/12.2-extra/ChangeLog.1
@@ -177,7 +358,6 @@
2019/10/30 | 660543 | support/auctex/12.2-extra/auctex.pdf
2019/10/30 | 6418 | macros/latex/contrib/iftex/iftex.tex
2019/10/30 | 623575 | macros/latex/contrib/pseudo.zip
-2019/10/30 | 5959 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2019/10/30 | 582291 | macros/latex/contrib/oberdiek/stringenc.pdf
2019/10/30 | 574424 | macros/latex/contrib/pseudo/doc/pseudo.pdf
2019/10/30 | 566 | support/auctex/RELEASE-12.2.sig
@@ -190,19 +370,14 @@
2019/10/30 | 566 | support/auctex/12.2-extra/auctex.ps.sig
2019/10/30 | 566 | support/auctex/12.2-extra/auctex.pdf.sig
2019/10/30 | 5607 | macros/latex/contrib/iftex/iftex.sty
-2019/10/30 | 536010 | systems/win32/w32tex/ChangeLog
2019/10/30 | 529 | macros/latex/contrib/iftex/ifetex.sty
2019/10/30 | 516461 | macros/latex/contrib/oberdiek/pmboxdraw.pdf
2019/10/30 | 516424 | macros/latex/contrib/oberdiek/zref.pdf
-2019/10/30 | 5023284 | systems/win32/w32tex/luajittex-w32.tar.xz
-2019/10/30 | 5021992 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
-2019/10/30 | 5021920 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
2019/10/30 | 492 | macros/latex/contrib/iftex/ifluatex.sty
2019/10/30 | 488 | macros/latex/contrib/iftex/ifxetex.sty
2019/10/30 | 480 | macros/latex/contrib/iftex/ifpdf.sty
2019/10/30 | 4748 | macros/latex/contrib/latino-sine-flexione.zip
2019/10/30 | 47194 | macros/latex/contrib/pseudo/doc/fig/readmefig.svg
-2019/10/30 | 4609888 | systems/win32/w32tex/harftex-w32.tar.xz
2019/10/30 | 4408 | macros/latex/contrib/pseudo/README.md
2019/10/30 | 439336 | macros/latex/contrib/oberdiek/oberdiek.pdf
2019/10/30 | 43858 | support/auctex/12.2-extra/CHANGES
@@ -215,16 +390,10 @@
2019/10/30 | 355 | macros/latex/contrib/pseudo/doc/fig/pausefig.tex
2019/10/30 | 352284 | macros/latex/contrib/oberdiek/bigintcalc.pdf
2019/10/30 | 350945 | macros/latex/contrib/oberdiek/bitset.pdf
-2019/10/30 | 3503980 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
-2019/10/30 | 3498328 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
-2019/10/30 | 3496564 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
2019/10/30 | 334590 | macros/latex/contrib/oberdiek/bmpsize.pdf
2019/10/30 | 326643 | macros/latex/contrib/oberdiek/intcalc.pdf
2019/10/30 | 319216 | systems/texlive/tlnet/archive/scontents.doc.tar.xz
2019/10/30 | 316788 | support/auctex/12.2-extra/tex-ref.ps
-2019/10/30 | 3123184 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
-2019/10/30 | 3122464 | systems/win32/w32tex/win64/luatex-w64.tar.xz
-2019/10/30 | 3115368 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
2019/10/30 | 309969 | macros/latex/contrib/oberdiek/kvoptions.pdf
2019/10/30 | 308036 | systems/texlive/tlnet/archive/gfsneohellenicmath.tar.xz
2019/10/30 | 300 | macros/latex/contrib/pseudo/doc/fig/readmecode.tex
@@ -232,7 +401,6 @@
2019/10/30 | 292290 | macros/latex/contrib/oberdiek/ltxcmds.pdf
2019/10/30 | 271773 | macros/latex/contrib/oberdiek/attachfile2.pdf
2019/10/30 | 26840 | systems/texlive/tlnet/archive/scontents.source.tar.xz
-2019/10/30 | 2673168 | systems/win32/w32tex/win64/harftex-w64.tar.xz
2019/10/30 | 265850 | macros/latex/contrib/oberdiek/askinclude.pdf
2019/10/30 | 263 | macros/latex/contrib/pseudo/doc/fig/readmefig.tex
2019/10/30 | 2576 | macros/latex/contrib/preview/README
@@ -266,8 +434,6 @@
2019/10/30 | 16911975 | macros/latex/contrib/oberdiek.zip
2019/10/30 | 167624 | macros/latex/contrib/oberdiek/centernot.pdf
2019/10/30 | 167137 | macros/latex/contrib/oberdiek/thepdfnumber.pdf
-2019/10/30 | 16206520 | systems/win32/w32tex/luatex-exp-w32.tar.xz
-2019/10/30 | 16203196 | systems/win32/w32tex/luatex-dev-w32.tar.xz
2019/10/30 | 161338 | macros/latex/contrib/oberdiek/rotchiffre.pdf
2019/10/30 | 159592 | macros/latex/contrib/oberdiek/grffile.pdf
2019/10/30 | 1594 | macros/latex/contrib/preview/preview.ins
@@ -275,7 +441,6 @@
2019/10/30 | 155264 | systems/texlive/tlnet/archive/texlive-docindex.doc.tar.xz
2019/10/30 | 153732 | macros/latex/contrib/oberdiek/selinput.pdf
2019/10/30 | 153346 | support/auctex/12.2-extra/tex-ref.pdf
-2019/10/30 | 15245568 | systems/win32/w32tex/luatex-w32.tar.xz
2019/10/30 | 151424 | macros/latex/contrib/oberdiek/setouterhbox.pdf
2019/10/30 | 1511396 | support/auctex/auctex-12.2.tar.gz
2019/10/30 | 151116 | macros/latex/contrib/oberdiek/magicnum.pdf
@@ -466,7 +631,6 @@
2019/10/29 | 450077 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
2019/10/29 | 449 | macros/luatex/generic/luavlna/luavlna-csplain-langs.lua
2019/10/29 | 44955 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2019/10/29 | 447948 | systems/texlive/tlnet/archive/xindex.doc.tar.xz
2019/10/29 | 440 | macros/latex/contrib/subfiles/README
2019/10/29 | 43446 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2019/10/29 | 42942 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
@@ -545,7 +709,6 @@
2019/10/29 | 3012 | fonts/newtx/tfm/ntx-Bold-osf-ot1r.tfm
2019/10/29 | 3012 | fonts/newtx/tfm/ntx-Bold-lf-ot1.tfm
2019/10/29 | 3008 | fonts/newtx/tfm/ntx-Bold-osf-ot1.tfm
-2019/10/29 | 29820 | systems/texlive/tlnet/archive/xindex.tar.xz
2019/10/29 | 2980 | fonts/newtx/tfm/ntx-Bold-tosf-ot1r.tfm
2019/10/29 | 2980 | fonts/newtx/tfm/ntx-Bold-tlf-ot1r.tfm
2019/10/29 | 2976 | fonts/newtx/tfm/ntx-Bold-tosf-ot1.tfm
@@ -910,7 +1073,6 @@
2019/10/27 | 630 | indexing/xindex/doc/tests/Umlaute2.ind
2019/10/27 | 6265732 | systems/win32/w32tex/win64/pdftex-w64.tar.xz
2019/10/27 | 591060 | systems/win32/w32tex/win64/extractpdfmark-w64.tar.xz
-2019/10/27 | 5822 | macros/latex/contrib/circledsteps/circledsteps-manual.tex
2019/10/27 | 53080058 | systems/win32/miktex/setup/darwin-x86_64/miktex-2.9.7230-1-darwin-x86_64.dmg
2019/10/27 | 5222 | indexing/xindex/doc/tests/demo.ind
2019/10/27 | 5102 | indexing/xindex/doc/tests/demo.idx
@@ -936,8 +1098,6 @@
2019/10/27 | 3442 | systems/win32/miktex/setup/rpm/fedora/28/repodata/8c506a4e16e927c162537087c3e6d847cb63af3b66c5b944ba7036c6755989c2-primary.xml.gz
2019/10/27 | 3426 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/6b8ad6551335763cc317a2e945647fc64981cd3fae048dcb0435eeb971bcb47e-primary.xml.gz
2019/10/27 | 34176 | systems/texlive/tlnet/archive/suftesi.source.tar.xz
-2019/10/27 | 335917 | macros/latex/contrib/circledsteps.zip
-2019/10/27 | 326130 | macros/latex/contrib/circledsteps/circledsteps-manual.pdf
2019/10/27 | 30140 | systems/texlive/tlnet/archive/librecaslon.doc.tar.xz
2019/10/27 | 2979 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml
2019/10/27 | 2975 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/repomd.xml
@@ -947,7 +1107,6 @@
2019/10/27 | 28871 | systems/win32/miktex/setup/rpm/fedora/28/repodata/29595740e174268dac8d3a2ba220ce74bd85257b5787ad4f0bbc4de2d35cb310-primary.sqlite.bz2
2019/10/27 | 287 | systems/win32/miktex/setup/rpm/fedora/30/repodata/d8264704fbf3dedd9f9721b99952a51757d084b70afb908dfbca44ba33650e16-other.xml.gz
2019/10/27 | 281 | macros/luatex/latex/luabidi/doc/luabidi-test-arabmaths.tex
-2019/10/27 | 2719 | macros/latex/contrib/circledsteps/circledsteps.sty
2019/10/27 | 27051 | systems/win32/miktex/setup/rpm/fedora/28/repodata/e60f41ee0991f675b23bd3f5c82bc26675242fe6ab77be3b16525686e7ea3d79-filelists.xml.gz
2019/10/27 | 2684 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/dd3ec4117d6d1cad44496cfc425c62b799ba929a49f0fcc57c597410f1b8b301-filelists.xml.gz
2019/10/27 | 26796416 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_2.9.7230-bionic1_amd64.deb
@@ -972,7 +1131,6 @@
2019/10/27 | 19892632 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-2.9.7230-1.x86_64.rpm
2019/10/27 | 19533 | indexing/xindex/doc/tests/Umlaute2.pdf
2019/10/27 | 19248796 | systems/win32/miktex/setup/rpm/fedora/30/miktex-2.9.7230-1.fc30.x86_64.rpm
-2019/10/27 | 19106 | macros/latex/contrib/circledsteps/lppl-1-3c_license.txt
2019/10/27 | 18924 | indexing/xindex/doc/tests/HADW.pdf
2019/10/27 | 18708 | macros/latex/contrib/oberdiek/ifdraft.dtx
2019/10/27 | 184844 | macros/latex/contrib/polyglossia/polyglossia.pdf
@@ -992,178 +1150,37 @@
2019/10/27 | 1512 | systems/win32/miktex/setup/deb/dists/xenial/Release
2019/10/27 | 1512 | systems/win32/miktex/setup/deb/dists/bionic/Release
2019/10/27 | 138 | indexing/xindex/doc/tests/demo3.ind
-2019/10/27 | 1378 | macros/latex/contrib/circledsteps/ctikzexample.tex
2019/10/27 | 1375 | systems/win32/miktex/setup/rpm/fedora/28/repodata/e8522ad9562d7545ee462cd16bcc36e125da8bd2e841b65700a695ef8b69dce9-other.sqlite.bz2
2019/10/27 | 1373 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/a0de802a838cd2e78068850f2aefae6dec6fa4b25cfaefb7fc6205e92262fce8-other.sqlite.bz2
2019/10/27 | 13587 | systems/win32/miktex/setup/rpm/fedora/30/repodata/676eeadb8a0ffa2ebe99ae3c61101aaa83bf4d88829bfa30a68ed3a2c77c4acf-filelists.sqlite.bz2
2019/10/27 | 13164 | systems/texlive/tlnet/archive/suftesi.tar.xz
-2019/10/27 | 12850320 | systems/win32/w32tex/pdftex-w32.tar.xz
2019/10/27 | 1264 | indexing/xindex/doc/tests/HADW.ind
2019/10/27 | 12139 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Packages
2019/10/27 | 11979 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Packages
2019/10/27 | 114 | indexing/xindex/doc/tests/demo3.idx
-2019/10/27 | 1148 | macros/latex/contrib/circledsteps/README.md
2019/10/27 | 10993 | systems/win32/miktex/setup/rpm/fedora/30/repodata/8d8617cb055fcb9723cd740e9cd69493e6dc468c4b09b3ca5084babd60e9cc96-primary.sqlite.bz2
2019/10/27 | 1091684 | systems/texlive/tlnet/archive/suftesi.doc.tar.xz
2019/10/26 | 9170 | usergrps/dante/dtk/dtk-extern.sty
-2019/10/26 | 8523 | fonts/newtx/afm/NewTXMI5.afm
-2019/10/26 | 8502 | fonts/newtx/afm/NewTXMI7.afm
-2019/10/26 | 8478 | fonts/newtx/afm/NewTXMI.afm
-2019/10/26 | 8453 | fonts/newtx/afm/NewTXBMI5.afm
-2019/10/26 | 8421 | fonts/newtx/afm/NewTXBMI7.afm
-2019/10/26 | 8409 | fonts/newtx/afm/NewTXBMI.afm
-2019/10/26 | 8207844 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
-2019/10/26 | 7780 | systems/texlive/tlnet/archive/pxjahyper.tar.xz
-2019/10/26 | 7516 | fonts/newtx/afm/LibertineMathBMI5.afm
-2019/10/26 | 7506 | fonts/newtx/afm/LibertineMathBMI7.afm
-2019/10/26 | 7480 | fonts/newtx/afm/LibertineMathBMI.afm
-2019/10/26 | 6004 | systems/texlive/tlnet/archive/subfiles.source.tar.xz
-2019/10/26 | 5405 | fonts/newpx/afm/NewPXBMI.afm
2019/10/26 | 499 | systems/win32/miktex/source/miktex-2.9.7230.tar.xz.asc
-2019/10/26 | 4648840 | systems/win32/w32tex/dvipdfm-w32.tar.xz
2019/10/26 | 4471 | usergrps/dante/dtk/dtk-logos.sty
-2019/10/26 | 438364 | systems/win32/w32tex/mftools.tar.xz
-2019/10/26 | 4180 | fonts/newtx/tfm/ntxbmi1.tfm
-2019/10/26 | 4176 | fonts/newtx/tfm/ntxbmi0.tfm
-2019/10/26 | 4168 | fonts/newtx/tfm/ntxmi0.tfm
-2019/10/26 | 4168 | fonts/newtx/tfm/ntxbmi.tfm
-2019/10/26 | 4164 | fonts/newtx/tfm/ntxmi1.tfm
-2019/10/26 | 4160 | fonts/newtx/tfm/ntxmi.tfm
2019/10/26 | 394 | usergrps/dante/dtk/dtk-ruecken.tex
-2019/10/26 | 37524 | fonts/newtx/type1/LibertineMathBMI7.pfb
-2019/10/26 | 37232 | fonts/newtx/type1/LibertineMathBMI.pfb
-2019/10/26 | 36820 | fonts/newtx/type1/LibertineMathBMI5.pfb
-2019/10/26 | 35776 | fonts/newtx/type1/NewTXMI5.pfb
-2019/10/26 | 35056 | fonts/newtx/type1/NewTXBMI7.pfb
-2019/10/26 | 34733 | fonts/newtx/type1/NewTXMI7.pfb
-2019/10/26 | 34023 | fonts/newtx/type1/NewTXBMI5.pfb
-2019/10/26 | 3380 | fonts/newtx/tfm/ntxbmi15.tfm
-2019/10/26 | 3376 | fonts/newtx/tfm/ntxbmi5.tfm
-2019/10/26 | 3340 | fonts/newtx/tfm/ntxbmi7.tfm
-2019/10/26 | 3340 | fonts/newtx/tfm/ntxbmi17.tfm
-2019/10/26 | 3336 | fonts/newtx/tfm/ntxbmi07.tfm
-2019/10/26 | 3324 | fonts/newpx/tfm/zplbmi1.tfm
-2019/10/26 | 3320 | fonts/newpx/tfm/zplbmi.tfm
-2019/10/26 | 3304 | fonts/newtx/tfm/ntxmi17.tfm
-2019/10/26 | 3300 | fonts/newtx/tfm/ntxmi7.tfm
-2019/10/26 | 3300 | fonts/newtx/tfm/ntxmi07.tfm
-2019/10/26 | 3292 | fonts/newtx/tfm/ntxmi15.tfm
-2019/10/26 | 3291727 | install/fonts/newpx.tds.zip
-2019/10/26 | 3284 | fonts/newtx/tfm/ntxmi5.tfm
-2019/10/26 | 3284 | fonts/newtx/tfm/ntxmi05.tfm
2019/10/26 | 3261863 | fonts/newpx.zip
-2019/10/26 | 32541 | fonts/newtx/type1/NewTXBMI.pfb
-2019/10/26 | 3252 | fonts/newpx/tfm/zplmi.tfm
-2019/10/26 | 3248 | fonts/newpx/tfm/zplmi1.tfm
-2019/10/26 | 32409 | fonts/newtx/type1/NewTXMI.pfb
-2019/10/26 | 2744 | fonts/newtx/vf/ntxbmi.vf
-2019/10/26 | 2740 | fonts/newtx/vf/ntxbmi1.vf
-2019/10/26 | 2740 | fonts/newtx/vf/ntxbmi0.vf
-2019/10/26 | 2708 | fonts/newtx/vf/ntxbmi17.vf
-2019/10/26 | 2708 | fonts/newtx/vf/ntxbmi15.vf
-2019/10/26 | 2704 | fonts/newtx/vf/ntxbmi07.vf
-2019/10/26 | 2700 | fonts/newtx/vf/ntxbmi7.vf
-2019/10/26 | 2700 | fonts/newtx/vf/ntxbmi5.vf
2019/10/26 | 26864636 | systems/win32/miktex/source/miktex-2.9.7230.tar.xz
-2019/10/26 | 2668 | fonts/newpx/vf/zplbmi.vf
-2019/10/26 | 2668 | fonts/newpx/vf/zplbmi1.vf
2019/10/26 | 2619492 | systems/win32/w32tex/dvitools-w32.tar.xz
-2019/10/26 | 2608 | fonts/newtx/vf/ntxmi.vf
-2019/10/26 | 2600 | fonts/newtx/vf/ntxmi1.vf
-2019/10/26 | 2600 | fonts/newtx/vf/ntxmi0.vf
-2019/10/26 | 2588 | fonts/newtx/vf/ntxmi17.vf
-2019/10/26 | 2588 | fonts/newtx/vf/ntxmi15.vf
-2019/10/26 | 2584 | fonts/newtx/vf/ntxmi07.vf
-2019/10/26 | 2584 | fonts/newtx/vf/ntxmi05.vf
-2019/10/26 | 2576 | fonts/newtx/vf/ntxmi7.vf
-2019/10/26 | 2576 | fonts/newtx/vf/ntxmi5.vf
-2019/10/26 | 2552 | fonts/newpx/vf/zplmi.vf
-2019/10/26 | 2548 | fonts/newpx/vf/zplmi1.vf
-2019/10/26 | 24167 | fonts/newpx/type1/NewPXBMI.pfb
2019/10/26 | 2390460 | systems/win32/w32tex/win64/dvitools-w64.tar.xz
2019/10/26 | 2247 | fonts/librecaslon/README
2019/10/26 | 22158504 | systems/win32/w32tex/cjkzr.tar.xz
-2019/10/26 | 2156 | fonts/newpx/tfm/zplbmia.tfm
2019/10/26 | 213591 | systems/win32/miktex/tm/packages/subfiles.tar.lzma
2019/10/26 | 2089 | usergrps/dante/dtk/dtk-new-engines.clo
-2019/10/26 | 2076 | fonts/newpx/tfm/zplmia.tfm
-2019/10/26 | 205404 | systems/texlive/tlnet/archive/subfiles.doc.tar.xz
-2019/10/26 | 198492 | systems/texlive/tlnet/archive/clearsans.doc.tar.xz
-2019/10/26 | 1900 | fonts/newtx/tfm/ntxbmi05.tfm
-2019/10/26 | 1828 | fonts/newtx/vf/ntxbmi05.vf
2019/10/26 | 173042 | macros/latex/contrib/suftesi/suftesi.dtx
2019/10/26 | 17180 | usergrps/dante/dtk/dtk-full.clo
-2019/10/26 | 1696 | systems/texlive/tlnet/archive/subfiles.tar.xz
2019/10/26 | 1680 | macros/latex/contrib/suftesi/README
-2019/10/26 | 1608 | fonts/newtx/tfm/NewTXMI5.tfm
-2019/10/26 | 1604 | fonts/newtx/tfm/LibertineMathMI5.tfm
-2019/10/26 | 1600 | fonts/newtx/tfm/LibertineMathBMI5.tfm
-2019/10/26 | 15963 | fonts/newpx/README
-2019/10/26 | 1576 | fonts/newtx/tfm/LibertineMathMI7.tfm
-2019/10/26 | 1576 | fonts/newtx/tfm/LibertineMathBMI7.tfm
-2019/10/26 | 1556 | fonts/newtx/tfm/NewTXMI7.tfm
-2019/10/26 | 1556 | fonts/newtx/tfm/NewTXBMI5.tfm
-2019/10/26 | 1552 | fonts/newtx/tfm/LibertineMathMI.tfm
-2019/10/26 | 1544 | fonts/newtx/tfm/LibertineMathBMI.tfm
-2019/10/26 | 1532 | fonts/newpx/vf/zplbmia.vf
-2019/10/26 | 1528 | fonts/newpx/vf/zplmia.vf
-2019/10/26 | 1524 | fonts/newtx/tfm/NewTXBMI7.tfm
2019/10/26 | 1524278 | systems/win32/miktex/tm/packages/clearsans.tar.lzma
-2019/10/26 | 1408 | fonts/newtx/tfm/NewTXMI.tfm
-2019/10/26 | 1392 | fonts/newtx/tfm/NewTXBMI.tfm
2019/10/26 | 1350551 | install/fonts/librecaslon.tds.zip
2019/10/26 | 1328509 | fonts/librecaslon.zip
-2019/10/26 | 1322452 | systems/texlive/tlnet/archive/clearsans.tar.xz
2019/10/26 | 115910 | fonts/newtx/tex/newtxmath.sty
2019/10/26 | 1141108 | install/macros/latex/contrib/suftesi.tds.zip
2019/10/26 | 11309 | fonts/librecaslon/map/LibreCaslon.map
2019/10/26 | 112970 | systems/win32/miktex/tm/packages/pxjahyper.tar.lzma
2019/10/26 | 1126315 | macros/latex/contrib/suftesi.zip
2019/10/26 | 1098391 | macros/latex/contrib/suftesi/suftesi.pdf
-2019/10/26 | 1052 | fonts/newpx/tfm/NewPXBMI.tfm
-2019/10/26 | 104924 | systems/texlive/tlnet/archive/pxjahyper.doc.tar.xz
-2019/10/25 | 8616 | dviware/dvisvgm/src/CMapReader.cpp
-2019/10/25 | 8409 | dviware/dvisvgm/configure.ac
-2019/10/25 | 682140 | dviware/dvisvgm/configure
-2019/10/25 | 62590 | dviware/dvisvgm/doc/dvisvgm.1
-2019/10/25 | 59734 | dviware/dvisvgm/src/Makefile.in
-2019/10/25 | 5918 | language/japanese/pxjahyper/pxjahyper.tex
-2019/10/25 | 56818 | dviware/dvisvgm/aclocal.m4
-2019/10/25 | 5070 | dviware/dvisvgm/tests/FontCacheTest.cpp
-2019/10/25 | 4730 | fonts/librecaslon/latex/librecaslon.sty
-2019/10/25 | 4450888 | systems/win32/w32tex/dvipsk-w32.tar.xz
-2019/10/25 | 4369 | dviware/dvisvgm/config.h.in
-2019/10/25 | 4337 | fonts/clearsans/map/ClearSans.map
-2019/10/25 | 40554 | dviware/dvisvgm/libs/ff-woff/Makefile.in
-2019/10/25 | 35101 | language/japanese/pxjahyper/pxjahyper.sty
-2019/10/25 | 33774 | dviware/dvisvgm/NEWS
-2019/10/25 | 31488 | dviware/dvisvgm/libs/brotli/Makefile.in
-2019/10/25 | 3039369 | systems/win32/miktex/tm/packages/librefranklin.tar.lzma
-2019/10/25 | 3036 | dviware/dvisvgm/src/CMapReader.hpp
-2019/10/25 | 2788270 | systems/win32/miktex/tm/packages/cochineal.tar.lzma
-2019/10/25 | 27672 | dviware/dvisvgm/Makefile.in
-2019/10/25 | 256010 | dviware/dvisvgm/tests/Makefile.in
-2019/10/25 | 24681 | dviware/dvisvgm/libs/woff2/Makefile.in
-2019/10/25 | 2451748 | systems/win32/w32tex/tex4htk-w32.tar.xz
-2019/10/25 | 2401518 | install/fonts/clearsans.tds.zip
-2019/10/25 | 2390150 | fonts/clearsans.zip
-2019/10/25 | 2359200 | systems/win32/miktex/tm/packages/xcharter.tar.lzma
-2019/10/25 | 21889 | dviware/dvisvgm/src/optimizer/Makefile.in
-2019/10/25 | 2170279 | systems/win32/miktex/tm/packages/onedown.tar.lzma
-2019/10/25 | 2116 | language/japanese/pxjahyper/README-ja.md
-2019/10/25 | 20804 | dviware/dvisvgm/libs/potrace/Makefile.in
-2019/10/25 | 20338 | dviware/dvisvgm/libs/clipper/Makefile.in
-2019/10/25 | 19936 | dviware/dvisvgm/libs/Makefile.in
-2019/10/25 | 19892 | dviware/dvisvgm/doc/Makefile.in
-2019/10/25 | 19650 | dviware/dvisvgm/libs/xxHash/Makefile.in
-2019/10/25 | 19545 | dviware/dvisvgm/libs/md5/Makefile.in
-2019/10/25 | 1934 | fonts/clearsans/README
-2019/10/25 | 1783168 | systems/win32/miktex/tm/packages/step.tar.lzma
-2019/10/25 | 15639 | dviware/dvisvgm/tests/Makefile.am
-2019/10/25 | 15593 | dviware/dvisvgm/libs/variant/Makefile.in
-2019/10/25 | 13688 | dviware/dvisvgm/tests/data/Makefile.in
-2019/10/25 | 13474 | dviware/dvisvgm/m4/Makefile.in
-2019/10/25 | 126131 | systems/win32/miktex/tm/packages/ucalgmthesis.tar.lzma
-2019/10/25 | 113496 | language/japanese/pxjahyper.zip
-2019/10/25 | 1130 | language/japanese/pxjahyper/README.md
-2019/10/25 | 101012 | language/japanese/pxjahyper/pxjahyper.pdf
diff --git a/indexing/makeindexk/ChangeLog b/indexing/makeindexk/ChangeLog
index 5416765082..f722fb766a 100644
--- a/indexing/makeindexk/ChangeLog
+++ b/indexing/makeindexk/ChangeLog
@@ -1,3 +1,9 @@
+2019-11-01 Karl Berry <karl@tug.org>
+
+ * mkindex: "quote" arguments, doc tweaks.
+ (Really testing update of arch-specific packages with versioned
+ containers with meaningless changes.)
+
2019-03-21 Karl Berry <karl@tug.org>
* mkind.h (ARGUMENT_MAX): increase to 10240 from 1024,
diff --git a/indexing/makeindexk/mkindex b/indexing/makeindexk/mkindex
index 565f805695..7e6c57fa19 100755
--- a/indexing/makeindexk/mkindex
+++ b/indexing/makeindexk/mkindex
@@ -1,4 +1,6 @@
#!/bin/sh
+# $Id: mkindex 52596 2019-11-01 18:11:31Z karl $
+# Public domain. Originally written by Thomas Esser around 2001..
test -f /bin/sh5 && test -z "$RUNNING_SH5" \
&& { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
@@ -13,7 +15,7 @@ unset RUNNING_BSH
progname=`basename $0`
case $# in
0)
- echo "usage: `basename $0` file[.idx] ..." 1>&2
+ echo "Usage: `basename $0` file[.idx|.glo] ..." 1>&2
exit 1
;;
esac
@@ -27,13 +29,13 @@ dir=`pwd`
# loop over all files
for i
do
- destdir=`echo $i | sed 's/^[^\/]*$/./; s/\/[^\/]*$//'`
- test -d "$destdir"||continue
- cd "$destdir"
- FILENAME=`basename $i .idx`
+ destdir=`echo "$i" | sed 's/^[^\/]*$/./; s/\/[^\/]*$//'`
+ test -d "$destdir" || continue
+ cd "$destdir" || exit 1
+ FILENAME=`basename "$i" .idx`
test -f "$FILENAME".idx \
- && makeindex -s $gind "$FILENAME"
+ && makeindex -s "$gind" "$FILENAME"
test -f "$FILENAME".glo \
- && makeindex -s $gglo -o "$FILENAME".gls "$FILENAME".glo
- cd "$dir"
+ && makeindex -s "$gglo" -o "$FILENAME".gls "$FILENAME".glo
+ cd "$dir" || exit 1
done
diff --git a/macros/latex/contrib/asmejour/README.md b/macros/latex/contrib/asmejour/README.md
index 8be9aa6158..c4475e0eca 100644
--- a/macros/latex/contrib/asmejour/README.md
+++ b/macros/latex/contrib/asmejour/README.md
@@ -1,7 +1,7 @@
#asmejour: A template for ASME journal papers#
- Version 1.06 dated 2019/10/01.
+ Version 1.07 dated 2019/10/31.
####Overview####
This class provides a template to format preprints submitted to ASME journals in the style that
@@ -57,6 +57,8 @@
####Change log####
+v1.07: add commands for \\toprule, \\midrule, and \\bottomrule in ASME style; add advice on landscape material; minor edits to \\entry and for language support.
+
v1.06: allow standard \\date, \\maketitle, and \\title commands and abstract environment; make final column balancing a package option; remove \\normalfont from AMS equation tags to allow tags to match caption font; incorporate \\subfigure in example template; allow line numbers in AMS display math; provide comma between sequential footnote marks; adjust babel options; other minor edits; revise template text.
v1.05: automate list of figures/tables with option to omit; replace balance package with flushend package and automate; revise skips in nomenclature; address conflicts of lineno package with other elements; option to hyphenate typewriter font; new options for footer text; adjust \\emergencystretch and \\tolerance; additional documentation and references
diff --git a/macros/latex/contrib/asmejour/asmejour-sample.bib b/macros/latex/contrib/asmejour/asmejour-sample.bib
index fcbcc7a840..62255d83d9 100644
--- a/macros/latex/contrib/asmejour/asmejour-sample.bib
+++ b/macros/latex/contrib/asmejour/asmejour-sample.bib
@@ -1,4 +1,4 @@
-%% Revised 1 October 2019.
+%% Revised 31 October 2019.
@article{DKE1969,
author = {D. K. Edwards},
@@ -125,6 +125,16 @@
version = {1.10},
}
+@online{fairbairns,
+ author = {Robin Fairbairns and Sebastian Rahtz and Leonor Barroca},
+ title = {A package for rotated objects in \LaTeX},
+ year = {2016},
+ organization = {Comprehensive \TeX\ Archive Network},
+ url = {https://www.ctan.org/pkg/rotating},
+ urldate = {October 2, 2019},
+ version = {v2.16d},
+}
+
@online{GSL,
title = {{GNU} Scientific Library},
URL = {https://www.gnu.org/software/gsl/},
diff --git a/macros/latex/contrib/asmejour/asmejour-template.pdf b/macros/latex/contrib/asmejour/asmejour-template.pdf
index b69e52b5ac..ade917abc4 100644
--- a/macros/latex/contrib/asmejour/asmejour-template.pdf
+++ b/macros/latex/contrib/asmejour/asmejour-template.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmejour/asmejour-template.tex b/macros/latex/contrib/asmejour/asmejour-template.tex
index 93ce5d67ce..2d276e0956 100644
--- a/macros/latex/contrib/asmejour/asmejour-template.tex
+++ b/macros/latex/contrib/asmejour/asmejour-template.tex
@@ -3,7 +3,7 @@
%% This file is asmejour-template.tex, a template to format papers in the style of ASME journal papers
%% as they are being published in 2019.
%%
-%% This file is version 1.06 dated 2019/10/1
+%% This file is version 1.07 dated 2019/10/31
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -84,7 +84,6 @@
\pdfminorversion=7 % This selection is not required.
-
%%%%% FIELDS TO BE COMPLETED FOLLOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -280,10 +279,13 @@ The typewriter font loaded is \texttt{inconsolata} (which is sans serif), as sug
Table \ref{tab:1} is an example of a simple table. Table captions should be placed above tables.
The class loads the \texttt{array} and \texttt{dcolumn} packages which provide extended capabilities for columns in the \texttt{tabular} environment (used in Tables \ref{tab:2} and \ref{tab:3}). Table~\ref{tab:3} is designed to have exactly the width of a text column.
+The \texttt{booktabs} is been loaded (and customized) to provide versions of \verb|\toprule|, \verb|\midrule|, and \verb|\bottomrule}| appropriate to ASME-style tables.
+
Table~\ref{tab:4} shows a table that spans both text columns. Figure~\ref{fig:2} shows a figure spanning both columns.
Text in the figures should be checked for legibility at either single-column width (about 83~mm) or full-column width (about 170~mm). Figure captions should be placed below figures.
+Landscape figures and tables may be produced at full-page size by putting \verb|\usepackage[figuresright]{rotating}| in your \texttt{.tex} file's preamble and using the \texttt{sidewaystable*} and \texttt{sidewaysfigure*} environments~\cite{fairbairns}.
%%%%%%%%%%%%%%% begin simple table %%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -293,19 +295,43 @@ Text in the figures should be checked for legibility at either single-column wid
\caption{A simple table\label{tab:1}}
\centering{%
\begin{tabular}{l l r}
-\hline\hline
-Experiment & $u$ [m/s] & $T$ [\textdegree C]\rule{0pt}{10pt} \\[2pt]
-\hline
-Run 11 & 12.5 & 103.4 \rule{0pt}{10pt} \\
-Run 12 & 24 & 68.3 \\[1pt]
-\hline\hline
+\toprule
+Experiment & $u$ [m/s] & $T$ [\textdegree C] \\
+\midrule
+Run 11 & 12.5 & 103.4 \\
+Run 12 & 24 & 68.3 \\
+\bottomrule
\end{tabular}
-}
+}%
\end{table}
%%%%%%%%%%%%%%%% end table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%% begin two column figure %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{figure*}[t]
+\begin{subfigure}[t]{0.5\textwidth} % You will get same result using \begin{minipage}[t]{0.5\textwidth}
+\vbox{
+\vspace*{1.7em}
+\centering{
+ \includegraphics{sample-figure-2a.pdf}
+}
+\vspace*{1.7em}
+}
+\subcaption{Interior region\label{fig:interior-region}}
+\end{subfigure}%
+%%%%%%%% don't leave a break here
+\begin{subfigure}[t]{0.5\textwidth} % You will get same result using \begin{minipage}[t]{0.5\textwidth}
+\centering{
+\includegraphics{sample-figure-2b.pdf}
+\subcaption{Exterior region\label{fig:exterior-region}}
+}\end{subfigure}%
+\caption{A figure with two subfigures \cite{Lienhard2019b}\label{fig:2}}
+\end{figure*}
+
+%%%%%%%%%%%%%%%%%%% end two column figure %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Reference Formatting with \texttt{asmejour.bst}}
@@ -335,45 +361,20 @@ The \verb|version={..}| field may be used with \verb|@book|, \verb|@online|, and
\caption{Table with more complicated columns}\label{tab:2}%
\centering{%
\begin{tabular}{!{\hspace*{0.5cm}} >{\raggedright\hangindent=1em} p{3cm} d{3} @{\hspace*{1cm}} d{3} !{\hspace*{0.5cm}}}
-\hline\hline
-\rule{0pt}{10pt}Experiment & \multicolumn{1}{c@{\hspace*{1cm}}}{$u$ [m/s]} & \multicolumn{1}{c!{\hspace*{0.5cm}}}{$T$ [\textdegree C]} \\[1pt]
-\hline
-The first experiment we ran this morning & 124.3 & 68.3 \rule{0pt}{10pt} \\
-The second experiment we ran this morning & 82.50 & 103.46 \\
-Our competitor's data & 72.321 & 141.384 \\[1pt]
-\hline\hline
+\toprule
+Experiment & \multicolumn{1}{c@{\hspace*{1cm}}}{$u$ [m/s]} & \multicolumn{1}{c!{\hspace*{0.5cm}}}{$T$ [\textdegree C]} \\
+\midrule
+The first experiment we ran this morning & 124.3 & 68.3 \\
+The second experiment we ran this morning & 82.50 & 103.46 \\
+Our competitor's data & 72.321 & 141.384\\
+\bottomrule
\end{tabular}
-}
+}%
\end{table}
%%%%%%%%%%%%%%%% end table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%% begin two column figure %%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\begin{figure*}[t]
-\begin{subfigure}[t]{0.5\textwidth} % You will get same result using \begin{minipage}[t]{0.5\textwidth}
-\vbox{
-\vspace*{1.7em}
-\centering{
- \includegraphics{sample-figure-2a.pdf}
-}
-\vspace*{1.7em}
-}
-\subcaption{Interior region\label{fig:interior-region}}
-\end{subfigure}%
-%%%%%%%% don't leave a break here
-\begin{subfigure}[t]{0.5\textwidth} % You will get same result using \begin{minipage}[t]{0.5\textwidth}
-\centering{
-\includegraphics{sample-figure-2b.pdf}
-\subcaption{Exterior region\label{fig:exterior-region}}
-}\end{subfigure}%
-\caption{A figure with two subfigures \cite{Lienhard2019b}\label{fig:2}}
-\end{figure*}
-
-%%%%%%%%%%%%%%%%%%% end two column figure %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Additional Options for \texttt{asmejour.cls}}
The class accepts a number of options in addition to those already described.
@@ -390,24 +391,21 @@ The footers are all generated with the \texttt{fancyhdr} package~\cite{oostrum},
\subsection{Superiors Font} The \texttt{newtxtext} package includes a superiors font (both numbers and letters) for use in footnote markers and superscripts. To enable this font, use the option \texttt{[nodefaultsups]}. The corresponding author mark in the author block will not change.
-
%%%%%%%%%%%%%%%%%%% begin linewidth table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{table}[t]
\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type, from array package
\caption{\label{tab:3}Table at full column width with columns in math mode}
-\centering{%
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}CCCC@{\extracolsep{\fill}}}
-\hline\hline
-X_{z} & X_{c} & X_{c,m} & X_{c,2}\rule{0pt}{11pt}\\
+\toprule
+X_{z} & X_{c} & X_{c,m} & X_{c,2}\rule{0pt}{8pt}\\
3.92069 & 5.70943 & 6.32429 & 7.08757\\[2pt]
\varepsilon (T_1) & \varepsilon^i (T_1) & \varepsilon^i (T_m) & \alpha (T_1, T_2)\\
0.7258 & 0.6237 & 0.6807 & 0.7964 \\[2pt]
q_\textrm{gray} & q_\textrm{int, $T_1$} & q_\textrm{int, $T_m$} & q_\textrm{exact}\\
-400.2 & 462.1 & 371.0 & 371.8 \\[1pt]
-\hline\hline
+400.2 & 462.1 & 371.0 & 371.8 \\
+\bottomrule
\end{tabular*}
-}
\end{table}
%%%%%%%%%%%%%%%%%%%% end linewidth table %%%%%%%%%%%%%%%%%%%%%%%
@@ -436,14 +434,14 @@ Note that bookmarks can include simple math. Also note that \texttt{newtxmath} p
\caption{A table spanning two columns}\label{tab:4}%
\centering{%
\begin{tabular*}{0.8\textwidth}{@{\hspace*{1.5em}}@{\extracolsep{\fill}}ccc!{\hspace*{3.em}}ccc@{\hspace*{1.5em}}}
-\hline\hline
-\multicolumn{1}{@{\hspace*{1.5em}}c}{$x$\rule{0pt}{11pt}} &
+\toprule
+\multicolumn{1}{@{\hspace*{1.5em}}c}{$x$\rule{0pt}{8pt}} &
\multicolumn{1}{c}{$\textrm{erf}(x)$} &
\multicolumn{1}{c!{\hspace*{3.em}}}{$\textrm{erfc}(x)$} &
\multicolumn{1}{c}{$x$} &
\multicolumn{1}{c}{$\textrm{erf}(x)$} &
-\multicolumn{1}{c@{\hspace*{1.5em}}}{$\textrm{erfc}(x)$} \\ \hline
-0.00 & 0.00000 & 1.00000 & 1.10 & 0.88021 & 0.11980\rule{0pt}{11pt} \\
+\multicolumn{1}{c@{\hspace*{1.5em}}}{$\textrm{erfc}(x)$} \\ \midrule
+0.00 & 0.00000 & 1.00000 & 1.10 & 0.88021 & 0.11980 \\
0.05 & 0.05637 & 0.94363 & 1.20 & 0.91031 & 0.08969 \\
0.10 & 0.11246 & 0.88754 & 1.30 & 0.93401 & 0.06599 \\
0.15 & 0.16800 & 0.83200 & 1.40 & 0.95229 & 0.04771 \\
@@ -455,10 +453,10 @@ Note that bookmarks can include simple math. Also note that \texttt{newtxmath} p
0.70 & 0.67780 & 0.32220 & 1.90 & 0.99279 & 0.00721 \\
0.80 & 0.74210 & 0.25790 & 2.00 & 0.99532 & 0.00468 \\
0.90 & 0.79691 & 0.20309 & 2.50 & 0.99959 & 0.00041 \\
-1.00 & 0.84270 & 0.15730 & 3.00 & 0.99998 & 0.00002 \\[2pt]
-\hline\hline
+1.00 & 0.84270 & 0.15730 & 3.00 & 0.99998 & 0.00002 \\
+\bottomrule
\end{tabular*}
-}
+}%
\end{table*}
%%%%%%%%%%%%%%%% end two column table %%%%%%%%%%%%%%%%%%%
@@ -551,7 +549,7 @@ ASME publishes in English, but the \texttt{babel} package is loaded for
users who may wish to include other languages. Options are supported to load a primary language, \texttt{lang=}, as well
as a secondary and tertiary language, \texttt{lang-second} and \texttt{lang-third}. The primary language must be given as the \textit{last} language option in \verb|\documentclass|.
-If no language option is given, the package defaults to English. The standard caption and section names will follow \texttt{babel}'s dictionary for primary languages other than English. Users may additionally change ``Keywords'' and ``Nomenclature'' by renewing the commands \verb|\keywordname| and \verb|\nomname|. Changes to the page footer were described earlier.
+If no language option is given, the package defaults to English. The standard caption and section names will follow \texttt{babel}'s dictionary for primary languages other than English. Users may additionally change ``Keywords'' and ``Nomenclature'' by renewing the commands \verb|\keywordname| and \verb|\nomname|. Changes to the page footer were described earlier. The pdf bookmark for ``Appendices'' by be changed by renewing \verb|\appendicesname|.
An example of use is shown in \selectlanguage{french}\appendixname\ \ref{app:fourier}.\selectlanguage{english}
diff --git a/macros/latex/contrib/asmejour/asmejour.cls b/macros/latex/contrib/asmejour/asmejour.cls
index beb4364634..3f7653278c 100644
--- a/macros/latex/contrib/asmejour/asmejour.cls
+++ b/macros/latex/contrib/asmejour/asmejour.cls
@@ -6,7 +6,7 @@
%% The asmejour.cls file should be used with the files asmejour.bst (for citations) and asmejour-template.tex.
%%
%%
-%% This file is version 1.06 dated 2019/10/01.
+%% This file is version 1.07 dated 2019/10/31.
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -52,7 +52,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{asmejour}[2019/10/01 asmejour paper format]
+\ProvidesClass{asmejour}[2019/10/31 asmejour paper format]
\LoadClass[twoside,9pt,twocolumn]{extarticle}
@@ -200,11 +200,15 @@
%% make \hline in tables heavier than default 0.4pt
\setlength\arrayrulewidth{.5\p@}
+\RequirePackage{booktabs}
+\renewcommand*{\toprule}{\specialrule{0.5pt}{0pt}{\doublerulesep}\specialrule{0.5pt}{0pt}{3pt}}
+\renewcommand*{\midrule}{\specialrule{0.5pt}{2pt}{3pt}}
+\renewcommand*{\bottomrule}{\specialrule{0.5pt}{1pt}{\doublerulesep}\specialrule{0.5pt}{0pt}{0pt}}
%%%%%%%% FONT related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{mathtools} % extends amsmath
-\RequirePackage[utf8]{inputenc}
+\RequirePackage[utf8]{inputenc} % backward compatibility...
\RequirePackage[]{babel}
\RequirePackage[]{newtxtext}
\RequirePackage[varqu,varl]{inconsolata} % sans typewriter font
@@ -262,6 +266,8 @@
}
\providecommand{\nomname}{Nomenclature}
\providecommand{\keywordname}{Keywords}
+ \providecommand{\appendicesname}{Appendices}
+
%%%%%%%%%%%%%%%%% EQUATION AND LINE NUMBERING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -432,7 +438,7 @@
%% Special handling of the appendices
%% Assumes that appendices are the last technical content in paper
\RenewDocumentCommand{\appendix}{}{%
- \pdfbookmark[1]{Appendices}{appendices}
+ \pdfbookmark[1]{\appendicesname}{appendices}
\setcounter{section}{0}
\renewcommand\thesection{\Alph{section}}
\setcounter{equation}{0}
@@ -536,8 +542,8 @@
\DeclareDocumentCommand{\entry}{m g}{%
\IfNoValueTF{#2}{%
\itemsep12\p@ plus 4\p@ minus 4\p@% \bigskip
- \goodbreak\item[\bfseries#1\hfill]\itemsep3\p@ plus 1\p@ minus 1\p@\nopagebreak% \smallskip, ASME closer to \medskip
- }{%
+ \goodbreak\item[\bfseries#1\hfill]\itemsep3\p@ plus 1\p@ minus 1\p@\@itempenalty=1000%
+ }{%
\item[\hfill#1${} = {}$]#2%
\setlength\itemsep\savitemsep
\settowidth\@widest{#1${} = {}$}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md b/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md
index f5a42585e2..bb9ac3a006 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md
@@ -1,5 +1,13 @@
# Changelog
+## Version 0.8b (2019-11-01)
+
+See <https://github.com/moewew/biblatex-ext/compare/v0.8a...v0.8b>
+
+### Fixed
+
+- Call to removed option in `ext-verbose-trad2`.
+
## Version 0.8a (2019-10-31)
See <https://github.com/moewew/biblatex-ext/compare/v0.8...v0.8a>
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty
index a80d535253..919ca13bc7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty
@@ -1,5 +1,5 @@
\ProvidesPackage{biblatex-ext-oa-doiapi}
- [2019/10/31 v0.8a Obtain open access information from DOI via
+ [2019/11/01 v0.8b Obtain open access information from DOI via
unpaywall.org and doi.org (MW)]
\RequirePackage{etoolbox}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
index 346810e4cc..f5104f43a8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
@@ -1,5 +1,5 @@
\ProvidesPackage{biblatex-ext-oa}
- [2019/10/31 v0.8a mark open access in biblatex bibliographies (MW)]
+ [2019/11/01 v0.8b mark open access in biblatex bibliographies (MW)]
\protected\def\extblx@oa@error#1#2{%
\PackageError{biblatex-ext-oa}{#1}{#2.}}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
index 5ee5666a93..7d27819da9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
@@ -1,7 +1,7 @@
\RequirePackage{expl3}
\ProvidesExplPackage {biblatex-ext-oasymb-l3draw}
- {2019/10/31} {0.8a}
+ {2019/11/01} {0.8b}
{open access symbols with l3draw (MW)}
\RequirePackage{xparse}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty
index bf027bddc2..b01ed9c094 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty
@@ -1,5 +1,5 @@
\ProvidesPackage{biblatex-ext-oasymb-pict2e}
- [2019/10/31 v0.8a open access symbols with pict2e (MW)]
+ [2019/11/01 v0.8b open access symbols with pict2e (MW)]
\RequirePackage{etoolbox}
\RequirePackage{kvoptions}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
index 467b9e9ab1..61ba039f49 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
@@ -1,5 +1,5 @@
\ProvidesPackage{biblatex-ext-oasymb-tikz}
- [2019/10/31 v0.8a open access symbols with TikZ (MW)]
+ [2019/11/01 v0.8b open access symbols with TikZ (MW)]
\RequirePackage{etoolbox}
\RequirePackage{kvoptions}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
index a3e8ac141b..b67f83fea6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
@@ -1,5 +1,5 @@
\ProvidesPackage{biblatex-ext-tabular}
- [2019/10/31 v0.8a tabular bibliographies for biblatex (MW)]
+ [2019/11/01 v0.8b tabular bibliographies for biblatex (MW)]
% Code based on Audrey's
% (https://tex.stackexchange.com/users/4483/audrey)
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf
index 4a662b837d..de0918a8e9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
index cb882a105b..5f2dc59e0c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
@@ -463,7 +463,7 @@
\newcommand*{\ctan}{\mkbibacro{CTAN}}
\newcommand*{\gitbaseurl}{https://github.com/moewew/biblatex-ext}
-\newcommand*{\extblxversion}{0.8a}
+\newcommand*{\extblxversion}{0.8b}
\newcommand*{\biber}{Biber}
\newcommand*{\gitissuelink}[1]{%
\href{\gitbaseurl/issues/#1}{issue \##1 on github}}
@@ -529,7 +529,7 @@
author = {Moritz Wemheuer},
link = {mwemheu@gmail.com},%
revision = {\extblxversion},
- date = {\DTMDate{2019-10-31}},
+ date = {\DTMDate{2019-11-01}},
}
\hypersetup{%
@@ -3177,6 +3177,10 @@ See also \filename{CHANGES.md}.
The numbers on the right indicate the relevant section of the manual.
\begin{changelog}
+\begin{release}{0.8b}{2019-11-01}
+ \item Fixed bug in \blxstyle{ext-verbose-trad2}%
+ \see{sec:styles:standard}
+\end{release}
\begin{release}{0.8a}{2019-10-31}
\item Fixed default value of \hypercmd{servoldelim}\see{sec:opt:punct}
\item Fixed bug in \blxstyle{ext-authoryear-tiecomp}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua b/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua
index 4162323db3..5cd1f7223d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua
@@ -2,8 +2,8 @@ blxextdoiapi = blxextdoiapi or {}
local blxextdoiapi_module = {
name = "blxextdoiapi",
- version = "v0.8a",
- date = "2019/10/31",
+ version = "v0.8b",
+ date = "2019/11/01",
description = "Obtain open access information from DOI via unpaywall.org",
author = "Moritz Wemheuer",
license = "LPPL v1.3c",
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
index 25512f8e9e..e780dfb726 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-alphabetic-verb.bbx}
- [2019/10/31 v0.8a extended biblatex alphabetic-verb
+ [2019/11/01 v0.8b extended biblatex alphabetic-verb
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
index 3697b20f03..39fe0046c8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-alphabetic-verb.cbx}
- [2019/10/31 v0.8a extended biblatex alphabetic-verb citation style
+ [2019/11/01 v0.8b extended biblatex alphabetic-verb citation style
(MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx
index 7a84d4046a..576dfbc2dc 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-alphabetic.bbx}
- [2019/10/31 v0.8a extended biblatex alphabetic bibliography style (MW)]
+ [2019/11/01 v0.8b extended biblatex alphabetic bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
\RequireBibliographyStyle{alphabetic}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
index 28a2355424..a00ef171eb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-alphabetic.cbx}
- [2019/10/31 v0.8a extended biblatex alphabetic citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex alphabetic citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx
index 56c9699104..896a76714c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-common.bbx}
- [2019/10/31 v0.8a common files for extended biblatex
+ [2019/11/01 v0.8b common files for extended biblatex
authortitle bibliography styles (MW)]
\RequireBibliographyStyle{ext-dashed-common}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx
index 089545e46f..b98d0eaa7f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-comp.bbx}
- [2019/10/31 v0.8a extended biblatex authortitle-comp
+ [2019/11/01 v0.8b extended biblatex authortitle-comp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx
index fc8c3eaff3..be3ed3f405 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-comp.cbx}
- [2019/10/31 v0.8a extended biblatex authortitle-comp
+ [2019/11/01 v0.8b extended biblatex authortitle-comp
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx
index b35479b188..b13f4eb628 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-ibid.bbx}
- [2019/10/31 v0.8a extended biblatex authortitle-ibid
+ [2019/11/01 v0.8b extended biblatex authortitle-ibid
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx
index 88f6fa3dbf..54a03f99c4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-ibid.cbx}
- [2019/10/31 v0.8a extended biblatex authortitle-ibid
+ [2019/11/01 v0.8b extended biblatex authortitle-ibid
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx
index 5cf503d9f3..394e3e6ada 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-icomp.bbx}
- [2019/10/31 v0.8a extended biblatex authortitle-icomp
+ [2019/11/01 v0.8b extended biblatex authortitle-icomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
index aafde9ca5e..f8c57afeeb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-icomp.cbx}
- [2019/10/31 v0.8a extended biblatex authortitle-icomp
+ [2019/11/01 v0.8b extended biblatex authortitle-icomp
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx
index 1c1eeb7796..50e18491a7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-tcomp.bbx}
- [2019/10/31 v0.8a extended biblatex authortitle-tcomp
+ [2019/11/01 v0.8b extended biblatex authortitle-tcomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
index 1f0466fb11..b5f335a60d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-tcomp.cbx}
- [2019/10/31 v0.8a extended biblatex authortitle-tcomp
+ [2019/11/01 v0.8b extended biblatex authortitle-tcomp
citation style (MW)]
\RequireCitationStyle{ext-authortitle-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx
index f763ae2409..b21263abae 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-terse.bbx}
- [2019/10/31 v0.8a extended biblatex authortitle-terse
+ [2019/11/01 v0.8b extended biblatex authortitle-terse
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
index 10520a454d..219a4ba02a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-terse.cbx}
- [2019/10/31 v0.8a extended biblatex authortitle-terse
+ [2019/11/01 v0.8b extended biblatex authortitle-terse
citation style (MW)]
\RequireCitationStyle{ext-authortitle}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx
index df92f34694..175042b3b9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-ticomp.bbx}
- [2019/10/31 v0.8a extended biblatex authortitle-ticomp
+ [2019/11/01 v0.8b extended biblatex authortitle-ticomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx
index 9f693a0849..e86f1c3958 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle-ticomp.cbx}
- [2019/10/31 v0.8a extended biblatex authortitle-ticomp citation style
+ [2019/11/01 v0.8b extended biblatex authortitle-ticomp citation style
(MW)]
\RequireCitationStyle{ext-authortitle-icomp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx
index e7c2b83076..e96389247d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle.bbx}
- [2019/10/31 v0.8a extended biblatex authortitle
+ [2019/11/01 v0.8b extended biblatex authortitle
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx
index 05aebdc575..73e937f664 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authortitle.cbx}
- [2019/10/31 v0.8a extended biblatex authortitle citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex authortitle citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx
index 4ce7e4f7b8..ea8b7fd234 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-common.bbx}
- [2019/10/31 v0.8a common files for extended biblatex
+ [2019/11/01 v0.8b common files for extended biblatex
authoryear bibliography styles (MW)]
\RequireBibliographyStyle{ext-dashed-common}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx
index bfdf8ce2d7..d76e361106 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-comp.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-comp
+ [2019/11/01 v0.8b extended biblatex authoryear-comp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx
index 36350c71e5..d9a048610e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-comp.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-comp
+ [2019/11/01 v0.8b extended biblatex authoryear-comp
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx
index 2c2d1ec3d6..cb80aade93 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-ecomp.bbx}
- [2019/10/31 v0.8a biblatex authoryear-ecomp
+ [2019/11/01 v0.8b biblatex authoryear-ecomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
index 2aec3a302e..9a18ff4aaa 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-ecomp.cbx}
- [2019/10/31 v0.8a biblatex authoryear-ecomp
+ [2019/11/01 v0.8b biblatex authoryear-ecomp
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx
index 40b695debb..bd12ffd63e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-ibid.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-ibid
+ [2019/11/01 v0.8b extended biblatex authoryear-ibid
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx
index a66d3f9e48..f069d84266 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-ibid.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-ibid
+ [2019/11/01 v0.8b extended biblatex authoryear-ibid
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx
index 34f5a8ec07..8f4c96c228 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-icomp.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-icomp
+ [2019/11/01 v0.8b extended biblatex authoryear-icomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx
index d0f2fb339c..4565888182 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-icomp.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-icomp
+ [2019/11/01 v0.8b extended biblatex authoryear-icomp
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx
index a1f152b0f5..0661392738 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-iecomp.bbx}
- [2019/10/31 v0.8a biblatex authoryear-iecomp
+ [2019/11/01 v0.8b biblatex authoryear-iecomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx
index 352302aa72..7344711272 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-iecomp.cbx}
- [2019/10/31 v0.8a biblatex authoryear-iecomp
+ [2019/11/01 v0.8b biblatex authoryear-iecomp
citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx
index d5fd08577b..2856eaa812 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-tcomp.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-tcomp
+ [2019/11/01 v0.8b extended biblatex authoryear-tcomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx
index f0cb6b455e..af28a2fb72 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-tcomp.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-tcomp
+ [2019/11/01 v0.8b extended biblatex authoryear-tcomp
citation style (MW)]
\RequireCitationStyle{ext-authoryear-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx
index 5a32feef67..5fbad208f9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-tecomp.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-tecomp
+ [2019/11/01 v0.8b extended biblatex authoryear-tecomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
index 670161944b..6d2a5684ad 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-tecomp.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-tecomp
+ [2019/11/01 v0.8b extended biblatex authoryear-tecomp
citation style (MW)]
\RequireCitationStyle{ext-authoryear-ecomp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx
index 63a772cce3..efd1ed9bde 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-terse.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-terse
+ [2019/11/01 v0.8b extended biblatex authoryear-terse
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
index a4ca634f10..b61bb15d52 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-terse.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-terse
+ [2019/11/01 v0.8b extended biblatex authoryear-terse
citation style (MW)]
\RequireCitationStyle{ext-authoryear}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx
index b92aa1d67d..8e9a120c97 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-ticomp.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-ticomp
+ [2019/11/01 v0.8b extended biblatex authoryear-ticomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx
index e8fa9f03fe..5750cf0912 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-ticomp.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-ticomp citation style
+ [2019/11/01 v0.8b extended biblatex authoryear-ticomp citation style
(MW)]
\RequireCitationStyle{ext-authoryear-icomp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx
index 9f500c9272..afcdb7ddb8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-tiecomp.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear-tiecomp
+ [2019/11/01 v0.8b extended biblatex authoryear-tiecomp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx
index 6fe1cfc3d6..b5cfbea925 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear-tiecomp.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear-tiecomp citation style
+ [2019/11/01 v0.8b extended biblatex authoryear-tiecomp citation style
(MW)]
\RequireCitationStyle{ext-authoryear-iecomp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx
index 96651c4a3c..84c056b435 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear.bbx}
- [2019/10/31 v0.8a extended biblatex authoryear bibliography style (MW)]
+ [2019/11/01 v0.8b extended biblatex authoryear bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
\RequireBibliographyStyle{authoryear}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx
index 947ce8ee3f..ed12262ffb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-authoryear.cbx}
- [2019/10/31 v0.8a extended biblatex authoryear citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex authoryear citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
index 9e73d9e93b..406c4208d3 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
@@ -1,5 +1,5 @@
\ProvidesFile{ext-biblatex-aux.def}
- [2019/10/31 v0.8a auxiliaries for extended biblatex citation style
+ [2019/11/01 v0.8b auxiliaries for extended biblatex citation style
(MW)]
\def\extblx@requiredbiblatexversion{3.13a}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx
index 314a62bbe3..5684ce02e0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-dashed-common.bbx}
- [2019/10/31 v0.8a common files for extended biblatex
+ [2019/11/01 v0.8b common files for extended biblatex
dashed bibliography styles (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx
index bedb51962f..7790baab3e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-numeric-comp.bbx}
- [2019/10/31 v0.8a extended biblatex numeric-comp
+ [2019/11/01 v0.8b extended biblatex numeric-comp
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx
index 3c8bd92f0b..fce37f6a15 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-numeric-comp.cbx}
- [2019/10/31 v0.8a extended biblatex numeric-comp citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex numeric-comp citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx
index c3e0d604ff..a7ae5e2992 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-numeric-verb.bbx}
- [2019/10/31 v0.8a extended biblatex numeric-verb
+ [2019/11/01 v0.8b extended biblatex numeric-verb
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
index 8e9ccdea43..e0da7df8a5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-numeric-verb.cbx}
- [2019/10/31 v0.8a extended biblatex numeric-verb citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex numeric-verb citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
index 596f8158d6..6ce7d77a13 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-numeric.bbx}
- [2019/10/31 v0.8a extended biblatex numeric bibliography style (MW)]
+ [2019/11/01 v0.8b extended biblatex numeric bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
\RequireBibliographyStyle{numeric}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
index b01a2a4b4f..cad27257c7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-numeric.cbx}
- [2019/10/31 v0.8a extended biblatex numeric citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex numeric citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
index 9261dc5358..7bae59e7c9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
@@ -1,9 +1,9 @@
-% biblatex-ext v0.8a (2019-10-31)
+% biblatex-ext v0.8b (2019-11-01)
% Maintainer: Moritz Wemheuer
% Licence: LaTeX Project Public License v1.3c or later
%
\ProvidesFile{ext-standard.bbx}
- [2019/10/31 v0.8a extended biblatex standard style (MW)]
+ [2019/11/01 v0.8b extended biblatex standard style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx
index 50dd95ab6d..a11cd6522b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-ibid.bbx}
- [2019/10/31 v0.8a extended biblatex verbose-ibid
+ [2019/11/01 v0.8b extended biblatex verbose-ibid
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx
index af422e088d..cf8126bd16 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-ibid.cbx}
- [2019/10/31 v0.8a extended biblatex verbose-ibid citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex verbose-ibid citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx
index 188e934f2f..c1f475f89b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-inote.bbx}
- [2019/10/31 v0.8a extended biblatex verbose-inote
+ [2019/11/01 v0.8b extended biblatex verbose-inote
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
index cc73a75d86..2c0b675904 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-inote.cbx}
- [2019/10/31 v0.8a extended biblatex verbose-inote citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex verbose-inote citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx
index 961dfd2657..d1fb391a7d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-note.bbx}
- [2019/10/31 v0.8a extended biblatex verbose-note
+ [2019/11/01 v0.8b extended biblatex verbose-note
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
index d190b1239e..fe47c02544 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-note.cbx}
- [2019/10/31 v0.8a extended biblatex verbose-note citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex verbose-note citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx
index 07c3ea5ee4..86b6b74deb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-trad1.bbx}
- [2019/10/31 v0.8a extended biblatex verbose-trad1
+ [2019/11/01 v0.8b extended biblatex verbose-trad1
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx
index 579c1d174a..c6899f41f4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-trad1.cbx}
- [2019/10/31 v0.8a extended biblatex verbose-trad1 citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex verbose-trad1 citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx
index ad6c0126e6..d550c6ea58 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx
@@ -1,14 +1,10 @@
\ProvidesFile{ext-verbose-trad2.bbx}
- [2019/10/31 v0.8a extended biblatex verbose-trad2
+ [2019/11/01 v0.8b extended biblatex verbose-trad2
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
\RequireBibliographyStyle{verbose-trad2}
-\ExecuteBibliographyOptions{
- inxref=false,
-}
-
\endinput
%
% This file is part of the biblatex-ext bundle.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx
index 2fbccd925d..0e6ad983d0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-trad2.cbx}
- [2019/10/31 v0.8a extended biblatex verbose-trad2 citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex verbose-trad2 citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx
index 37ab51f746..5d808dc741 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-trad3.bbx}
- [2019/10/31 v0.8a extended biblatex verbose-trad3
+ [2019/11/01 v0.8b extended biblatex verbose-trad3
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx
index 2f08f90582..366dba0e84 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose-trad3.cbx}
- [2019/10/31 v0.8a extended biblatex verbose-trad3 citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex verbose-trad3 citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx
index a06f52cb02..4cd21a9fae 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose.bbx}
- [2019/10/31 v0.8a extended biblatex verbose
+ [2019/11/01 v0.8b extended biblatex verbose
bibliography style (MW)]
\RequireBibliographyStyle{ext-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx
index b2db78d2b9..e0cf427550 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{ext-verbose.cbx}
- [2019/10/31 v0.8a extended biblatex verbose citation style (MW)]
+ [2019/11/01 v0.8b extended biblatex verbose citation style (MW)]
\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}
{}{}{}{}
diff --git a/macros/latex/contrib/circledsteps/README.md b/macros/latex/contrib/circledsteps/README.md
index f901562015..299da24975 100644
--- a/macros/latex/contrib/circledsteps/README.md
+++ b/macros/latex/contrib/circledsteps/README.md
@@ -6,7 +6,7 @@ See [this question on tex.stackexchange.com](https://tex.stackexchange.com/quest
### DOCUMENTATION
-See the included file `circledsteps-manual.tex`; you can compile it running (twice) `pdflatex` on it. If you want to have a look before buying, you can find a compiled copy on the [release page](https://github.com/Rmano/circledsteps/releases).
+See the included file `circledsteps-manual.tex`; you can compile it running (twice) `pdflatex` on it. If you want to have a look before buying, you can find a compiled copy on the [release page](https://github.com/Rmano/circledsteps/releases) or on [CTAN](https://ctan.org/pkg/circledsteps).
If you have already installed the package in your TeX distribution, use `texdoc circledsteps`; it should show you the manual of the installed version of the package.
diff --git a/macros/latex/contrib/circledsteps/circledsteps-manual.pdf b/macros/latex/contrib/circledsteps/circledsteps-manual.pdf
index 624d6009fd..ae0581a644 100644
--- a/macros/latex/contrib/circledsteps/circledsteps-manual.pdf
+++ b/macros/latex/contrib/circledsteps/circledsteps-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/circledsteps/circledsteps-manual.tex b/macros/latex/contrib/circledsteps/circledsteps-manual.tex
index 5ebebc77dc..c98ab46e4c 100644
--- a/macros/latex/contrib/circledsteps/circledsteps-manual.tex
+++ b/macros/latex/contrib/circledsteps/circledsteps-manual.tex
@@ -44,12 +44,13 @@ The basic commands are:
\toprule
Circled\{\} & circled text using the package colors, text on the baseline\\
CircledTop\{\} & circled text using the package colors, circle on the baseline\\
- CircledText\{\} & circled text using the current color (may fail\footnotemark{} in moving arguments)\\
+ CircledText\{\} & circled text using the current color (may fail\footnotemark{} across pages break in header or footers)\\
\bottomrule
\end{tabular}
\footnotetext{in the sense it can select the wrong color.}
The parameters for the output are controlled using \texttt{pgfkeys}; you can change them with \verb|\tikzset|; you can obviously limit the effect of change using normal \LaTeX{} scoping rules.
+The pseudo-color \texttt{none} means that the current color is used for both the text and the circle.
\begin{tabular}{>{\ttfamily}lll}
\toprule
@@ -57,8 +58,8 @@ The parameters for the output are controlled using \texttt{pgfkeys}; you can cha
\midrule
/csteps/inner ysep & vertical spacing & 4pt\\
/csteps/inner xsep & horizontal spacing & 4pt\\
- /csteps/inner color & color of the text & red\\
- /csteps/outer color & color of the circle & blue\\
+ /csteps/inner color & color of the text & none\\
+ /csteps/outer color & color of the circle & none\\
\bottomrule
\end{tabular}
@@ -102,19 +103,23 @@ If you want to change colors it's easy:
\par\bigskip
\end{LTXexample}
+If you use the package option \texttt{redblue} or \texttt{legacy} you will have the same effect than
+
+\begin{lstlisting}[]
+ \tikzset{/csteps/inner color=red, /csteps/outer color=blue}
+\end{lstlisting}
+
\begin{LTXexample}
Or even you can have inline numbers like \CircledText{1} or
exponents\textsuperscript{\CircledText{2}} and so on.
\textcolor{red}{They follow the current color: \CircledText{1} and \CircledText{2} automatically,} as you can see: \CircledText{$1+1\approx3$}. In-text circled numbers look better when a bit smaller, though, as you can see in {\small\CircledText{1}} for example.
\end{LTXexample}
-Notice that \verb|\CircledText{}| uses the special ``\texttt{.}'' color defined by \texttt{xcolor}; when page breaks occurs it can get the wrong color.
-
No, you can't fill the circle/oval. Pull requests in that sense are welcome.
\section{Automatically generated numbers}
-The command \verb|\cstep| will generate a circled number, starting from \texttt{1}, that can be referenced with the normal \verb|\label| mechanism. You can reset the numbering with
+The command \verb|\cstep| will generate a circled number, starting from \texttt{1}, that can be referenced with the normal \verb|\label| mechanism. You can reset the numbering with
\verb|\startcstep|. For example:
\input{ctikzexample.tex}
@@ -125,12 +130,12 @@ The command \verb|\cstep| will generate a circled number, starting from \texttt{
\section{Personalize it!}
-The definition of \verb|CircledTexT| is simply the following one; you can get idea and define your own easily (beware of spaces at the end of the lines, though!):
+The definition of \verb|CircledTexT| is simply the following one; you can get idea and define your own easily (beware of spaces at the end of the lines, though!):
\begin{lstlisting}
\newcommand{\CircledText}[1]{%
\begingroup
- \tikzset{/csteps/inner color=., /csteps/outer color=.}%
+ \tikzset{/csteps/inner color=none, /csteps/outer color=none,}
\Circled{#1}%
\endgroup
}
@@ -147,7 +152,7 @@ Also the implementation of the \verb|\cstep| command and relatives is quite simp
\refstepcounter{cstepcnt}%
\Circled{\scriptsize\arabic{cstepcnt}}%
}
-\renewcommand{\thecstepcnt}{\textbf{\arabic{cstepcnt}:}}
+\renewcommand{\thecstepcnt}{\arabic{cstepcnt}}
\end{lstlisting}
diff --git a/macros/latex/contrib/circledsteps/circledsteps.sty b/macros/latex/contrib/circledsteps/circledsteps.sty
index f70e179cdf..8949ec71cb 100644
--- a/macros/latex/contrib/circledsteps/circledsteps.sty
+++ b/macros/latex/contrib/circledsteps/circledsteps.sty
@@ -1,6 +1,6 @@
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
-\ProvidesPackage{circledsteps}[2019/06/19 v1.0 Circled steps that you can reference]
+\ProvidesPackage{circledsteps}[2019/11/01 v1.1 Circled steps that you can reference]
% \end{macrocode}
%
% Copyright (c) 2019 Romano Giannetti
@@ -14,12 +14,25 @@
\RequirePackage{pgfkeys} % for the pgfkeys
\pgfkeys{/csteps/inner ysep/.initial=4pt,
/csteps/inner xsep/.initial=4pt,
- /csteps/inner color/.initial=red,
- /csteps/outer color/.initial=blue,
+ /csteps/inner color/.initial=none,
+ /csteps/outer color/.initial=none,
}
+\DeclareOption{redblue}{
+ \tikzset{/csteps/inner color=red, /csteps/outer color=blue}%
+}
+\DeclareOption{legacy}{
+ \tikzset{/csteps/inner color=red, /csteps/outer color=blue}%
+}
+
+% end of options definitions
+\ProcessOptions\relax
+
\newsavebox\csteps@CBox
\newlength\csteps@XLength \newlength\csteps@YLength \newlength\csteps@YDepth \newlength\csteps@tmplen
\def\csteps@CircledParam#1#2{\sbox\csteps@CBox{#2}%
+ \edef\csteps@none{none}%
+ \edef\csteps@outercolor{\pgfkeysvalueof{/csteps/outer color}}%
+ \edef\csteps@innercolor{\pgfkeysvalueof{/csteps/inner color}}%
\csteps@XLength=\wd\csteps@CBox\advance\csteps@XLength by\pgfkeysvalueof{/csteps/inner xsep}\relax
\csteps@tmplen=\pgfkeysvalueof{/csteps/inner ysep}\relax
\csteps@YDepth=\dp\csteps@CBox\advance\csteps@YDepth by 0.5\csteps@tmplen\relax
@@ -29,18 +42,36 @@
\ifdim\csteps@XLength>\csteps@YLength
\makebox[\csteps@XLength]{% X bigger than Y
\makebox(0,\csteps@YLength){%
- \color{\pgfkeysvalueof{/csteps/outer color}}\put(0,0){\oval(\csteps@XLength,\csteps@YLength)}%
+ \ifx\csteps@outercolor\csteps@none\else
+ \color{\csteps@outercolor}%
+ \fi
+ \put(0,0){\oval(\csteps@XLength,\csteps@YLength)}%
}%
\makebox(0,\csteps@YLength){%
- \put(-.5\wd\csteps@CBox,0){\textcolor{\pgfkeysvalueof{/csteps/inner color}}{#2}}%
+ \put(-.5\wd\csteps@CBox,0){%
+ \ifx\csteps@outercolor\csteps@none
+ #2\relax%
+ \else
+ \textcolor{\csteps@innercolor}{#2}%
+ \fi
+ }%
}}%
\else
\makebox[\csteps@YLength]{%
\makebox(0,\csteps@YLength){%
- \color{\pgfkeysvalueof{/csteps/outer color}}\put(0,0){\circle{\csteps@YLength}}%
+ \ifx\csteps@outercolor\csteps@none\else
+ \color{\csteps@outercolor}%
+ \fi
+ \put(0,0){\circle{\csteps@YLength}}%
}%
\makebox(0,\csteps@YLength){%
- \put(-.5\wd\csteps@CBox,0){\textcolor{\pgfkeysvalueof{/csteps/inner color}}{#2}}%
+ \put(-.5\wd\csteps@CBox,0){%
+ \ifx\csteps@outercolor\csteps@none
+ #2\relax%
+ \else
+ \textcolor{\csteps@innercolor}{#2}%
+ \fi
+ }%
}}%
\fi
}%
@@ -52,7 +83,7 @@
\def\CircledTop#1{\csteps@CircledParam{0}{#1}}
\newcommand{\CircledText}[1]{%
\begingroup
- \tikzset{/csteps/inner color=., /csteps/outer color=.}%
+ \tikzset{/csteps/inner color=none, /csteps/outer color=none}%
\Circled{#1}%
\endgroup
}
@@ -66,7 +97,7 @@
\refstepcounter{cstepcnt}%
\Circled{\scriptsize\arabic{cstepcnt}}%
}
-\renewcommand{\thecstepcnt}{\textbf{\arabic{cstepcnt}:}}
+\renewcommand{\thecstepcnt}{\arabic{cstepcnt}}
% \end{macrocode}
%
%
diff --git a/macros/latex/contrib/circledsteps/ctikzexample.tex b/macros/latex/contrib/circledsteps/ctikzexample.tex
index 100a4fb988..88664349c3 100644
--- a/macros/latex/contrib/circledsteps/ctikzexample.tex
+++ b/macros/latex/contrib/circledsteps/ctikzexample.tex
@@ -1,3 +1,5 @@
+\tikzset{/csteps/inner color=red, /csteps/outer color=blue}
+\newcommand{\circref}[1]{\CircledText{\small\textbf{\ref{#1}}}:}
\begin{circuitikz}[scale=0.9, baseline=(VCC), transform shape]
\draw (0,0) node[ground](GND){} to[V=$v_s$] ++(0,2)
to[R, l2^=$R_1$ and \SI{1}{k\ohm}, l2 valign=b] ++(2,0) coordinate(firstb);
@@ -19,9 +21,9 @@
\begin{minipage}[t]{0.5\linewidth}
%% minipage reset these..
\parindent=0pt\parskip=6pt plus 6pt minus 2pt\relax
- \ref{c:b1} let's neglect (to be confirmed!) $I_B$, $V_B\approx\SI{0}{V}$;\par
- \ref{c:ie1} $I_{E1_Q}=(V_{E1_Q}-V_{EE})/R_3$;\par
- \ref{c:ic1} $I_{C1_Q} \approx\SI{0.93}{mA}$;\par
- \ref{c:g1} $V_{CC}-R_2I_{C2_Q}= \SI{5.35}{V}$; $V_{CE1_Q}=\SI{6.05}{V}$;\par
+ \circref{c:b1} let's neglect (to be confirmed!) $I_B$, $V_B\approx\SI{0}{V}$;\par
+ \circref{c:ie1} $I_{E1_Q}=(V_{E1_Q}-V_{EE})/R_3$;\par
+ \circref{c:ic1} $I_{C1_Q} \approx\SI{0.93}{mA}$;\par
+ \circref{c:g1} $V_{CC}-R_2I_{C2_Q}= \SI{5.35}{V}$; $V_{CE1_Q}=\SI{6.05}{V}$;\par
\end{minipage}
diff --git a/macros/latex/contrib/cnltx/README b/macros/latex/contrib/cnltx/README
index aa4361964a..caf1d9810f 100644
--- a/macros/latex/contrib/cnltx/README
+++ b/macros/latex/contrib/cnltx/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the CNLTX bundle v0.13 2015/08/17
+the CNLTX bundle v0.15 2019/11/01
LaTeX tools and documenting facilities
@@ -8,7 +8,7 @@ Clemens Niederberger
Web: https://github.com/cgnieder/cnltx/
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2013-2015 Clemens Niederberger
+Copyright 2013--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/cnltx/cnltx-base.sty b/macros/latex/contrib/cnltx/cnltx-base.sty
index d8c63223fd..ca2f861446 100644
--- a/macros/latex/contrib/cnltx/cnltx-base.sty
+++ b/macros/latex/contrib/cnltx/cnltx-base.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -25,8 +25,8 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\def\cnltx@@date{2015/08/17}
-\def\cnltx@@version{v0.13}
+\def\cnltx@@date{2019/11/01}
+\def\cnltx@@version{v0.15}
\def\cnltx@@info{LaTeX tools and documenting facilities (CN)}
\ProvidesPackage{cnltx-base}[\cnltx@@date\space \cnltx@@version\space \cnltx@@info]
\RequirePackage{pgfopts,etoolbox,ltxcmds,pdftexcmds}
@@ -891,4 +891,5 @@ HISTORY:
2015/01/11 v0.12 - updating the bundle to CTAN
- more security for \cnltx@ifisnum
2015/08/17 v0.13 - resolve long overdue issues with cnltx-doc
-
+2015/08/29 v0.13a - small changes in cnltx-example
+2016/03/16 v0.13b - adapt bib style to biblatex v3.3
diff --git a/macros/latex/contrib/cnltx/cnltx-doc.cls b/macros/latex/contrib/cnltx/cnltx-doc.cls
index 4d7339db32..8c3fa83861 100644
--- a/macros/latex/contrib/cnltx/cnltx-doc.cls
+++ b/macros/latex/contrib/cnltx/cnltx-doc.cls
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -107,7 +107,7 @@
\pgfkeys{
cnltx/.cd,
caption-font/.code = \def\cnltx@caption@font{#1} ,
- caption-label-font/.code = \def\cnltx@captionlabel@font{#1}
+ caption-label-font/.code = \def\cnltx@captionlabel@font{\cnltx@caption@font#1}
}
\ifbool{cnltx@load@preamble}{
@@ -119,12 +119,13 @@
{\RequirePackage{fontspec}}
\RequirePackage[oldstyle]{libertine}
\RequirePackage{libertinehologopatch}
- \RequirePackage[supstfm=libertinesups]{superiors}
+ % \RequirePackage{superiors}
+ % \setkeys{superiors}{supstfm=libertinesups}
% libertine does not have superior letters:
\def\@makefnmark{%
\hbox{%
\cnltx@ifisnum{\@thefnmark}
- {\textsu{\hspace*{\superiors@spaced}\@thefnmark}}
+ {\textsu{\hspace*{.04em}\@thefnmark}}
{\@textsuperscript{\normalfont\@thefnmark}}%
}%
}
@@ -191,7 +192,6 @@
{}
\RequirePackage{fnpct}
\expandafter\RequirePackage\expandafter[\cnltx@babel@options]{babel}
- % \RequirePackage{babel}
}{}
\ifbool{cnltx@layout}{
@@ -429,35 +429,36 @@
}
% --------------------------------------------------------------------------
% command descriptions:
-\newcommand*\cnltx@command{%
- \@ifstar
- {\cnltx@command@star}
- {\cnltx@command@nostar}%
-}
-
-\newrobustcmd*\cnltx@command@star[1]{%
- \@ifnextchar[
- {\cnltx@command@star@opt{#1}}
- {\cnltx@command@star@opt{#1}[]}%
-}
-
-\newrobustcmd*\cnltx@command@nostar[1]{%
- \@ifnextchar[
- {\cnltx@command@nostar@opt{#1}}
- {\cnltx@command@nostar@opt{#1}[]}%
-}
-
-\def\cnltx@command@star@opt#1[#2]{%
- \ifblank{#2}
- {\item\cs*{#1}}
- {\item\cs*{#1}#2}%
- \cnltx@checkdefault{\hfill\newline}%
-}
-\def\cnltx@command@nostar@opt#1[#2]{%
- \ifblank{#2}
- {\item\cs{#1}}
- {\item\cs{#1}#2}%
- \cnltx@checkdefault{\hfill\newline}%
+% #1: command in the list which places the item
+% #2: formatting command taking one mandatory argument and a star form
+\newrobustcmd*\cnltx@deflistitem[2]{%
+ \protected\csdef{\cnltx@stripbs#1}{%
+ \@ifstar
+ {\csuse{\cnltx@stripbs#1@star}}
+ {\csuse{\cnltx@stripbs#1@nostar}}%
+ }%
+ \protected\csdef{\cnltx@stripbs#1@star}##1{%
+ \@ifnextchar[%]
+ {\csuse{\cnltx@stripbs#1@star@opt}{##1}}
+ {\csuse{\cnltx@stripbs#1@star@opt}{##1}[]}%
+ }%
+ \protected\csdef{\cnltx@stripbs#1@nostar}##1{%
+ \@ifnextchar[%]
+ {\csuse{\cnltx@stripbs#1@nostar@opt}{##1}}
+ {\csuse{\cnltx@stripbs#1@nostar@opt}{##1}[]}%
+ }%
+ \protected\csdef{\cnltx@stripbs#1@star@opt}##1[##2]{%
+ \ifblank{##2}
+ {\item#2*{##1}}
+ {\item#2*{##1}##2}%
+ \cnltx@checkdefault{\hfill\newline}%
+ }%
+ \protected\csdef{\cnltx@stripbs#1@nostar@opt}##1[##2]{%
+ \ifblank{##2}
+ {\item#2{##1}}
+ {\item#2{##1}##2}%
+ \cnltx@checkdefault{\hfill\newline}%
+ }%
}
\newcommand\cnltx@checkdefault[1]{%
@@ -490,6 +491,8 @@
{\list{}{\cmltx@list@setup}}
{\endlist}
+\cnltx@deflistitem{\cnltx@command}{\cs}
+
\newenvironment{commands}
{%
\let\command\cnltx@command
@@ -726,11 +729,12 @@
\newrobustcmd*\cnltx@tableofcontents{%
\begingroup
\let\tocbasic@listhead\@gobble
+ \RaggedRight
\tableofcontents
\endgroup
}%
- \RequirePackage{multicol}
- \AtBeginDocument{%
+ \RequirePackage{multicol,ragged2e}
+ \AfterEndPreamble{%
\ifbool{cnltx@build@title}{%
\ifbool{cnltx@package@name}
{\cnltx@title@information}
@@ -751,11 +755,14 @@
{\renewcommand\thefootnote{\@fnsymbol\c@footnote}}%
\Huge
\scalebox{1.5}{%
- \color{cnltx}%
- \cnltx@title@format
- \ifbool{cnltx@package@title}
- {\cnltx@package@title}
- {\cnltx@package@name}%
+ \begin{minipage}{.6\linewidth}
+ \centering
+ \color{cnltx}%
+ \cnltx@title@format
+ \ifbool{cnltx@package@title}
+ {\cnltx@package@title}
+ {\cnltx@package@name}%
+ \end{minipage}
}%
\par\vskip.5cm\relax
\large
@@ -867,27 +874,29 @@
\cls{#2}\footnote{\CTANurl[#1]{#2}}%
}
-\AtEndPreamble{%
- \RequirePackage{hyperref}%
- \pdfstringdefDisableCommands{%
- \def\cnltx@name[#1]#2{#1 #2, }%
- \def\cnltxpackagenameformat#1{#1}%
- }%
- \hypersetup
- {
- colorlinks = true,
- allcolors = link ,
- plainpages = false,
- bookmarksopen = true,
- bookmarksopenlevel = 1,
- bookmarksnumbered = true,
- pdfauthor = {\forlistloop{}\cnltx@package@author@pdflist},
- pdftitle =
- {\cnltx@package@name\space\cnltx@package@version\space Manual},
- pdfsubject = {\cnltx@package@info},
- pdfstartview = FitH
+\ifbool{cnltx@load@preamble}{%
+ \AtEndPreamble{%
+ \RequirePackage{hyperref}%
+ \pdfstringdefDisableCommands{%
+ \def\cnltx@name[#1]#2{#1 #2, }%
+ \def\cnltxpackagenameformat#1{#1}%
}%
-}
+ \hypersetup
+ {
+ colorlinks = true,
+ allcolors = link ,
+ plainpages = false,
+ bookmarksopen = true,
+ bookmarksopenlevel = 1,
+ bookmarksnumbered = true,
+ pdfauthor = {\forlistloop{}\cnltx@package@author@pdflist},
+ pdftitle =
+ {\cnltx@package@name\space\cnltx@package@version\space Manual},
+ pdfsubject = {\cnltx@package@info},
+ pdfstartview = FitH
+ }%
+ }%
+}{}%
\endinput
@@ -945,7 +954,10 @@ HISTORY:
- use \cnltx@load@modules
- new commands \email, \website, \securewebsite
- \expandablesymbol, \unexpandablesymbol
-
+2015/08/17 v0.13 - resolve long overdue issues with cnltx-doc
+2015/03/11 v0.13a - wrap title in minipage in order to enable linebreaks
+2016/03/17 v0.13b - ragged right toc
+2017/02/04 v0.14 - load `hyperref' only with `load-preample = true'
% --------------------------------------------------------------------------
TODO:
diff --git a/macros/latex/contrib/cnltx/cnltx-example.sty b/macros/latex/contrib/cnltx/cnltx-example.sty
index 39d066602f..c7b39b03c7 100644
--- a/macros/latex/contrib/cnltx/cnltx-example.sty
+++ b/macros/latex/contrib/cnltx/cnltx-example.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -101,10 +101,15 @@
{\cnltx@key@aux{#1}\Marg}%
}
-
+\newlength\cnltx@choice@sep@stretch
+\setlength\cnltx@choice@sep@stretch{\z@\@plus.5em}
% \DeclareListParser*\cnltx@choices{|}
\newrobustcmd*\choices[1]{%
- \def\cnltx@choice@sep{\def\cnltx@choice@sep{|\hskip\z@}}%
+ \def\cnltx@choice@sep{%
+ \def\cnltx@choice@sep{%
+ \hskip\cnltx@choice@sep@stretch|\hskip\cnltx@choice@sep@stretch
+ }%
+ }%
\forcsvlist{\cnltx@choice@sep\code}{#1}%
}
@@ -229,9 +234,8 @@
{Ä}{{\"A}}{1}
{Ö}{{\"O}}{1}
{Ü}{{\"U}}{1}
- {ß}{{\ss}}{1}
- {`}{\`{}}{1}
- {'}{\textquotesingle}{1} ,
+ {ß}{{\ss}}{1} ,
+ upquote = true,
breaklines = true,
keepspaces = true,
breakindent = 1em,
@@ -260,9 +264,11 @@
equation,eqnarray,
figure,flushleft,flushright,
itemize,list,
+ math,
otherlanguage,
table,tabu,tabular
},
+ texcs = , keywords = ,
% \begin, \end:
texcsstyle = [2]\color{beginend},
index = [2][texcs2],
@@ -277,12 +283,12 @@
index = [4][texcs4],
indexstyle = [4]\@gobble,
% added environments that'll be indexed:
- texcsstyle = [5]\color{env},
- index = [5][texcs5],
+ keywordstyle = [5]\color{env},
+ index = [5][keyword5],
indexstyle = [5]\indexenv,
% environments that won't be indexed:
- texcsstyle = [6]\color{env},
- index = [6][texcs6],
+ keywordstyle = [6]\color{env},
+ index = [6][keyword6],
indexstyle = [6]\@gobble,
moredelim = *[s][\color{math}]{$}{$}
}
@@ -304,6 +310,7 @@
{Ö}{{\"O}}1
{Ü}{{\"U}}1
{ß}{{\ss}}1 ,
+ upquote = true,
breaklines = true,
keepspaces = true,
breakindent = 1em,
@@ -311,6 +318,9 @@
keywordstyle = \color{bibentry} ,
keywordstyle = [2]\color{bibentryfield}\itshape ,
showstringspaces = false ,
+ deleteindex = [3][texcs3] ,
+ deleteindex = [5][keyword5] ,
+ deleteindex = [6][keyword6]
}
\def\cnltx@makeindex@listings@style{
@@ -337,8 +347,49 @@
keywordstyle = \color{makeidxkey}\bfseries ,
stringstyle = \color{makeidxstring} ,
showstringspaces = false ,
+ deleteindex = [3][texcs3] ,
+ deleteindex = [5][keyword5] ,
+ deleteindex = [6][keyword6]
+}
+
+\def\cnltx@bash@listings@style{
+ language = bash,
+ basicstyle = {\sourceformat\color{black}},
+ % numbers = left,
+ % numberstyle = \tiny,
+ xleftmargin = 1em,
+ numbersep = .75em,
+ gobble = \cnltx@gobble ,
+ columns = fullflexible,
+ literate =
+ {ä}{{\"a}}1
+ {ö}{{\"o}}1
+ {ü}{{\"u}}1
+ {Ä}{{\"A}}1
+ {Ö}{{\"O}}1
+ {Ü}{{\"U}}1
+ {ß}{{\ss}}1 ,
+ upquote = true,
+ breaklines = true,
+ keepspaces = true,
+ breakindent = 1em,
+ commentstyle = \color{comment},
+ keywordstyle = \color{black}\bfseries ,
+ stringstyle = \color{black} ,
+ showstringspaces = false ,
+ morekeywords = texdoc ,
+ deleteindex = [3][texcs3] ,
+ deleteindex = [5][keyword5] ,
+ deleteindex = [6][keyword6]
}
+\newcommand*\cnltx@prompt{}
+\patchcmd\lst@NewLine
+ {\hbox{}}
+ {\hbox{}\cnltx@prompt}
+ {}
+ {}
+
\cnltx@expandargs(nx)\lstdefinestyle
{cnltx}
{\expandonce\cnltx@listings@style}
@@ -351,6 +402,10 @@
{cnltx-makeindex}
{\expandonce\cnltx@makeindex@listings@style}
+\cnltx@expandargs(nx)\lstdefinestyle
+ {bash}
+ {\expandonce\cnltx@bash@listings@style}
+
\lstdefinestyle
{cnltx-inline}
{
@@ -381,18 +436,18 @@
\def\cnltx@addenvs#1{%
\cnltx@expandargs(nx)\lstdefinestyle
{cnltx}
- {\expandonce\cnltx@listings@style,\unexpanded{moretexcs={[5]#1}}}%
+ {\expandonce\cnltx@listings@style,\unexpanded{morekeywords={[5]#1}}}%
\edef\cnltx@listings@style{%
- \expandonce\cnltx@listings@style,\unexpanded{moretexcs={[5]#1}}%
+ \expandonce\cnltx@listings@style,\unexpanded{morekeywords={[5]#1}}%
}%
}
\def\cnltx@addsilentenvs#1{%
\cnltx@expandargs(nx)\lstdefinestyle
{cnltx}
- {\expandonce\cnltx@listings@style,\unexpanded{moretexcs={[6]#1}}}%
+ {\expandonce\cnltx@listings@style,\unexpanded{morekeywords={[6]#1}}}%
\edef\cnltx@listings@style{%
- \expandonce\cnltx@listings@style,\unexpanded{moretexcs={[6]#1}}%
+ \expandonce\cnltx@listings@style,\unexpanded{morekeywords={[6]#1}}%
}%
}
@@ -512,7 +567,7 @@
\cnltx@get@page@list{#1}
\booltrue{cnltx@pagelist} ,
runs/.code = \setcounter{cnltx@runs}{#1} ,
- program/.code = \def\cnltx@compilation@method{#1} ,
+ program/.code = \def\cnltx@compilation@methods{#1} ,
file-ext/.code = \def\cnltx@example@fileext{#1} ,
exe-with/.code = \def\cnltx@compilation@options{#1} ,
graphics/.code = \def\cnltx@image@options{#1} ,
@@ -596,10 +651,17 @@
}
\newcommand*\cnltx@exe{\immediate\write18}
-\newcommand*\cnltx@program@pdflatex{pdflatex}
-\newcommand*\cnltx@program@lualatex{lualatex}
-\newcommand*\cnltx@program@xelatex {xelatex}
-\newcommand*\cnltx@program@arara {arara}
+\newrobustcmd*\cnltx@add@program[1]{%
+ \expandafter\newcommand
+ \expandafter*\csname cnltx@program@#1\endcsname{#1}%
+}
+\cnltx@add@program{pdflatex}
+\cnltx@add@program{lualatex}
+\cnltx@add@program{xelatex}
+\cnltx@add@program{arara}
+\cnltx@add@program{biber}
+\cnltx@add@program{bibtex}
+
\newcommand*\cnltx@compile[3]{%
\ifcsdef{cnltx@program@#1}
{%
@@ -613,9 +675,16 @@
}
{\cnltx@example@error{Unknown compilation method `#1'}}%
}
-\newcommand*\cnltx@compilation@method{pdflatex}
+\newcommand*\cnltx@compilation@methods{pdflatex}
\newcommand*\cnltx@compilation@options{}
+\newrobustcmd*\cnltx@compilation@process[2]{
+ \cnltx@expandargs(oo)\cnltx@compile
+ {#2}
+ {\cnltx@compilation@options}
+ {#1}%
+}
+
\newrobustcmd*\cnltx@get@pdfpages[1]{%
\begingroup
\ifxetex
@@ -657,8 +726,7 @@
{%
\cnltx@expandargs(x)\lstset{
\ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
- {linewidth=\cnltx@sidebysidewidth,}{}%
- moretexcs=[3], moretexcs=[5],
+ {linewidth=\cnltx@sidebysidewidth,}{}%
\expandonce\cnltx@local@listings@options
}%
}
@@ -668,8 +736,6 @@
\ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
{linewidth=\cnltx@sidebysidewidth,}{}%
\expandonce\cnltx@local@listings@options
- % no idea why this is necessary:
- % \ifcsdef{lst@gtexcs3}{}{,moretexcs=[3]}%
}%
}%
\ifbool{cnltx@local@frame@overwrite}
@@ -819,12 +885,11 @@
{%
Compiling example `#1.tex' \arabic{cnltx@runs}
time\ifnum\value{cnltx@runs}>1s\fi\space with
- \cnltx@compilation@method
+ \cnltx@compilation@methods
}%
- \cnltx@expandargs(oo)\cnltx@compile
- {\cnltx@compilation@method}
- {\cnltx@compilation@options}
- {#1.tex}%
+ \cnltx@expandargs(no)\forcsvlist
+ {\cnltx@compilation@process{#1}}
+ {\cnltx@compilation@methods}%
}
{%
\cnltx@example@warning
@@ -926,6 +991,7 @@
\vskip\cnltx@after@skip
}%
}
+
\newrobustcmd\newsourcecodeenv[2][]{%
\cnltx@new@sourcecode@env{#1}{#2}%
}
@@ -950,6 +1016,12 @@
\newsourcecodeenv[side-by-side]{sidebyside}
\newsourcecodeenv[code-only]{sourcecode}
+\newsourcecodeenv[
+ code-only,
+ sourcecode-options={style=bash},
+ pre-code=\def\cnltx@prompt{\textasciitilde\space\$\space}
+]{bash}
+
\newinputsourcefilecmd\inputexample
\newinputsourcefilecmd[side-by-side]\inputsidebyside
\newinputsourcefilecmd[code-only]\inputsourcecode
@@ -958,7 +1030,6 @@
\lstinputlisting[style=cnltx,#1]{#2}%
}
-
% --------------------------------------------------------------------------
% packages and classes:
\newcommand*\packageformat{\sffamily}
@@ -995,50 +1066,59 @@
% --------------------------------------------------------------------------
HISTORY:
-2013/09/08 v0.1 - first working version
-2013/09/10 v0.2 - added \keyis
- - lot's of improvements on the source code example
- environments
- - disable indexing commands in PDF strings
- - added hooks to the source example environments
- - added possibility for internationalization
- - new macro \verbcode
- - added optional argument to \newarg
- - new macros \Marg, \Oarg, \Darg
- - option for formatting the \default command
-2013/09/12 v0.3 - added \module
- - added \newsourcecodeenv and \newinputsourcefilecmd
- - added \inputexample, \inputsidebyside and \inputsourcecode
- - renamed `example*' into `sidebyside'
-2013/09/15 v0.4 - new listings style `cnltx-bibtex'
-2013/09/20 v0.5 - new command \implementation
- - fixed wrong indexing behaviour: keywords in the silent lists
- are now correctly indexed if added with `add-cmds' or
- `add-envs'
-2013/09/30 v0.7 - added listings style `cnltx-makeindex'
-2013/10/04 v0.7a - new command \cnltx@treat@lst@index
- - changed \envidx in listings into \indexenv
- - added \bnd for package bundles
-2013/11/22 v0.9 - new option `compile' that allows to compile source code
- examples (which need to be complete, of course) with
- pdflatex and include the documents afterwards
- - new options `max-pages' that determines the maximum number
- of pages before a line break if documents are included with
- `compile'
- - new option `graphics'
- - new option `runs' that specifies the number of compilation
- runs of the included example
- - new options `program' and `exe-with'
- - new option `float', `float-pos' and `caption'
-2014/01/05 v0.10 - sometimes there is a spurious `undefined control sequence
- \lst@gtexcs3' error: added hack to fix this => find out
- where this comes from!
- - new option `add-frame' for `compile'd examples
- - new command \parg for an optional + argument
- - new option `outside' for non-`compiled' examples
- - new option `float-env'
-2014/03/11 v0.11 - \cnltx@load@modules
-2014/04/09 v0.12 - improvements on the sidebyside examples
+2013/09/08 v0.1 - first working version
+2013/09/10 v0.2 - added \keyis
+ - lot's of improvements on the source code example
+ environments
+ - disable indexing commands in PDF strings
+ - added hooks to the source example environments
+ - added possibility for internationalization
+ - new macro \verbcode
+ - added optional argument to \newarg
+ - new macros \Marg, \Oarg, \Darg
+ - option for formatting the \default command
+2013/09/12 v0.3 - added \module
+ - added \newsourcecodeenv and \newinputsourcefilecmd
+ - added \inputexample, \inputsidebyside and \inputsourcecode
+ - renamed `example*' into `sidebyside'
+2013/09/15 v0.4 - new listings style `cnltx-bibtex'
+2013/09/20 v0.5 - new command \implementation
+ - fixed wrong indexing behaviour: keywords in the silent
+ lists are now correctly indexed if added with `add-cmds'
+ or `add-envs'
+2013/09/30 v0.7 - added listings style `cnltx-makeindex'
+2013/10/04 v0.7a - new command \cnltx@treat@lst@index
+ - changed \envidx in listings into \indexenv
+ - added \bnd for package bundles
+2013/11/22 v0.9 - new option `compile' that allows to compile source code
+ examples (which need to be complete, of course) with
+ pdflatex and include the documents afterwards
+ - new options `max-pages' that determines the maximum number
+ of pages before a line break if documents are included
+ with `compile'
+ - new option `graphics'
+ - new option `runs' that specifies the number of compilation
+ runs of the included example
+ - new options `program' and `exe-with'
+ - new option `float', `float-pos' and `caption'
+2014/01/05 v0.10 - sometimes there is a spurious `undefined control sequence
+ \lst@gtexcs3' error: added hack to fix this => find out
+ where this comes from!
+ - new option `add-frame' for `compile'd examples
+ - new command \parg for an optional + argument
+ - new option `outside' for non-`compiled' examples
+ - new option `float-env'
+2014/03/11 v0.11 - \cnltx@load@modules
+2014/04/09 v0.12 - improvements on the sidebyside examples
+2015/08/29 v0.13a - enable \choices list to stretch
+2016/03/16 v0.13b - `program' may now be a csv list of programs to be
+ executed
+2017/02/04 v0.14 - exchange literate={`}{\`{}}{1}{'}{\textquotesingle}{1} for
+ listings' upquote option
+ - new sourcecode environment `bash'
+2019/11/01 v0.15 - fix `undefined control sequence \lst@gtexcs3' error
+ - fix `undefined control sequence \lst@gkeyword3' error
+ - fix `undefined control sequence \lst@gkeyword3' error
TODO:
diff --git a/macros/latex/contrib/cnltx/cnltx-listings.sty b/macros/latex/contrib/cnltx/cnltx-listings.sty
index 7db538a102..3661e09701 100644
--- a/macros/latex/contrib/cnltx/cnltx-listings.sty
+++ b/macros/latex/contrib/cnltx/cnltx-listings.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -1635,15 +1635,18 @@
th,TH,
thanks,
the,
+ thechapter,
theendnotes,
theenumi,theenumii,theenumiii,theenumiv,
thefootnote,
thefootnotemark,
thempfn,
- thempfn,
thempfootnote,
thepage,
thepart,
+ thesection,
+ thesubsection,
+ thesubsubsection,
theta,
Theta,
thicklines,
diff --git a/macros/latex/contrib/cnltx/cnltx-tools.sty b/macros/latex/contrib/cnltx/cnltx-tools.sty
index 3b53ee0ec4..a4cc5f1e3e 100644
--- a/macros/latex/contrib/cnltx/cnltx-tools.sty
+++ b/macros/latex/contrib/cnltx/cnltx-tools.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/cnltx/cnltx-translations.sty b/macros/latex/contrib/cnltx/cnltx-translations.sty
index 53dc2d4ed4..9f742a861f 100644
--- a/macros/latex/contrib/cnltx/cnltx-translations.sty
+++ b/macros/latex/contrib/cnltx/cnltx-translations.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -125,4 +125,4 @@
\endinput
2014/03/11 v0.11 - first published version
-2014/??/?? v0.?? - {cnltx-vs.}
+2015/01/11 v0.12 - {cnltx-vs.}
diff --git a/macros/latex/contrib/cnltx/cnltx.bbx b/macros/latex/contrib/cnltx/cnltx.bbx
index 1fd4dc2b1b..c5409b04e7 100644
--- a/macros/latex/contrib/cnltx/cnltx.bbx
+++ b/macros/latex/contrib/cnltx/cnltx.bbx
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2014 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -28,8 +28,9 @@
\RequirePackage{cnltx-base}
\ProvidesFile{cnltx.bbx}[\cnltx@@date\space \cnltx@@version\space \cnltx@@info]
-\cnltx@load@modules{example,tools,translations}
+\cnltx@load@modules{example,tools,translations,names}
+\RequireBiber
\RequireBibliographyStyle{alphabetic}
\ExecuteBibliographyOptions{block=ragged,useprefix=true}
@@ -40,9 +41,7 @@
\usebibmacro{maintainer}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title+subtitle}%
- \printfield{version}%
- \setunit{\addcomma\addspace}%
- \usebibmacro{date}%
+ \usebibmacro{version+date}%
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
@@ -52,7 +51,7 @@
\DeclareBibliographyAlias{class}{latex}
\DeclareBibliographyAlias{bundle}{latex}
-\newbibmacro{title+subtitle}{%
+\newbibmacro*{title+subtitle}{%
\iffieldundef{title}{}{%
\printfield{title}%
\ifbibindex{\indexfield{title}}{}%
@@ -64,6 +63,31 @@
}%
}
+\NewBibliographyString{version}
+\NewBibliographyString{or-newer}
+\DefineBibliographyStrings{english}{
+ version = {version} ,
+ or-newer = {or newer}
+}
+
+\DefineBibliographyStrings{german}{
+ version = {Version} ,
+ or-newer = {oder neuer}
+}
+
+\newbibmacro*{version+date}{%
+ \iffieldundef{version}{}{%
+ \bibstring{version}%
+ \addspace
+ \printfield{version}%
+ \addcomma\addspace
+ }%
+ \usebibmacro{date}%
+ \addspace
+ \bibstring[\mkbibparens]{or-newer}%
+ \setunit{\adddot\addspace}%
+}
+
\newbibmacro*{maintainer}{%
\printtext{%
\ifnameundef{maintainer}
@@ -79,9 +103,9 @@
}%
}
-\renewcommand*{\mkbibnamelast}[1]{\cnltx@write@lastname{#1}}
-\renewcommand*{\mkbibnamefirst}[1]{\cnltx@write@firstname{#1}}
-\renewcommand*{\mkbibnameprefix}[1]{\cnltx@write@lastname{#1}}
+\renewcommand*\mkbibnamefamily[1]{\cnltx@write@lastname{#1}}
+\renewcommand*\mkbibnamegiven[1]{\cnltx@write@firstname{#1}}
+\renewcommand*\mkbibnameprefix[1]{\cnltx@write@lastname{#1}}
\DeclareNameAlias[package]{maintainer}{default}
\DeclareNameAlias[class]{maintainer}{default}
@@ -100,6 +124,10 @@
\DeclareFieldFormat[class]{title}{\cls*{#1}}
\DeclareFieldFormat[bundle]{title}{\bnd*{#1}}
+\DeclareFieldFormat[package]{version}{#1}
+\DeclareFieldFormat[class]{version}{#1}
+\DeclareFieldFormat[bundle]{version}{#1}
+
\DeclareIndexFieldFormat[package]{title}{%
\ifstrequal{#1}{\KOMAScript}
{\pkgidx[KOMA-Script]{\KOMAScript}}
@@ -132,34 +160,28 @@
{\bndidx{#1}}%
}
-\def\cnltx@onlyonefirstname#1\bibnamedelima#2\q@stop{#1}
-
\DeclareIndexNameFormat{cnltx}{%
- \cnltx@if@in{#3}{\bibnamedelima}
- {%
- \usebibmacro{index:entry}{\index}{%
- \ifblank{#5}{}{#5 }%
- \@firstofone#1%
- \ifblank{#3}{}{, \cnltx@onlyonefirstname#3\q@stop}%
- \actualoperator
- \ifblank{#5}
- {\cnltx@write@lastname{#1}}
- {\cnltx@write@lastname{#5 #1}}%
- \ifblank{#3}{}{, \cnltx@write@firstname{\cnltx@onlyonefirstname#3\q@stop}}%
- }%
- }
- {%
- \usebibmacro{index:entry}{\index}{%
- \ifblank{#5}{}{#5 }%
- \@firstofone#1%
- \ifblank{#3}{}{, #3}%
- \actualoperator
- \ifblank{#5}
- {\cnltx@write@lastname{#1}}
- {\cnltx@write@lastname{#5 #1}}%
- \ifblank{#3}{}{, \cnltx@write@firstname{#3}}%
- }%
+ \nameparts{#1}%
+ \expandafter\notblank\expandafter{\namepartgiven}{%
+ \usebibmacro{index:entry}{\index}{%
+ \namepartfamily, \namepartgiven
+ \actualoperator
+ \expandafter\notblank\expandafter{\namepartprefix}
+ {\cnltx@write@lastname\namepartprefix\space}
+ {}%
+ \cnltx@write@lastname\namepartfamily,
+ \cnltx@write@firstname\namepartgiven
+ }%
+ }{%
+ \usebibmacro{index:entry}{\index}{%
+ \namepartfamily
+ \actualoperator
+ \expandafter\notblank\expandafter{\namepartprefix}
+ {\cnltx@write@lastname\namepartprefix\space}
+ {}%
+ \cnltx@write@lastname\namepartfamily
}%
+ }%
}
\DeclareIndexNameAlias{labelname}{cnltx}
@@ -202,4 +224,7 @@ HISTORY:
module;
this is going to need tests if it really is consistent
for different types of name formats (prefixes, affixes...)
-
+2016/03/11 v0.13b - adapt bib style to biblatex v3.3
+2017/02/04 v0.14 - new bibmacro `version+date', use said macro in the `latex'
+ driver
+2019/11/01 v0.15 - fix problems with name format
diff --git a/macros/latex/contrib/cnltx/cnltx.bib b/macros/latex/contrib/cnltx/cnltx.bib
index d38858ab3d..c1284a6adb 100644
--- a/macros/latex/contrib/cnltx/cnltx.bib
+++ b/macros/latex/contrib/cnltx/cnltx.bib
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2014 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -35,15 +35,15 @@
@package{pkg:accsupp,
title = {accsupp} ,
author = {Heiko Oberdiek} ,
- date = {2010-01-16} ,
- version = {0.3} ,
+ date = {2018-03-28} ,
+ version = {0.5} ,
url = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/}
}
@package{pkg:acro,
title = {acro} ,
author = {Clemens Niederberger} ,
- date = {2013-09-24} ,
- version = {1.4b} ,
+ date = {2019-09-23} ,
+ version = {2.10} ,
url = {http://mirror.ctan.org/macros/latex/contrib/acro/}
}
@package{pkg:acromake,
@@ -57,8 +57,8 @@
title = {acronym},
subtitle = {An Acronym Environment for \LaTeXe},
author = {Tobias Oetiker},
- date = {2012-10-29},
- version = {1.38},
+ date = {2015-03-21},
+ version = {1.41},
url = {http://mirror.ctan.org/macros/latex/contrib/acronym/}
}
@package{pkg:acroterm,
@@ -71,8 +71,8 @@
@package{pkg:adjustbox,
title = {adjustbox},
author = {Martin Scharrer},
- date = {2012-05-21},
- version = {1.0},
+ date = {2019-01-04},
+ version = {1.2},
url = {http://mirror.ctan.org/macros/latex/contrib/adjustbox/}
}
@package{pkg:amsmath,
@@ -80,8 +80,8 @@
author = {{American Mathematical Society}} ,
sortname = {American Mathematical Society} ,
shorthand = {AMS} ,
- date = {2002-02-25} ,
- version = {2.0} ,
+ date = {2018-04-05} ,
+ version = {2.1} ,
url = {http://mirror.ctan.org/macros/latex/required/amsmath/}
}
@package{pkg:amstext,
@@ -95,80 +95,87 @@
title = {answers},
author = {Mike Piff},
maintainer = {Joseph Wright},
- date = {2010-10-11},
- version = {2.13},
+ date = {2014-08-24},
+ version = {2.16},
url = {http://mirror.ctan.org/macros/latex/contrib/answers/}
}
@package{pkg:array,
title = {array},
author = {Frank Mittelbach and David Carlisle},
- date = {2008-09-09},
- version = {2.4c},
+ date = {2019-09-13},
+ version = {2.4l},
url = {http://mirror.ctan.org/macros/latex/required/tools/}
}
@package{pkg:asymptote,
title = {asymptote},
author = {Andy Hammerlindl and John Bowman and Tom Price},
- date = {2013},
- version = {2.23},
+ date = {2019},
+ version = {2.49},
url = {http://mirror.ctan.org/graphics/asymptote/}
}
+@package{pkg:auto-pst-pdf,
+ title = {auto-pst-pdf},
+ author = {Will Robertson and Johannes Große},
+ date = {2009-04-26},
+ version = {0.6},
+ url = {http://mirror.ctan.org/macros/latex/contrib/auto-pst-pdf/}
+}
@package{pkg:babel,
title = {babel} ,
author = {Johannes Braams} ,
maintainer = {Javier Bezos} ,
- date = {2013-05-16} ,
- version = {3.9f} ,
+ date = {2019-07-19} ,
+ version = {3.33} ,
url = {http://mirror.ctan.org/macros/latex/required/babel/}
}
@package{pkg:bm,
title = {bm} ,
author = {David Carlisle and Frank Mittelbach} ,
- date = {2004-02-26} ,
- version = {1.1c} ,
+ date = {2019-07-24} ,
+ version = {1.2d} ,
url = {http://mirror.ctan.org/macros/latex/required/bm/}
}
@package{pkg:biblatex,
title = {biblatex} ,
author = {Philipp Lehman} ,
maintainer = {Joseph Wright and Audrey Boruvka and Philip Kime} ,
- date = {2013-07-14} ,
- version = {2.7a} ,
+ date = {2019-08-07} ,
+ version = {3.13} ,
url = {http://mirror.ctan.org/macros/latex/contrib/biblatex/}
}
@package{pkg:bigfoot,
title = {bigfoot},
author = {David Kastrup},
- date = {2006-07-15},
- version = {1.25},
+ date = {2015-08-30},
+ version = {2.1},
url = {http://mirror.ctan.org/macros/latex/contrib/bigfoot/}
}
@package{pkg:bohr,
title = {bohr} ,
author = {Clemens Niederberger} ,
- date = {2015-06-16} ,
+ date = {2015-06-24} ,
version = {1.0} ,
url = {http://mirror.ctan.org/macros/latex/contrib/bohr/}
}
@package{pkg:booktabs,
title = {booktabs} ,
author = {Simon Fear} ,
- date = {2005-04-14} ,
- version = {1.61803} ,
+ date = {2016-04-29} ,
+ version = {1.618033} ,
url = {http://mirror.ctan.org/macros/latex/contrib/booktabs/}
}
@package{pkg:bpchem,
title = {bpchem} ,
author = {Bj\o{}rn Pedersen} ,
- date = {2004-11-25} ,
- version = {1.06} ,
+ date = {2017-08-23} ,
+ version = {1.1} ,
url = {http://mirror.ctan.org/macros/latex/contrib/bpchem/}
}
@package{pkg:catchfile,
title = {catchfile} ,
author = {Heiko Oberdiek} ,
- date = {2011-03-01} ,
- version = {1.6} ,
+ date = {2016-05-16} ,
+ version = {1.7} ,
url = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/}
}
@package{pkg:chemcompounds,
@@ -188,36 +195,36 @@
@package{pkg:chemfig,
title = {chemfig} ,
author = {Christian Tellechea} ,
- date = {2013-11-28} ,
- version = {1.0h} ,
+ date = {2019-05-21} ,
+ version = {1.41} ,
url = {http://mirror.ctan.org/macros/generic/chemfig/}
}
@package{pkg:chemformula,
title = {chemformula} ,
author = {Clemens Niederberger} ,
- date = {2015-06-30} ,
- version = {4.11} ,
+ date = {2019-09-23} ,
+ version = {4.15f} ,
url = {http://mirror.ctan.org/macros/latex/contrib/chemformula/}
}
@package{pkg:chemgreek,
title = {chemgreek} ,
author = {Clemens Niederberger} ,
- date = {2015-07-01} ,
- version = {1.0a} ,
+ date = {2016-12-20} ,
+ version = {1.1} ,
url = {http://mirror.ctan.org/macros/latex/contrib/chemgreek/}
}
@package{pkg:chemmacros,
title = {chemmacros} ,
author = {Clemens Niederberger} ,
- date = {2015-02-08} ,
- version = {4.7} ,
+ date = {2019-09-24} ,
+ version = {5.8d} ,
url = {http://mirror.ctan.org/macros/latex/contrib/chemmacros/}
}
@package{pkg:chemnum,
title = {chemnum} ,
author = {Clemens Niederberger} ,
- date = {2015-05-13} ,
- version = {1.1a} ,
+ date = {2016-04-14} ,
+ version = {1.2} ,
url = {http://mirror.ctan.org/macros/latex/contrib/chemnum/}
}
@package{pkg:chemstyle,
@@ -231,15 +238,15 @@
title = {chngcntr} ,
author = {Peter Wilson} ,
maintainer = {Will Robertson} ,
- date = {2009-09-02} ,
- version = {1.0a} ,
+ date = {2018-04-09} ,
+ version = {1.1a} ,
url = {http://mirror.ctan.org/macros/latex/contrib/chngcntr/}
}
@bundle{bnd:cnltx,
title = {cnltx} ,
author = {Clemens Niederberger} ,
- date = {2014-01-23} ,
- version = {0.10a} ,
+ date = {2019-09-25} ,
+ version = {0.15} ,
url = {http://mirror.ctan.org/macros/latex/contrib/cnltx/}
}
@class{cls:cnpkgdoc,
@@ -281,21 +288,21 @@
@package{pkg:enotez,
title = {enotez},
author = {Clemens Niederberger},
- version = {0.7b},
- date = {2013-10-31},
+ version = {0.9a},
+ date = {2017-04-24},
url = {http://mirror.ctan.org/macros/latex/contrib/enotez/}
}
@package{pkg:enumitem,
title = {enumitem},
author = {Javier Bezos},
- date = {2011-09-28},
- version = {3.5.2},
+ date = {2019-06-20},
+ version = {3.9},
url = {http://mirror.ctan.org/macros/latex/contrib/enumitem/}
}
@package{pkg:environ,
title = {environ},
author = {Will Robertson},
- date = {2013-04-01},
+ date = {2014-05-04},
version = {0.3},
url = {http://mirror.ctan.org/macros/latex/contrib/environ/}
}
@@ -309,30 +316,30 @@
@package{pkg:eqexam,
title = {eqexam},
author = {D. P. Story},
- date = {2011-09-01},
- version = {3.0k},
+ date = {2019-01-31},
+ version = {5.1.4},
url = {http://mirror.ctan.org/macros/latex/contrib/eqexam/}
}
@package{pkg:esami,
title = {esami},
author = {Grazia Messineo and Salvatore Vassallo},
- date = {2013-03-08},
- version = {1.0},
+ date = {2018-05-06},
+ version = {2.5},
url = {http://mirror.ctan.org/macros/latex/contrib/esami/}
}
@package{pkg:etoolbox,
title = {etoolbox} ,
author = {Philipp Lehman} ,
maintainer = {Joseph Wright} ,
- date = {2015-04-04} ,
- version = {2.2} ,
+ date = {2019-09-21} ,
+ version = {2.5h} ,
url = {http://mirror.ctan.org/macros/latex/contrib/etoolbox/}
}
@class{cls:exam,
title = {exam},
author = {Philip Hirschhorn},
- date = {2015-05-07},
- version = {2.5},
+ date = {2017-11-05},
+ version = {2.6},
url = {http://mirror.ctan.org/macros/latex/contrib/exam/}
}
@package{pkg:examdesign,
@@ -345,51 +352,51 @@
@package{pkg:exercise,
title = {exercise},
author = {Paul Pichaureau},
- date = {2012-05-08},
- version = {1.58},
+ date = {2014-10-21},
+ version = {1.6},
url = {http://mirror.ctan.org/macros/latex/contrib/exercise/}
}
-@bundle{bnd:exsheets,
+@package{pkg:exsheets,
title = {exsheets} ,
author = {Clemens Niederberger} ,
- date = {2014-06-27} ,
- version = {0.14} ,
+ date = {2017-02-08} ,
+ version = {0.21i} ,
url = {http://mirror.ctan.org/macros/latex/contrib/exsheets/}
}
@package{pkg:exsol,
title = {exsol},
author = {Walter Daems},
- date = {2013-05-12},
- version = {0.6},
+ date = {2018-10-23},
+ version = {1.4},
url = {http://mirror.ctan.org/macros/latex/contrib/exsol/}
}
@package{pkg:fixfoot,
title = {fixfoot},
author = {Robin Fairbairns},
- date = {2007-12-12},
+ date = {2010-02-19},
version = {0.3a} ,
url = {http://mirror.ctan.org/macros/latex/contrib/fixfoot/}
}
@package{pkg:fnpct,
title = {fnpct} ,
author = {Clemens Niederberger} ,
- date = {2013-02-28} ,
- version = {0.2j} ,
+ date = {2019-02-17} ,
+ version = {0.4f} ,
url = {http://mirror.ctan.org/macros/latex/contrib/fnpct/}
}
@package{pkg:fontenc,
- title = {fontenc} ,
- author = {{The \LaTeX\ team}} ,
- sortname = {LaTeX team} ,
- version = {1.99g} ,
- date = {2005-09-27} ,
- url = {http://mirror.ctan.org/macros/latex/unpacked/}
+ title = {fontenc} ,
+ author = {{The \LaTeX\ team}} ,
+ sortname = {LaTeX team} ,
+ shorthand = {L3P} ,
+ date = {2016-02-18} ,
+ url = {http://mirror.ctan.org/macros/latex/base/}
}
@package{pkg:fontspec,
title = {fontspec} ,
author = {Will Robertson and Khaled Hosny} ,
- version = {2.3c} ,
- date = {2013-05-20} ,
+ version = {2.7c} ,
+ date = {2019-03-15} ,
url = {http://mirror.ctan.org/macros/latex/contrib/fontspec/}
}
@package{pkg:footmisc,
@@ -416,78 +423,77 @@
@package{pkg:geometry,
title = {geometry} ,
author = {Hideo Umeki} ,
- date = {2010-09-12} ,
- version = {5.6} ,
+ date = {2018-04-16} ,
+ version = {5.8} ,
url = {http://mirror.ctan.org/macros/latex/contrib/geometry/}
}
@package{pkg:ghsystem,
title = {ghsystem} ,
author = {Clemens Niederberger} ,
- date = {2014-08-08} ,
- version = {4.6} ,
+ date = {2016-07-16} ,
+ version = {4.8} ,
url = {http://mirror.ctan.org/macros/latex/contrib/ghsystem/}
}
@package{pkg:glossaries,
title = {glossaries},
- author = {Nicola L.C. Talbot},
- date = {2013-04-21},
- version = {3.05},
+ author = {Nicola L. C. Talbot},
+ date = {2019-01-06},
+ version = {4.42},
url = {http://mirror.ctan.org/macros/latex/contrib/glossaries/}
}
@package{pkg:graphicx,
title = {graphicx} ,
author = {David Carlisle} ,
- date = {2005-11-14} ,
- version = {1.0f} ,
+ date = {2017-06-01} ,
url = {http://mirror.ctan.org/macros/latex/required/graphics/}
}
@bundle{bnd:greek-fontenc,
title = {greek-fontenc} ,
author = {G\"unter Milde} ,
- date = {2013-12-01} ,
- version = {0.11.1} ,
+ date = {2019-07-11} ,
+ version = {0.13.4} ,
url = {http://mirror.ctan.org/language/greek/greek-fontenc/}
}
@package{pkg:hologo,
title = {hologo} ,
author = {Heiko Oberdiek} ,
- date = {2012-04-26} ,
- version = {1.10} ,
+ date = {2017-05-01} ,
+ version = {1.13} ,
url = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/}
}
@package{pkg:hyperref,
title = {hyperref} ,
author = {Heiko Oberdiek and Sebastian Rahtz} ,
- date = {2012-11-06} ,
- version = {6.83m} ,
+ date = {2019-09-12} ,
+ version = {6.88i} ,
url = {http://mirror.ctan.org/macros/latex/contrib/hyperref/}
}
@package{pkg:idxcmds,
title = {idxcmds} ,
author = {Clemens Niederberger} ,
- date = {2013-08-31} ,
- version = {0.2b} ,
+ date = {2015-08-13} ,
+ version = {0.2c} ,
url = {http://mirror.ctan.org/macros/latex/contrib/idxcmds/}
}
@package{pkg:ifluatex,
title = {ifluatex} ,
author = {Heiko Oberdiek} ,
- date = {2010-03-01} ,
- version = {1.3} ,
+ date = {2016-05-16} ,
+ version = {1.4} ,
url = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/}
}
@package{pkg:ifpdf,
title = {ifpdf} ,
- author = {Heiko Oberdiek} ,
- date = {2011-01-30} ,
- version = {2.3} ,
+ author = {L3P} ,
+ date = {2018-09-07} ,
+ version = {3.3} ,
url = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/}
}
@package{pkg:ifplatform,
title = {ifplatform} ,
author = {Johannes Gro\ss e and Will Robertson} ,
- date = {2010-10-22} ,
- version = {0.4} ,
+ date = {2017-10-13} ,
+ version = {0.4a} ,
url = {http://mirror.ctan.org/macros/latex/contrib/ifplatform/}
}
@package{pkg:ifxetex,
@@ -500,15 +506,15 @@
@package{pkg:imakeidx,
title = {imakeidx} ,
author = {Enrico Gregorio} ,
- date = {2013-07-11} ,
- version = {1.3a} ,
+ date = {2016-10-15} ,
+ version = {1.3e} ,
url = {http://mirror.ctan.org/macros/latex/contrib/imakeidx/}
}
@package{pkg:inputenc,
title = {inputenc} ,
author = {Alan Jeffrey and Frank Mittelbach} ,
- date = {2008-03-30} ,
- version = {1.1d} ,
+ date = {2018-08-11} ,
+ version = {1.3c} ,
url = {http://mirror.ctan.org/macros/latex/base/}
}
@bundle{bnd:koma-script,
@@ -517,16 +523,16 @@
indextitle = {\KOMAScript} ,
indexsorttitle = {KOMA-Script} ,
author = {Markus Kohm},
- date = {2015-07-02} ,
- version = {3.18} ,
+ date = {2019-01-14} ,
+ version = {3.25} ,
url = {http://mirror.ctan.org/macros/latex/contrib/koma-script/}
}
@package{pkg:kpfonts,
title = {kpfonts} ,
author = {Christophe Caignaert} ,
aubtitle = {The Johannes Kepler Project} ,
- date = {2010-08-20} ,
- version = {3.31} ,
+ date = {2018-08-22} ,
+ version = {3.33} ,
url = {http://mirror.ctan.org/fonts/kpfonts}
}
@bundle{bnd:l3experimental,
@@ -534,8 +540,7 @@
author = {{The \LaTeX3 Project Team}} ,
shorthand = {L3P} ,
sortname = {LaTeX3 Project Team} ,
- version = {SVN 5630} ,
- date = {2015-07-15} ,
+ date = {2019-09-19} ,
url = {http://mirror.ctan.org/macros/latex/contrib/l3experimental/}
}
@bundle{bnd:l3kernel,
@@ -543,8 +548,7 @@
author = {{The \LaTeX3 Project Team}} ,
shorthand = {L3P} ,
sortname = {LaTeX3 Project Team} ,
- version = {SVN 5630} ,
- date = {2015-07-15} ,
+ date = {2019-09-19} ,
url = {http://mirror.ctan.org/macros/latex/contrib/l3kernel/}
}
@bundle{bnd:l3packages,
@@ -552,29 +556,28 @@
author = {{The \LaTeX3 Project Team}} ,
shorthand = {L3P} ,
sortname = {LaTeX3 Project Team} ,
- version = {SVN 5530} ,
- date = {2015-07-15} ,
+ date = {2019-09-19} ,
url = {http://mirror.ctan.org/macros/latex/contrib/l3packages/}
}
@package{pkg:libertine,
title = {libertine} ,
author = {Bob Tennent} ,
- date = {2013-09-02} ,
+ date = {2018-10-01} ,
url = {http://mirror.ctan.org/fonts/libertine/}
}
@package{pkg:listings,
title = {listings} ,
author = {Carsten Heinz and Brooks Moses} ,
maintainer = {Jobst Hoffmann} ,
- date = {2013-08-26} ,
- version = {1.5b} ,
+ date = {2019-09-10} ,
+ version = {1.8c} ,
url = {http://mirror.ctan.org/macros/latex/contrib/listings/}
}
@package{pkg:longtable,
title = {longtable} ,
author = {David Carlisle} ,
- date = {2004-02-01} ,
- version = {4.11} ,
+ date = {2019-02-06} ,
+ version = {4.12} ,
url = {http://mirror.ctan.org/macros/latex/required/tools/}
}
@package{pkg:lscape,
@@ -587,8 +590,8 @@
@package{pkg:ltxcmds,
title = {ltxcmds},
author = {Heiko Oberdiek},
- date = {2011-11-09},
- version = {1.22},
+ date = {2016-05-16},
+ version = {1.23},
url = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/}
}
@package{pkg:manyfoot,
@@ -601,8 +604,8 @@
@package{pkg:marginnote,
title = {marginnote} ,
author = {Markus Kohm} ,
- date = {2012-03-29} ,
- version = {1.1i} ,
+ date = {2018-08-09} ,
+ version = {1.4b} ,
url = {http://mirror.ctan.org/macros/latex/contrib/marginnote/}
}
@package{pkg:mathdesign,
@@ -615,13 +618,13 @@
@package{pkg:mathtools,
title = {mathtools} ,
author = {Lars Madsen and Will Robertson and Joseph Wright} ,
- version = {1.13} ,
- date = {2013-02-12} ,
+ version = {1.22} ,
+ date = {2019-07-31} ,
url = {http://mirror.ctan.org/macros/latex/contrib/mh/}
}
@package{pkg:mdframed,
title = {mdframed} ,
- author = {Marco Daniel} ,
+ author = {Marco Daniel and Elke Schubert} ,
date = {2013-07-01} ,
version = {1.9b} ,
url = {http://mirror.ctan.org/macros/latex/contrib/mdframed/}
@@ -629,29 +632,36 @@
@class{cls:memoir,
title = {memoir} ,
author = {Peter Wilson and Lars Madsen} ,
- date = {2011-03-06} ,
- version = {3.6j} ,
+ date = {2018-12-12} ,
+ version = {3.7h} ,
url = {http://mirror.ctan.org/macros/latex/contrib/memoir/}
}
@package{pkg:mfirstuc,
title = {mfirstuc},
author = {Nicola L.C. Talbot},
- date = {2012-05-21},
- version = {1.05},
+ date = {2017-11-14},
+ version = {2.06},
url = {http://mirror.ctan.org/macros/latex/contrib/glossaries/}
}
+@package{pkg:mhchem,
+ title = {mhchem} ,
+ author = {Martin Hensel} ,
+ date = {2018-06-22},
+ version = {4.08},
+ url = {http://mirror.ctan.org/macros/latex/contrib/mhchem/}
+}
@package{pkg:microtype,
title = {microtype} ,
author = {Robert Schlicht} ,
- date = {2013-05-23} ,
- version = {2.5a} ,
+ date = {2019-02-28} ,
+ version = {2.7b} ,
url = {http://mirror.ctan.org/macros/latex/contrib/microtype/}
}
@package{pkg:multicol,
title = {multicol} ,
author = {Frank Mittelbach} ,
- date = {2011-06-27} ,
- version = {1.7a} ,
+ date = {2019-03-01} ,
+ version = {1.8w} ,
url = {http://mirror.ctan.org/macros/latex/required/tools/multicol/}
}
@package{pkg:multienum,
@@ -664,15 +674,15 @@
@package{pkg:musixtex,
title = {musixtex},
author = {Daniel Taupin and Ross Mitchell and Andreas Egler},
- version = {1.15},
- date = {2011-04-01},
+ version = {1.29},
+ date = {2018-08-04},
url = {http://mirror.ctan.org/macros/musixtex/}
}
@package{pkg:newtx,
title = {newtx} ,
author = {Michael Sharpe} ,
- date = {2013-10-17} ,
- version = {1.151} ,
+ date = {2018-05-11} ,
+ version = {1.55} ,
url = {http://mirror.ctan.org/fonts/newtx/}
}
@package{pkg:nicefrac,
@@ -686,15 +696,15 @@
title = {nomencl},
subtitle = {A Package to Create a Nomenclature},
author = {Boris Veytsman and Bernd Schandl and Lee Netherton and C.V. Radhakrishnan},
- date = {2005-09-22},
- version = {4.2},
+ date = {2019-05-05},
+ version = {5.2},
url = {http://mirror.ctan.org/macros/latex/contrib/nomencl/}
}
@package{pkg:parnotes,
title = {parnotes},
author = {Micheal Hughes},
- date = {2012-03-01},
- version = {1},
+ date = {2019-07-23},
+ version = {3b},
url = {http://mirror.ctan.org/macros/latex/contrib/parnotes/}
}
@package{pkg:pagenote,
@@ -705,40 +715,47 @@
version = {1.1a},
url = {http://mirror.ctan.org/macros/latex/contrib/pagenote/}
}
+@package{pkg:pdfcomment,
+ title = {pdfcomment} ,
+ author = {Josef Kleber} ,
+ date = {2018-11-01} ,
+ version = {2.4a} ,
+ url = {http://mirror.ctan.org/macros/latex/contrib/pdfcomment/}
+}
@package{pkg:pdftexcmds,
title = {pdftexcmds} ,
author = {Heiko Oberdiek} ,
- date = {2011-11-29} ,
- version = {0.20} ,
+ date = {2019-07-25} ,
+ version = {0.30} ,
url = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/}
}
@package{pkg:perpage,
title = {perpage},
author = {David Kastrup},
- date = {2006-07-15},
- version = {1.12},
+ date = {2014-10-25},
+ version = {2.0},
url = {http://mirror.ctan.org/macros/latex/contrib/perpage/}
}
@package{pkg:pgf,
title = {TikZ/pgf} ,
author = {Till Tantau} ,
- version = {3.0.0} ,
- date = {2013-12-13} ,
+ version = {3.1.4b} ,
+ date = {2019-08-03} ,
url = {http://mirror.ctan.org/graphics/pgf/}
}
@package{pkg:pgfopts,
title = {pgfopts} ,
author = {Joseph Wright} ,
- date = {2011-06-02} ,
- version = {2.1} ,
+ date = {2014-07-10} ,
+ version = {2.1a} ,
url = {http://mirror.ctan.org/macros/latex/contrib/pgfopts/}
}
@package{pkg:pgfplots,
title = {pgfplots} ,
author = {Christian Feuers\"anger} ,
sortname = {Christian Feuersaenger} ,
- date = {2013-10-04} ,
- version = {1.9} ,
+ date = {2018-03-28} ,
+ version = {1.16} ,
url = {http://mirror.ctan.org/graphics/pgf/contrib/pgfplots/}
}
@package{pkg:polyglossia,
@@ -746,15 +763,15 @@
author = {Fran\c{c}ois Charette} ,
sortname = {Francois Charette} ,
maintainer = {Arthur Reutenauer} ,
- date = {2013-06-27} ,
- version = {1.33.4} ,
+ date = {2019-04-04} ,
+ version = {1.44} ,
url = {http://mirror.ctan.org/macros/latex/contrib/polyglossia/}
}
@package{pkg:probsoln,
title = {probsoln},
author = {Nicola L. C. Talbot},
- date = {2012-08-23},
- version = {3.04},
+ date = {2017-07-10},
+ version = {3.05},
url = {http://mirror.ctan.org/macros/latex/contrib/probsoln/}
}
@package{pkg:psfrag,
@@ -767,23 +784,30 @@
@package{pkg:pstricks,
title = {pstricks},
author = {Timothy van Zandt and Dennis Girou and Herbert Vo\ss},
- date = {2013},
- version = {2.46},
+ date = {2019-05-11},
+ version = {2.97},
url = {http://mirror.ctan.org/graphics/pstricks/}
}
+@package{pkg:pxgreeks,
+ title = {pxgreeks},
+ author = {Jean-Fran\c{c}ois Burnol},
+ date = {2011-03-16},
+ version = {1.0},
+ url = {http://mirror.ctan.org/macros/latex/contrib/pxgreeks/}
+}
@package{pkg:ragged2e,
title = {ragged2e} ,
author = {Martin Schr\"oder} ,
sortname = {Martin Schroeder} ,
- date = {2009-05-21} ,
- version = {2.1} ,
+ date = {2019-07-28} ,
+ version = {2.2} ,
url = {http://mirror.ctan.org/macros/latex/contrib/ms/ragged2e/}
}
@package{pkg:realbookchords,
title = {realbookchords},
author = {Clemens Niederberger},
- date = {2013-04-29},
- version = {0.1},
+ date = {2017-03-04},
+ version = {0.1b},
url = {https://bitbucket.org/cgnieder/guitarchordschemes/}
}
@package{pkg:relsize,
@@ -796,36 +820,36 @@
@package{pkg:scrlfile,
title = {scrlfile} ,
author = {Markus Kohm} ,
- date = {2012-06-15} ,
- version = {3.12} ,
+ date = {2019-01-14} ,
+ version = {3.25} ,
url = {http://mirror.ctan.org/macros/latex/contrib/koma-script/}
}
@package{pkg:sepfootnotes,
title = {sepfootnotes} ,
author = {Eduardo C. Louren\c{c}o de Lima} ,
- date = {2013-01-17} ,
- version = {0.2} ,
+ date = {2016-07-18} ,
+ version = {0.3c} ,
url = {http://mirror.ctan.org/macros/latex/contrib/sepfootnotes/}
}
@package{pkg:sidenotes,
title = {sidenotes},
author = {Andy Thomas and Oliver Schebaum},
- date = {2012-11-09},
- version = {0.92},
+ date = {2016-04-21},
+ version = {1.00},
url = {http://mirror.ctan.org/macros/latex/contrib/sidenotes/}
}
@package{pkg:siunitx,
title = {siunitx} ,
author = {Joseph Wright} ,
- version = {2.6h} ,
- date = {2015-07-17} ,
+ version = {2.7s} ,
+ date = {2018-05-17} ,
url = {http://mirror.ctan.org/macros/latex/contrib/siunitx/}
}
@package{pkg:snotez,
title = {snotez},
author = {Clemens Niederberger},
- version = {0.2},
- date = {2013-04-04},
+ version = {0.3},
+ date = {2013-04-21},
url = {http://mirror.ctan.org/macros/latex/contrib/snotez/}
}
@package{pkg:songbook,
@@ -838,43 +862,50 @@
@package{pkg:songs,
title = {songs},
author = {Kevin W. Hamlen},
- version = {2.14},
- date = {2012-03-17},
+ version = {3.1},
+ date = {2018-09-21},
url = {http://mirror.ctan.org/macros/latex/contrib/songs/}
}
@package{pkg:splitidx,
title = {splitidx},
author = {Markus Kohm},
- date = {2013-04-09},
- version = {1.2a},
+ date = {2016-02-18},
+ version = {1.2c},
url = {http://mirror.ctan.org/macros/latex/contrib/splitidx/}
}
@package{pkg:superiors,
title = {superiors},
author = {Michael Sharpe},
- date = {2012-08-13},
- version = {1.02},
+ date = {2019-08-18},
+ version = {1.06},
url = {http://mirror.ctan.org/macros/latex/contrib/superiors/}
}
-@package{pkg:tasks,
- title = {tasks},
- author = {Clemens Niederberger},
- date = {2014-07-03},
- version = {0.10},
- url = {http://mirror.ctan.org/macros/latex/contrib/tasks/}
-}
@package{pkg:tablefootnote,
title = {tablefootnote},
author = {H.-Martin M\"unch},
- date = {2012-01-14},
- version = {1.0g},
+ sortname = {H.-Martin Muench},
+ date = {2014-01-26},
+ version = {1.1c},
url = {http://mirror.ctan.org/macros/latex/contrib/tablefootnote/}
}
+@package{pkg:tabu,
+ title = {tabu},
+ author = {Florent Chervet},
+ date = {2019-01-12},
+ version = {2.8+},
+ url = {http://mirror.ctan.org/macros/latex/contrib/tabu/}
+}
+@package{pkg:tasks,
+ title = {tasks},
+ author = {Clemens Niederberger},
+ date = {2016-08-13},
+ version = {0.12},
+ url = {http://mirror.ctan.org/macros/latex/contrib/tasks/}
+}
@package{pkg:textcomp,
title = {textcomp} ,
author = {Sebastian Rahtz} ,
- date = {1995-12-11} ,
- version = {1.4} ,
+ date = {2016-02-18} ,
url = {http://mirrors.ctan.org/obsolete/fonts/psfonts/ts1}
}
@package{pkg:textgreek,
@@ -887,8 +918,8 @@
@package{pkg:tkz-base,
title = {tkz-base},
author = {Alain Matthes},
- date = {2011-06-02},
- version = {1.16},
+ date = {2011-06-03},
+ version = {1.16c},
url = {http://mirror.ctan.org/macros/latex/contrib/tkz/}
}
@package{pkg:tkz-euclide,
@@ -901,22 +932,22 @@
@package{pkg:tkz-fct,
title = {tkz-fct},
author = {Alain Matthes},
- date = {2011-06-02},
+ date = {2011-06-03},
version = {1.16c},
url = {http://mirror.ctan.org/macros/latex/contrib/tkz/}
}
@package{pkg:translations,
title = {translations} ,
author = {Clemens Niederberger} ,
- date = {2013-09-30} ,
- version = {1.1a} ,
+ date = {2017-08-31} ,
+ version = {1.7a} ,
url = {http://mirror.ctan.org/macros/latex/contrib/translations/}
}
@package{pkg:translator,
title = {translator} ,
- author = {Till Tantau} ,
- date = {2010-06-12} ,
- version = {1.0} ,
+ author = {Till Tantau and Joseph Wright} ,
+ date = {2019-05-31} ,
+ version = {1.12a} ,
url = {http://mirror.ctan.org/macros/contrib/beamer/base/translator/}
}
@package{pkg:trimspaces,
@@ -929,8 +960,8 @@
@class{cls:tufte,
title = {tufte-latex},
author = {Kevin Godby and Bil Kleb and Bill Wood},
- date = {2009-12-11},
- version = {3.5.0},
+ date = {2010},
+ version = {3.5.2},
url = {http://mirror.ctan.org/macros/latex/contrib/tufte-latex/}
}
@package{pkg:ulem,
@@ -949,8 +980,8 @@
@package{pkg:xcolor,
title = {xcolor} ,
author = {Uwe Kern} ,
- date = {2007-01-21} ,
- version = {2.11} ,
+ date = {2016-05-11} ,
+ version = {2.12} ,
url = {http://mirror.ctan.org/macros/latex/contrib/xcolor/}
}
@package{pkg:xfrac,
@@ -958,8 +989,7 @@
author = {{The \LaTeX3 Project Team}} ,
shorthand = {L3P} ,
sortname = {LaTeX3 Project Team} ,
- date = {2014-05-04} ,
- version = {4728} ,
+ date = {2019-05-28} ,
url = {http://mirror.ctan.org/macros/latex/contrib/l3packages/}
}
@package{pkg:xpatch,
@@ -973,15 +1003,22 @@
title = {xspace} ,
author = {David Carlisle and Morten H\o{}gholm} ,
sortname = {David Carlisle and Morten Hoegholm} ,
- date = {2009-10-20} ,
+ date = {2014-10-28} ,
version = {1.13} ,
url = {http://mirror.ctan.org/macros/latex/required/tools/}
}
+@package{pkg:xymtex,
+ title = {\XyMTeX} ,
+ author = {Shinsaku Fujita} ,
+ date = {2013} ,
+ version = {5.06} ,
+ url = {http://mirror.ctan.org/macros/latex/contrib/xymtex/}
+}
@bundle{bnd:yafoot,
title = {yafoot},
author = {Hiroshi Nakashima},
- date = {1999-07-14},
- version = {1.0},
+ date = {2018-09-03},
+ version = {1.1},
url = {http://mirror.ctan.org/macros/latex/contrib/yafoot/}
}
diff --git a/macros/latex/contrib/cnltx/cnltx.cbx b/macros/latex/contrib/cnltx/cnltx.cbx
index 1fd3158685..8c7d7fbfd0 100644
--- a/macros/latex/contrib/cnltx/cnltx.cbx
+++ b/macros/latex/contrib/cnltx/cnltx.cbx
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2014 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/cnltx/cnltx.dbx b/macros/latex/contrib/cnltx/cnltx.dbx
index dacca354db..aa1af1464c 100644
--- a/macros/latex/contrib/cnltx/cnltx.dbx
+++ b/macros/latex/contrib/cnltx/cnltx.dbx
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2014 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/cnltx/cnltx.sty b/macros/latex/contrib/cnltx/cnltx.sty
index 298ba37b74..8b9a9ffe03 100644
--- a/macros/latex/contrib/cnltx/cnltx.sty
+++ b/macros/latex/contrib/cnltx/cnltx.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/cnltx/cnltx_en.pdf b/macros/latex/contrib/cnltx/cnltx_en.pdf
index d25b68094a..f6981af695 100644
--- a/macros/latex/contrib/cnltx/cnltx_en.pdf
+++ b/macros/latex/contrib/cnltx/cnltx_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/cnltx/cnltx_en.tex b/macros/latex/contrib/cnltx/cnltx_en.tex
index 867a808b61..a19b36a68f 100644
--- a/macros/latex/contrib/cnltx/cnltx_en.tex
+++ b/macros/latex/contrib/cnltx/cnltx_en.tex
@@ -13,7 +13,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -131,6 +131,7 @@
}
}
+\usepackage{csquotes}
\defbibheading{bibliography}[\bibname]{\section{#1}}
\makeatletter
@@ -352,8 +353,7 @@ The intended use of this bundle is three-fold:
and actually loads most if not all of the bundle.
\item The module \cnltxbase\ is also intended as a programming tools package
that will be used in other packages eventually. For example it is used by
- the \pkg{cntformats} package from the \bnd{exsheets}
- bundle~\cite{bnd:exsheets}.
+ the \pkg{cntformats} package.
\item In case parts of this bundle prove useful to be used in a document the
recommended way is to add
\begin{sourcecode}[gobble=6]
diff --git a/macros/latex/contrib/halloweenmath/00readme.txt b/macros/latex/contrib/halloweenmath/00readme.txt
index 9062c54982..d529f19be2 100644
--- a/macros/latex/contrib/halloweenmath/00readme.txt
+++ b/macros/latex/contrib/halloweenmath/00readme.txt
@@ -4,7 +4,7 @@ This is file `00readme.txt'.
This file is part of a work named "halloweenmath package".
-Copyright (C) 2017 by Gustavo MEZZETTI.
+Copyright (C) 2019 by Gustavo MEZZETTI.
The halloweenmath package may be distributed and/or modified under
the conditions of the LaTeX Project Public License, either version 1.3
@@ -26,7 +26,7 @@ This file, after giving a brief description of the halloweenmath
package, explains how to install it and how to generate its--alas, still
incomplete!--documentation.
-April 25, 2017 (vers. 0.10a)
+November 1, 2019 (vers. 0.11)
diff --git a/macros/latex/contrib/halloweenmath/Makefile b/macros/latex/contrib/halloweenmath/Makefile
index 14862e19a6..aeb4b56152 100644
--- a/macros/latex/contrib/halloweenmath/Makefile
+++ b/macros/latex/contrib/halloweenmath/Makefile
@@ -1,6 +1,6 @@
# makefile
#
-# 2017 Apr 25
+# 2019 Nov 01
#
# Macro definitions
#
diff --git a/macros/latex/contrib/halloweenmath/README b/macros/latex/contrib/halloweenmath/README
index f8ae0c7905..84522e550d 100644
--- a/macros/latex/contrib/halloweenmath/README
+++ b/macros/latex/contrib/halloweenmath/README
@@ -1,4 +1,4 @@
-(Version indicator: 2017 Apr 25)
+(Version indicator: 2019 Nov 01)
The halloweenmath package originated from a question asked for enjoyment
on TeX-LaTeX Stack Exchange <http://tex.stackexchange.com> by the user
diff --git a/macros/latex/contrib/halloweenmath/halloweenmath-doc.pdf b/macros/latex/contrib/halloweenmath/halloweenmath-doc.pdf
index 94debdafad..8a88d4ee19 100644
--- a/macros/latex/contrib/halloweenmath/halloweenmath-doc.pdf
+++ b/macros/latex/contrib/halloweenmath/halloweenmath-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/halloweenmath/halloweenmath-man.pdf b/macros/latex/contrib/halloweenmath/halloweenmath-man.pdf
index 5b86c5fa77..97de2309fb 100644
--- a/macros/latex/contrib/halloweenmath/halloweenmath-man.pdf
+++ b/macros/latex/contrib/halloweenmath/halloweenmath-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/halloweenmath/halloweenmath-man.tex b/macros/latex/contrib/halloweenmath/halloweenmath-man.tex
index 7776ee16bd..a8062cddf3 100644
--- a/macros/latex/contrib/halloweenmath/halloweenmath-man.tex
+++ b/macros/latex/contrib/halloweenmath/halloweenmath-man.tex
@@ -1,21 +1,21 @@
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsfonts}
-\usepackage{halloweenmath}[2017/04/16]
+\usepackage{halloweenmath}[2019/11/01]
\usepackage{array}
\usepackage[bookmarksnumbered]{hyperref}
\title{User's manual\\for the \halloweenmath\ package}
\author{G. Mezzetti}
-\date{April~25, 2017}
+\date{November~1, 2019}
\hypersetup{
pdftitle = {User's manual for the halloweenmath package},
pdfauthor = {G. Mezzetti},
pdfsubject = {The halloweenmath LaTeX package},
pdfkeywords = {TeX,LaTeX,Halloween,math,math symbold},
- pdfcreationdate = {D:20170425120000},
- pdfmoddate = {D:20170425120000}
+ pdfcreationdate = {D:20191101120000},
+ pdfmoddate = {D:20191101120000}
}
\DeclareTextFontCommand{\packlass}{\normalfont\sffamily}
@@ -31,7 +31,7 @@
\newcolumntype{H}[3]{>{\hb@xt@ #3\bgroup#1}c<{#2\egroup}}
\newcolumntype{U}[2]{H{\hss$#1}{$\hss}{#2}@{\hspace{.5em}}}
\newcolumntype{V}[1]{H{\ttfamily}{\hss}{#1}}
-\newcolumntype{W}[1]{H{}{\hss}{#1}}
+\newcolumntype{Q}[1]{H{}{\hss}{#1}}
\newcolumntype{O}{U{}{15\p@}}
\newcolumntype{D}{U{\displaystyle}{30\p@}}
\newcolumntype{L}{OD}
@@ -60,7 +60,7 @@
}
\newenvironment{xasymtable}[1][\tw@]{%
\def\arraystretch{\tw@}%
- \@symtable{AW{200\p@}}{#1}%
+ \@symtable{AQ{200\p@}}{#1}%
}{%
\end@symtable
}
diff --git a/macros/latex/contrib/halloweenmath/halloweenmath.dtx b/macros/latex/contrib/halloweenmath/halloweenmath.dtx
index 83e0f21fb0..44739dc2ee 100644
--- a/macros/latex/contrib/halloweenmath/halloweenmath.dtx
+++ b/macros/latex/contrib/halloweenmath/halloweenmath.dtx
@@ -5,7 +5,7 @@
%
% This file is part of a work named "halloweenmath package".
%
-% Copyright (C) 2017 by Gustavo MEZZETTI.
+% Copyright (C) 2019 by Gustavo MEZZETTI.
%
% This file may be distributed and/or modified under the conditions
% of the LaTeX Project Public License, either version 1.3 of this
@@ -32,12 +32,12 @@
% \fi
%
% \def\filename{halloweenmath.dtx}
-% \def\fileversion{0.10a}
-% \def\filedate{2017/04/25}
-% \def\docdate {2017/04/25}
-% \def\doclongdate{April~25, 2017}
+% \def\fileversion{0.11}
+% \def\filedate{2019/11/01}
+% \def\docdate {2019/11/01}
+% \def\doclongdate{November~1, 2019}
%
-% \CheckSum{2259}
+% \CheckSum{2262}
%
% \changes{0.01}{2017 Jan 06}{First writing of the code}
% \changes{0.10}{2017 Apr 16}{Changed the look of the broom in the extensible
@@ -197,7 +197,7 @@
% integration\thanks{This file has
% version~\fileversion, release date \filedate;
% last documentation update: \docdate.
-% Copyright \copyright~2017 by G.~Mezzetti
+% Copyright \copyright~2019 by G.~Mezzetti
% (see page~\pageref{S:Copy}).}
% }
% \author{G. Mezzetti}
@@ -210,8 +210,8 @@
% pdfauthor = {G. Mezzetti},
% pdfsubject = {Documentation of the halloweenmath package},
% pdfkeywords = {Halloween, math, scary mathematical symbols},
-% pdfcreationdate = {D:20170425120000},
-% pdfmoddate = {D:20170425120000},
+% pdfcreationdate = {D:20191101120000},
+% pdfmoddate = {D:20191101120000},
% bookmarksopen,
% bookmarksopenlevel = 1
% }
@@ -300,7 +300,7 @@
% \label{S:Copy}
% \vspace{-\parskip}
%
-% Copyright \copyright~2017 by Gustavo \textsc{Mezzetti}.
+% Copyright \copyright~2019 by Gustavo \textsc{Mezzetti}.
% All rights are reserved, except as noted below.
%
% This document has been produced by feeding to a \LaTeX\ typesetting engine
@@ -347,7 +347,7 @@
%
% \begin{list}{\setlength{\topsep}{0pt}}\item\relax
% Gustavo \textsc{Mezzetti}\\
-% L.~S.~U. ``A.~di Savoia Duca degli Abruzzi''\\
+% L.~S.~U. ``A.~di Savoia Duca d'Aosta''\\
% Via del Santo, 57\\
% I--35123\quad PADOVA\quad PD\\
% Italy
@@ -1219,7 +1219,7 @@
% The usual identification:
% \begin{macrocode}
\ProvidesPackage{halloweenmath}
- [2017/04/25 v0.10a (development)]
+ [2019/11/01 v0.11 (development)]
% \end{macrocode}
%
% \subsection{Initial code}
@@ -1338,11 +1338,16 @@
% \end{macro}
%
% \begin{macro}{\@HwM@right@or@left}
+% \changes{0.11}{2019 Nov 01}{Corrected bug: \cs{@HwM@right@or@left}
+% now defaults to \cs{@gobbletwo}}
% Used to pass information about the orientation of left\slash right
-% symmetric figures. Here we just check that the name can be used, at the
-% same time reserving it.
+% symmetric figures. More precisely, it is a switch that selects
+% between two branches according to the current orientation. Here we
+% set the global default (no current orientation defined) so that it
+% ignores \emph{both} branches, thus correcting a bug in versions
+% prior to 0.11.
% \begin{macrocode}
-\@ifdefinable\@HwM@right@or@left{}
+\@ifdefinable\@HwM@right@or@left{\let \@HwM@right@or@left=\@gobbletwo}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/halloweenmath/halloweenmath.ins b/macros/latex/contrib/halloweenmath/halloweenmath.ins
index 6a40a55226..1aced78b5b 100644
--- a/macros/latex/contrib/halloweenmath/halloweenmath.ins
+++ b/macros/latex/contrib/halloweenmath/halloweenmath.ins
@@ -3,7 +3,7 @@
%
% This file is part of a work named "halloweenmath package".
%
-% Copyright (C) 2017 by Gustavo MEZZETTI.
+% Copyright (C) 2019 by Gustavo MEZZETTI.
%
% The halloweenmath package may be distributed and/or modified under
% the conditions of the LaTeX Project Public License, either version 1.3
@@ -25,7 +25,7 @@
% only part of the Work" in the sense of the LaTeX Project Public
% License, and should be avoided.
%
-% April 25, 2017 (vers. 0.10a)
+% November 1, 2019 (vers. 0.11)
%
\input docstrip
@@ -119,7 +119,7 @@
This is a generated file.
It is part of a work named "halloweenmath package".
-Copyright (C) 2017 by Gustavo MEZZETTI.
+Copyright (C) 2019 by Gustavo MEZZETTI.
The halloweenmath package may be distributed and/or modified under
the conditions of the LaTeX Project Public License, either version 1.3
@@ -141,7 +141,7 @@ Note that the distribution of this file alone is "distribution of
only part of the Work" in the sense of the LaTeX Project Public
License, and should be avoided.
-April 25, 2017 (vers. 0.10a)
+November 1, 2019 (vers. 0.11)
\endpreamble
diff --git a/macros/latex/contrib/halloweenmath/manifest.txt b/macros/latex/contrib/halloweenmath/manifest.txt
index 16e4a978ad..76dcbcf956 100644
--- a/macros/latex/contrib/halloweenmath/manifest.txt
+++ b/macros/latex/contrib/halloweenmath/manifest.txt
@@ -3,7 +3,7 @@ This is file `manifest.txt'.
This file is part of a work named "halloweenmath package".
-Copyright (C) 2017 by Gustavo MEZZETTI.
+Copyright (C) 2019 by Gustavo MEZZETTI.
The halloweenmath package may be distributed and/or modified under
the conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@ precisely, it explains how the locutions "Work" and "Compiled Work",
used in the LaTeX Project Public License, are to be interpreted in the
case of this work.
-April 25, 2017 (vers. 0.10a)
+November 1, 2019 (vers. 0.11)
diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md
index ec89a3f58a..b74e628687 100644
--- a/macros/latex/contrib/l3build/CHANGELOG.md
+++ b/macros/latex/contrib/l3build/CHANGELOG.md
@@ -7,6 +7,24 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2019-11-01]
+
+### Added
+
+- New `\ASSERT` and `\ASSERTSTR` functions (issue #102)
+
+### Changed
+
+- Avoid normalisation of (u)pTeX data when this is standard engine
+ (fixes #103)
+- Normalise Lua data references (#107)
+- Extend `runtest_task()` to pass run number
+- Allow `regression-test` to load when e-TeX is unavailable (fixes #105)
+
+### Fixed
+
+- Location of `testsuppdir` when multiple configurations are used
+
## [2019-10-02]
### Added
@@ -370,7 +388,8 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX3 kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2019-10-02...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2019-11-01...HEAD
+[2019-11-01]: https://github.com/latex3/l3build/compare/2019-10-02...2019-11-01
[2019-10-02]: https://github.com/latex3/l3build/compare/2019-09-30...2019-10-02
[2019-09-30]: https://github.com/latex3/l3build/compare/2019-09-29...2019-09-30
[2019-09-29]: https://github.com/latex3/l3build/compare/2019-09-28...2019-09-29
diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md
index 04fb613e32..d781a521d0 100644
--- a/macros/latex/contrib/l3build/README.md
+++ b/macros/latex/contrib/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX3
=================================================
-Release 2019-10-02
+Release 2019-11-01
Overview
--------
diff --git a/macros/latex/contrib/l3build/l3build-check.lua b/macros/latex/contrib/l3build/l3build-check.lua
index e2cdd655bf..ea550327eb 100644
--- a/macros/latex/contrib/l3build/l3build-check.lua
+++ b/macros/latex/contrib/l3build/l3build-check.lua
@@ -215,12 +215,14 @@ local function normalize_log(content,engine,errlevels)
if match(line, "^> \\box%d+=$") or match(line, "^> \\box%d+=(void)$") then
line = gsub(line, "%d+=", "...=")
end
- -- Remove 'normal' direction information on boxes with (u)pTeX
- line = gsub(line, ",? yoko direction,?", "")
- line = gsub(line, ",? yoko%(math%) direction,?", "")
- -- Remove '\displace 0.0' lines in (u)pTeX
- if match(line,"^%.*\\displace 0%.0$") then
- return ""
+ if not match(stdengine,"^e?u?ptex$") then
+ -- Remove 'normal' direction information on boxes with (u)pTeX
+ line = gsub(line, ",? yoko direction,?", "")
+ line = gsub(line, ",? yoko%(math%) direction,?", "")
+ -- Remove '\displace 0.0' lines in (u)pTeX
+ if match(line,"^%.*\\displace 0%.0$") then
+ return ""
+ end
end
-- Remove the \special line that in DVI mode keeps PDFs comparable
if match(line, "^%.*\\special%{pdf: docinfo << /Creator") then
@@ -249,6 +251,9 @@ local function normalize_log(content,engine,errlevels)
line = gsub(line, "save cache:", "load cache:")
-- A tidy-up to keep LuaTeX and other engines in sync
line = gsub(line, utf8_char(127), "^^?")
+ -- Remove lua data reference ids
+ line = gsub(line, "<lua data reference [0-9]+>",
+ "<lua data reference ...>")
-- Unicode engines display chars in the upper half of the 8-bit range:
-- tidy up to match pdfTeX if an ASCII engine is in use
if next(asciiengines) then
@@ -749,7 +754,7 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
.. setup(lvtfile)
.. (hide and (" > " .. os_null) or "")
.. os_concat ..
- runtest_tasks(jobname(lvtfile))
+ runtest_tasks(jobname(lvtfile),i)
)
-- Break the loop if the result is stable
if breakout and i < checkruns then
@@ -796,7 +801,7 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
end
-- A hook to allow additional tasks to run for the tests
-runtest_tasks = runtest_tasks or function(name)
+runtest_tasks = runtest_tasks or function(name,run)
return ""
end
@@ -958,6 +963,10 @@ end
function save(names)
checkinit()
local engines = options["engine"] or {stdengine}
+ if names == nil then
+ print("Arguments are required for the save command")
+ return 1
+ end
for _,name in pairs(names) do
if testexists(name) then
for _,engine in pairs(engines) do
@@ -989,7 +998,7 @@ function save(names)
.. lveext .. " file of the same name")
return 1
else
- print('Test "'.. name .. '"not found')
+ print('Test "' .. name .. '" not found')
return 1
end
end
diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1
index 91374cd0fa..aa583fe599 100644
--- a/macros/latex/contrib/l3build/l3build.1
+++ b/macros/latex/contrib/l3build/l3build.1
@@ -1,4 +1,4 @@
-.TH l3build 1 "2019-10-02"
+.TH l3build 1 "2019-11-01"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
diff --git a/macros/latex/contrib/l3build/l3build.dtx b/macros/latex/contrib/l3build/l3build.dtx
index e48fd8b195..2f55c5173d 100644
--- a/macros/latex/contrib/l3build/l3build.dtx
+++ b/macros/latex/contrib/l3build/l3build.dtx
@@ -231,7 +231,7 @@
% }^^A
% }
%
-% \date{Released 2019-10-02}
+% \date{Released 2019-11-01}
%
% \maketitle
% \tableofcontents
@@ -845,6 +845,9 @@
% \texttt{\cs{\meta{type}}\meta{...}}
% \item Conversion of box numbers in |\show| lines
% \texttt{>~\cs{box}\meta{number}=} to \texttt{>~\cs{box}...=}
+% \item Conversion of Lua data reference ids
+% \texttt{<lua data reference \meta{number}>} to
+% \texttt{<lua data reference ...>}
% \item Removal of some (u)p\TeX{} data where it is equivalent to
% \pdfTeX{} (|yoko direction|, |\displace 0.0|)
% \end{itemize}
@@ -893,16 +896,6 @@
%
% Any commands that write content to the |.log| file that should be ignored can be surrounded by |\OMIT| \dots\ |\TIMO|.
% At the appropriate location in the document where the |.log| comparisons should start (say, after |\begin{document}|), the test suite must contain the |\START| macro.
-% The test should then include \cs{AUTHOR}\marg{authors details} in case a test file fails in the future and needs to be re-analysed.
-%
-% Some additional diagnostic information can then be included as metadata for the conditions of the test.
-% The desired format can be indicated with \cs{FORMAT}\marg{format name}, and any packages or classes loaded can be indicated with
-%
-% \noindent\hspace*{2\parindent} \cs{CLASS}\oarg{options}\marg{class name, version}\par
-% \noindent\hspace*{2\parindent} \cs{PACKAGE}\oarg{options}\marg{package name, version}
-%
-% \noindent These do not provide information that is useful for automated checking; after all, packages change their version numbers frequently.
-% Rather, including this information in a test indicates the conditions under which the test was definitely known to pass at a certain time in the past.
%
% The |\END| command signals the end of the test (but read on).
% Some additional diagnostic information is printed at this time to debug if the test did not complete `properly' in terms of mismatched brace groups or \cs{if}\dots\cs{fi} groups.
@@ -913,9 +906,6 @@
%
% \subsection{Commands to help write tests}
%
-% A simple command \cs{CHECKCOMMAND}\cs{\meta{macro}} is provided to check whether a particular \cs{\meta{macro}} is defined, undefined, or equivalent to \cs{relax}.
-% This is useful to flag either that internal macros are remaining local to their definitions, or that defined commands definitely are defined, or even as a reminder that commands you intend to define in a future package need to be tested once they appear.
-%
% \cs{TYPE} is used to write material to the \texttt{.log} file, like \LaTeX's \cs{typeout}, but it allows `long' input.
% The following commands are defined to use \cs{TYPE} to output strings to the \texttt{.log} file.
% \begin{itemize}
@@ -936,6 +926,13 @@
% \item
% \cs{BEGINTEST}\marg{title} \dots \cs{ENDTEST} is an environment form of
% \cs{TEST}, allowing verbatim material, \emph{etc.} to appear.
+% \item
+% \cs{SHOWFILE} (\eTeX{} only) Shows the content of the file given as an
+% argument.
+% \item
+% \cs{ASSERT} and \cs{ASSERTSTR} (\eTeX{} only) Asserts if the full expansion
+% of the two required arguments are the same: the \cs{ASSERT} function is
+% token-based, the \cs{ASSERTSTR} works on a string basis.
% \end{itemize}
% An example of some of these commands is shown following.
% \begin{Verbatim}
@@ -1105,19 +1102,23 @@
% or more engines, but will not carry out any additional processing. For
% some tests, for example bibliography generation, it may be desirable to
% call one or more tools in addition to the engine. This can be arranged
-% by defining |runtest_tasks|, a function taking one argument, the name
+% by defining |runtest_tasks|, a function taking two arguments, the name
% of the current test (this is equivalent to \TeX{}'s \cs{jobname},
-% \emph{i.e.}~it lacks an extension). The function |runtest_tasks|
-% is is into a call to the system to run the engine. As such, it
-% should take return a string with the appropriate command(s)
-% and option(s). If more than one task is required, these should be separated
+% \emph{i.e.}~it lacks an extension) and the current run number.
+% The function |runtest_tasks| is run after the main call to the
+% engine for a test cycle. It should return an errorlevel value.
+% If more than one task is required, these should be separated
% by use of |os_concat|, a string variable defined by \pkg{l3build} as the
% correct concatenation marker for the system. An example of |runtest_tasks|
% suitable for calling Biber is shown in Listing~\ref{fig:test-tasks}.
% \begin{figure}
% \begin{lstlisting}[frame=single,language={[5.2]Lua},gobble = 6]
-% function runtest_tasks(name)
-% return "biber " .. name
+% function runtest_tasks(name,run)
+% if run == 1 then
+% return "biber " .. name
+% else
+% return 0
+% end
% end
% \end{lstlisting}
% \caption{Example \texttt{runtest_tasks} function.}
@@ -2028,12 +2029,11 @@
%
% \subsection{Preliminaries}
%
-% We require \eTeX{}.
+% We require \eTeX{} for some features.
% \begin{macrocode}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname eTeXversion\endcsname\relax
- \errmessage{e-TeX is required to use regression-test.tex}%
- \expandafter\endinput
+ \message{e-TeX is required by some regression-test.tex features}%
\fi
% \end{macrocode}
%
@@ -2058,7 +2058,11 @@
% Put \TeX{} into scroll mode, and stop it showing the
% implementation details of macros in error messages.
% \begin{macrocode}
-\ifnum\interactionmode>1 \scrollmode\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname interactionmode\endcsname\relax
+\else
+ \ifnum\interactionmode>1 \scrollmode\fi
+\fi
\errorcontextlines=-1 %
% \end{macrocode}
%
@@ -2140,6 +2144,13 @@
\LONGTYPEOUT{^^JEND-TEST-LOG^^J}%
\@@@end
}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname currentgrouplevel\endcsname\relax
+ \def\END{%
+ \LONGTYPEOUT{^^JEND-TEST-LOG^^J}%
+ \@@@end
+ }
+\fi
\ifx\@@end\@undefined
\let\end\END
\else
@@ -2157,8 +2168,6 @@
% \end{macrocode}
% \end{macro}
%
-%
-
% \begin{macro}{\SHOWFILE}
% Load a file (e.g.,| \jobname.toc|) into the .log file with the usual special
% characters rendered harmless. Use as |\SHOWFILE{\jobname.aux}|.
@@ -2180,6 +2189,10 @@
\typeout{-------- #1 (end) -----------}%
}%
\endgroup
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname everyeof\endcsname\relax
+ \def\SHOWFILE#1{\TYPE{FEATURE UNAVAILABLE}}
+\fi
% \end{macrocode}
% \end{macro}
%
@@ -2224,7 +2237,9 @@
% \FALSE,
% \YES,
% \NO,
-% \NEWLINE
+% \NEWLINE,
+% \ASSERT,
+% \ASSERTSTR
% }
% We are not starved for space in the log file output, so let's make it as
% verbose as is useful when reading the |.diff|'s.
@@ -2234,7 +2249,7 @@
============================================================%
}%
}
-\protected\long\def\BEGINTEST#1{%
+\csname protected\endcsname\long\def\BEGINTEST#1{%
\global\advance\gTESTint by 1 %
\SEPARATOR
\LONGTYPEOUT{TEST \the\gTESTint: \detokenize{#1}}%
@@ -2242,7 +2257,21 @@
\begingroup
\let\TYPE\LONGTYPEOUT
}
-\protected\long\def\ENDTEST{%
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname detokenize\endcsname\relax
+ \long\def\BEGINTEST#1{%
+ \global\advance\gTESTint by 1 %
+ \SEPARATOR
+ \begingroup
+ \toks0={#1}%
+ \LONGTYPEOUT{TEST \the\gTESTint: \the\toks0 }%
+ \endgroup
+ \SEPARATOR
+ \begingroup
+ \let\TYPE\LONGTYPEOUT
+ }
+\fi
+\csname protected\endcsname\long\def\ENDTEST{%
\endgroup
\SEPARATOR
\LONGTYPEOUT{}%
@@ -2262,11 +2291,74 @@
\def \YES {\TYPE{YES}}
\def \NO {\TYPE{NO}}
\def \NEWLINE {\TYPE{^^J}}
+\csname protected\endcsname\long\def\ASSERT#1#2{%
+ \begingroup
+ \edef\@tempa{#1}%
+ \edef\@tempb{#2}%
+ \ifx\@tempa\@tempb
+ \TYPE{PASSED}%
+ \else
+ \TYPE{FAILED}%
+ \fi
+ \endgroup
+}
+\csname protected\endcsname\long\def\ASSERTSTR#1#2{%
+ \begingroup
+ \edef\@tempa{#1}%
+ \edef\@tempb{#2}%
+ \edef\@tempa{\detokenize\expandafter{\@tempa}}%
+ \edef\@tempb{\detokenize\expandafter{\@tempb}}%
+ \ifx\@tempa\@tempb
+ \TYPE{PASSED}%
+ \else
+ \TYPE{FAILED}%
+ \fi
+ \endgroup
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname detokenize\endcsname\relax
+ \long\def\ASSERTSTR#1#2{%
+ \TYPE{FEATURE UNAVAILABLE}%
+ }
+\fi
% \end{macrocode}
% \end{macro}
%
% \subsection{Suppressing variable data in output}
%
+% Disable compression in PDF output.
+% \begin{macrocode}
+\ifnum 0%
+ \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi
+ \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi
+ >0 %
+ \ifx\pdfvariable\@undefined
+ \pdfcompresslevel=0 %
+ \pdfobjcompresslevel=0 %
+ \else
+ \pdfvariable compresslevel=0 %
+ \pdfvariable objcompresslevel=0 %
+ \fi
+\else
+ \ifnum 0%
+ \ifx\XeTeXversion\@undefined\else 1\fi
+ \ifx\kanjiskip\@undefined\else 1\fi
+ >0 %
+ \special{dvipdfmx:config z 0}% Compress level
+ \special{dvipdfmx:config C 0x40}% Object compression
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname protected\endcsname\relax
+ \reset@catcodes
+ \let\protected\undefined
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
% Load the map file early so it does not appear in the log.
% \begin{macrocode}
\ifx\pdfoutput\@undefined
@@ -2335,30 +2427,6 @@
\fi
% \end{macrocode}
%
-% Disable compression in PDF output.
-% \begin{macrocode}
-\ifnum 0%
- \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi
- \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi
- >0 %
- \ifx\pdfvariable\@undefined
- \pdfcompresslevel=0 %
- \pdfobjcompresslevel=0 %
- \else
- \pdfvariable compresslevel=0 %
- \pdfvariable objcompresslevel=0 %
- \fi
-\else
- \ifnum 0%
- \ifx\XeTeXversion\@undefined\else 1\fi
- \ifx\kanjiskip\@undefined\else 1\fi
- >0 %
- \special{dvipdfmx:config z 0}% Compress level
- \special{dvipdfmx:config C 0x40}% Object compression
- \fi
-\fi
-% \end{macrocode}
-%
% Finish up.
% \begin{macrocode}
\reset@catcodes
diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua
index d9f4fe23f8..48f3ab99d4 100755
--- a/macros/latex/contrib/l3build/l3build.lua
+++ b/macros/latex/contrib/l3build/l3build.lua
@@ -2,7 +2,7 @@
--[[
-File l3build.lua Copyright (C) 2014-2018 The LaTeX3 Project
+File l3build.lua Copyright (C) 2014-2019 The LaTeX3 Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2019-10-02"
+release_date = "2019-11-01"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
@@ -177,8 +177,14 @@ if #checkconfigs == 1 and
(options["target"] == "check" or options["target"] == "save" or options["target"] == "clean") then
local config = "./" .. gsub(checkconfigs[1],".lua$","") .. ".lua"
if fileexists(config) then
+ local savedtestfiledir = testfiledir
dofile(config)
testdir = testdir .. "-" .. checkconfigs[1]
+ -- Reset testsuppdir if required
+ if savedtestfiledir ~= testfiledir and
+ testsuppdir == savedtestfiledir .. "/support" then
+ testsuppdir = testfiledir .. "/support"
+ end
else
print("Error: Cannot find configuration " .. checkconfigs[1])
exit(1)
diff --git a/macros/latex/contrib/l3build/l3build.pdf b/macros/latex/contrib/l3build/l3build.pdf
index 8a7d3fc1de..27c6e3c918 100644
--- a/macros/latex/contrib/l3build/l3build.pdf
+++ b/macros/latex/contrib/l3build/l3build.pdf
Binary files differ
diff --git a/support/make4ht/README b/support/make4ht/README
index a99a108d69..df14833239 100644
--- a/support/make4ht/README
+++ b/support/make4ht/README
@@ -2,93 +2,209 @@
# Introduction
-`make4ht` is a simple build system for `tex4ht`, \TeX\ to XML converter. It provides a command line tool
-that drive the conversion process. It also provides a library which can be used to create
-customized conversion tools. An example of such conversion tool is
-[tex4ebook](https://github.com/michal-h21/tex4ebook) for conversion of \TeX\ to
+`make4ht` is a build system for \TeX4ht, \TeX\ to XML converter. It provides a command line tool
+that drives the conversion process. It also provides a library that can be used to create
+customized conversion tools. An example of such a tool is
+[tex4ebook](https://github.com/michal-h21/tex4ebook), a tool for conversion from \TeX\ to
ePub and other e-book formats.
-## How it works
+The basic conversion from \LaTeX\ to `HTML` using `make4ht` can be executed using the following command:
-### The issues with default `tex4ht` conversion commands
+ $ make4ht filename.tex
+It will produce a file named `filename.html` if the compilation goes without fatal errors.
-`tex4ht` system supports several output formats, most notably `XHTML`, `HTML 5` and `ODT`.
-The conversion can be invoked using several commands. These commands invoke LaTeX\ or Plain TeX
-with special instructions to load `tex4ht.sty` package. The \TeX\ run produces special `DVI` file
-which contains the code for desired output format. Produced `DVI` file is then processed and
-desired output files are created.
-The basic command provided by `tex4ht` is named `htlatex`. It compiles \LaTeX\
+# Command line options {#clioptions}
+\label{sec:clioptions}
+
+ make4ht - build system for TeX4ht
+ Usage:
+ make4ht [options] filename ["tex4ht.sty op." "tex4ht op."
+ "t4ht op" "latex op"]
+ -a,--loglevel (default status) Set log level.
+ possible values: debug, info, status, warning, error, fatal
+ -b,--backend (default tex4ht) Backend used for xml generation.
+ possible values: tex4ht or lua4ht
+ -c,--config (default xhtml) Custom config file
+ -d,--output-dir (default "") Output directory
+ -e,--build-file (default nil) If build filename is different
+ than `filename`.mk4
+ -f,--format (default nil) Output file format
+ -j,--jobname (default nil) Set the jobname
+ -l,--lua Use lualatex for document compilation
+ -m,--mode (default default) Switch which can be used in the makefile
+ -n,--no-tex4ht Disable DVI file processing with tex4ht command
+ -s,--shell-escape Enables running external programs from LaTeX
+ -u,--utf8 For output documents in utf8 encoding
+ -x,--xetex Use xelatex for document compilation
+ -v,--version Print version number
+ <filename> (string) Input filename
+
+
+It is still possible to invoke `make4ht` in the same way as is invoked `htlatex`:
+
+ $ make4ht filename "customcfg, charset=utf-8" "-cunihtf -utf8" "-dfoo"
+
+Note that this will not use `make4ht` routines for the output directory handling.
+See section \ref{sec:output-dir} for more information about this issue.
+To use these routines, change the previous listing to:
+
+ $ make4ht -d foo filename "customcfg, charset=utf-8" "-cunihtf -utf8"
+
+This call has the same effect as the following:
+
+ $ make4ht -u -c customcfg -d foo filename
+
+
+Output directory doesn't have to exist, it will be created automatically.
+Specified path can be relative to the current directory, or absolute:
+
+ $ make4ht -d use/current/dir/ filename
+ $ make4ht -d ../gotoparrentdir filename
+ $ make4ht -d ~/gotohomedir filename
+ $ make4ht -d c:\documents\windowspathsareworkingtoo filename
+
+The short options that don't take parameters can be collapsed:
+
+
+ $ make4ht -ulc customcfg -d foo filename
+
+
+To pass output from the other commands to `make4ht` use the `-` character as a
+filename. It is best to use this feature together with the `--jobname` or `-j`
+option.
+
+ $ cat hello.tex | make4ht -j world -
+
+By default, `make4ht` tries to be quiet, so it hides most of the command line
+messages and the output from the executed commands. It will display only status
+messages, warnings and errors. The logging level can be selected using the
+`--loglevel` or `-a` options. If the compilation fails, it may be useful to display more
+information using the `info` or `debug` levels.
+
+
+ $ make4ht -a debug faulty.tex
+
+
+
+# Why `make4ht`? -- `htlatex` issues
+
+
+\TeX4ht\ system supports several output formats, most notably `XHTML`, `HTML 5`
+and `ODT`, but it also supports `TEI` or `Docbook`.
+
+The conversion can be invoked using several scripts, which are distributed with \TeX4ht.
+They differ in parameters passed to the underlying commands.
+
+These scripts invoke \LaTeX\ or Plain \TeX\ with special instructions to load
+the `tex4ht.sty` package. The \TeX\ run produces a special `DVI` file
+that contains the code for the desired output format. The produced `DVI` file
+is then processed using the `tex4ht` command, which in conjunction with the
+`t4ht` command produces the desired output files.
+
+## Passing command line arguments
+
+The basic conversion script provided by \TeX4ht\ system is named `htlatex`. It compiles \LaTeX\
files to `HTML` with this command sequence:
- latex $latex_options 'code for loading tex4ht.sty \input{filename}'
- latex $latex_options 'code for loading tex4ht.sty \input{filename}'
- latex $latex_options 'code for loading tex4ht.sty \input{filename}'
- tex4ht $tex4ht_options filename
- t4ht $t4ht_options filename
+ $ latex $latex_options 'code for loading tex4ht.sty \input{filename}'
+ $ latex $latex_options 'code for loading tex4ht.sty \input{filename}'
+ $ latex $latex_options 'code for loading tex4ht.sty \input{filename}'
+ $ tex4ht $tex4ht_options filename
+ $ t4ht $t4ht_options filename
The options for various parts of the system can be passed on the command line:
- htlatex filename "tex4ht.sty options" "tex4ht_options" "t4ht_options" "latex_options"
+ $ htlatex filename "tex4ht.sty options" "tex4ht_options" "t4ht_options" "latex_options"
For basic `HTML` conversion it is possible to use the most basic invocation:
- htlatex filename.tex
+ $ htlatex filename.tex
-It can be much more involved for `HTML 5` output in `UTF-8` encoding:
+It can be much more involved for the `HTML 5` output in `UTF-8` encoding:
- htlatex filename.tex "xhtml,html5,charset=utf-8" "-cmozhtf -utf8"
+ $ htlatex filename.tex "xhtml,html5,charset=utf-8" " -cmozhtf -utf8"
`make4ht` can simplify it:
- make4ht -uf html5 filename.tex
+ $ make4ht -u filename.tex
+
+The `-u` option requires the `UTF-8` encoding. `HTML 5` is used as the default
+output format by `make4ht`.
+
+More information about the command line arguments can be found in section
+\ref{sec:clioptions}.
+
+
+## Compilation sequence
-Another issue is the fixed compilation order and hard-coded number of LaTeX invocations.
+`htlatex` has a fixed compilation order and a hard-coded number of \LaTeX\ invocations.
-When you need to run a program which interact with LaTeX, such as `Makeindex`
-or `Bibtex`, you need to create a new script based on `htlatex`, or run
-`htlatex` twice, which means that LaTeX will be invoked six times.
-This can lead to significantly long compilation times. `make4ht` provides build files and
-extensions, which can be used for interaction with external tools.
+It is not possible to execute additional commands during the compilation.
+When we want to run a program that interacts with \LaTeX, such as `Makeindex`
+or `Bibtex`, we have two options. The first option is to create a new script based on
+`htlatex` and add the wanted commands to the modified script. The second option
+is to execute `htlatex`, then the additional and then `htlatex` again. The
+second option means that \LaTeX\ will be invoked six times, as each call to
+`htlatex` executes three calls to \LaTeX. This can lead to significantly long
+compilation times.
-It is also possible to have several compilation modes. When you just add new text to a document,
-which doesn't contain cross-references, don't add new stuff to the table of contents, etc.,
-it is possible to use the `draft` mode which will invoke LaTeX only once. It
-can save quite a lot of the compilation time:
+`make4ht` provides a solution for this issue using a build file, or extensions.
+These can be used for interaction with external tools.
- make4ht -um draft -f html5 filename.tex
+`make4ht` also provides compilation modes, which enables to select commands that
+should be executed using a command line option.
-There are also issues with a behaviour of the `t4ht` application. It reads file
-`filename.lg`, generated by `tex4ht`, where are instructions about generated
-files, `CSS` instructions, calls to external applications, instructions for
-image conversions etc. It can be instructed to copy generated files to some
-output directory, but it doesn't preserve directory structure, so when you
-have images in a subdirectory, they will be copied to the output directory.
+There is a built-in `draft` mode, which invokes \LaTeX\ only once, instead of
+the default three invocations. It is useful for the compilations of the
+document before its final stage, when it is not important that all
+cross-references work. It can save quite a lot of the compilation time:
+
+ $ make4ht -um draft filename.tex
+
+More information about the build files can be found in section \ref{sec:buildfiles}.
+
+## Handling of the generated files
+\label{sec:output-dir}
+
+There are also issues with the behavior of the `t4ht` application. It reads the
+`.lg` file generated by the `tex4ht` command. This file contains
+information about the generated files, `CSS` instructions, calls to the external
+applications, instructions for image conversions, etc.
+
+
+`t4ht` can be instructed to copy the generated files to an output directory, but
+it doesn't preserve the directory structure. When the images are placed in a
+subdirectory, they will be copied to the output directory, losing the directory structure.
Links will be pointing to a non-existing subdirectory. The following command
should copy all output files to the correct destinations.
- make4ht -d outputdir filename.tex
+ $ make4ht -d outputdir filename.tex
+
+## Image conversion and post-processing of the generated files
+
+\TeX4ht\ can convert parts of the document to images. This is useful
+for diagrams or complicated math, for example.
-The image conversion is configured in the
-[env file](http://www.tug.org/applications/tex4ht/mn35.html#index35-73001),
-which has really strange syntax based and the rules are
-[os dependent](http://www.tug.org/applications/tex4ht/mn-unix.html#index27-69005).
+By default, the image conversion is configured in a
+[`.env` file](http://www.tug.org/applications/tex4ht/mn35.html#index35-73001).
+It has a bit of strange syntax, with
+[operating system dependent](http://www.tug.org/applications/tex4ht/mn-unix.html#index27-69005) rules.
`make4ht` provides simpler means for the image conversion in the build files.
+It is possible to change the image conversion parameters without a need to modify the `.env` file.
+The process is described in section \ref{sec:imageconversion}.
+
+It is also possible to post-process the generated output files. The post-processing can be done
+either using external programs such as `XSLT` processors and `HTML Tidy` or
+using `Lua` functions. More information can be found in section \ref{sec:postprocessing}.
-With `make4ht` build files, we have simple mean to fix these issues. We can
-change image conversion parameters without the need to modify the `env file`,
-or execute actions on the output files. These actions can be either external
-programs such as `xslt` processors or `HTML tidy` or `Lua` functions.
-The idea is to make system controlled by a build file. Because `Lua`
-interpreter is included in modern TeX distributions and `Lua` is ideal language
-for such task, it was chosen as language in which the build scripts are written.
# Output file formats and extensions
-The default output format used by `make4ht` is `html5`. Different
+The default output format used by `make4ht` is `html5`. A different
format can be requested using the `--format` option. Supported formats are:
- `xhtml`
@@ -107,22 +223,10 @@ may post-process the output files or request additional commands for the compila
The extensions can be enabled or disabled by appending `+EXTENSION` or `-EXTENSION` after
the output format name:
- make4ht -uf html5+tidy filename.tex
+ $ make4ht -uf html5+tidy filename.tex
Available extensions:
-latexmk_build
-
-: use `Latexmk` for \LaTeX\ compilation.
-
-tidy
-
-: clean the `HTML` files using the `tidy` command.
-
-dvisvgm_hashes
-
-: efficient generation of SVG pictures using Dvisvgm. It can utilize
-multiple processor cores and generates only changed images.
common\_filters
@@ -131,13 +235,22 @@ common\_filters
common\_domfilters
: clean the HTML file using DOM filters. It is more powerful than
-`common_filters`. Used DOM filters are `fixinlines`, `idcolons` and
-`joincharacters`.
+`common_filters`. Used DOM filters are `fixinlines`, `idcolons`,
+`joincharacters`, and `tablerows`.
+
+dvisvgm\_hashes
+
+: efficient generation of SVG pictures using Dvisvgm. It can utilize
+multiple processor cores and generates only changed images.
join\_colors
: load the `joincolors` domfilter for all HTML files.
+latexmk\_build
+
+: use [Latexmk](https://ctan.org/pkg/latexmk?lang=en) for the \LaTeX\ compilation.
+
mathjaxnode
: use [mathjax-node-page](https://github.com/pkra/mathjax-node-page/) to
@@ -146,21 +259,35 @@ mathjaxnode
odttemplate
-: automatically load the `odttemplate` filter.
+: it automatically loads the `odttemplate` filter (page \pageref{sec:odttemplate}).
+
+preprocess\_input
+
+: compilation of the formats
+ supported by [Knitr](https://yihui.name/knitr/) (`.Rnw`, `.Rtex`, `.Rmd`, `.Rrst`)
+ and also Markdown and reStructuredText formats. It requires
+[R](https://www.r-project.org/) + [Knitr](https://yihui.name/knitr/)
+installation, it requires also [Pandoc](https://pandoc.org/) for formats based on Markdown or
+reStructuredText.
staticsite
-: build the document in form suitable for static site generators like [Jekyll](https://jekyllrb.com/).
+: build the document in a form suitable for static site generators like [Jekyll](https://jekyllrb.com/).
+
+tidy
+
+: clean the `HTML` files using the `tidy` command.
# Build files
+\label{sec:buildfiles}
-`make4ht` supports build files. These are `Lua` scripts which can adjust
-the build process. You can request external applications like `bibtex` or `makeindex`,
+`make4ht` supports build files. These are `Lua` scripts that can adjust
+the build process. They can request external applications like `BibTeX` or `Makeindex`,
pass options to the commands, modify the image conversion process, or post-process the
generated files.
`make4ht` tries to load default build file named as `filename + .mk4 extension`.
-You can choose different build file with `-e` or `--build-file` command line
+It is possible to select a different build file with `-e` or `--build-file` command line
option.
Sample build file:
@@ -168,185 +295,205 @@ Sample build file:
Make:htlatex()
Make:match("html$", "tidy -m -xml -utf8 -q -i ${filename}")
-`Make:htlatex()` is preconfigured command for calling LaTeX with `tex4ht`
-loaded on the input file. In this case, it will be called one time. After
-compilation, the `tidy` command is executed on the output `HTML` file.
+`Make:htlatex()` is preconfigured command for calling \LaTeX\ with the `tex4ht.sty` package
+loaded. In this example, it will be executed only once. After the
+compilation, the `tidy` command is executed on the output `HTML` files.
-Note that you don't have to call `tex4ht` and `t4ht` commands explicitly in the
+Note that it is not necessary to call `tex4ht` and `t4ht` commands explicitly in the
build file, they are called automatically.
## User commands
-You can add more commands like `Make:htlatex` using `Make:add` command:
+It is possible to add more commands like `Make:htlatex` using the `Make:add` command:
- Make:add("name", "command", {parameters}, repetition)
+ Make:add("name", "command", {settings table}, repetition)
-The `name` and `command` parameters are required, rest of the parameters are optional.
+This defines the `name` command, which can be then executed using `Make:name()`
+command in the build file.
-This defines `name` command, which can be then executed as `Make:name()` command.
+The `name` and `command` parameters are required, the rest of the parameters are optional.
-### Provided commands
+The defined command receives a table with settings as a parameter at the call time.
+The default settings are provided by `make4ht`. Additional settings can be
+declared in the `Make:add` commands, user can also override the default settings
+when the command is executed in the build file:
-`Make:htlatex`
+ Make:name({hello="world"})
-: One call to TeX engine with special configuration for `tex4ht` loading.
+More information about settings, including the default settings provided by
+`make4ht`, can be found in section \ref{sec:settings} on page
+\pageref{sec:settings}.
-`Make:latexmk`
-: Use `Latexmk` for the document compilation. `tex4ht` will be loaded automatically.
+### The `command` function
+\label{sec:commandfunction}
-`Make:tex4ht`
+The `command` parameter can be either a string template or function:
-: Process the `DVI` file and creates the output files.
+ Make:add("text", "echo hello, input file: ${input}")
-`Make:t4ht`
+The template can get a variable value from the parameters table using a
+`${var_name}` placeholder. Templates are executed using the operating system, so
+they should invoke existing OS commands.
-: Creates the CSS file.
-### Command function
-The `command` parameter can be either string template or function:
- Make:add("text", "echo hello, input file: ${input}")
- Make:add("function", function(params)
+### The `settings table` table
+
+
+The `settings table` parameter is optional. If it is present, it should be
+a table with new settings available in the command. It can also override the default
+`make4ht` settings for the defined command.
+
+ Make:add("sample_function", function(params)
for k, v in pairs(params) do
print(k..": "..v)
end, {custom="Hello world"}
)
-The template can get variable value from the parameters table using a
-`${var_name}` placeholder. Templates are executed using operating system, so
-they should invoke existing OS commands. Function commands may execute system
-commands using `os.execute` function.
-
-
-### Parameters table
-`parameters` parameter is optional, it can be table or `nil` value, which
-should be used if you want to use the `repetition` parameter, but don't want to
-modify the parameters table.
+### Repetition
-The table with default parameters is passed to all commands, they can be accessed from command functions
-or templates. When you specify your own parameters in the command definition, these additional
-parameters are added to the default parameters table for this particular
-command. You can override the default parameters in the parameters table.
+The `repetition` parameter specifies the maximum number of executions of the
+particular command. This is used for instance for `tex4ht` and `t4ht`
+commands, as they should be executed only once in the compilation. They would
+be executed multiple times when they are included in the build file, as they
+are called by `make4ht` by default. Because these commands allow only one
+`repetition`, the second execution is blocked.
+### Expected exit code
+You can set the expected exit code from a command with a `correct_exit` key in the
+settings table. The compilation will be terminated when the command returns a
+different exit code.
-The default parameters are following:
+ Make:add("biber", "biber ${input}", {correct_exit=0})
-`htlatex`
+Commands that execute lua functions can return the numerical values using the `return` statement.
-: used compiler
-`input`
+This mechanism isn't used for \TeX, because it doesn't differentiate between fatal and non-fatal errors.
+It returns the same exit code in all cases. Because of this, log parsing is used for a fatal error detection instead.
+Error code value `1` is returned in the case of a fatal error, `0` is used
+otherwise. The `Make.testlogfile` function can be used in the build file to
+detect compilation errors in the TeX log file.
-: it is output file name in fact
-`tex_file`
+## Provided commands
-: input TeX file
+`Make:htlatex`
-`latex_par`
+: One call to the TeX engine with special configuration for loading of the `tex4ht.sty` package.
-: parameters to `latex`
+`Make:latexmk`
-`packages`
+: Use `Latexmk` for the document compilation. `tex4ht.sty` will be loaded automatically.
-: insert additional LaTeX code which is inserted before `\documentclass`.
- Useful for passing options to packages or additional packages loading
+`Make:tex4ht`
-`tex4ht_sty_par`
+: Process the `DVI` file and create output files.
-: parameters to `tex4ht.sty`
+`Make:t4ht`
-`tex4ht_par`
+: Create the CSS file and generate images.
-: parameters to the `tex4ht` application
+`Make:biber`
-`t4ht_par`
+: Process bibliography using the `biber` command.
-: parameters to the `t4ht` application
+`Make:bibtex`
-`outdir`
+: Process bibliography using the `bibtex` command.
-: the output directory
+`Make:xindy`
-`repetition`
+: Generate index using Xindy index processor.
-: limit number of command execution.
+`Make:makeindex`
-`correct_exit`
+: Generate index using the Makeindex command.
-: expected `exit code` from the command. The compilation will be terminated
- if the command `exit code` is different.
+`Make:xindex`
+: Generate index using the Xindex command.
-### Repetition
-Repetition is number which specifies a maximal number of executions of the
-particular command. This is used for instance for `tex4ht` and `t4ht`
-commands, as they should be executed only once in the compilation. They would
-be executed multiple times if you include them in the build file because they
-are called by `make4ht` by default. Because these commands allow only one
-`repetition`, the second execution will be blocked.
+## File matches
+\label{sec:postprocessing}
-### Expected exit code
+Another type of action that can be specified in the build file is
+`Make:match`. It can be used to post-process the generated files:
-You can set the expected exit code from a command with a `correct_exit` key in the
-parameters table. The compilation will be stopped when the command returns a
-different exit code.
+ Make:match("html$", "tidy -m -xml -utf8 -q -i ${filename}")
-This mechanism isn't used for LaTeX (for all TeX engines and formats, in
-fact), because it doesn't differentiate between fatal and non-fatal errors, and
-it returns the same exit code in all cases. Log parsing is used because of
-that, error code `1` is returned in the case of fatal error, `0` is used
-otherwise. The `Make.testlogfile` function can be used in the build file to
-detect compilation errors in the TeX log file.
+The above example will clean all output `HTML` files using the `tidy` command.
-## File matches
+The `Make:match` action tests output filenames using a `Lua` pattern matching function.
+It executes a command or a function, specified in the second argument, on files
+whose filenames match the pattern.
-Another type of action which can be specified in the build file is
-`match`. It can be called on the generated files:
+The commands to be executed can be specified as strings. They can contain
+`${var_name}` placeholders, which are replaced with corresponding variables
+from the `settings` table. The templating system was described in
+subsection \ref{sec:commandfunction}. There is an additional variable
+available in this table, called `filename`. It contains the name of the current
+output file.
- Make:match("html$", "tidy -m -xml -utf8 -q -i ${filename}")
-It tests output file names with `Lua` pattern matching and on matched items will
-execute a command or a function, specified in the second argument. Commands may be
-specified as strings, the templates will be expanded, `${var_name}` placeholders
-will be replaced with corresponding variables from the `parameters` table,
-described in the previous subsection. One additional variable is available:
-`filename`. It contains the name of the current output file.
+If a function is used instead, it will get two parameters. The first one is the
+current filename, the second one is the `settings` table.
-The above example will clean all output `HTML` files using the `tidy` command.
+ Make:match("html$", function(filename, settings)
+ print("Post-processing file: ".. filename)
+ print("Available settings")
+ for k,v in pairs(settings)
+ print(k,v)
+ end
+ return true
+ end)
-If function is used instead, it will get two parameters.
-The first one is a current filename, the second one
-table with parameters.
+Multiple post-processing actions can be executed on each filename. The Lua
+action functions can return an exit code. If the exit code is false, the execution
+of the post-processing chain for the current file will be terminated.
+### Filters
+\label{sec:filters}
+To make it easier to post-process the generated files using the `match`
+actions, `make4ht` provides a filtering mechanism thanks to the
+`make4ht-filter` module.
-### Filters
+The `make4ht-filter` module returns a function that can be used for the filter
+chain building. Multiple filters can be chained into a pipeline. Each filter
+can modify the string that is passed to it from the previous filters. The
+changes are then saved to the processed file.
-Some default `match` actions which can be used are available from the
-`make4ht-filter` module. It contains some functions which are useful for
-fixing some `tex4ht` bugs or shortcomings.
+Several built-in filters are available, it is also possible to create new ones.
-Example:
+Example that use only the built-in filters:
local filter = require "make4ht-filter"
local process = filter{"cleanspan", "fixligatures", "hruletohr"}
Make:htlatex()
+ Make:match("html$",process)
+
+Function `filter` accepts also function arguments, in this case this function
+takes file contents as a parameter and modified contents are returned.
+
+Example with custom filter:
+
+ local filter = require "make4ht-filter"
+ local changea = function(s) return s:gsub("a","z") end
+ local process = filter{"cleanspan", "fixligatures", changea}
Make:htlatex()
Make:match("html$",process)
-The `make4ht-filter` module return a function which can be used for the filter
-chain building. Multiple filters can be chained, each of them can modify the string
-which was modified by the previous filters. The changes are then saved to the
-processed file.
+In this example, spurious span elements are joined, ligatures are decomposed,
+and then all letters "a" are replaced with "z" letters.
-Built-in filters are:
+Built-in filters are the following:
cleanspan
@@ -363,19 +510,18 @@ fixligatures
hruletohr
: `\hrule` commands are translated to series of underscore characters
- by `tex4ht`, this filter translate these underscores to `<hr>` elements
+ by \TeX4ht, this filter translates these underscores to `<hr>` elements
entites
-: convert prohibited named entities to numeric entities (currently, only
- `&nbsp;`, as it causes validation errors, and `tex4ht` is producing it
- sometimes)
+: convert prohibited named entities to numeric entities (only
+ `&nbsp;` currently).
fix-links
: replace colons in local links and `id` attributes with underscores. Some
cross-reference commands may produce colons in internal links, which results in
- validation error.
+ a validation error.
mathjaxnode
@@ -388,36 +534,24 @@ odttemplate
: use styles from another `ODT` file serving as a template in the current
document. It works for the `styles.xml` file in the `ODT` file. During
the compilation, this file is named as `\jobname.4oy`.
+ \label{sec:odttemplate}
staticsite
-: create HTML files in format suitable for static site generators such as [Jekyll](https://jekyllrb.com/)
+: create HTML files in a format suitable for static site generators such as [Jekyll](https://jekyllrb.com/)
svg-height
: some SVG images produced by `dvisvgm` seem to have wrong dimensions. This filter
tries to set the correct image size.
-Function `filter` accepts also function arguments, in this case this function
-takes file contents as a parameter and modified contents are returned.
-
-Example:
-
- local filter = require "make4ht-filter"
- local changea = function(s) return s:gsub("a","z") end
- local process = filter{"cleanspan", "fixligatures", changea}
- Make:htlatex()
- Make:htlatex()
- Make:match("html$",process)
-
-In this example, spurious span elements are joined, ligatures are decomposed,
-and then all letters 'a' are replaced with 'z' letters.
### DOM filters
-DOM filters use the [`LuaXML`](https://ctan.org/pkg/luaxml) library to modify
+DOM filters are variants of filters that use the
+[`LuaXML`](https://ctan.org/pkg/luaxml) library to modify
directly the XML object. This enables more powerful
-operations than the regex based filters from the previous section.
+operations than the regex-based filters from the previous section.
Example:
@@ -431,7 +565,11 @@ Available DOM filters:
aeneas
: [Aeneas](https://www.readbeyond.it/aeneas/) is a tool for automagical synchronization of text and audio.
- This filter modifies the HTML code to support the synchronization.
+ This filter modifies the HTML code to support synchronization.
+
+collapsetoc
+
+: collapse table of contents to contain only top-level sectioning level and sections on the current page.
fixinlines
@@ -443,296 +581,350 @@ idcolons
joincharacters
-: join consecutive `<span>` or `<mn>` elements.
+: join consecutive `<span>` or `<mn>` elements. This DOM filter supersedes the `cleanspan` filter.
joincolors
-: many `<span>` elements with unique `id` attribute are created when \LaTeX\ colors are being used in the document.
- CSS rule is added for each of these elements, which may result in
- substantial grow of the CSS file. This filter replace these rules with a
+: many `<span>` elements with unique `id` attributes are created when \LaTeX\ colors are being used in the document.
+ A CSS rule is added for each of these elements, which may result in
+ substantial growth of the CSS file. This filter replaces these rules with a
common one for elements with the same color value.
odtimagesize
: set correct dimensions for images in the ODT format. It is loaded by default for the ODT output.
+odtpartable
+
+: resolve tables nested inside paragraphs, which is invalid in the ODT format.
+
+tablerows
+
+: remove spurious rows from HTML tables.
+
t4htlinks
: fix hyperlinks in the ODT format.
-### make4ht-aeneas-config package
-Companion for the `aeneas` DOM filter is the `make4ht-aeneas-config` plugin. It
-can be used to write Aeneas configuration file or execute Aeneas on the
-generated HTML files.
-Available functions:
+## Image conversion
+\label{sec:imageconversion}
-write\_job(parameters)
+It is possible to convert parts of the \LaTeX\ input as pictures. It can be used
+for preserving the appearance of math or diagrams, for example.
-: write Aenas job configuration to `config.xml` file. See the [Aeneas
- documentation](https://www.readbeyond.it/aeneas/docs/clitutorial.html#processing-jobs)
- for more information about jobs.
+These pictures are stored in a special `DVI` file, which can be processed by
+a `DVI` to image commands, such as `dvipng` or `dvisvgm`.
-execute(parameters)
+This conversion is normally configured in the `tex4ht.env` file. This file
+is system dependent and it has quite an unintuitive syntax.
+The configuration is processed by the `t4ht` application and the conversion
+command is called for all pictures.
-: execute Aeneas.
+It is possible to disable `t4ht` image processing and configure image
+conversion in the build file using the `image` action:
-process\_files(parameters)
+ Make:image("png$",
+ "dvipng -bg Transparent -T tight -o ${output} -pp ${page} ${source}")
-: process the audio and generated subtitle files.
+`Make:image` takes two parameters, a `Lua` pattern to match the image name, and
+the action.
-By default, the `smil` file is created. It is assumed that there is audio file
-in `mp3` format named as the TeX file. It is possible to use different formats
-and file names using mapping.
+Action can be either a string template with the conversion command
+or a function that takes a table with parameters as an argument.
-The configuration options can be passed directly to the functions or set using
-`filter_settings "aeneas-config" {parameters}` function.
+There are three parameters:
+ - `output` - output image filename
+ - `source` - `DVI` file with the pictures
+ - `page` - page number of the converted image
-Available parameters:
+## The `mode` variable
+The `mode` variable available in the build process contains
+contents of the `--mode` command line option. It can be used to run some commands
+conditionally. For example:
-lang
+ if mode == "draft" then
+ Make:htlatex{}
+ else
+ Make:htlatex{}
+ Make:htlatex{}
+ Make:htlatex{}
+ end
-: document language. It is interfered from the HTML file, so it is not necessary to set it.
+In this example (which is the default configuration used by `make4ht`),
+\LaTeX\ is called only once when `make4ht` is called with the `draft` mode:
+
+ make4ht -m draft filename
-map
+## The `settings` table
+\label{sec:settings}
-: mapping between HTML, audio and subtitle files. More info bellow.
+It is possible to access the parameters outside commands, file matches
+and image conversion functions. For example, to convert the document to
+the `OpenDocument Format (ODT)`, the following settings can be used. They are
+based on the `oolatex` command:
-text\_type
+ settings.tex4ht_sty_par = settings.tex4ht_sty_par ..",ooffice"
+ settings.tex4ht_par = settings.tex4ht_par .. " ooffice/! -cmozhtf"
+ settings.t4ht_par = settings.t4ht_par .. " -cooxtpipes -coo "
-: type of the input. The `aeneas` DOM filter produces `unparsed` text type.
+(Note that it is possible to use the `--format odt` option
+which is superior to the previous code. This example is intended just as an
+illustration)
-id\_sort
+There are some functions to simplify access to the settings:
-: sorting of id attributes. Default value is `numeric`.
+`set_settings{parameters}`
-id\_regex
+: overwrite settings with values from a passed table
-: regular expression to parse the id attributes.
+`settings_add{parameters}`
-sub\_format
+: add values to the current settings
-: generated subtitle format. Default `smil`.
+`filter_settings "filter name" {parameters}`
+: set settings for a filter
-Additional parameters for the job configuration file:
+`get_filter_settings(name)`
-- description
-- prefix
-- config\_name
-- keep\_config
+: get settings for a filter
+For example, it is possible to simplify the sample from the previous code listings:
-It is possible to generate multiple HTML files from the LaTeX source. For
-example, `tex4ebook` generates separate file for each chapter or section. It is
-possible to set options for each HTML file, in particular names of the
-corresponding audio files. This mapping is done using `map` parameter.
+ settings_add {
+ tex4ht_sty_par =",ooffice",
+ tex4ht_par = " ooffice/! -cmozhtf",
+ t4ht_par = " -cooxtpipes -coo "
+ }
-Example:
+Settings for filters and extensions can be set using `filter_settings`:
- filter_settings "aeneas-config" {
- map = {
- ["sampleli1.html"] = {audio_file="sample.mp3"},
- ["sample.html"] = false
- }
+
+ filter_settings "test" {
+ hello = "world"
}
-Table keys are the configured file names. It is necessary to insert them as
-`["filename.html"]`, because of Lua syntax rules.
+These settings can be retrieved in the extensions and filters using the `get_filter_settings` function:
-This example maps audio file `sample.mp3` to a section subpage. The main HTML
-file, which may contain title and table of contents doesn't have a
-corresponding audio file.
+ function test(input)
+ local options = get_filter_settings("test")
+ print(options.hello)
+ return input
+ end
+
+### Default settings
-Filenames of the sub files corresponds to the chapter numbers, so they are not
-stable when a new chapter is added. It is possible to request file names
-interfered from the chapter titles using the `sec-filename` option or `tex4ht`.
+The default parameters are the following:
-Available `map` options:
+`htlatex`
+: used \TeX\ engine
-audio\_file
+`input`
-: the corresponding audio file
+: content of `\jobname`, see also the `tex_file` parameter.
-sub\_file
+`interaction`
-: name of the generated subtitle file
+: interaction mode for the \TeX\ engine. The default value is `batchmode` to
+ suppress user input on compilation errors. It also suppresses most of the \TeX\
+ compilation log output. Use the `errorstopmode` for the default behavior.
-The following options are same as their counter-parts from the main parameters table and generally don't need to be set:
+`tex_file`
-- prefix
-- file\_desc
-- file\_id
-- text\_type
-- id\_sort
-- id\_prefix
-- sub\_format
+: input \TeX\ filename
+`latex_par`
-Full example:
+: command line parameters to the \TeX\ engine
+`packages`
- local domfilter = require "make4ht-domfilter"
- local aeneas_config = require "make4ht-aeneas-config"
-
- filter_settings "aeneas-config" {
- map = {
- ["krecekli1.xhtml"] = {audio_file="krecek.mp3"},
- ["krecek.xhtml"] = false
- }
- }
-
- local process = domfilter {"aeneas"}
- Make:match("html$", process)
+: additional \LaTeX\ code inserted before `\documentclass`.
+ Useful for passing options to packages used in the document or to load additional packages.
- if mode == "draft" then
- aeneas_config.process_files {}
- else
- aeneas_config.execute {}
- end
+`tex4ht_sty_par`
+: options for `tex4ht.sty`
+`tex4ht_par`
+: command line options for the `tex4ht` command
-## Image conversion
+`t4ht_par`
-It is possible to convert parts of LaTeX input to pictures, it is used
-for example for math or diagrams in `tex4ht`.
+: command line options for the `t4ht` command
-These pictures are stored in a special `dvi` file, which can be processed by
-the `dvi to image` commands.
+`outdir`
-This conversion is normally configured in the `env file`,
-which is system dependent and which has a bit unintuitive syntax.
-This configuration is processed by the `t4ht` application and conversion
-commands are called for all pictures.
+: the output directory
-It is possible to disable `t4ht` image processing and configure image
-conversion in the build file:
+`correct_exit`
- Make:image("png$",
- "dvipng -bg Transparent -T tight -o ${output} -pp ${page} ${source}")
+: expected `exit code` from the command. The compilation will be terminated
+ if the exit code of the executed command has a different value.
-`Make:image` takes two parameters, pattern to match image name and action.
-Action can be either string template with conversion command,
-or function which takes a table with parameters as an argument.
+# Configuration file {#configfile}
-There are three parameters:
+It is possible to globally modify the build settings using the configuration
+file. It is a special version of a build file where the global settings can be set.
- - `output` - output image file name
- - `source` - `dvi` file with the pictures
- - `page` - page number of the converted image
+Common tasks for the configuration file can be a declaration of the new commands,
+loading of the default filters or specification of a default build sequence.
-## The `mode` variable
+One additional functionality not available in the build files are commands for
+enabling and disabling of extensions.
-There is global `mode` variable available in the build file. It contains
-contents of the `--mode` command line option. It can be used to run some commands
-conditionally. For example:
- if mode == "draft" then
- Make:htlatex{}
- else
- Make:htlatex{}
- Make:htlatex{}
- Make:htlatex{}
- end
+## Location
-In this example (which is the default configuration used by `make4ht`),
-LaTeX is called only once when `make4ht` is called with `draft` mode:
-
- make4ht -m draft filename
+The configuration file can be saved either in the
+`$HOME/.config/make4ht/config.lua` file, or in the `.make4ht` file placed in
+the current directory or it's parent directories (up to the `$HOME` directory).
-## The `settings` table
+## Additional commands
-You may want to access to the parameters also outside commands, file matches
-and image conversion functions. For example, if you want to convert your file to
-the `OpenDocument Format (ODT)`, you can use the following settings, based on the `oolatex`
-command:
+There are two additional commands:
- settings.tex4ht_sty_par = settings.tex4ht_sty_par ..",ooffice"
- settings.tex4ht_par = settings.tex4ht_par .. " ooffice/! -cmozhtf"
- settings.t4ht_par = settings.t4ht_par .. " -cooxtpipes -coo "
+`Make:enable_extension(name)`
-There are some functions to ease access to the settings:
+: require extension
-`set_settings{parameters}`
+`Make:disable_extension(name)`
-: overwrite settings with values from a passed table
+: disable extension
-`settings_add{parameters}`
+## Example
-: add values to the current settings
+The following example of the configuration file adds support for the `biber` command, requires
+`common_domfilters` extension and requires MathML
+output for math.
-`filter_settings "filter name" {parameters}`
+ Make:add("biber", "biber ${input}")
+ Make:enable_extension "common_domfilters"
+ settings_add {
+ tex4ht_sty_par =",mathml"
+ }
-: set settings for a filter
+<!--
+# Development
-`get_filter_settings(name)`
+## Custom filters
-: get settings for a filter
+## New extensions
+## How to add a new output format
-Using these functions, it is possible to simplify the settings for the `ODT` format:
+-->
- settings_add {
- tex4ht_sty_par =",ooffice",
- tex4ht_par = " ooffice/! -cmozhtf",
- t4ht_par = " -cooxtpipes -coo "
- }
+# List of available settings for filters and extensions.
-Settings for filters and extensions can be set using `filter_settings`:
+These settings may be set using `filter_settings` function in a build file or in the `make4ht` configuration file.
-
- filter_settings "test" {
- hello = "world"
- }
-These settings can be read in the extensions and filters using `get_filter_settings`:
- function test(input)
- local options = get_filter_settings("test")
- print(options.hello)
- return input
- end
-
-## List of available settings for filters and extensions.
+## Indexing commands
+
+The indexing commands (like `xindy` or `makeindex`) use some common settings.
+
+idxfile
+
+: name of the `.idx` file. Default value is `\jobname.idx`.
+
+indfile
+
+: name of the `.ind` file. Default value is the same as `idxfile` with the file extension changed to `.ind`.
+
+Each indexing command can have some additional settings.
+
+### The `xindy` command
+
+encoding
+
+: text encoding of the `.idx` file. Default value is `utf8`.
+
+language
+
+: index language. Default language is English.
+
+modules
+
+: table with names of additional `Xindy` modules to be used.
+
+### The `makeindex` command
+
+options
-These settings may be set using `filter_settings` function.
-### The `tidy` extension
+: additional command line options for the Makeindex command.
+
+### The `xindex` command
+
+options
+
+
+: additional command line options for the Xindex command.
+
+language
+
+: document language
+
+## The `tidy` extension
options
: command line options for the `tidy` command. Default value is `-m -utf8 -w 512 -q`.
-### The `fixinlines` dom filter
+## The `collapsetoc` dom filter
+
+`toc_query`
+
+: CSS selector for selecting the table of contents container.
+
+`title_query`
+
+: CSS selector for selecting all elements that contain the section ID attribute.
+
+`toc_levels`
+
+: table containing a hierarchy of classes used in TOC
+
+Default values:
+
+ filter_settings "collapsetoc" {
+ toc_query = ".tableofcontents",
+ title_query = ".partHead a, .chapterHead a, .sectionHead a, .subsectionHead a",
+ toc_levels = {"partToc", "chapterToc", "sectionToc", "subsectionToc", "subsubsectionToc"}
+ }
+
+## The `fixinlines` dom filter
inline\_elements
-: table of inline elements which shouldn't be direct descendants of the `body` element. The element names should be table keys, the values should be true.
+: table of inline elements that shouldn't be direct descendants of the `body` element. The element names should be table keys, the values should be true.
Example
filter_settings "fixinlines" {inline_elements = {a = true, b = true}}
-### The `joincharacters` dom filter
+## The `joincharacters` dom filter
-charelements
+charclasses
-: table of elements which should be joined if several instances with the same value of `class` attribute are side by side.
+: table of elements that should be concatenated when two or more of such elements with the same value of the `class` attribute are placed one after another.
Example
- filter_settings "joincharacters" { charclases = { span=true, mn = true}}
+ filter_settings "joincharacters" { charclasses = { span=true, mn = true}}
-### The `mathjaxnode` filter {#mathjaxsettings}
+## The `mathjaxnode` filter {#mathjaxsettings}
options
@@ -746,12 +938,12 @@ Example
cssfilename
-: `mjpage` puts some CSS code into the HTML pages. `mathjaxnode` extracts this information and saves it to a standalone CSS file. Default CSS filename is `mathjax-chtml.css`
+: the `mjpage` command puts some CSS code into the HTML pages. `mathjaxnode` extracts this information and saves it to a standalone CSS file. Default CSS filename is `mathjax-chtml.css`
fontdir
-: directory with MathJax font files. This option enables use of local fonts, which
- is usefull in Epub conversion, for example. The font directory should be
+: directory with MathJax font files. This option enables the use of local fonts, which
+ is useful in the conversion to ePub, for example. The font directory should be
sub-directory of the current directory. Only TeX font is supported at the moment.
Example
@@ -761,21 +953,8 @@ Example
fontdir="fonts/TeX/woff/"
}
-### The `aeneas` filter
-
-skip\_elements
-
-: List of CSS selectors that match elements which shouldn't be processed. Default value: `{ "math", "svg"}`.
-
-id\_prefix
-
-: prefix used in the ID attribute forming.
-
-sentence\_match
-
-: Lua pattern used to match a sentence. Default value: `"([^%.^%?^!]*)([%.%?!]?)"`.
-### The `staticsite` filter and extension
+## The `staticsite` filter and extension
site\_root
@@ -783,15 +962,22 @@ site\_root
map
-: table where keys are patterns that match filenames, value contains destination directoryfor matched files, relative to the `site_root` (it is possible to use `..` to swich to parent directory).
+: a hash table where keys contain patterns that match filenames and values contain
+destination directory for the matched files. The destination directories are
+relative to the `site_root` (it is possible to use `..` to switch to a parent
+directory).
file\_pattern
-: pattern used for filename generation. It is possible to use string templates and format strings for `os.date` function. Default value of `%Y-%m-%d-${input}` creates names in the form of `YYYY-MM-DD-file_name`.
+: a pattern used for filename generation. It is possible to use string templates
+and format strings for `os.date` function. The default pattern `%Y-%m-%d-${input}`
+creates names in the form of `YYYY-MM-DD-file_name`.
header
-: table with variables to be set in the YAML header in HTML files. If the table value is a function, it is executed with current parameters and HTML page DOM object as arguments.
+: table with variables to be set in the YAML header in HTML files. If the
+table value is a function, it is executed with current parameters and HTML page
+DOM object as arguments.
Example:
@@ -811,7 +997,7 @@ Example:
}
}
-### The `dvisvgm_hashes` extension
+## The `dvisvgm_hashes` extension
options
@@ -819,108 +1005,182 @@ options
cpu_cnt
-: number of processor cores used for conversion. The extension tries to detect the available cores automatically by default.
+: the number of processor cores used for the conversion. The extension tries to detect the available cores automatically by default.
parallel_size
-: number of pages used in each Dvisvgm call. The extension detects changed pages in the DVI file and construct multiple calls to Dvisvgm with only changed pages.
+: the number of pages used in each Dvisvgm call. The extension detects changed
+pages in the DVI file and constructs multiple calls to Dvisvgm with only changed
+pages.
scale
: SVG scaling.
-### The `odttemplate` filter and extension
+## The `odttemplate` filter and extension
template
: filename of the template `ODT` file
-`odttemplate` can also get the template filename from the `odttemplate` option from `tex4ht_sty_par` parameter. It can be set useing following command line call, for example:
+`odttemplate` can also get the template filename from the `odttemplate` option from `tex4ht_sty_par` parameter. It can be set using the following command line call:
make4ht -f odt+odttemplate filename.tex "odttemplate=template.odt"
+## The `aeneas` filter
+skip\_elements
-# Configuration file {#configfile}
+: List of CSS selectors that match elements that shouldn't be processed. Default value: `{ "math", "svg"}`.
-It is possible to globally modify the build settings using the configuration
-file. New compilation commands can be added, extensions can be loaded or
-disabled and settings can be set.
+id\_prefix
-## Location
+: prefix used in the ID attribute forming.
-The configuration file can be saved either in
-`$HOME/.config/make4ht/config.lua` or in `.make4ht` in the current directory or
-it's parents (up to `$HOME`).
+sentence\_match
-## Additional commands
+: Lua pattern used to match a sentence. Default value: `"([^%.^%?^!]*)([%.%?!]?)"`.
-There are two additional commands:
+## The `make4ht-aeneas-config` package
-`Make:enable_extension(name)`
+Companion for the `aeneas` DOM filter is the `make4ht-aeneas-config` plugin. It
+can be used to write the Aeneas configuration file or execute Aeneas on the
+generated HTML files.
-: require extension
+Available functions:
-`Make:disable_extension(name)`
+write\_job(parameters)
-: disable extension
+: write Aenas job configuration to `config.xml` file. See the [Aeneas
+ documentation](https://www.readbeyond.it/aeneas/docs/clitutorial.html#processing-jobs)
+ for more information about jobs.
-## Example
+execute(parameters)
-The following configuration add support for the `biber` command, requires
-`common_domfilters` extension and requires MathML
-output for math.
+: execute Aeneas.
- Make:add("biber", "biber ${input}")
- Make:enable_extension "common_domfilters"
- settings_add {
- tex4ht_sty_par =",mathml"
+process\_files(parameters)
+
+: process the audio and generated subtitle files.
+
+
+By default, a `SMIL` file is created. It is assumed that there is an audio file
+in the `mp3` format, named as the \TeX\ file. It is possible to use different formats
+and filenames using mapping.
+
+The configuration options can be passed directly to the functions or set using
+`filter_settings "aeneas-config" {parameters}` function.
+
+
+### Available parameters
+
+
+lang
+
+: document language. It is interfered from the HTML file, so it is not necessary to set it.
+
+map
+
+: mapping between HTML, audio and subtitle files. More info below.
+
+text\_type
+
+: type of input. The `aeneas` DOM filter produces an `unparsed` text type.
+
+id\_sort
+
+: sorting of id attributes. The default value is `numeric`.
+
+id\_regex
+
+: regular expression to parse the id attributes.
+
+sub\_format
+
+: generated subtitle format. The default value is `smil`.
+
+
+### Additional parameters for the job configuration file
+
+- description
+- prefix
+- config\_name
+- keep\_config
+
+
+
+It is possible to generate multiple HTML files from the \LaTeX\ source. For
+example, `tex4ebook` generates a separate file for each chapter or section. It is
+possible to set options for each HTML file, in particular names of the
+corresponding audio files. This mapping is done using the `map` parameter.
+
+Example:
+
+ filter_settings "aeneas-config" {
+ map = {
+ ["sampleli1.html"] = {audio_file="sample.mp3"},
+ ["sample.html"] = false
+ }
}
-# Command line options
+Table keys are the configured filenames. It is necessary to insert them as
+`["filename.html"]`, because of Lua syntax rules.
- make4ht - build system for tex4ht
- Usage:
- make4ht [options] filename ["tex4ht.sty op." "tex4ht op."
- "t4ht op" "latex op"]
- -b,--backend (default tex4ht) Backend used for xml generation.
- possible values: tex4ht or lua4ht
- -c,--config (default xhtml) Custom config file
- -d,--output-dir (default "") Output directory
- -e,--build-file (default nil) If build file name is different
- than `filename`.mk4
- -f,--format (default nil) Output file format
- -l,--lua Use lualatex for document compilation
- -m,--mode (default default) Switch which can be used in the makefile
- -n,--no-tex4ht Disable dvi file processing with tex4ht command
- -s,--shell-escape Enables running external programs from LaTeX
- -u,--utf8 For output documents in utf8 encoding
- -v,--version Print version number
- -x,--xetex Use xelatex for document compilation
- <filename> (string) Input file name
+This example maps audio file `sample.mp3` to a section subpage. The main HTML
+file, which may contain title and table of contents doesn't have a
+corresponding audio file.
+
+Filenames of the subfiles correspond to the chapter numbers, so they are not
+stable when a new chapter is added. It is possible to request filenames
+derived from the chapter titles using the `sec-filename` option for `tex4ht.sty`.
+### Available `map` options
-You can still invoke `make4ht` in the same way as `htlatex`:
- make4ht filename "customcfg, charset=utf-8" "-cunihtf -utf8" "-dfoo"
+audio\_file
-Note that this will not use `make4ht` routines for output directory making and
-copying. If you want to use them, change the line above to:
+: the corresponding audio file
- make4ht -d foo filename "customcfg, charset=utf-8" "-cunihtf -utf8"
+sub\_file
-This call has the same effect as the following:
+: name of the generated subtitle file
+
+The following options are the same as their counterparts from the main parameters table and generally, don't need to be set:
+
+- prefix
+- file\_desc
+- file\_id
+- text\_type
+- id\_sort
+- id\_prefix
+- sub\_format
+
+
+### Full example
+
+
+ local domfilter = require "make4ht-domfilter"
+ local aeneas_config = require "make4ht-aeneas-config"
+
+ filter_settings "aeneas-config" {
+ map = {
+ ["krecekli1.xhtml"] = {audio_file="krecek.mp3"},
+ ["krecek.xhtml"] = false
+ }
+ }
+
+ local process = domfilter {"aeneas"}
+ Make:match("html$", process)
+
+ if mode == "draft" then
+ aeneas_config.process_files {}
+ else
+ aeneas_config.execute {}
+ end
- make4ht -u -c customcfg -d foo filename
-Output directory doesn't have to exist, it will be created automatically.
-Specified path can be relative to current directory, or absolute:
- make4ht -d use/current/dir/ filename
- make4ht -d ../gotoparrentdir filename
- make4ht -d ~/gotohomedir filename
- make4ht -d c:\documents\windowspathsareworkingtoo filename
# Troubleshooting
@@ -932,24 +1192,26 @@ Sometimes, you may get a similar error:
It may be caused by a following `make4ht` invocation:
- make4ht hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8" -d foo
+ $ make4ht hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8" -d foo
The command line option parser is confused by mixing options for `make4ht` and
-`tex4ht` in this case and tries to interpret the `-cunihtf -utf8`, which are
-options for `tex4ht` command as `make4ht` options. To fix that, you can either
-move the `-d foo` directly after `make4ht` command:
+\TeX4ht\ in this case. It tries to interpret the `-cunihtf -utf8`, which are
+options for the `tex4ht` command, as `make4ht` options. To fix that, try to
+move the `-d foo` directly after the `make4ht` command:
- make4ht -d foo hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8"
+ $ make4ht -d foo hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8"
-Another option is to add a space before `tex4ht` options:
+Another option is to add a space before the `tex4ht` options:
- make4ht hello.tex "customcfg,charset=utf-8" " -cunihtf -utf8" -d foo
+ $ make4ht hello.tex "customcfg,charset=utf-8" " -cunihtf -utf8" -d foo
The former way is preferable, though.
## Filenames containing spaces
-`tex4ht` cannot handle filenames containing spaces. `make4ht` thus replaces spaces in input file names with underscores, so generated XML files use underscores instead of spaces as well.
+`tex4ht` command cannot handle filenames containing spaces. to fix this issue, `make4ht`
+replaces spaces in the input filenames with underscores. The generated
+XML filenames use underscores instead of spaces as well.
## Filenames containing non-ASCII characters
diff --git a/support/make4ht/changelog.tex b/support/make4ht/changelog.tex
index 8d46424dec..f2b0fd7735 100644
--- a/support/make4ht/changelog.tex
+++ b/support/make4ht/changelog.tex
@@ -3,6 +3,262 @@
\begin{itemize}
\item
+ 2019/11/01
+
+ \begin{itemize}
+ \tightlist
+ \item
+ version 0.3 released
+ \item
+ added \texttt{Make:makeindex}, \texttt{Make:xindex} and
+ \texttt{Make:bibtex} commands.
+ \end{itemize}
+\item
+ 2019/10/25
+
+ \begin{itemize}
+ \tightlist
+ \item
+ modified the \texttt{Make:xindy} command to use the indexing
+ mechanism.
+ \end{itemize}
+\item
+ 2019/10/24
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added functions for preparing and cleaning of the index files in
+ \texttt{make4ht-indexing.lua}.
+ \end{itemize}
+\item
+ 2019/10/23
+
+ \begin{itemize}
+ \tightlist
+ \item
+ replaced \texttt{os.execute} function with \texttt{mkutils.execute}.
+ It uses the logging mechanism for the output.
+ \item
+ finished transforming of filters, extensions and formats to the
+ logging system.
+ \end{itemize}
+\item
+ 2019/10/22
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added \texttt{tablerows} domfilter.
+ \item
+ added the \texttt{tablerows} domfilter to the
+ \texttt{common\_domfilters} extension.
+ \item
+ converted most of the filters to use the logging mechanism.
+ \end{itemize}
+\item
+ 2019/10/20
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added \texttt{status} log level.
+ \end{itemize}
+\item
+ 2019/10/18
+
+ \begin{itemize}
+ \tightlist
+ \item
+ converted most print commands to use the logging mechanism.
+ \item
+ added \texttt{output} log level used for printing of the commands
+ output.
+ \end{itemize}
+\item
+ 2019/10/17
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added \texttt{-\/-loglevel} CLI parameter.
+ \item
+ added logging mechanism.
+ \item
+ moved \texttt{htlatex} related code to \texttt{make4ht-htlatex.lua}
+ from \texttt{mkutils.lua}
+ \end{itemize}
+\item
+ 2019/10/11
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added \texttt{xindy} settings.
+ \item
+ added simple regular expression to detect errors in the log file,
+ because log parsing can be slow.
+ \end{itemize}
+\item
+ 2019/10/09
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added the \texttt{interaction} parameter for the \texttt{htlatex}
+ command. The default value is \texttt{batchmode} to suppress the
+ user input on errors, and to suppress full log output to the
+ terminal.
+ \item
+ added the \texttt{make4ht-errorlogparser} module. It is used to
+ parse errors in the \texttt{htlatex} run unless \texttt{interaction}
+ is set to \texttt{errorstopmode}.
+ \end{itemize}
+\item
+ 2019/10/08
+
+ \begin{itemize}
+ \tightlist
+ \item
+ set up Github Actions pipeline to compile the documentation to HTML
+ and publish it at https://www.kodymirus.cz/make4ht/make4ht-doc.html.
+ \end{itemize}
+\item
+ 2019/10/07
+
+ \begin{itemize}
+ \tightlist
+ \item
+ don't move the \texttt{common\_domfilters} extension to the first
+ place in the file matches pipeline. We may want to run \texttt{tidy}
+ or regex filters first, to fix XML validation errors.
+ \end{itemize}
+\item
+ 2019/10/04
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added HTML documentation.
+ \end{itemize}
+\item
+ 2019/09/27
+
+ \begin{itemize}
+ \tightlist
+ \item
+ don't convert Latin 1 entities to Unicode in the
+ \texttt{entities\_to\_unicode} extension.
+ \end{itemize}
+\item
+ 2019/09/20
+
+ \begin{itemize}
+ \tightlist
+ \item
+ fixed bugs in the temporary directory handling for the ODT output.
+ \end{itemize}
+\item
+ 2019/09/13
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added \texttt{preprocess\_input} extension. It enables compilation
+ of formats supported by \href{https://yihui.name/knitr/}{Knitr}
+ (\texttt{.Rnw}, \texttt{.Rtex}, \texttt{.Rmd}, \texttt{.Rrst}) and
+ also Markdown and reStructuredText formats.
+ \end{itemize}
+\item
+ 2019/09/12
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added support for the ODT files in \texttt{common\_domfilters}
+ extension.
+ \item
+ renamed \texttt{charclases} option for the \texttt{joincharacters}
+ DOM filter to \texttt{charclasses}.
+ \item
+ don't execute the \texttt{fixentities} filter before Xtpipes, it
+ makes no sense.
+ \end{itemize}
+\item
+ 2019/09/11
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added support for Biber in the build files.
+ \end{itemize}
+\item
+ 2019/08/28
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added support for input from \texttt{stdin}.
+ \end{itemize}
+\item
+ 2019/08/27
+
+ \begin{itemize}
+ \tightlist
+ \item
+ fixed \texttt{-jobname} detection regex.
+ \item
+ added function \texttt{handle\_jobname}.
+ \item
+ added the \texttt{-\/-jobname} command line option.
+ \end{itemize}
+\item
+ 2019/08/26
+
+ \begin{itemize}
+ \tightlist
+ \item
+ quote file names and paths in \texttt{xtpipes} and \texttt{tidy}
+ invocation.
+ \end{itemize}
+\item
+ 2019/08/25
+
+ \begin{itemize}
+ \tightlist
+ \item
+ the issue tracker link in the help message is now configurable.
+ \item
+ fixed bug in the XeTeX handling: the \texttt{.xdv} argument for
+ \texttt{tex4ht} wasn't used if command line arguments for
+ \texttt{tex4ht} were present.
+ \end{itemize}
+\item
+ 2019/07/03
+
+ \begin{itemize}
+ \tightlist
+ \item
+ new DOM filter: \texttt{odtpartable}. It fixes tables nested in
+ paragraphs in the ODT format.
+ \end{itemize}
+\item
+ 2019/06/13
+
+ \begin{itemize}
+ \tightlist
+ \item
+ new DOM extension: \texttt{collapsetoc}.
+ \end{itemize}
+\item
+ 2019/05/29
+
+ \begin{itemize}
+ \tightlist
+ \item
+ new module: \texttt{make4ht-indexing} for working with index files.
+ \end{itemize}
+\item
2019/05/24
\begin{itemize}
@@ -18,7 +274,7 @@
\begin{itemize}
\tightlist
\item
- fixed infinite loop bug in the \texttt{dvisvgm\_hashes} extension
+ fixed infinite loop bug in the \texttt{dvisvgm\_hashes} extension.
\end{itemize}
\item
2019/04/09
diff --git a/support/make4ht/domfilters/make4ht-aeneas.lua b/support/make4ht/domfilters/make4ht-aeneas.lua
index 0b93c95840..4a21c89332 100644
--- a/support/make4ht/domfilters/make4ht-aeneas.lua
+++ b/support/make4ht/domfilters/make4ht-aeneas.lua
@@ -5,6 +5,7 @@
--
local cssquery = require "luaxml-cssquery"
local mkutils = require "mkutils"
+local log = logging.new "aeneas"
-- Table of CSS selectors to be skipped.
local skip_elements = { "math", "svg"}
@@ -111,7 +112,7 @@ local function aeneas(dom, par)
then
local idtitle
idtitle, id = make_id(id, id_prefix)
- print(el._name, first_child._text)
+ log:debug(el._name, first_child._text)
el:set_attribute("id", idtitle)
return el
end
diff --git a/support/make4ht/domfilters/make4ht-collapsetoc.lua b/support/make4ht/domfilters/make4ht-collapsetoc.lua
new file mode 100644
index 0000000000..0b77b9dbbb
--- /dev/null
+++ b/support/make4ht/domfilters/make4ht-collapsetoc.lua
@@ -0,0 +1,198 @@
+local domobject = require "luaxml-domobject"
+
+local filter = require "make4ht-filter"
+local log = logging.new "collapsetoc"
+
+
+local toc_levels = {"partToc", "chapterToc", "sectionToc", "subsectionToc", "subsubsectionToc"}
+
+local debug_print = function(...) log:debug(...) end
+
+
+-- return toc element type and it's id
+local function get_id(el)
+ local name = el:get_attribute "class"
+ local id
+ local a = el:query_selector "a" or {}
+ local first = a[1]
+ if first then
+ local href = first:get_attribute "href"
+ id = href:match("#(.+)$")
+ end
+ return name, id
+end
+
+local function remove_sections(part_elements, currentpart)
+ -- we need to remove toc entries from the previous part if the
+ -- current document isn't part of it
+ if currentpart == false then
+ for _, part in ipairs(part_elements) do
+ part:remove_node()
+ end
+ end
+end
+
+local function make_toc_selector(toc_levels)
+ local level_classes = {}
+ for _, l in ipairs(toc_levels) do
+ level_classes[#level_classes+1] = "." .. l
+ end
+ return table.concat(level_classes, ", ")
+end
+
+local function find_toc_levels(toc)
+ -- find toc levels used in the document
+ -- it ecpects that sectioning levels appears in the TOC in the descending order
+ local levels, used = {}, {}
+ local level = 1
+ -- we still expect the standard class names
+ local toc_selector = make_toc_selector(toc_levels)
+ for _, el in ipairs(toc:query_selector(toc_selector)) do
+ local class = el:get_attribute("class")
+ if not used[class] then
+ table.insert(levels, class)
+ used[class] = level
+ level = level + 1
+ end
+ end
+ return levels, used
+end
+
+local function remove_levels(toc, matched_ids)
+ -- sort the matched sections according to their levels
+ local levels, level_numbers = find_toc_levels(toc)
+ debug_print("remove levels", #levels)
+ -- for _, level in ipairs(levels) do
+ -- print(level, level_numbers[level], matched_ids[level])
+ -- end
+ local keep_branch = false
+ local matched_levels = {}
+ local toc_selector = make_toc_selector(toc_levels)
+ for _, el in ipairs(toc:query_selector(toc_selector)) do
+ local name, id = get_id(el)
+ -- get the current toc hiearchy level
+ local level = level_numbers[name]
+ -- get the matched id for the current level
+ local level_id = matched_ids[name]
+ local matched = level_id == id
+ local remove = true
+ -- we will use this for toc elements at lower hiearchy than is the top sectioning level on the page
+ if matched then keep_branch = true end
+ -- find the parent level to the current section level
+ local parent_level = toc_levels[level - 1]
+ local parent_matched = matched_levels[parent_level]
+ if matched then
+ debug_print("match",name, id, level_id, level, #levels)
+ keep_branch = true
+ remove = false
+ elseif level==1 then
+ -- don't remove the top level
+ debug_print("part",name, id, level_id, level)
+ remove = false
+ matched_levels = {}
+ if not matched then keep_branch = false end
+ elseif keep_branch then
+ -- if level >= (#levels - 1) then
+ if level > matched_ids._levels then
+ debug_print("level",name, id, level_id, level, parent_level, parent_matched)
+ remove = false
+ elseif matched_ids.ids[id] then
+ debug_print("matched id",name, id, level_id, level, parent_level, parent_matched)
+ remove = false
+ elseif parent_matched then
+ debug_print("parent_matched",name, id, level_id, level, parent_level, parent_matched)
+ keep_branch = false
+ remove = false
+ end
+ -- else
+ -- print("remove", name, id, level_id, level, #matched_ids)
+ -- end
+ elseif parent_matched then
+ debug_print("parent_matched alternative",name, id, level_id, level, parent_level, parent_matched)
+ remove = false
+ else
+ debug_print("else",name, id, level_id, level, keep_branch)
+ keep_branch = false
+ end
+ matched_levels[name] = matched
+ if remove then
+ el:remove_node()
+ --print(name,id, level_id, matched)
+ end
+ end
+
+end
+
+
+
+
+
+-- local process = filter{ function(s)
+ -- local dom = domobject.parse(s)
+local function collapse_toc(dom, par)
+ -- set options
+ local options = get_filter_settings "collapsetoc"
+ local toc_query = par.toc_query or options.toc_query or ".tableofcontents"
+ local title_query = par.title_query or options.title_query or ".partHead a, .chapterHead a, .sectionHead a, .subsectionHead a"
+ toc_levels = par.toc_levels or options.toc_levels or toc_levels
+ -- keep track of current id of each sectioning level
+ local current_ids, matched_ids = {}, {_levels = 0, ids = {}}
+ -- search sectioning elements
+ local titles = dom:query_selector(title_query)
+ local section_ids = {}
+ for _, x in ipairs(titles) do
+ -- get their id attributes and save them in a table
+ section_ids[#section_ids+1] = x:get_attribute("id")
+ end
+
+ -- we need to retrieve the first table of contents
+ local toctables = dom:query_selector(toc_query) or {}
+ -- process only when we got a TOC
+ debug_print("toc query", toc_query, #toctables)
+ if #toctables > 0 then
+ local tableofcontents = toctables[1]
+ -- all toc entries are in span elements
+ local toc = tableofcontents:query_selector("span")
+ local currentpart = false
+ local part_elements = {}
+ for _, el in ipairs(toc) do
+ -- get sectioning level and id of the current TOC entry
+ local name, id = get_id(el)
+ -- set the id of the current sectioning level
+ current_ids[name] = id
+ for _, sectid in ipairs(section_ids) do
+ -- detect if the current TOC entry match some sectioning element in the current document
+ if id == sectid then
+ currentpart = true
+ -- save the current id as a matched id
+ matched_ids.ids[id] = true
+ -- copy the TOC hiearchy for the current toc level
+ for i, level in ipairs(toc_levels) do
+ -- print("xxx",i, level, current_ids[level])
+ matched_ids[level] = current_ids[level]
+ -- set the maximum matched level
+ if i > matched_ids._levels then matched_ids._levels = i end
+ if level == name then break end
+ end
+ debug_print("match", id)
+ end
+ end
+ end
+ remove_levels(tableofcontents, matched_ids)
+
+ -- remove sections from the last part
+ -- remove_sections(part_elements,currentpart)
+ -- remove unneeded br elements
+ local br = tableofcontents:query_selector("br")
+ for _, el in ipairs(br) do el:remove_node() end
+ -- remove unneded whitespace
+ for _, el in ipairs(tableofcontents:get_children()) do
+ if el:is_text() then el:remove_node() end
+ end
+ end
+ return dom
+end
+
+return collapse_toc
+
+-- Make:match("html$", process)
diff --git a/support/make4ht/domfilters/make4ht-joincharacters.lua b/support/make4ht/domfilters/make4ht-joincharacters.lua
index 99d3058d7d..30ed6e1382 100644
--- a/support/make4ht/domfilters/make4ht-joincharacters.lua
+++ b/support/make4ht/domfilters/make4ht-joincharacters.lua
@@ -1,4 +1,4 @@
-local charclases = {
+local charclasses = {
span=true,
mn = true,
}
@@ -8,7 +8,7 @@ local function join_characters(obj,par)
-- tex4ht to just one object.
local par = par or {}
local options = get_filter_settings "joincharacters"
- local charclases = options.charclases or par.charclases or charclases
+ local charclasses = options.charclasses or par.charclasses or charclasses
obj:traverse_elements(function(el)
local get_name = function(curr)
@@ -18,7 +18,7 @@ local function join_characters(obj,par)
return next_el:get_attribute("class")
end
local is_span = function(next_el)
- return charclases[get_name(next_el)]
+ return charclasses[get_name(next_el)]
end
local function get_next(curr, class)
@@ -33,7 +33,7 @@ local function join_characters(obj,par)
end
end
-- loop over all elements and test if the current element is in a list of
- -- processed elements (charclases)
+ -- processed elements (charclasses)
if is_span(el) then
local next_el = get_next(el)
-- loop over the following elements and test whether they are of the same type
diff --git a/support/make4ht/domfilters/make4ht-joincolors.lua b/support/make4ht/domfilters/make4ht-joincolors.lua
index 94a3a054e6..730f66a7a0 100644
--- a/support/make4ht/domfilters/make4ht-joincolors.lua
+++ b/support/make4ht/domfilters/make4ht-joincolors.lua
@@ -1,4 +1,5 @@
local cssfiles = {}
+local log = logging.new "joincolors"
-- keep mapping between span ids and colors
@@ -45,7 +46,7 @@ local function process_css_files(dom)
for _, el in ipairs(dom:query_selector("link")) do
local href = el:get_attribute("href") or ""
if not cssfiles[href] and href:match("css$") then
- print("Load CSS file ", href)
+ log:debug("Load CSS file ", href)
cssfiles[href] = true
process_css(href)
end
diff --git a/support/make4ht/domfilters/make4ht-odtimagesize.lua b/support/make4ht/domfilters/make4ht-odtimagesize.lua
index 4ce8f0d92e..2b87372fdb 100644
--- a/support/make4ht/domfilters/make4ht-odtimagesize.lua
+++ b/support/make4ht/domfilters/make4ht-odtimagesize.lua
@@ -1,3 +1,4 @@
+local log = logging.new "odtimagesize"
-- set correct dimensions to frames around images
return function(dom)
local frames = dom:query_selector("draw|frame")
@@ -9,7 +10,7 @@ return function(dom)
local height = image:get_attribute("svg:height")
if widht then frame:set_attribute("svg:width", width) end
if height then frame:set_attribute("svg:height", height) end
- print("image dimensions", width, height)
+ log:debug("image dimensions", width, height)
end
end
return dom
diff --git a/support/make4ht/domfilters/make4ht-odtpartable.lua b/support/make4ht/domfilters/make4ht-odtpartable.lua
new file mode 100644
index 0000000000..f4e84b55d9
--- /dev/null
+++ b/support/make4ht/domfilters/make4ht-odtpartable.lua
@@ -0,0 +1,9 @@
+-- find all tables inside paragraphs, replace the found paragraphs with the child table
+return function(dom)
+ for _,table in ipairs(dom:query_selector("text|p table|table")) do
+ -- replace the paragraph by its child element
+ local parent = table:get_parent()
+ parent:replace_node(table)
+ end
+ return dom
+end
diff --git a/support/make4ht/domfilters/make4ht-tablerows.lua b/support/make4ht/domfilters/make4ht-tablerows.lua
new file mode 100644
index 0000000000..155c24529a
--- /dev/null
+++ b/support/make4ht/domfilters/make4ht-tablerows.lua
@@ -0,0 +1,58 @@
+local log = logging.new ("tablerows")
+return function(dom)
+ local is_empty_row = function(row)
+ local not_empty = false
+ local element_count = 0
+ -- ignore hline rows
+ local row_class = row:get_attribute("class")
+ if row_class == "hline" or row_class == "cline" then return false end
+ -- detect if the row contain only one empty child
+ for _,child in ipairs(row:get_children() or {}) do
+ if child:is_element() then
+ element_count = element_count + 1
+ -- empty rows contain only one element, it is not empty otherwise
+ if element_count > 1 then return false end
+ -- detect if it contains only whitespace
+ not_empty = child:get_text():gsub("%s","") ~= "" or not_empty
+ end
+ end
+ -- print("element count", element_count, not_empty)
+ return element_count == 1 and not_empty == false
+ end
+ local is_not_styled = function(row, css)
+ -- get the id attribute and escape it, so it can be used in regexp
+ local id = row:get_attribute("id")
+ if not id then return true end -- no styling without id
+ local search_term = "%#" .. id:gsub("%-", "%%-")
+ -- if the CSS file contains the row id (<td> elements can also have id
+ -- that matches this pattern, so we should keep the row if we match them too)
+ return not css:match(search_term)
+ end
+ local load_css_files = function()
+ -- the empty rows can be styled using CSS, for example configuration for
+ -- Booktabs does that. We shouldn't remove such rows.
+ local cssfiles = {}
+ for _, link in ipairs(dom:query_selector("head link")) do
+ local src = link:get_attribute("href")
+ if src then
+ local f = io.open(src, "r")
+ if f then
+ local contents = f:read("*all")
+ f:close()
+ table.insert(cssfiles, contents)
+ end
+ end
+ end
+ return table.concat(cssfiles, "\n")
+ end
+ local css = load_css_files()
+ for _, tbl in ipairs(dom:query_selector("table")) do
+ -- find the empty rows
+ for _, row in ipairs(tbl:query_selector("tr")) do
+ if is_empty_row(row) and is_not_styled(row, css) then row:remove_node() end
+ end
+
+ end
+ return dom
+end
+
diff --git a/support/make4ht/extensions/common_domfilters.lua b/support/make4ht/extensions/common_domfilters.lua
index 7c9a2dfaea..9399492d90 100644
--- a/support/make4ht/extensions/common_domfilters.lua
+++ b/support/make4ht/extensions/common_domfilters.lua
@@ -1,25 +1,34 @@
local M = {}
+-- this variable will hold the output format name
+local current_format
+
local filter = require "make4ht-domfilter"
-- local process = filter {"fixinlines", "idcolons", "joincharacters" }
-- filters support only html formats
function M.test(format)
- if format == "odt" then return false end
+ current_format = format
+ -- if format == "odt" then return false end
return true
end
function M.modify_build(make)
- local process = filter {"fixinlines", "idcolons", "joincharacters"}
- make:match("html$", process)
- local matches = make.matches
- -- the filters should be first match to be executed, especially if tidy
- -- should be executed as well
- if #matches > 1 then
- local last = matches[#matches]
- table.insert(matches, 1, last)
- matches[#matches] = nil
+ -- number of filters that should be moved to the beginning
+ local count = 0
+ if current_format == "odt" then
+ -- some formats doesn't make sense in the ODT format
+ local process = filter {"joincharacters"}
+ local charclasses = {mn = true, ["text:span"] = true}
+ make:match("4oo$", process, {charclasses= charclasses})
+ -- match math documents
+ make:match("4om$", process, {charclasses= charclasses})
+ count = 2
+ else
+ local process = filter {"fixinlines", "idcolons", "joincharacters", "tablerows"}
+ make:match("html$", process)
+ count = 1
end
return make
end
diff --git a/support/make4ht/extensions/dvisvgm_hashes.lua b/support/make4ht/extensions/dvisvgm_hashes.lua
index 83010ac388..87f58abd57 100644
--- a/support/make4ht/extensions/dvisvgm_hashes.lua
+++ b/support/make4ht/extensions/dvisvgm_hashes.lua
@@ -1,6 +1,7 @@
local dvireader = require "make4ht-dvireader"
local mkutils = require "mkutils"
local filter = require "make4ht-filter"
+local log = logging.new "dvisvgm_hashes"
local dvisvgm_par = {}
@@ -149,7 +150,7 @@ end
local function execute_dvisvgm(idvfile, pages)
if #pages < 1 then return nil, "No pages to convert" end
local command, logs = prepare_command(idvfile, pages)
- print(command)
+ log:info(command)
os.execute(command)
local generated_pages = {}
for _, dvisvgmlog in ipairs(logs) do
@@ -184,7 +185,7 @@ local function get_dvi_pages(arg)
local output_name = make_hashed_name(arg.input, hash)
output_map[tex4ht_name] = output_name
if not mkutils.file_exists(output_name) then
- print(output_name)
+ log:debug("output file: ".. output_name)
to_convert[#to_convert+1] = page
end
end
@@ -246,7 +247,7 @@ function M.modify_build(make)
function(str)
return str:gsub('src="([^"]+)', function(filename)
local newname = output_map[filename] or filename
- print("newname", newname)
+ log:debug("newname", newname)
return 'src="'.. newname
end)
end
diff --git a/support/make4ht/extensions/preprocess_input.lua b/support/make4ht/extensions/preprocess_input.lua
new file mode 100644
index 0000000000..3155a8a781
--- /dev/null
+++ b/support/make4ht/extensions/preprocess_input.lua
@@ -0,0 +1,108 @@
+-- preprocess R literate sources or Markdown files to LaTeX
+local M = {}
+local log = logging.new "preprocess_input"
+local mkutils = require "mkutils"
+
+local commands = {
+ knitr = { command = 'Rscript -e "library(knitr); knit(\'${tex_file}\', output=\'${tmp_file}\')"'},
+ pandoc = { command = 'pandoc -f ${input_format} -s -o \'${tmp_file}\' -t latex \'${tex_file}\''}
+}
+local filetypes = {
+ rnw = {sequence = {"knitr"} },
+ rtex = {sequence = {"knitr"}},
+ rmd = {sequence = {"knitr", "pandoc"}, options = {input_format = "markdown"}},
+ rrst = {sequence = {"knitr", "pandoc"}, options = {input_format = "rst"}},
+ md = {sequence = {"pandoc"}, options = {input_format = "markdown"}},
+ rst = {sequence = {"pandoc"}, options = {input_format = "rst"}},
+}
+
+
+local function execute_sequence(sequence, arg, make)
+ -- keep track of all generated tmp files
+ local temp_files = {}
+ -- the temporary file for the current compilation step
+ -- should become the tex_file for the next one. It doesn't
+ -- matter that it isn't TeX file in some cases
+ local previous_temp
+ for _, cmd_name in ipairs(sequence) do
+ local tmp_name = os.tmpname()
+ temp_files[#temp_files+1] = tmp_name
+ -- make the temp file name accessible to the executed commands
+ arg.tmp_file = tmp_name
+ -- the current temporary file should become tex_file in the next step
+ -- in the first execution of the compilation sequence we will use the
+ -- actual input file name
+ arg.tex_file = previous_temp or arg.tex_file
+ previous_temp = tmp_name
+ -- get the command to execute
+ local cmd = commands[cmd_name]
+ -- fill the command template with make4ht arguments and execute
+ local command = cmd.command % arg
+ log:info(command)
+ mkutils.execute(command)
+ end
+ return temp_files
+end
+
+local function get_preprocessing_pipeline(input_file)
+ -- detect the file extension
+ local extension = input_file:match("%.(.-)$")
+ if not extension then return nil, "Cannot get extension: " .. input_file end
+ -- the table with file actions is case insensitive
+ -- the extension is converted to lowercase in order
+ -- to support both .rnw and .Rnw
+ extension = string.lower(extension)
+ local matched = filetypes[extension]
+ if not matched then return nil, "Unsupported extension: " .. extension end
+ return matched
+end
+
+-- join the make4ht params and command options tables
+local function make_options(arg, command_options)
+ local options = {}
+ local command_options = command_options or {}
+ for k,v in pairs(arg) do options[k] = v end
+ for k,v in pairs(command_options) do options[k] = v end
+ return options
+end
+
+M.modify_build = function(make)
+
+ -- get access to the main argumens
+ local arg = make.params
+ -- get the execution sequence for the input format
+ local matched, msg = get_preprocessing_pipeline(arg.tex_file)
+ if not matched then
+ log:error("preprocess_input error: ".. msg)
+ return
+ end
+ -- prepare options
+ local options = make_options(arg, matched.options)
+ -- run the execution sequence
+ local temp_files = execute_sequence(matched.sequence or {}, options, make)
+ -- the last temporary file contains the actual TeX file
+ local last_temp_file = temp_files[#temp_files]
+ -- remove the intermediate temp files
+ if #temp_files > 2 then
+ for i = 1, #temp_files - 1 do
+ log:debug("Removing temporary file", temp_files[i])
+ os.remove(temp_files[i])
+ end
+ end
+ if last_temp_file then
+ -- update all commands in the .mk4 file with the temp file as tex_file
+ local update_params = function(cmd)
+ local params = cmd.params
+ params.tex_file = last_temp_file
+ params.is_tmp_file = true
+ end
+ for _, cmd in ipairs(make.build_seq) do
+ update_params(cmd)
+ end
+ -- also update the main params
+ update_params(make)
+ end
+ return make
+end
+
+return M
diff --git a/support/make4ht/extensions/staticsite.lua b/support/make4ht/extensions/staticsite.lua
index fcb6c09e17..a4204bc173 100644
--- a/support/make4ht/extensions/staticsite.lua
+++ b/support/make4ht/extensions/staticsite.lua
@@ -1,6 +1,7 @@
local M = {}
local filter = require "make4ht-filter"
local mkutils = require "mkutils"
+local log = logging.new "staticsite"
-- get the published file name
local function get_slug(settings)
@@ -15,7 +16,7 @@ local function get_slug(settings)
local f = io.open(published_name, "r")
local readtime = f:read("*line")
time = tonumber(readtime)
- print("Already pubslished", slug)
+ log:info("Already pubslished", slug)
f:close()
else
-- escape
diff --git a/support/make4ht/extensions/tidy.lua b/support/make4ht/extensions/tidy.lua
index cf8ea9785a..b381a05a8f 100644
--- a/support/make4ht/extensions/tidy.lua
+++ b/support/make4ht/extensions/tidy.lua
@@ -1,5 +1,6 @@
local M = {}
+local log = logging.new "tidy"
function M.test(format)
if format == "odt" then return false end
return true
@@ -41,7 +42,7 @@ function M.modify_build(make)
local settings = get_filter_settings "tidy" or {}
par.options = par.options or settings.options or "-utf8 -w 512 -ashtml -q"
local command = "tidy ${options} ${filename}" % par
- print("execute: ".. command)
+ log:info("running tidy: ".. command)
-- os.execute(command)
local run = io.popen(command, "r")
local result = run:read("*all")
diff --git a/support/make4ht/filters/make4ht-domfilter.lua b/support/make4ht/filters/make4ht-domfilter.lua
index 27d9ed871d..f6df769d60 100644
--- a/support/make4ht/filters/make4ht-domfilter.lua
+++ b/support/make4ht/filters/make4ht-domfilter.lua
@@ -1,6 +1,7 @@
local filter_lib = require "make4ht-filterlib"
local dom = require "luaxml-domobject"
local mkutils = require "mkutils"
+local log = logging.new "domfilter"
local function load_filter(filtername)
return require("domfilters.make4ht-"..filtername)
@@ -42,8 +43,8 @@ local function filter(filters, name)
return dom.parse(input)
end)
if not status then
- print("DOM parsing of " .. filename .. " failed:")
- print(domobject)
+ log:warning("DOM parsing of " .. filename .. " failed:")
+ log:warning(domobject)
return nil, "DOM parsing failed"
end
for _,f in pairs(sequence) do
@@ -53,7 +54,7 @@ local function filter(filters, name)
if output then
filter_lib.save_input_file(filename, output)
else
- print("DOM filter failed on ".. filename)
+ log:warning("DOM filter failed on ".. filename)
end
-- mark the filename as processed
processed_files[filename] = true
diff --git a/support/make4ht/filters/make4ht-entities-to-unicode.lua b/support/make4ht/filters/make4ht-entities-to-unicode.lua
index fb921a631a..4bf106a79f 100644
--- a/support/make4ht/filters/make4ht-entities-to-unicode.lua
+++ b/support/make4ht/filters/make4ht-entities-to-unicode.lua
@@ -6,10 +6,12 @@ local disabled = { ["&"] = "&amp;", ["<"] = "&lt;", [">"] = "&gt;"}
return function(content)
local content = content:gsub("%&%#x([A-Fa-f0-9]+);", function(entity)
-- convert hexadecimal entity to Unicode
- local newchar = utfchar(tonumber(entity, 16))
+ local char_number = tonumber(entity, 16)
+ -- fix for non-breaking spaces, LO cannot open file when they are present as Unicode
+ if char_number == 160 then return "&#xA0;" end
+ local newchar = utfchar(char_number)
-- we don't want to break XML validity with forbidden characters
return disabled[newchar] or newchar
end)
- -- the non-breaking space character cause issues in the ODT opening
- return content:gsub(string.char(160), "&#xA0;")
+ return content
end
diff --git a/support/make4ht/filters/make4ht-mathjaxnode.lua b/support/make4ht/filters/make4ht-mathjaxnode.lua
index 2b453e4255..748ecfd483 100644
--- a/support/make4ht/filters/make4ht-mathjaxnode.lua
+++ b/support/make4ht/filters/make4ht-mathjaxnode.lua
@@ -1,4 +1,5 @@
local mkutils = require "mkutils"
+local log = logging.new("mathjaxnode")
-- other possible value is page2svg
local mathnodepath = "mjpage"
-- options for MathJax command
@@ -13,13 +14,13 @@ local cssfilename = "mathjax-chtml.css"
local function compile(text)
local tmpfile = os.tmpname()
- print("Compile using MathJax")
+ log:info("Compile using MathJax")
local command = mathnodepath .. " ".. options .. " > " .. tmpfile
- print(command)
+ log:info(command)
local commandhandle = io.popen(command,"w")
commandhandle:write(text)
commandhandle:close()
- print("Result written to: ".. tmpfile)
+ log:info("Result written to: ".. tmpfile)
local f = io.open(tmpfile)
local content = f:read("*all")
f:close()
@@ -53,7 +54,7 @@ local function use_fonts(css)
if not face:match("url%(") then return face end
-- print(face)
local family, filename = face:match(family_pattern)
- print(family, filename)
+ log:info("use font: ",family, filename)
local newfile = string.format("%s/%s.%s", fontdir, filename, fontformat)
Make:add_file(newfile)
return family_build:format(family, fontdir, filename, fontformat, fontformat)
@@ -89,6 +90,6 @@ return function(text, arguments)
save_css(cssfile, css)
Make:add_file(cssfile)
-- print(css)
- print(cssfile)
+ log:info("CSS file: " .. cssfile)
return newtext
end
diff --git a/support/make4ht/filters/make4ht-staticsite.lua b/support/make4ht/filters/make4ht-staticsite.lua
index 6378f0440a..969d47ecaa 100644
--- a/support/make4ht/filters/make4ht-staticsite.lua
+++ b/support/make4ht/filters/make4ht-staticsite.lua
@@ -1,4 +1,5 @@
local domobj = require "luaxml-domobject"
+local log = logging.new("staticsite")
-- save the header settings in YAML format
local function make_yaml(tbl, level)
local t = {}
@@ -69,7 +70,6 @@ local function get_header(tbl)
end
return function(s,par)
- print(os.getenv "blog_home")
local dom = domobj.parse(s)
local properties = {}
local head = dom:query_selector("head")[1]
@@ -84,7 +84,7 @@ return function(s,par)
properties.styles = styles
local metas = {}
for _, meta in ipairs(head:query_selector("meta")) do
- print(meta:serialize())
+ log:debug("parsed meta: " .. meta:serialize())
table.insert(metas, {charset= meta:get_attribute("charset"), content = meta:get_attribute("content"), property = meta:get_attribute("property"), name = meta:get_attribute("name")})
end
properties.meta = metas
@@ -92,7 +92,7 @@ return function(s,par)
local body = dom:query_selector("body")[1]
- print(get_header(properties))
+ log:debug(get_header(properties))
-- return s
return get_header(properties) .. body:serialize():gsub("<body.->", ""):gsub("</body>", "")
end
diff --git a/support/make4ht/filters/make4ht-svg-height.lua b/support/make4ht/filters/make4ht-svg-height.lua
index 44e98748ea..bb9f8dbdc6 100644
--- a/support/make4ht/filters/make4ht-svg-height.lua
+++ b/support/make4ht/filters/make4ht-svg-height.lua
@@ -1,6 +1,8 @@
+local log = logging.new("svg-height")
-- Make:image("svg$", "dvisvgm -n -a -p ${page} -b preview -c 1.4,1.4 -s ${source} > ${output}")
+
local max = function(a,b)
return a > b and a or b
end
@@ -34,7 +36,7 @@ return function(svg)
max_height = get_max_height(path, max_height)
end
-- update the height only if the max_height is larger than height set in the SVG file
- print(max_height, height)
+ log:debug("max height and height", max_height, height)
if max_height > height then
svg = update_height(svg, max_height)
end
diff --git a/support/make4ht/formats/docbook.lua b/support/make4ht/formats/docbook.lua
index 9e5ffe9488..3bd79eb83e 100644
--- a/support/make4ht/formats/docbook.lua
+++ b/support/make4ht/formats/docbook.lua
@@ -6,6 +6,7 @@ local kpse = require "kpse"
local filter = require "make4ht-filter"
local domfilter = require "make4ht-domfilter"
local xtpipeslib = require "make4ht-xtpipes"
+local log = logging.new "docbook"
function M.prepare_parameters(settings, extensions)
settings.tex4ht_sty_par = settings.tex4ht_sty_par ..",docbook"
@@ -25,7 +26,7 @@ local function call_xtpipes(make)
make:match("xml$", matchfunction)
move_matches(make)
else
- print "Cannot locate xtpipes. Try to set TEXMFROOT variable to a root directory of your TeX distribution"
+ log:warning "Cannot locate xtpipes. Try to set TEXMFROOT variable to a root directory of your TeX distribution"
end
end
diff --git a/support/make4ht/formats/odt.lua b/support/make4ht/formats/odt.lua
index 64b8793e2a..c515a154a1 100644
--- a/support/make4ht/formats/odt.lua
+++ b/support/make4ht/formats/odt.lua
@@ -6,6 +6,7 @@ local kpse = require "kpse"
local filter = require "make4ht-filter"
local domfilter = require "make4ht-domfilter"
local xtpipeslib = require "make4ht-xtpipes"
+local log = logging.new "odt"
function M.prepare_parameters(settings, extensions)
@@ -23,9 +24,12 @@ Odtfile.__index = Odtfile
Odtfile.new = function(archivename)
local self = setmetatable({}, Odtfile)
- -- create temporary directory
+ -- create a temporary file
local tmpname = os.tmpname()
- tmpname = tmpname:match("([a-zA-Z0-9_%-]+)$")
+ -- remove a temporary file, we are interested only in the unique file name
+ os.remove(tmpname)
+ -- get the unique dir name
+ tmpname = tmpname:match("([a-zA-Z0-9_%-%.]+)$")
local status, msg = lfs.mkdir(tmpname)
if not status then return nil, msg end
-- make picture dir
@@ -68,10 +72,10 @@ function Odtfile:pack()
lfs.chdir(self.archivelocation)
-- make temporary mime type file
self:make_mimetype()
- os.execute(zip_command .. " -q0X " .. self.name .. " " .. self.mimetypename)
+ mkutils.execute(zip_command .. " -q0X " .. self.name .. " " .. self.mimetypename)
-- remove it, so the next command doesn't overwrite it
self:remove_mimetype()
- os.execute(zip_command .." -r " .. self.name .. " *")
+ mkutils.execute(zip_command .." -r " .. self.name .. " *")
lfs.chdir(currentdir)
mkutils.cp(self.archivelocation .. "/" .. self.name, self.name)
mkutils.delete_dir(self.archivelocation)
@@ -99,7 +103,7 @@ local function call_xtpipes(make)
move_matches(make)
move_matches(make)
else
- print "Cannot locate xtpipes. Try to set TEXMFROOT variable to a root directory of your TeX distribution"
+ log:warning "Cannot locate xtpipes. Try to set TEXMFROOT variable to a root directory of your TeX distribution"
end
end
@@ -111,7 +115,7 @@ local function prepare_output_files(lgfiles)
local group = groups[extension] or {}
table.insert(group, basename)
groups[extension] = group
- print(basename, extension)
+ log:debug("prepare output file", basename, extension)
end
return groups
end
@@ -130,7 +134,7 @@ function M.modify_build(make)
-- expanded in tex4ht.env in Miktex or Debian
call_xtpipes(make)
-- fix the image dimensions wrongly set by xtpipes
- local domfilters = domfilter {"t4htlinks"}
+ local domfilters = domfilter {"t4htlinks", "odtpartable"}
make:match("4oo$", domfilters)
-- execute it before xtpipes, because we don't want xtpipes to mess with t4htlink elements
move_matches(make)
@@ -138,9 +142,6 @@ function M.modify_build(make)
local fixentities = filter {"entities-to-unicode"}
make:match("4oo", fixentities)
make:match("4om", fixentities)
- -- execute fixentities as first
- move_matches(make)
- move_matches(make)
-- build the ODT file. This match must be executed as a last one
-- this will be executed as a first match, just to find the last filename
@@ -161,7 +162,7 @@ function M.modify_build(make)
local odtname = basename .. ".odt"
local odt,msg = Odtfile.new(odtname)
if not odt then
- print("Cannot create ODT file: " .. msg)
+ log:error("Cannot create ODT file: " .. msg)
end
-- helper function for simple file moving
local function move_file(group, dest)
diff --git a/support/make4ht/make4ht b/support/make4ht/make4ht
index 564bc6e7a0..b1ff84f700 100755
--- a/support/make4ht/make4ht
+++ b/support/make4ht/make4ht
@@ -3,8 +3,10 @@
-- This package is subject of LPPL license, version 1.3
kpse.set_program_name("luatex")
-
-
+-- logging should be globally available
+logging = require "make4ht-logging"
+if os.type == "windows" then logging.use_colors = false end
+local log = logging.new("make4ht")
local make4ht = require("make4ht-lib")
local lapp = require("lapp-mk4")
local mkutils = require("mkutils")
@@ -13,7 +15,7 @@ local mk_config = require("make4ht-config")
-- args string is here just as sample, we dont pass it it to
-- mkparams.get_args() so default args string is used
local args = [[
-make4ht - build system for tex4ht
+make4ht - build system for TeX4ht
Usage:
make4ht [options] filename ["tex4ht.sty op." "tex4ht op." "t4ht op" "latex op"]
-c,--config (default xhtml) Custom config file
@@ -27,13 +29,16 @@ make4ht [options] filename ["tex4ht.sty op." "tex4ht op." "t4ht op" "latex op"]
-- set version number. the template should be replaced by the
-- actual version number by the build script
-local version = "v0.2g"
+local version = "v0.3"
mkparams.version_number = version
local args = mkparams.get_args()
local parameters = mkparams.process_args(args)
+log:status("Conversion started")
+log:status("Input file: " .. parameters.tex_file)
+
local mode = parameters.mode
local build_file = parameters.build_file
@@ -48,7 +53,7 @@ if allowed_output_formats[ output_format ] then
else
-- load html5 as default output format
if output_format then
- print("Cannot load output format: ".. output_format)
+ log:warning("Cannot load output format: ".. output_format)
end
formatter = mkutils.load_output_format("html5")
end
@@ -56,7 +61,7 @@ end
local configname = "make4ht"
local conffile = mk_config.find_config(configname) or mk_config.find_xdg_config(configname)
if conffile then
- print("Using configuration file: " .. conffile)
+ log:info("Using configuration file: " .. conffile)
mkutils.load_config(parameters, conffile)
end
local extensions = formatter.prepare_extensions(parameters.extensions)
@@ -96,15 +101,26 @@ end
-- allow output formats to modify the build process at the end
make = formatter.modify_build(make) or make
+make:match("tmp$", function(filename,params)
+ -- remove the temporary tex file created when the input comes from the standard input
+ if params.is_tmp_file then
+ log:info("removing temp file", params.tex_file)
+ os.remove(params.tex_file)
+ end
+ -- prevent copying of the temporary file to the outdir
+ return false,"tmp file" end
+)
-make:match("tmp$", function() return false,"tmp file" end)
make:match(".*",function(filename,par)
local outdir = '' --par["outdir"] and par["outdir"] .."/" or ''
if par['outdir'] ~= "" then outdir = par['outdir'] .. '/' end
- print("outdir: "..outdir)
+ log:info("outdir: "..outdir)
local outfilename = outdir .. filename
mkutils.copy(filename,outfilename)
return true
end)
make:run()
+
+log:status("Conversion finished")
+
diff --git a/support/make4ht/make4ht-doc.pdf b/support/make4ht/make4ht-doc.pdf
index 0b7dd091ea..506be1df42 100644
--- a/support/make4ht/make4ht-doc.pdf
+++ b/support/make4ht/make4ht-doc.pdf
Binary files differ
diff --git a/support/make4ht/make4ht-doc.tex b/support/make4ht/make4ht-doc.tex
index 6815e50606..24f94aa131 100644
--- a/support/make4ht/make4ht-doc.tex
+++ b/support/make4ht/make4ht-doc.tex
@@ -3,19 +3,24 @@
\usepackage[english]{babel}
\usepackage{hyperref}
+\newcommand\authormail[1]{\footnote{\textless\url{#1}\textgreater}}
\ifdefined\HCode
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
-\else
+\renewcommand\authormail[1]{\space\textless\Link[#1]{}{}#1\EndLink\textgreater}
+\fi
+
\usepackage{fontspec}
\setmainfont{TeX Gyre Schola}
-\setmonofont[Scale=MatchLowercase]{Inconsolatazi4}
-\fi
+% \setmonofont[Scale=MatchLowercase]{Inconsolatazi4}
+\IfFontExistsTF{Noto Sans Mono Regular}{%
+ \setmonofont[Scale=MatchLowercase]{Noto Sans Mono Regular}
+}{\setmonofont{NotoMono-Regular.ttf}}
+\usepackage{upquote}
+
\usepackage{microtype}
\providecommand\tightlist{\relax}
\title{The \texttt{make4ht} build system}
-\author{Michal Hoftich\footnote{\url{michal.h21@gmail.com}}}
+\author{Michal Hoftich\authormail{michal.h21@gmail.com}}
\date{Version \version\\\gitdate}
\begin{document}
\maketitle
diff --git a/support/make4ht/make4ht-errorlogparser.lua b/support/make4ht/make4ht-errorlogparser.lua
new file mode 100644
index 0000000000..b48957c651
--- /dev/null
+++ b/support/make4ht/make4ht-errorlogparser.lua
@@ -0,0 +1,97 @@
+local m = {}
+
+local function get_filename(chunk)
+ local filename = chunk:match("([^\n^%(]+)")
+ local first = filename:match("^[%./\\]+")
+ if first then return filename end
+ return false
+end
+
+local function get_chunks(text)
+ -- parse log for particular included files
+ local chunks = {}
+ -- each file is enclosed in matching () brackets
+ local newtext = text:gsub("(%b())", function(a)
+ local chunk = string.sub(a,2,-2)
+ -- if no filename had been found in the chunk, it is probably not file chunk
+ -- so just return the original text
+ local filename = get_filename(chunk)
+ if not filename then return a end
+ local children, text = get_chunks(chunk)
+ table.insert(chunks, {filename = filename, text = text, children = children})
+ return ""
+ end)
+ return chunks, newtext
+end
+
+
+function print_chunks(chunks, level)
+ local level = level or 0
+ local indent = string.rep(" ", level)
+ for k,v in ipairs(chunks) do
+ print(indent .. (v.filename or "?"), string.len(v.text))
+ print_chunks(v.children, level + 1)
+ end
+end
+
+local function parse_errors(text)
+ local lines = {}
+ local errors = {}
+ local find_line_no = false
+ local error_lines = {}
+ for line in text:gmatch("([^\n]+)") do
+ lines[#lines+1] = line
+ end
+ for i = 1, #lines do
+ local line = lines[i]
+ -- error lines start with !
+ local err = line:match("^!(.+)")
+ -- error lines can be on following lines
+ -- the format is l.number
+ local lineno = line:match("^l%.([0-9]+)")
+ if err then
+ errors[#errors+1] = err
+ -- we didn't find error line number since previous error, insert
+ if find_line_no then
+ error_lines[#error_lines+1] = false
+ end
+ find_line_no = true
+ elseif lineno then
+ find_line_no = false
+ error_lines[#error_lines+1] = tonumber(lineno)
+ end
+ i = i + 1
+ end
+ return errors, error_lines
+end
+
+
+local function get_errors(chunks, errors)
+ local errors = errors or {}
+ for _, v in ipairs(chunks) do
+ local current_errors, error_lines = parse_errors(v.text)
+ for i, err in ipairs(current_errors) do
+ table.insert(errors, {filename = v.filename, error = err, line = error_lines[i] })
+ end
+ errors = get_errors(v.children, errors)
+ end
+ return errors
+end
+
+
+function m.parse(log)
+ local chunks, newtext = get_chunks(log)
+ -- save the unparsed text that contains system messages
+ table.insert(chunks, {text = newtext, children = {}})
+ -- print_chunks(chunks)
+ local errors = get_errors(chunks)
+ -- for _,v in ipairs(errors) do
+ -- print("error", v.filename, v.line, v.error)
+ -- end
+ return errors, chunks
+end
+
+
+m.print_chunks = print_chunks
+
+return m
diff --git a/support/make4ht/make4ht-htlatex.lua b/support/make4ht/make4ht-htlatex.lua
new file mode 100644
index 0000000000..214972e8bb
--- /dev/null
+++ b/support/make4ht/make4ht-htlatex.lua
@@ -0,0 +1,75 @@
+local log = logging.new "htlatex"
+
+local error_logparser = require("make4ht-errorlogparser")
+
+local Make = Make or {}
+-- this function reads the LaTeX log file and tries to detect fatal errors in the compilation
+local function testlogfile(par)
+ local logfile = par.input .. ".log"
+ local f = io.open(logfile,"r")
+ if not f then
+ log:warning("Make4ht: cannot open log file "..logfile)
+ return 1
+ end
+ local content = f:read("*a")
+ -- test only the end of the log file, no need to run search functions on everything
+ local text = content:sub(-1256)
+ f:close()
+ -- parse log file for all errors in non-interactive modes
+ if par.interaction~="errorstopmode" then
+ -- the error log parsing can be slow, so detect errors first
+ if content:match("\n!") then
+ local errors, chunks = error_logparser.parse(content)
+ if #errors > 0 then
+ log:error("Compilation errors in the htlatex run")
+ log:error("Filename", "Line", "Message")
+ for _, err in ipairs(errors) do
+ log:error(err.filename or "?", err.line or "?", err.error)
+ end
+ end
+ end
+ end
+ -- test for fatal errors
+ if text:match("No pages of output") or text:match("TeX capacity exceeded, sorry") or text:match("That makes 100 errors") or text:match("Emergency stop") then return 1 end
+ return 0
+end
+
+
+-- Make this function available in the build files
+Make.testlogfile = testlogfile
+--env.Make:add("htlatex", "${htlatex} ${latex_par} '\\\makeatletter\\def\\HCode{\\futurelet\\HCode\\HChar}\\def\\HChar{\\ifx\"\\HCode\\def\\HCode\"##1\"{\\Link##1}\\expandafter\\HCode\\else\\expandafter\\Link\\fi}\\def\\Link#1.a.b.c.{\\g@addto@macro\\@documentclasshook{\\RequirePackage[#1,html]{tex4ht}\\let\\HCode\\documentstyle\\def\\documentstyle{\\let\\documentstyle\\HCode\\expandafter\\def\\csname tex4ht\\endcsname{#1,html}\\def\\HCode####1{\\documentstyle[tex4ht,}\\@ifnextchar[{\\HCode}{\\documentstyle[tex4ht]}}}\\makeatother\\HCode '${config}${tex4ht_sty_par}'.a.b.c.\\input ' ${input}")
+
+-- template for calling LaTeX with tex4ht loaded
+Make.latex_command = "${htlatex} --interaction=${interaction} ${latex_par} '\\makeatletter"..
+"\\def\\HCode{\\futurelet\\HCode\\HChar}\\def\\HChar{\\ifx\"\\HCode"..
+"\\def\\HCode\"##1\"{\\Link##1}\\expandafter\\HCode\\else"..
+"\\expandafter\\Link\\fi}\\def\\Link#1.a.b.c.{\\g@addto@macro"..
+"\\@documentclasshook{\\RequirePackage[#1,html]{tex4ht}${packages}}"..
+"\\let\\HCode\\documentstyle\\def\\documentstyle{\\let\\documentstyle"..
+"\\HCode\\expandafter\\def\\csname tex4ht\\endcsname{#1,html}\\def"..
+"\\HCode####1{\\documentstyle[tex4ht,}\\@ifnextchar[{\\HCode}{"..
+"\\documentstyle[tex4ht]}}}\\makeatother\\HCode ${tex4ht_sty_par}.a.b.c."..
+"\\input \"\\detokenize{${tex_file}}\"'"
+
+
+local m = {}
+
+function m.htlatex(par)
+ local command = Make.latex_command
+ local devnull = " > /dev/null 2>&1"
+ if os.type == "windows" then
+ command = command:gsub("'",'')
+ devnull = " > nul 2>&1"
+ end
+ par.interaction = par.interaction or "batchmode"
+ -- remove all terminal output from the batchmode
+ if par.interaction == "batchmode" then
+ command = command .. devnull
+ end
+ command = command % par
+ log:info("LaTeX call: "..command)
+ os.execute(command)
+ return Make.testlogfile(par)
+end
+
+return m
diff --git a/support/make4ht/make4ht-indexing.lua b/support/make4ht/make4ht-indexing.lua
new file mode 100644
index 0000000000..5801df509b
--- /dev/null
+++ b/support/make4ht/make4ht-indexing.lua
@@ -0,0 +1,190 @@
+
+local M = {}
+local log = logging.new "indexing"
+
+-- Handle accented characters in files created with \usepackage[utf]{inputenc}
+-- this code was originally part of https://github.com/michal-h21/iec2utf/
+local enc = {}
+
+local licrs = {}
+local codepoint2utf = unicode.utf8.char
+local used_encodings = {}
+
+-- load inputenc encoding file
+local function load_encfiles(f)
+ local file= io.open(f,"r")
+ local encodings = file:read("*all")
+ file:close()
+ for codepoint, licr in encodings:gmatch('DeclareUnicodeCharacter(%b{})(%b{})') do
+ local codepoint = codepoint2utf(tonumber(codepoint:sub(2,-2),16))
+ local licr= licr:sub(2,-2):gsub('@tabacckludge','')
+ licrs[licr] = codepoint
+ end
+end
+
+local function sanitize_licr(l)
+ return l:gsub(" (.)",function(s) if s:match("[%a]") then return " "..s else return s end end):sub(2,-2)
+end
+
+local load_enc = function(enc)
+ -- use default encodings if used doesn't provide one
+ enc = enc or {"T1","T2A","T2B","T2C","T3","T5", "LGR"}
+ for _,e in pairs(enc) do
+ local filename = e:lower() .. "enc.dfu"
+ -- don't process an enc file multiple times
+ if not used_encodings[filename] then
+ local dfufile = kpse.find_file(filename)
+ if dfufile then
+ load_encfiles(dfufile)
+ end
+ end
+ used_encodings[filename] = true
+ end
+end
+
+
+
+local cache = {}
+
+local get_utf8 = function(input)
+ local output = input:gsub('\\IeC[%s]*(%b{})',function(iec)
+ -- remove \protect commands
+ local iec = iec:gsub("\\protect%s*", "")
+ local code = cache[iec] or licrs[sanitize_licr(iec)] or '\\IeC '..iec
+ -- print(iec, code)
+ cache[iec] = code
+ return code
+ end)
+ return output
+end
+
+
+-- parse the idx file produced by tex4ht
+-- it replaces the document page numbers by index entry number
+-- each index entry can then link to place in the HTML file where the
+-- \index command had been used
+
+local parse_idx = function(content)
+ -- index entry number
+ local current_entry = 0
+ -- map between index entry number and corresponding HTML file and destination
+ local map = {}
+ local buffer = {}
+
+ for line in content:gmatch("([^\n]+)") do
+ if line:match("^\\beforeentry") then
+ -- increment index entry number
+ current_entry = current_entry + 1
+ local file, dest = line:match("\\beforeentry{(.-)}{(.-)}")
+ map[current_entry] = {file = file, dest = dest}
+ elseif line:match("^\\indexentry") then
+ -- replace the page number with the current
+ -- index entry number
+ local result = line:gsub("{[0-9]+}", "{"..current_entry .."}")
+ buffer[#buffer+1] = get_utf8(result)
+ else
+ buffer[#buffer+1] = line
+ end
+ end
+ -- return table with page to dest map and updated idx file
+ return {map = map, idx = table.concat(buffer, "\n")}
+end
+
+-- replace page numbers in the ind file with hyperlinks
+local fix_idx_pages = function(content, idxobj)
+ local buffer = {}
+ local entries = idxobj.map
+ for line in content:gmatch("([^\n]+)") do
+ local line = line:gsub("(%s*\\%a+.-%,)(.+)$", function(start,rest)
+ return start .. rest:gsub("(%d+)", function(page)
+ local entry = entries[tonumber(page)]
+ if entry then
+ -- construct link to the index entry
+ return "\\Link[" .. entry.file .."]{".. entry.dest .."}{}" .. page .."\\EndLink{}"
+ else
+ return page
+ end
+ end)
+ end)
+ buffer[#buffer+1] = line
+ end
+ return table.concat(buffer, "\n")
+end
+
+-- prepare the .idx file produced by tex4ht
+-- for use with Xindy or Makeindex
+local prepare_idx = function(filename)
+ local f = io.open(filename, "r")
+ if not f then return nil, "Cannot open file :".. tostring(filename) end
+ local content = f:read("*all")
+ local idx = parse_idx(content)
+ local idxname = os.tmpname()
+ local f = io.open(idxname, "w")
+ f:write(idx.idx)
+ f:close()
+ -- return the object with mapping between dummy page numbers
+ -- and link destinations in the files, and the temporary .idx file
+ -- these can be used for the processing with the index processor
+ return idx, idxname
+end
+
+-- add links to a index file
+local process_index = function(indname, idx)
+ local f = io.open(indname, "r")
+ if not f then return nil, "Cannot open .ind file: " .. tostring(indname) end
+ local content = f:read("*all")
+ f:close()
+
+ local newcontent = fix_idx_pages(content, idx)
+ local f = io.open(indname,"w")
+ f:write(newcontent)
+ f:close()
+ return true
+end
+
+local prepare_tmp_idx = function(par)
+ par.idxfile = par.idxfile or par.input .. ".idx"
+ -- construct the .ind name, based on the .idx name
+ par.indfile = par.indfile or par.idxfile:gsub("idx$", "ind")
+ load_enc()
+ -- save hyperlinks and clean the .idx file
+ local idxdata, newidxfile = prepare_idx(par.idxfile)
+ if not idxdata then
+ -- if the prepare_idx function returns nil, the second reuturned value contains error msg
+ return nil, newidxfile
+ end
+ return newidxfile, idxdata
+end
+
+local run_indexing_command = function(command, par)
+ -- detect command name from the command. It will be the first word
+ local cmd_name = command:match("^[%a]+") or "indexing"
+ local xindylog = logging.new(cmd_name)
+ local newidxfile, idxdata = prepare_tmp_idx(par)
+ if not newidxfile then
+ -- the idxdata will contain error message in the case of error
+ xindylog:warning(idxdata)
+ return false
+ end
+ par.newidxfile = newidxfile
+ xindylog:debug("Prepared temporary idx file: ", newidxfile)
+ -- prepare modules
+ local xindy_call = command % par
+ xindylog:info(xindy_call)
+ local status = mkutils.execute(xindy_call)
+ -- insert correct links to the index
+ local status, msg = process_index(par.indfile, idxdata)
+ if not status then xindylog:warning(msg) end
+ -- remove the temporary idx file
+ os.remove(newidxfile)
+end
+
+M.get_utf8 = get_utf8
+M.load_enc = load_enc
+M.parse_idx = parse_idx
+M.fix_idx_pages = fix_idx_pages
+M.prepare_idx = prepare_idx
+M.process_index = process_index
+M.prepare_tmp_idx = prepare_tmp_idx
+M.run_indexing_command = run_indexing_command
+return M
diff --git a/support/make4ht/make4ht-lib.lua b/support/make4ht/make4ht-lib.lua
index 2ada398f86..91418d18b5 100644
--- a/support/make4ht/make4ht-lib.lua
+++ b/support/make4ht/make4ht-lib.lua
@@ -2,6 +2,7 @@
--kpse.set_program_name("luatex")
-- module(...,package.seeall)
local m = {}
+local log = logging.new "make4ht-lib"
Make = {}
--Make.params = {}
@@ -17,13 +18,13 @@ Make.add = function(self,name,fn,par,rep)
Make[name] = function(self,p,typ)
local params = {}
for k,v in pairs(self.params) do params[k] = v end
- for k,v in pairs(par) do params[k] = v; print("setting param "..k) end
+ for k,v in pairs(par) do params[k] = v; log:info("setting param "..k) end
local typ = typ or "make"
local p = p or {}
local fn = fn
for k,v in pairs(p) do
params[k]=v
- print("Adding: ",k,v)
+ log:info("Adding: ",k,v)
end
-- print( fn % params)
local command = {
@@ -50,14 +51,14 @@ Make.run_command = function(self,filename,s)
local command = s.command
local params = s.params
params["filename"] = filename
- print("parse_lg process file: "..filename)
+ log:info("parse_lg process file: "..filename)
--for k,v in pairs(params) do print(k..": "..v) end
if type(command) == "function" then
return command(filename,params)
elseif type(command) == "string" then
local run = command % params
- print("Execute: " .. run)
- return os.execute(run)
+ log:info("Execute: " .. run)
+ return mkutils.execute(run)
end
return false, "parse_lg: Command is not string or function"
end
@@ -95,8 +96,8 @@ Make.image_convert = function(self, images)
command(p)
elseif type(command) == "string" then
local c = command % p
- print("Make4ht convert: "..c)
- os.execute(c)
+ log:info("Make4ht convert: "..c)
+ mkutils.execute(c)
end
break
end
@@ -125,7 +126,7 @@ Make.file_matches = function(self, files)
msg = msg or "No message given"
table.insert(statuses[file],status)
if status == false then
- print(msg)
+ log:info(msg)
break
end
end
@@ -173,14 +174,14 @@ Make.run = function(self)
self.run_count[v.command] = run_count
local repetition = v.repetition
if repetition and run_count > repetition then
- print ("Make4ht: ".. command .." can be executed only "..repetition .."x")
+ log:warning (command .." can be executed only "..repetition .."x")
else
- print("Make4ht: " .. command)
- local status = os.execute(command)
+ log:info("executing: " .. command)
+ local status = mkutils.execute(command)
table.insert(return_codes,{name=v.name,status=status})
end
else
- print("Unknown command type, must be string or function - " ..v.name..": "..type(v.command))
+ log:warning("Unknown command type, must be string or function - " ..v.name..": "..type(v.command))
end
local correct_exit = params.correct_exit or nil
if correct_exit then
@@ -188,7 +189,7 @@ Make.run = function(self)
local current_status = last_return.status or 0
if current_status ~= correct_exit then
local last_name = last_return.name or "unknown"
- print("Make4ht: Fatal error. Command "..last_name .." returned exit code "..current_status)
+ log:fatal("Fatal error. Command "..last_name .." returned exit code "..current_status)
os.exit(1)
end
end
@@ -208,7 +209,7 @@ Make.run = function(self)
end
self:file_matches(files)
else
- print("No lg file. tex4ht run failed?")
+ log:warning("No lg file. tex4ht run failed?")
end
return return_codes
end
diff --git a/support/make4ht/make4ht-logging.lua b/support/make4ht/make4ht-logging.lua
new file mode 100644
index 0000000000..c1d2b24a57
--- /dev/null
+++ b/support/make4ht/make4ht-logging.lua
@@ -0,0 +1,105 @@
+-- logging system for make4ht
+-- inspired by https://github.com/rxi/log.lua
+local logging = {}
+
+local levels = {}
+-- level of bugs that should be shown
+local show_level = 1
+local max_width = 0
+
+logging.use_colors = true
+
+logging.modes = {
+ {name = "debug", color = 34},
+ {name = "info", color = 32},
+ {name = "status", color = 37},
+ {name = "warning", color = 33},
+ {name = "error", color = 31},
+ {name = "fatal", color = 35}
+}
+
+-- prepare table with mapping between mode names and corresponding levels
+
+function logging.prepare_levels(modes)
+ local modes = modes or logging.modes
+ logging.modes = modes
+ for level, mode in ipairs(modes) do
+ levels[mode.name] = level
+ mode.level = level
+ max_width = math.max(string.len(mode.name), max_width)
+ end
+end
+
+-- the logging level is set once
+function logging.set_level(name)
+ local level = levels[name] or 1
+ show_level = level
+end
+
+function logging.print_msg(header, message, color)
+ local color = color or 0
+ -- use format for collors depending on the use_colors option
+ local header = "[" .. header .. "]"
+ local color_format = logging.use_colors and string.format("\27[%im%%s\27[0m%%s", color) or "%s%s"
+ -- the padding is maximal mode name width + brackets + space
+ local padded_header = string.format("%-".. max_width + 3 .. "s", header)
+ print(string.format(color_format, padded_header, message))
+end
+
+--
+function logging.new(module)
+ local obj = {
+ module = module,
+ output = function(self, output)
+ -- used for printing of output of commands
+ if show_level <= (levels[debug] or 1) then
+ print(output)
+ end
+ end
+ }
+ obj.__index = obj
+ -- make a function for each mode
+ for _, mode in ipairs(logging.modes) do
+ local name = mode.name
+ local color = mode.color
+ obj[name] = function(self, ...)
+ -- max width is saved in logging.prepare_levels
+ if mode.level >= show_level then
+ -- support variable number of parameters
+ local table_with_holes = table.pack(...)
+ local table_without_holes = {}
+ -- trick used to support the nil values in the varargs
+ -- https://stackoverflow.com/a/7186820/2467963
+ for i= 1, table_with_holes.n do
+ table.insert(table_without_holes, tostring(table_with_holes[i]) or "")
+ end
+ local msg = table.concat(table_without_holes, "\t")
+ logging.print_msg(string.upper(name), string.format("%s: %s", self.module, msg), color)
+ end
+ end
+ end
+ return setmetatable({}, obj)
+
+end
+
+
+-- prepare default levels
+logging.prepare_levels()
+
+-- for _, mode in ipairs(logging.modes) do
+-- logging.print_msg(mode.name,"xxxx", mode.color)
+-- end
+
+-- local cls = logging.new("sample")
+-- cls:warning("hello")
+-- cls:error("world")
+-- cls:info("set new level")
+-- logging.set_level("error")
+-- cls:info("level set")
+-- cls:error("just print the error")
+
+
+return logging
+
+
+
diff --git a/support/make4ht/make4ht-xtpipes.lua b/support/make4ht/make4ht-xtpipes.lua
index 78014baff1..3f5b51e07b 100644
--- a/support/make4ht/make4ht-xtpipes.lua
+++ b/support/make4ht/make4ht-xtpipes.lua
@@ -1,5 +1,6 @@
local M = {}
+local log = logging.new "xtpipes"
-- find if tex4ht.jar exists in a path
local function find_tex4ht_jar(path)
local jar_file = path .. "/tex4ht/bin/tex4ht.jar"
@@ -38,7 +39,7 @@ end
function M.get_xtpipes(selfautoparent)
-- make pattern using TeX distro path
- local pattern = string.format("java -classpath %s/tex4ht/bin/tex4ht.jar xtpipes -i %s/tex4ht/xtpipes/ -o ${outputfile} ${filename}", selfautoparent, selfautoparent)
+ local pattern = string.format('java -classpath "%s/tex4ht/bin/tex4ht.jar" xtpipes -i "%s/tex4ht/xtpipes/" -o "${outputfile}" "${filename}"', selfautoparent, selfautoparent)
-- call xtpipes on a temporary file
local matchfunction = function(filename)
-- move the matched file to a temporary file, xtpipes will write it back to the original file
@@ -46,19 +47,19 @@ function M.get_xtpipes(selfautoparent)
local tmpfile = basename ..".tmp"
mkutils.mv(filename, tmpfile)
local command = pattern % {filename = tmpfile, outputfile = filename}
- print(command)
- local status = os.execute(command)
+ log:info("execute: " ..command)
+ local status = mkutils.execute(command)
if status > 0 then
-- if xtpipes failed to process the file, it may mean that it was bad-formed xml
-- we can try to make it well-formed using Tidy
- local tidy_command = "tidy -utf8 -xml -asxml -q -o ${filename} ${tmpfile}" % {tmpfile = tmpfile, filename = filename}
- print("xtpipes failed trying tidy")
- print(tidy_command)
+ local tidy_command = 'tidy -utf8 -xml -asxml -q -o "${filename}" "${tmpfile}"' % {tmpfile = tmpfile, filename = filename}
+ log:warning("xtpipes failed trying tidy")
+ log:debug(tidy_command)
local status = os.execute(tidy_command)
if status > 0 then
-- if tidy failed as well, just use the original file
-- it will probably produce corrupted ODT file though
- print("Tidy failed as well")
+ log:warning("Tidy failed as well")
mkutils.mv(tmpfile, filename)
end
end
diff --git a/support/make4ht/mkparams.lua b/support/make4ht/mkparams.lua
index 4db967f270..eff8c99670 100644
--- a/support/make4ht/mkparams.lua
+++ b/support/make4ht/mkparams.lua
@@ -1,6 +1,7 @@
local lapp = require "lapp-mk4"
local mkutils = require "mkutils"
local m = {} -- use ugly module system for new lua versions support
+local log = logging.new "mkparams"
-- these two variables will be used in the version number
-- progname will be set in get_args
@@ -9,25 +10,28 @@ m.progname = "make4ht"
m.version_number = "v0.1"
m.optiontext = [[
-${progname} - build system for tex4ht
+${progname} - build system for TeX4ht
Usage:
${progname} [options] filename ["tex4ht.sty op."] ["tex4ht op."] ["t4ht op"] ["latex op"]
Available options:
+ -a,--loglevel (default status) Set log level.
+ possible values: debug, info, status, warning, error, fatal
-b,--backend (default tex4ht) Backend used for xml generation.
possible values: tex4ht or lua4ht
-c,--config (default xhtml) Custom config file
-d,--output-dir (default nil) Output directory
-e,--build-file (default nil) If build file is different than `filename`.mk4
-f,--format (default html5) Output file format
- -h,-- help Display this message
+ -h,--help Display this message
+ -j,--jobname (default nil) Set the jobname
-l,--lua Use lualatex for document compilation
-m,--mode (default default) Switch which can be used in the makefile
- -n,--no-tex4ht Disable dvi file processing with tex4ht command
+ -n,--no-tex4ht Disable dvi file processing with the tex4ht command
-s,--shell-escape Enables running external programs from LaTeX
-u,--utf8 For output documents in utf8 encoding
- -x,--xetex Use xelatex for document compilation
-v,--version Display version number
+ -x,--xetex Use xelatex for document compilation
]]
-- test if the current command line argument should be passed to tex4ht, t4ht or latex
@@ -36,11 +40,12 @@ local function is_escapedargument(arg)
local ignored_options = {["-h"]=true, ["--help"]=true, ["-v"] = true, ["--version"]=true}
if ignored_options[arg] then return false end
-- in other cases, match if the argument starts with "-" character
- return arg:match("^%-")
+ return arg:match("^%-.+")
end
local function get_args(parameters, optiontext)
local parameters = parameters or {}
parameters.progname = parameters.progname or "make4ht"
+ parameters.issue_tracker = parameters.issue_tracker or "https://github.com/michal-h21/make4ht/issues"
parameters.postparams = parameters.postparams or ""
local optiontext = optiontext or m.optiontext
parameters.postfile = parameters.postfile or ""
@@ -54,7 +59,7 @@ Positional optional argumens:
Documentation: https://tug.org/applications/tex4ht/mn.html
Issue tracker for tex4ht bugs: https://puszcza.gnu.org.ua/bugs/?group=tex4ht
-Issue tracker for make4ht bugs: https://github.com/michal-h21/make4ht/issues
+Issue tracker for ${progname} bugs: ${issue_tracker}
]] .. parameters.postfile
-- we can pass arguments for tex4ht and t4ht after filename, but it will confuse lapp, thinking that these
-- options are for make4ht. this may result in execution error or wrong option parsing
@@ -88,6 +93,61 @@ local function get_format_extensions(format_string)
return format, extensions
end
+-- detect if user specified -jobname in arguments to the TeX engine
+-- or used the --jobname option for make4ht
+local function handle_jobname(input, args)
+ -- parameters to the TeX engine
+ local latex_params = {}
+ local latex_cli_params = args[4] or ""
+ -- use the jobname as input name if it is specified
+ local jobname = args.jobname ~="nil" and args.jobname or nil
+ if jobname or not latex_cli_params:match("%-jobname") then
+ -- prefer jobname over input
+ input = jobname or input
+ -- we must strip out directories from jobname when full path to document is given
+ input = input:match("([^%/^%\\]+)$")
+ -- input also cannot contain spaces, replace them with underscores
+ input = input:gsub("%s", "_")
+ table.insert(latex_params,"-jobname="..input)
+ else
+ -- when user specifies -jobname, we must change name of the input file,
+ -- in order to be able to process correct dvi file with tex4ht and t4ht
+ local newinput
+ -- first contains quotation character or first character of the name
+ local first, rest = latex_cli_params:match("%-jobname%s*=?%s*(.)(.*)")
+ if first=='"' then
+ newinput=rest:match('([^"]+)')
+ elseif first=="'" then
+ newinput=rest:match("([^']+)")
+ elseif type(first)== "string" then
+ -- if the jobname is unquoted, it cannot contain space
+ -- join the first character and rest
+ rest = first.. rest
+ newinput = rest:match("([^ ]+)")
+ end
+ if newinput then
+ input = newinput
+ end
+ end
+ --
+ table.insert(latex_params, latex_cli_params)
+ return latex_params, input
+end
+
+-- use standard input instead of file if the filename is just `-`
+-- return the filename and status if it is a tmp name
+local function handle_input_file(filename)
+ -- return the original file name if it isn't just dash
+ if filename ~= "-" then return filename, false end
+ -- generate the temporary name. the added extension is important
+ local tmp_name = os.tmpname()
+ local contents = io.read("*all")
+ local f = io.open(tmp_name, "w")
+ f:write(contents)
+ f:close()
+ return tmp_name, true
+end
+
local function process_args(args)
local function get_inserter(args,tb)
return function(key, value)
@@ -98,6 +158,14 @@ local function process_args(args)
end
end
+ -- set error log level
+ logging.set_level(args.loglevel)
+ -- the default LaTeX --interaction parameter
+ local interaction = "batchmode"
+ if args.loglevel == "debug" then
+ interaction = "errorstopmode"
+ end
+
if args.version ==true then
print(string.format("%s version %s", m.progname, m.version_number))
os.exit()
@@ -122,36 +190,12 @@ local function process_args(args)
local compiler = args.lua and "dvilualatex" or args.xetex and "xelatex --no-pdf" or "latex"
- local tex_file = args.filename
- local input = mkutils.remove_extension(args.filename)
- local latex_params = {}
+ local tex_file, is_tmp_file = handle_input_file(args.filename)
+ local input = mkutils.remove_extension(tex_file)
+ -- the output file name can be influneced using -jobname parameter passed to the TeX engine
+ local latex_params, input = handle_jobname(input, args)
local insert_latex = get_inserter(args,latex_params)
insert_latex("shell-escape","-shell-escape")
- local latex_cli_params = args[4] or ""
- if not latex_cli_params:match("%-jobname") then
- -- we must strip out directories from jobname when full path to document is given
- input = input:match("([^%/^%\\]+)$")
- -- input also cannot contain spaces, replace them with underscores
- input = input:gsub("%s", "_")
- table.insert(latex_params,"-jobname="..input)
- else
- -- when user specifies -jobname, we must change name of the input file,
- -- in order to be able to process correct dvi file with tex4ht and t4ht
- local newinput
- local first, rest = latex_cli_params:match("%-jobname=(.)(.*)")
- if first=='"' then
- newinput=rest:match('([^"]+)')
- elseif first=="'" then
- newinput=rest:match("([^']+)")
- elseif type(first)== "string" then
- rest = first.. rest
- newinput = rest:match("([^ ]+)")
- end
- if newinput then
- input = newinput
- end
- end
- table.insert(latex_params, latex_cli_params)
--table.insert(latex_params,args["shell-escape"] and "-shell-escape")
@@ -181,9 +225,9 @@ local function process_args(args)
tex4ht = args[2]
else
tex4ht = args.utf8 and " -cmozhtf -utf8" or ""
- if args.xetex then tex4ht = tex4ht .. " -.xdv" end
- -- tex4ht = tex4ht .. xdv
end
+ -- set the correct extension for tex4ht if xetex is used
+ if args.xetex then tex4ht = tex4ht .. " -.xdv" end
local t4ht = args[3] or ""
@@ -215,19 +259,21 @@ local function process_args(args)
,build_file = build_file
,output_format = outformat
,extensions = extensions
+ ,is_tmp_file = is_tmp_file
+ ,interaction = interaction
--,t4ht_dir_format=t4ht_dir_format
}
if outdir then parameters.outdir = outdir end
- print("Output dir: ",outdir)
- print("Compiler: ", compiler)
- print("Latex options: ", table.concat(latex_params," "))
- print("tex4ht.sty :",t4sty)
- print("tex4ht",tex4ht)
- print("build_file", build_file)
+ log:info("Output dir: "..outdir)
+ log:info("Compiler: "..compiler)
+ log:info("Latex options: ".. table.concat(latex_params," "))
+ log:info("tex4ht.sty: "..t4sty)
+ log:info("tex4ht: "..tex4ht)
+ log:info("build_file: ".. build_file)
if outformat~="nil" then
- print("Output format", outformat)
+ log:info("Output format: ".. outformat)
for _, ex in ipairs(extensions) do
- print("Extension", ex.type .. ex.name)
+ log:info("Extension: ".. ex.type .. ex.name)
end
end
return parameters
diff --git a/support/make4ht/mkutils.lua b/support/make4ht/mkutils.lua
index fd32c91e08..ba1cd6cbb9 100644
--- a/support/make4ht/mkutils.lua
+++ b/support/make4ht/mkutils.lua
@@ -1,7 +1,10 @@
module(...,package.seeall)
+local log = logging.new("mkutils")
+
local make4ht = require("make4ht-lib")
local mkparams = require("mkparams")
+local indexing = require("make4ht-indexing")
--template engine
function interp(s, tab)
local tab = tab or {}
@@ -61,11 +64,11 @@ end
-- searching for converted images
function parse_lg(filename)
- print("Parse LG")
+ log:info("Parse LG")
local outputimages,outputfiles,status={},{},nil
local fonts, used_fonts = {},{}
if not file_exists(filename) then
- print("Cannot read log file: "..filename)
+ log:warning("Cannot read log file: "..filename)
else
local usedfiles={}
for line in io.lines(filename) do
@@ -114,7 +117,7 @@ local cp_func = os.type == "unix" and "cp" or "copy"
function cp(src,dest)
local command = string.format('%s "%s" "%s"', cp_func, src, dest)
if cp_func == "copy" then command = command:gsub("/",'\\') end
- print("Copy: "..command)
+ log:info("Copy: "..command)
os.execute(command)
end
@@ -123,7 +126,7 @@ function mv(src, dest)
local command = string.format('%s "%s" "%s"', mv_func, src, dest)
-- fix windows paths
if mv_func == "move" then command = command:gsub("/",'\\') end
- print("Move: ".. command)
+ log:info("Move: ".. command)
os.execute(command)
end
@@ -211,18 +214,32 @@ function copy(filename,outfilename)
if not used_dir[path] then
local to_create, msg = find_directories(parts)
if not to_create then
- print(msg)
+ log:warning(msg)
return false
end
used_dir[path] = true
local stat, msg = mkdirectories(to_create)
- if not stat then print(msg) end
+ if not stat then log:warning(msg) end
end
lfs.chdir(currdir)
cp(filename, path)
return true
end
+function execute(command)
+ local f = io.popen(command, "r")
+ local output = f:read("*all")
+ -- rc will contain return codes of the executed command
+ local rc = {f:close()}
+ -- the status code is on the third position
+ -- https://stackoverflow.com/a/14031974/2467963
+ local status = rc[3]
+ -- print the command line output only when requested through
+ -- log level
+ log:output(output)
+ return status, output
+end
+
-- find the zip command
function find_zip()
if io.popen("zip -v","r"):close() then
@@ -269,6 +286,7 @@ env.os = os
env.io = io
env.math = math
env.unicode = unicode
+env.logging = logging
-- it is necessary to use the settings table
@@ -317,57 +335,14 @@ env.Make = make4ht.Make
env.Make.params = env.settings
env.Make:add("test","test the variables: ${tex4ht_sty_par} ${htlatex} ${input} ${config}")
--- this function reads the LaTeX log file and tries to detect fatal errors in the compilation
-local function testlogfile(par)
- local logfile = par.input .. ".log"
- local f = io.open(logfile,"r")
- if not f then
- print("Make4ht: cannot open log file "..logfile)
- return 1
- end
- local len = f:seek("end")
- -- test only the end of the log file, no need to run search functions on everything
- local newlen = len - 1256
- -- but the value to seek must be greater than 0
- newlen = (newlen > 0) and newlen or 0
- f:seek("set", newlen)
- local text = f:read("*a")
- f:close()
- if text:match("No pages of output") or text:match("TeX capacity exceeded, sorry") then return 1 end
- return 0
-end
-
-
--- Make this function available in the build files
-Make.testlogfile = testlogfile
---env.Make:add("htlatex", "${htlatex} ${latex_par} '\\\makeatletter\\def\\HCode{\\futurelet\\HCode\\HChar}\\def\\HChar{\\ifx\"\\HCode\\def\\HCode\"##1\"{\\Link##1}\\expandafter\\HCode\\else\\expandafter\\Link\\fi}\\def\\Link#1.a.b.c.{\\g@addto@macro\\@documentclasshook{\\RequirePackage[#1,html]{tex4ht}\\let\\HCode\\documentstyle\\def\\documentstyle{\\let\\documentstyle\\HCode\\expandafter\\def\\csname tex4ht\\endcsname{#1,html}\\def\\HCode####1{\\documentstyle[tex4ht,}\\@ifnextchar[{\\HCode}{\\documentstyle[tex4ht]}}}\\makeatother\\HCode '${config}${tex4ht_sty_par}'.a.b.c.\\input ' ${input}")
-
--- template for calling LaTeX with tex4ht loaded
-Make.latex_command = "${htlatex} ${latex_par} '\\makeatletter"..
-"\\def\\HCode{\\futurelet\\HCode\\HChar}\\def\\HChar{\\ifx\"\\HCode"..
-"\\def\\HCode\"##1\"{\\Link##1}\\expandafter\\HCode\\else"..
-"\\expandafter\\Link\\fi}\\def\\Link#1.a.b.c.{\\g@addto@macro"..
-"\\@documentclasshook{\\RequirePackage[#1,html]{tex4ht}${packages}}"..
-"\\let\\HCode\\documentstyle\\def\\documentstyle{\\let\\documentstyle"..
-"\\HCode\\expandafter\\def\\csname tex4ht\\endcsname{#1,html}\\def"..
-"\\HCode####1{\\documentstyle[tex4ht,}\\@ifnextchar[{\\HCode}{"..
-"\\documentstyle[tex4ht]}}}\\makeatother\\HCode ${tex4ht_sty_par}.a.b.c."..
-"\\input \"\\detokenize{${tex_file}}\"'"
-
-env.Make:add("htlatex",function(par)
- local command = Make.latex_command
- if os.type == "windows" then
- command = command:gsub("'",'')
- end
- command = command % par
- print("LaTeX call: "..command)
- os.execute(command)
- return testlogfile(par)
-end
+local htlatex = require "make4ht-htlatex"
+env.Make:add("htlatex", htlatex.htlatex
,{correct_exit=0})
env.Make:add("latexmk", function(par)
+ local settings = get_filter_settings "htlatex" or {}
+ par.interaction = par.interaction or settings.interaction or "batchmode"
local command = Make.latex_command
par.expanded = command % par
-- quotes in latex_command must be escaped, they cause Latexmk error
@@ -407,13 +382,13 @@ function load_config(settings, config_name)
end
local f = io.open(config_name,"r")
if not f then
- print("Cannot open config file", config_name)
+ log:info("Cannot open config file", config_name)
return env
end
- print("Using build file", config_name)
+ log:info("Using build file", config_name)
local code = f:read("*all")
local fn, msg = run(code,env)
- if not fn then print(msg) end
+ if not fn then log:warning(msg) end
assert(fn)
-- reload extensions from command line arguments for the "format" parameter
for _,v in ipairs(saved_extensions) do
@@ -423,25 +398,49 @@ function load_config(settings, config_name)
end
env.Make:add("xindy", function(par)
- -- par.encoding = par.encoding or "utf8"
- -- par.language = par.language or "english"
- par.idxfile = par.idxfile or par.input .. ".idx"
- local modules = par.modules or {par.input}
+ local xindylog = logging.new "xindy"
+ local settings = get_filter_settings "xindy" or {}
+ par.encoding = settings.encoding or par.encoding or "utf8"
+ par.language = settings.language or par.language or "english"
+ local modules = settings.modules or par.modules or {}
local t = {}
for k,v in ipairs(modules) do
+ xindylog:debug("Loading module: " ..v)
t[#t+1] = "-M ".. v
end
par.moduleopt = table.concat(t, " ")
- local xindy_call = "xindy -L ${language} -C ${encoding} ${moduleopt} ${idxfile}" % par
- print(xindy_call)
- return os.execute(xindy_call)
-end, { language = "english", encoding = "utf8"})
+ return indexing.run_indexing_command("texindy -L ${language} -C ${encoding} ${moduleopt} -o ${indfile} ${newidxfile}", par)
+end, {})
+
+env.Make:add("makeindex", function(par)
+ local makeindxcall = "makeindex ${options} -t ${ilgfile} -o ${indfile} ${newidxfile}"
+ local settings = get_filter_settings "makeindex" or {}
+ par.options = settings.options or par.options or ""
+ par.ilgfile = par.input .. ".ilg"
+ local status = indexing.run_indexing_command(makeindxcall, par)
+ return status
+end, {})
+
+env.Make:add("xindex", function(par)
+ local xindex_call = "xindex -l ${language} ${options} -o ${indfile} ${newidxfile}"
+ local settings = get_filter_settings "xindex" or {}
+ par.options = settings.options or par.options or ""
+ par.language = settings.language or par.language or "en"
+ local status = indexing.run_indexing_command(xindex_call, par)
+ return status
+end, {})
+
+
local function find_lua_file(name)
local extension_path = name:gsub("%.", "/") .. ".lua"
return kpse.find_file(extension_path, "lua")
end
+-- for the BibLaTeX support
+env.Make:add("biber", "biber ${input}")
+env.Make:add("bibtex", "bibtex ${input}")
+
--- load the output format plugins
function load_output_format(format_name)
local format_library = "make4ht.formats."..format_name
@@ -532,10 +531,10 @@ function load_extensions(extensions, format)
if module_names[name] == true then
local extension = load_extension(name,format)
if extension then
- print("Load extension", name)
+ log:info("Load extension", name)
table.insert(extension_table, extension)
else
- print("Cannot load extension: ".. name)
+ log:warning("Cannot load extension: ".. name)
end
end
end
diff --git a/support/make4ht/readme.tex b/support/make4ht/readme.tex
index c9fc0a2f3e..ff1d942d18 100644
--- a/support/make4ht/readme.tex
+++ b/support/make4ht/readme.tex
@@ -1,125 +1,267 @@
\hypertarget{introduction}{%
\section{Introduction}\label{introduction}}
-\texttt{make4ht} is a simple build system for \texttt{tex4ht}, \TeX~to
-XML converter. It provides a command line tool that drive the conversion
-process. It also provides a library which can be used to create
-customized conversion tools. An example of such conversion tool is
-\href{https://github.com/michal-h21/tex4ebook}{tex4ebook} for conversion
-of \TeX~to ePub and other e-book formats.
-
-\hypertarget{how-it-works}{%
-\subsection{How it works}\label{how-it-works}}
-
-\hypertarget{the-issues-with-default-tex4ht-conversion-commands}{%
-\subsubsection{\texorpdfstring{The issues with default \texttt{tex4ht}
-conversion
-commands}{The issues with default tex4ht conversion commands}}\label{the-issues-with-default-tex4ht-conversion-commands}}
-
-\texttt{tex4ht} system supports several output formats, most notably
-\texttt{XHTML}, \texttt{HTML\ 5} and \texttt{ODT}. The conversion can be
-invoked using several commands. These commands invoke LaTeX~or Plain TeX
-with special instructions to load \texttt{tex4ht.sty} package. The
-\TeX~run produces special \texttt{DVI} file which contains the code for
-desired output format. Produced \texttt{DVI} file is then processed and
-desired output files are created.
-
-The basic command provided by \texttt{tex4ht} is named \texttt{htlatex}.
-It compiles \LaTeX~ files to \texttt{HTML} with this command sequence:
+\texttt{make4ht} is a build system for \TeX4ht, \TeX~to XML converter.
+It provides a command line tool that drives the conversion process. It
+also provides a library that can be used to create customized conversion
+tools. An example of such a tool is
+\href{https://github.com/michal-h21/tex4ebook}{tex4ebook}, a tool for
+conversion from \TeX~to ePub and other e-book formats.
+
+The basic conversion from \LaTeX~to \texttt{HTML} using \texttt{make4ht}
+can be executed using the following command:
+
+\begin{verbatim}
+$ make4ht filename.tex
+\end{verbatim}
+
+It will produce a file named \texttt{filename.html} if the compilation
+goes without fatal errors.
+
+\hypertarget{clioptions}{%
+\section{Command line options}\label{clioptions}}
+
+\label{sec:clioptions}
+
+\begin{verbatim}
+make4ht - build system for TeX4ht
+Usage:
+make4ht [options] filename ["tex4ht.sty op." "tex4ht op."
+ "t4ht op" "latex op"]
+-a,--loglevel (default status) Set log level.
+ possible values: debug, info, status, warning, error, fatal
+-b,--backend (default tex4ht) Backend used for xml generation.
+ possible values: tex4ht or lua4ht
+-c,--config (default xhtml) Custom config file
+-d,--output-dir (default "") Output directory
+-e,--build-file (default nil) If build filename is different
+ than `filename`.mk4
+-f,--format (default nil) Output file format
+-j,--jobname (default nil) Set the jobname
+-l,--lua Use lualatex for document compilation
+-m,--mode (default default) Switch which can be used in the makefile
+-n,--no-tex4ht Disable DVI file processing with tex4ht command
+-s,--shell-escape Enables running external programs from LaTeX
+-u,--utf8 For output documents in utf8 encoding
+-x,--xetex Use xelatex for document compilation
+-v,--version Print version number
+<filename> (string) Input filename
+\end{verbatim}
+
+It is still possible to invoke \texttt{make4ht} in the same way as is
+invoked \texttt{htlatex}:
+
+\begin{verbatim}
+$ make4ht filename "customcfg, charset=utf-8" "-cunihtf -utf8" "-dfoo"
+\end{verbatim}
+
+Note that this will not use \texttt{make4ht} routines for the output
+directory handling. See section \ref{sec:output-dir} for more
+information about this issue. To use these routines, change the previous
+listing to:
+
+\begin{verbatim}
+$ make4ht -d foo filename "customcfg, charset=utf-8" "-cunihtf -utf8"
+\end{verbatim}
+
+This call has the same effect as the following:
+
+\begin{verbatim}
+$ make4ht -u -c customcfg -d foo filename
+\end{verbatim}
+
+Output directory doesn't have to exist, it will be created
+automatically. Specified path can be relative to the current directory,
+or absolute:
+
+\begin{verbatim}
+$ make4ht -d use/current/dir/ filename
+$ make4ht -d ../gotoparrentdir filename
+$ make4ht -d ~/gotohomedir filename
+$ make4ht -d c:\documents\windowspathsareworkingtoo filename
+\end{verbatim}
+
+The short options that don't take parameters can be collapsed:
+
+\begin{verbatim}
+$ make4ht -ulc customcfg -d foo filename
+\end{verbatim}
+
+To pass output from the other commands to \texttt{make4ht} use the
+\texttt{-} character as a filename. It is best to use this feature
+together with the \texttt{-\/-jobname} or \texttt{-j} option.
+
+\begin{verbatim}
+$ cat hello.tex | make4ht -j world -
+\end{verbatim}
+
+By default, \texttt{make4ht} tries to be quiet, so it hides most of the
+command line messages and the output from the executed commands. It will
+display only status messages, warnings and errors. The logging level can
+be selected using the \texttt{-\/-loglevel} or \texttt{-a} options. If
+the compilation fails, it may be useful to display more information
+using the \texttt{info} or \texttt{debug} levels.
\begin{verbatim}
-latex $latex_options 'code for loading tex4ht.sty \input{filename}'
-latex $latex_options 'code for loading tex4ht.sty \input{filename}'
-latex $latex_options 'code for loading tex4ht.sty \input{filename}'
-tex4ht $tex4ht_options filename
-t4ht $t4ht_options filename
+$ make4ht -a debug faulty.tex
+\end{verbatim}
+
+\hypertarget{why-make4ht-htlatex-issues}{%
+\section{\texorpdfstring{Why \texttt{make4ht}? -- \texttt{htlatex}
+issues}{Why make4ht? -- htlatex issues}}\label{why-make4ht-htlatex-issues}}
+
+\TeX4ht~system supports several output formats, most notably
+\texttt{XHTML}, \texttt{HTML\ 5} and \texttt{ODT}, but it also supports
+\texttt{TEI} or \texttt{Docbook}.
+
+The conversion can be invoked using several scripts, which are
+distributed with \TeX4ht. They differ in parameters passed to the
+underlying commands.
+
+These scripts invoke \LaTeX~or Plain \TeX~with special instructions to
+load the \texttt{tex4ht.sty} package. The \TeX~run produces a special
+\texttt{DVI} file that contains the code for the desired output format.
+The produced \texttt{DVI} file is then processed using the
+\texttt{tex4ht} command, which in conjunction with the \texttt{t4ht}
+command produces the desired output files.
+
+\hypertarget{passing-command-line-arguments}{%
+\subsection{Passing command line
+arguments}\label{passing-command-line-arguments}}
+
+The basic conversion script provided by \TeX4ht~system is named
+\texttt{htlatex}. It compiles \LaTeX~ files to \texttt{HTML} with this
+command sequence:
+
+\begin{verbatim}
+$ latex $latex_options 'code for loading tex4ht.sty \input{filename}'
+$ latex $latex_options 'code for loading tex4ht.sty \input{filename}'
+$ latex $latex_options 'code for loading tex4ht.sty \input{filename}'
+$ tex4ht $tex4ht_options filename
+$ t4ht $t4ht_options filename
\end{verbatim}
The options for various parts of the system can be passed on the command
line:
\begin{verbatim}
-htlatex filename "tex4ht.sty options" "tex4ht_options" "t4ht_options" "latex_options"
+$ htlatex filename "tex4ht.sty options" "tex4ht_options" "t4ht_options" "latex_options"
\end{verbatim}
For basic \texttt{HTML} conversion it is possible to use the most basic
invocation:
\begin{verbatim}
-htlatex filename.tex
+$ htlatex filename.tex
\end{verbatim}
-It can be much more involved for \texttt{HTML\ 5} output in
+It can be much more involved for the \texttt{HTML\ 5} output in
\texttt{UTF-8} encoding:
\begin{verbatim}
-htlatex filename.tex "xhtml,html5,charset=utf-8" "-cmozhtf -utf8"
+$ htlatex filename.tex "xhtml,html5,charset=utf-8" " -cmozhtf -utf8"
\end{verbatim}
\texttt{make4ht} can simplify it:
\begin{verbatim}
-make4ht -uf html5 filename.tex
+$ make4ht -u filename.tex
\end{verbatim}
-Another issue is the fixed compilation order and hard-coded number of
-LaTeX invocations.
+The \texttt{-u} option requires the \texttt{UTF-8} encoding.
+\texttt{HTML\ 5} is used as the default output format by
+\texttt{make4ht}.
+
+More information about the command line arguments can be found in
+section \ref{sec:clioptions}.
+
+\hypertarget{compilation-sequence}{%
+\subsection{Compilation sequence}\label{compilation-sequence}}
+
+\texttt{htlatex} has a fixed compilation order and a hard-coded number
+of \LaTeX~invocations.
-When you need to run a program which interact with LaTeX, such as
-\texttt{Makeindex} or \texttt{Bibtex}, you need to create a new script
-based on \texttt{htlatex}, or run \texttt{htlatex} twice, which means
-that LaTeX will be invoked six times. This can lead to significantly
-long compilation times. \texttt{make4ht} provides build files and
-extensions, which can be used for interaction with external tools.
+It is not possible to execute additional commands during the
+compilation. When we want to run a program that interacts with \LaTeX,
+such as \texttt{Makeindex} or \texttt{Bibtex}, we have two options. The
+first option is to create a new script based on \texttt{htlatex} and add
+the wanted commands to the modified script. The second option is to
+execute \texttt{htlatex}, then the additional and then \texttt{htlatex}
+again. The second option means that \LaTeX~will be invoked six times, as
+each call to \texttt{htlatex} executes three calls to \LaTeX. This can
+lead to significantly long compilation times.
-It is also possible to have several compilation modes. When you just add
-new text to a document, which doesn't contain cross-references, don't
-add new stuff to the table of contents, etc., it is possible to use the
-\texttt{draft} mode which will invoke LaTeX only once. It can save quite
-a lot of the compilation time:
+\texttt{make4ht} provides a solution for this issue using a build file,
+or extensions. These can be used for interaction with external tools.
+
+\texttt{make4ht} also provides compilation modes, which enables to
+select commands that should be executed using a command line option.
+
+There is a built-in \texttt{draft} mode, which invokes \LaTeX~only once,
+instead of the default three invocations. It is useful for the
+compilations of the document before its final stage, when it is not
+important that all cross-references work. It can save quite a lot of the
+compilation time:
\begin{verbatim}
-make4ht -um draft -f html5 filename.tex
+$ make4ht -um draft filename.tex
\end{verbatim}
-There are also issues with a behaviour of the \texttt{t4ht} application.
-It reads file \texttt{filename.lg}, generated by \texttt{tex4ht}, where
-are instructions about generated files, \texttt{CSS} instructions, calls
-to external applications, instructions for image conversions etc. It can
-be instructed to copy generated files to some output directory, but it
-doesn't preserve directory structure, so when you have images in a
-subdirectory, they will be copied to the output directory. Links will be
-pointing to a non-existing subdirectory. The following command should
-copy all output files to the correct destinations.
+More information about the build files can be found in section
+\ref{sec:buildfiles}.
+
+\hypertarget{handling-of-the-generated-files}{%
+\subsection{Handling of the generated
+files}\label{handling-of-the-generated-files}}
+
+\label{sec:output-dir}
+
+There are also issues with the behavior of the \texttt{t4ht}
+application. It reads the \texttt{.lg} file generated by the
+\texttt{tex4ht} command. This file contains information about the
+generated files, \texttt{CSS} instructions, calls to the external
+applications, instructions for image conversions, etc.
+
+\texttt{t4ht} can be instructed to copy the generated files to an output
+directory, but it doesn't preserve the directory structure. When the
+images are placed in a\\
+subdirectory, they will be copied to the output directory, losing the
+directory structure. Links will be pointing to a non-existing
+subdirectory. The following command should copy all output files to the
+correct destinations.
\begin{verbatim}
-make4ht -d outputdir filename.tex
+$ make4ht -d outputdir filename.tex
\end{verbatim}
-The image conversion is configured in the
-\href{http://www.tug.org/applications/tex4ht/mn35.html\#index35-73001}{env
-file}, which has really strange syntax based and the rules are
-\href{http://www.tug.org/applications/tex4ht/mn-unix.html\#index27-69005}{os
-dependent}. \texttt{make4ht} provides simpler means for the image
-conversion in the build files.
+\hypertarget{image-conversion-and-post-processing-of-the-generated-files}{%
+\subsection{Image conversion and post-processing of the generated
+files}\label{image-conversion-and-post-processing-of-the-generated-files}}
+
+\TeX4ht~can convert parts of the document to images. This is useful for
+diagrams or complicated math, for example.
-With \texttt{make4ht} build files, we have simple mean to fix these
-issues. We can change image conversion parameters without the need to
-modify the \texttt{env\ file}, or execute actions on the output files.
-These actions can be either external programs such as \texttt{xslt}
-processors or \texttt{HTML\ tidy} or \texttt{Lua} functions.
+By default, the image conversion is configured in a
+\href{http://www.tug.org/applications/tex4ht/mn35.html\#index35-73001}{\texttt{.env}
+file}. It has a bit of strange syntax, with
+\href{http://www.tug.org/applications/tex4ht/mn-unix.html\#index27-69005}{operating
+system dependent} rules. \texttt{make4ht} provides simpler means for the
+image conversion in the build files. It is possible to change the image
+conversion parameters without a need to modify the \texttt{.env} file.
+The process is described in section \ref{sec:imageconversion}.
-The idea is to make system controlled by a build file. Because
-\texttt{Lua} interpreter is included in modern TeX distributions and
-\texttt{Lua} is ideal language for such task, it was chosen as language
-in which the build scripts are written.
+It is also possible to post-process the generated output files. The
+post-processing can be done either using external programs such as
+\texttt{XSLT} processors and \texttt{HTML\ Tidy} or using \texttt{Lua}
+functions. More information can be found in section
+\ref{sec:postprocessing}.
\hypertarget{output-file-formats-and-extensions}{%
\section{Output file formats and
extensions}\label{output-file-formats-and-extensions}}
-The default output format used by \texttt{make4ht} is \texttt{html5}.
-Different format can be requested using the \texttt{-\/-format} option.
+The default output format used by \texttt{make4ht} is \texttt{html5}. A
+different format can be requested using the \texttt{-\/-format} option.
Supported formats are:
\begin{itemize}
@@ -149,50 +291,63 @@ The extensions can be enabled or disabled by appending
\texttt{+EXTENSION} or \texttt{-EXTENSION} after the output format name:
\begin{verbatim}
- make4ht -uf html5+tidy filename.tex
+ $ make4ht -uf html5+tidy filename.tex
\end{verbatim}
Available extensions:
\begin{description}
-\item[latexmk\_build]
-use \texttt{Latexmk} for \LaTeX~compilation.
-\item[tidy]
-clean the \texttt{HTML} files using the \texttt{tidy} command.
-\item[dvisvgm\_hashes]
-efficient generation of SVG pictures using Dvisvgm. It can utilize
-multiple processor cores and generates only changed images.
\item[common\_filters]
clean the output HTML files using filters.
\item[common\_domfilters]
clean the HTML file using DOM filters. It is more powerful than
\texttt{common\_filters}. Used DOM filters are \texttt{fixinlines},
-\texttt{idcolons} and \texttt{joincharacters}.
+\texttt{idcolons}, \texttt{joincharacters}, and \texttt{tablerows}.
+\item[dvisvgm\_hashes]
+efficient generation of SVG pictures using Dvisvgm. It can utilize
+multiple processor cores and generates only changed images.
\item[join\_colors]
load the \texttt{joincolors} domfilter for all HTML files.
+\item[latexmk\_build]
+use \href{https://ctan.org/pkg/latexmk?lang=en}{Latexmk} for the
+\LaTeX~compilation.
\item[mathjaxnode]
use \href{https://github.com/pkra/mathjax-node-page/}{mathjax-node-page}
to convert from MathML code to HTML + CSS or SVG. See
\protect\hyperlink{mathjaxsettings}{the available settings}.
\item[odttemplate]
-automatically load the \texttt{odttemplate} filter.
+it automatically loads the \texttt{odttemplate} filter (page
+\pageref{sec:odttemplate}).
+\item[preprocess\_input]
+compilation of the formats supported by
+\href{https://yihui.name/knitr/}{Knitr} (\texttt{.Rnw}, \texttt{.Rtex},
+\texttt{.Rmd}, \texttt{.Rrst}) and also Markdown and reStructuredText
+formats. It requires \href{https://www.r-project.org/}{R} +
+\href{https://yihui.name/knitr/}{Knitr} installation, it requires also
+\href{https://pandoc.org/}{Pandoc} for formats based on Markdown or
+reStructuredText.
\item[staticsite]
-build the document in form suitable for static site generators like
+build the document in a form suitable for static site generators like
\href{https://jekyllrb.com/}{Jekyll}.
+\item[tidy]
+clean the \texttt{HTML} files using the \texttt{tidy} command.
\end{description}
\hypertarget{build-files}{%
\section{Build files}\label{build-files}}
+\label{sec:buildfiles}
+
\texttt{make4ht} supports build files. These are \texttt{Lua} scripts
-which can adjust the build process. You can request external
-applications like \texttt{bibtex} or \texttt{makeindex}, pass options to
+that can adjust the build process. They can request external
+applications like \texttt{BibTeX} or \texttt{Makeindex}, pass options to
the commands, modify the image conversion process, or post-process the
generated files.
\texttt{make4ht} tries to load default build file named as
-\texttt{filename\ +\ .mk4\ extension}. You can choose different build
-file with \texttt{-e} or \texttt{-\/-build-file} command line option.
+\texttt{filename\ +\ .mk4\ extension}. It is possible to select a
+different build file with \texttt{-e} or \texttt{-\/-build-file} command
+line option.
Sample build file:
@@ -201,184 +356,228 @@ Make:htlatex()
Make:match("html$", "tidy -m -xml -utf8 -q -i ${filename}")
\end{verbatim}
-\texttt{Make:htlatex()} is preconfigured command for calling LaTeX with
-\texttt{tex4ht} loaded on the input file. In this case, it will be
-called one time. After compilation, the \texttt{tidy} command is
-executed on the output \texttt{HTML} file.
+\texttt{Make:htlatex()} is preconfigured command for calling \LaTeX~with
+the \texttt{tex4ht.sty} package loaded. In this example, it will be
+executed only once. After the compilation, the \texttt{tidy} command is
+executed on the output \texttt{HTML} files.
-Note that you don't have to call \texttt{tex4ht} and \texttt{t4ht}
+Note that it is not necessary to call \texttt{tex4ht} and \texttt{t4ht}
commands explicitly in the build file, they are called automatically.
\hypertarget{user-commands}{%
\subsection{User commands}\label{user-commands}}
-You can add more commands like \texttt{Make:htlatex} using
+It is possible to add more commands like \texttt{Make:htlatex} using the
\texttt{Make:add} command:
\begin{verbatim}
-Make:add("name", "command", {parameters}, repetition)
+Make:add("name", "command", {settings table}, repetition)
\end{verbatim}
-The \texttt{name} and \texttt{command} parameters are required, rest of
-the parameters are optional.
+This defines the \texttt{name} command, which can be then executed using
+\texttt{Make:name()} command in the build file.
-This defines \texttt{name} command, which can be then executed as
-\texttt{Make:name()} command.
+The \texttt{name} and \texttt{command} parameters are required, the rest
+of the parameters are optional.
-\hypertarget{provided-commands}{%
-\subsubsection{Provided commands}\label{provided-commands}}
+The defined command receives a table with settings as a parameter at the
+call time. The default settings are provided by \texttt{make4ht}.
+Additional settings can be declared in the \texttt{Make:add} commands,
+user can also override the default settings when the command is executed
+in the build file:
-\begin{description}
-\item[\texttt{Make:htlatex}]
-One call to TeX engine with special configuration for \texttt{tex4ht}
-loading.
-\item[\texttt{Make:latexmk}]
-Use \texttt{Latexmk} for the document compilation. \texttt{tex4ht} will
-be loaded automatically.
-\item[\texttt{Make:tex4ht}]
-Process the \texttt{DVI} file and creates the output files.
-\item[\texttt{Make:t4ht}]
-Creates the CSS file.
-\end{description}
+\begin{verbatim}
+Make:name({hello="world"})
+\end{verbatim}
+
+More information about settings, including the default settings provided
+by \texttt{make4ht}, can be found in section \ref{sec:settings} on page
+\pageref{sec:settings}.
-\hypertarget{command-function}{%
-\subsubsection{Command function}\label{command-function}}
+\hypertarget{the-command-function}{%
+\subsubsection{\texorpdfstring{The \texttt{command}
+function}{The command function}}\label{the-command-function}}
-The \texttt{command} parameter can be either string template or
+\label{sec:commandfunction}
+
+The \texttt{command} parameter can be either a string template or
function:
\begin{verbatim}
Make:add("text", "echo hello, input file: ${input}")
-Make:add("function", function(params)
- for k, v in pairs(params) do
- print(k..": "..v)
- end, {custom="Hello world"}
-)
\end{verbatim}
-The template can get variable value from the parameters table using a
-\texttt{\$\{var\_name\}} placeholder. Templates are executed using
-operating system, so they should invoke existing OS commands. Function
-commands may execute system commands using \texttt{os.execute} function.
-
-\hypertarget{parameters-table}{%
-\subsubsection{Parameters table}\label{parameters-table}}
+The template can get a variable value from the parameters table using a
+\texttt{\$\{var\_name\}} placeholder. Templates are executed using the
+operating system, so they should invoke existing OS commands.
-\texttt{parameters} parameter is optional, it can be table or
-\texttt{nil} value, which should be used if you want to use the
-\texttt{repetition} parameter, but don't want to modify the parameters
-table.
+\hypertarget{the-settings-table-table}{%
+\subsubsection{\texorpdfstring{The \texttt{settings\ table}
+table}{The settings table table}}\label{the-settings-table-table}}
-The table with default parameters is passed to all commands, they can be
-accessed from command functions or templates. When you specify your own
-parameters in the command definition, these additional parameters are
-added to the default parameters table for this particular command. You
-can override the default parameters in the parameters table.
+The \texttt{settings\ table} parameter is optional. If it is present, it
+should be a table with new settings available in the command. It can
+also override the default \texttt{make4ht} settings for the defined
+command.
-The default parameters are following:
-
-\begin{description}
-\item[\texttt{htlatex}]
-used compiler
-\item[\texttt{input}]
-it is output file name in fact
-\item[\texttt{tex\_file}]
-input TeX file
-\item[\texttt{latex\_par}]
-parameters to \texttt{latex}
-\item[\texttt{packages}]
-insert additional LaTeX code which is inserted before
-\texttt{\textbackslash{}documentclass}. Useful for passing options to
-packages or additional packages loading
-\item[\texttt{tex4ht\_sty\_par}]
-parameters to \texttt{tex4ht.sty}
-\item[\texttt{tex4ht\_par}]
-parameters to the \texttt{tex4ht} application
-\item[\texttt{t4ht\_par}]
-parameters to the \texttt{t4ht} application
-\item[\texttt{outdir}]
-the output directory
-\item[\texttt{repetition}]
-limit number of command execution.
-\item[\texttt{correct\_exit}]
-expected \texttt{exit\ code} from the command. The compilation will be
-terminated if the command \texttt{exit\ code} is different.
-\end{description}
+\begin{verbatim}
+Make:add("sample_function", function(params)
+ for k, v in pairs(params) do
+ print(k..": "..v)
+ end, {custom="Hello world"}
+)
+\end{verbatim}
\hypertarget{repetition}{%
\subsubsection{Repetition}\label{repetition}}
-Repetition is number which specifies a maximal number of executions of
-the particular command. This is used for instance for \texttt{tex4ht}
-and \texttt{t4ht} commands, as they should be executed only once in the
-compilation. They would be executed multiple times if you include them
-in the build file because they are called by \texttt{make4ht} by
-default. Because these commands allow only one \texttt{repetition}, the
-second execution will be blocked.
+The \texttt{repetition} parameter specifies the maximum number of
+executions of the particular command. This is used for instance for
+\texttt{tex4ht} and \texttt{t4ht} commands, as they should be executed
+only once in the compilation. They would be executed multiple times when
+they are included in the build file, as they are called by
+\texttt{make4ht} by default. Because these commands allow only one
+\texttt{repetition}, the second execution is blocked.
\hypertarget{expected-exit-code}{%
\subsubsection{Expected exit code}\label{expected-exit-code}}
You can set the expected exit code from a command with a
-\texttt{correct\_exit} key in the parameters table. The compilation will
-be stopped when the command returns a different exit code.
-
-This mechanism isn't used for LaTeX (for all TeX engines and formats, in
-fact), because it doesn't differentiate between fatal and non-fatal
-errors, and it returns the same exit code in all cases. Log parsing is
-used because of that, error code \texttt{1} is returned in the case of
-fatal error, \texttt{0} is used otherwise. The \texttt{Make.testlogfile}
+\texttt{correct\_exit} key in the settings table. The compilation will
+be terminated when the command returns a different exit code.
+
+\begin{verbatim}
+Make:add("biber", "biber ${input}", {correct_exit=0})
+\end{verbatim}
+
+Commands that execute lua functions can return the numerical values
+using the \texttt{return} statement.
+
+This mechanism isn't used for \TeX, because it doesn't differentiate
+between fatal and non-fatal errors. It returns the same exit code in all
+cases. Because of this, log parsing is used for a fatal error detection
+instead. Error code value \texttt{1} is returned in the case of a fatal
+error, \texttt{0} is used otherwise. The \texttt{Make.testlogfile}
function can be used in the build file to detect compilation errors in
the TeX log file.
+\hypertarget{provided-commands}{%
+\subsection{Provided commands}\label{provided-commands}}
+
+\begin{description}
+\item[\texttt{Make:htlatex}]
+One call to the TeX engine with special configuration for loading of the
+\texttt{tex4ht.sty} package.
+\item[\texttt{Make:latexmk}]
+Use \texttt{Latexmk} for the document compilation. \texttt{tex4ht.sty}
+will be loaded automatically.
+\item[\texttt{Make:tex4ht}]
+Process the \texttt{DVI} file and create output files.
+\item[\texttt{Make:t4ht}]
+Create the CSS file and generate images.
+\item[\texttt{Make:biber}]
+Process bibliography using the \texttt{biber} command.
+\item[\texttt{Make:bibtex}]
+Process bibliography using the \texttt{bibtex} command.
+\item[\texttt{Make:xindy}]
+Generate index using Xindy index processor.
+\item[\texttt{Make:makeindex}]
+Generate index using the Makeindex command.
+\item[\texttt{Make:xindex}]
+Generate index using the Xindex command.
+\end{description}
+
\hypertarget{file-matches}{%
\subsection{File matches}\label{file-matches}}
-Another type of action which can be specified in the build file is
-\texttt{match}. It can be called on the generated files:
+\label{sec:postprocessing}
+
+Another type of action that can be specified in the build file is
+\texttt{Make:match}. It can be used to post-process the generated files:
\begin{verbatim}
Make:match("html$", "tidy -m -xml -utf8 -q -i ${filename}")
\end{verbatim}
-It tests output file names with \texttt{Lua} pattern matching and on
-matched items will execute a command or a function, specified in the
-second argument. Commands may be specified as strings, the templates
-will be expanded, \texttt{\$\{var\_name\}} placeholders will be replaced
-with corresponding variables from the \texttt{parameters} table,
-described in the previous subsection. One additional variable is
-available: \texttt{filename}. It contains the name of the current output
-file.
-
The above example will clean all output \texttt{HTML} files using the
\texttt{tidy} command.
-If function is used instead, it will get two parameters. The first one
-is a current filename, the second one table with parameters.
+The \texttt{Make:match} action tests output filenames using a
+\texttt{Lua} pattern matching function.\\
+It executes a command or a function, specified in the second argument,
+on files whose filenames match the pattern.
+
+The commands to be executed can be specified as strings. They can
+contain \texttt{\$\{var\_name\}} placeholders, which are replaced with
+corresponding variables from the \texttt{settings} table. The templating
+system was described in subsection \ref{sec:commandfunction}. There is
+an additional variable available in this table, called
+\texttt{filename}. It contains the name of the current output file.
+
+If a function is used instead, it will get two parameters. The first one
+is the current filename, the second one is the \texttt{settings} table.
+
+\begin{verbatim}
+Make:match("html$", function(filename, settings)
+ print("Post-processing file: ".. filename)
+ print("Available settings")
+ for k,v in pairs(settings)
+ print(k,v)
+ end
+ return true
+\end{verbatim}
+
+end)
+
+Multiple post-processing actions can be executed on each filename. The
+Lua action functions can return an exit code. If the exit code is false,
+the execution of the post-processing chain for the current file will be
+terminated.
\hypertarget{filters}{%
\subsubsection{Filters}\label{filters}}
-Some default \texttt{match} actions which can be used are available from
-the \texttt{make4ht-filter} module. It contains some functions which are
-useful for fixing some \texttt{tex4ht} bugs or shortcomings.
+\label{sec:filters}
-Example:
+To make it easier to post-process the generated files using the
+\texttt{match} actions, \texttt{make4ht} provides a filtering mechanism
+thanks to the \texttt{make4ht-filter} module.
+
+The \texttt{make4ht-filter} module returns a function that can be used
+for the filter chain building. Multiple filters can be chained into a
+pipeline. Each filter can modify the string that is passed to it from
+the previous filters. The changes are then saved to the processed file.
+
+Several built-in filters are available, it is also possible to create
+new ones.
+
+Example that use only the built-in filters:
\begin{verbatim}
local filter = require "make4ht-filter"
local process = filter{"cleanspan", "fixligatures", "hruletohr"}
Make:htlatex()
+Make:match("html$",process)
+\end{verbatim}
+
+Function \texttt{filter} accepts also function arguments, in this case
+this function takes file contents as a parameter and modified contents
+are returned.
+
+Example with custom filter:
+
+\begin{verbatim}
+local filter = require "make4ht-filter"
+local changea = function(s) return s:gsub("a","z") end
+local process = filter{"cleanspan", "fixligatures", changea}
Make:htlatex()
Make:match("html$",process)
\end{verbatim}
-The \texttt{make4ht-filter} module return a function which can be used
-for the filter chain building. Multiple filters can be chained, each of
-them can modify the string which was modified by the previous filters.
-The changes are then saved to the processed file.
+In this example, spurious span elements are joined, ligatures are
+decomposed, and then all letters ``a'' are replaced with ``z'' letters.
-Built-in filters are:
+Built-in filters are the following:
\begin{description}
\item[cleanspan]
@@ -389,16 +588,15 @@ alternative clean span filter, provided by Nat Kuhn
decompose ligatures to base characters
\item[hruletohr]
\texttt{\textbackslash{}hrule} commands are translated to series of
-underscore characters by \texttt{tex4ht}, this filter translate these
+underscore characters by \TeX4ht, this filter translates these
underscores to \texttt{\textless{}hr\textgreater{}} elements
\item[entites]
-convert prohibited named entities to numeric entities (currently, only
-\texttt{\&nbsp;}, as it causes validation errors, and \texttt{tex4ht} is
-producing it sometimes)
+convert prohibited named entities to numeric entities (only
+\texttt{\&nbsp;} currently).
\item[fix-links]
replace colons in local links and \texttt{id} attributes with
underscores. Some cross-reference commands may produce colons in
-internal links, which results in validation error.
+internal links, which results in a validation error.
\item[mathjaxnode]
use \href{https://github.com/pkra/mathjax-node-page/}{mathjax-node-page}
to convert from MathML code to HTML + CSS or SVG. See
@@ -407,39 +605,22 @@ to convert from MathML code to HTML + CSS or SVG. See
use styles from another \texttt{ODT} file serving as a template in the
current document. It works for the \texttt{styles.xml} file in the
\texttt{ODT} file. During the compilation, this file is named as
-\texttt{\textbackslash{}jobname.4oy}.
+\texttt{\textbackslash{}jobname.4oy}. \label{sec:odttemplate}
\item[staticsite]
-create HTML files in format suitable for static site generators such as
-\href{https://jekyllrb.com/}{Jekyll}
+create HTML files in a format suitable for static site generators such
+as \href{https://jekyllrb.com/}{Jekyll}
\item[svg-height]
some SVG images produced by \texttt{dvisvgm} seem to have wrong
dimensions. This filter tries to set the correct image size.
\end{description}
-Function \texttt{filter} accepts also function arguments, in this case
-this function takes file contents as a parameter and modified contents
-are returned.
-
-Example:
-
-\begin{verbatim}
-local filter = require "make4ht-filter"
-local changea = function(s) return s:gsub("a","z") end
-local process = filter{"cleanspan", "fixligatures", changea}
-Make:htlatex()
-Make:htlatex()
-Make:match("html$",process)
-\end{verbatim}
-
-In this example, spurious span elements are joined, ligatures are
-decomposed, and then all letters `a' are replaced with `z' letters.
-
\hypertarget{dom-filters}{%
\subsubsection{DOM filters}\label{dom-filters}}
-DOM filters use the \href{https://ctan.org/pkg/luaxml}{\texttt{LuaXML}}
-library to modify directly the XML object. This enables more powerful
-operations than the regex based filters from the previous section.
+DOM filters are variants of filters that use the
+\href{https://ctan.org/pkg/luaxml}{\texttt{LuaXML}} library to modify
+directly the XML object. This enables more powerful operations than the
+regex-based filters from the previous section.
Example:
@@ -455,7 +636,10 @@ Available DOM filters:
\item[aeneas]
\href{https://www.readbeyond.it/aeneas/}{Aeneas} is a tool for
automagical synchronization of text and audio. This filter modifies the
-HTML code to support the synchronization.
+HTML code to support synchronization.
+\item[collapsetoc]
+collapse table of contents to contain only top-level sectioning level
+and sections on the current page.
\item[fixinlines]
put all inline elements which are direct children of the
\texttt{\textless{}body\textgreater{}} elements to a paragraph.
@@ -464,198 +648,65 @@ replace the colon (\texttt{:}) character in internal links and
\texttt{id} attributes. They cause validation issues.
\item[joincharacters]
join consecutive \texttt{\textless{}span\textgreater{}} or
-\texttt{\textless{}mn\textgreater{}} elements.
+\texttt{\textless{}mn\textgreater{}} elements. This DOM filter
+supersedes the \texttt{cleanspan} filter.
\item[joincolors]
many \texttt{\textless{}span\textgreater{}} elements with unique
-\texttt{id} attribute are created when \LaTeX~colors are being used in
-the document. CSS rule is added for each of these elements, which may
-result in substantial grow of the CSS file. This filter replace these
+\texttt{id} attributes are created when \LaTeX~colors are being used in
+the document. A CSS rule is added for each of these elements, which may
+result in substantial growth of the CSS file. This filter replaces these
rules with a common one for elements with the same color value.
\item[odtimagesize]
set correct dimensions for images in the ODT format. It is loaded by
default for the ODT output.
+\item[odtpartable]
+resolve tables nested inside paragraphs, which is invalid in the ODT
+format.
+\item[tablerows]
+remove spurious rows from HTML tables.
\item[t4htlinks]
fix hyperlinks in the ODT format.
\end{description}
-\hypertarget{make4ht-aeneas-config-package}{%
-\subsubsection{make4ht-aeneas-config
-package}\label{make4ht-aeneas-config-package}}
-
-Companion for the \texttt{aeneas} DOM filter is the
-\texttt{make4ht-aeneas-config} plugin. It can be used to write Aeneas
-configuration file or execute Aeneas on the generated HTML files.
-
-Available functions:
-
-\begin{description}
-\item[write\_job(parameters)]
-write Aenas job configuration to \texttt{config.xml} file. See the
-\href{https://www.readbeyond.it/aeneas/docs/clitutorial.html\#processing-jobs}{Aeneas
-documentation} for more information about jobs.
-\item[execute(parameters)]
-execute Aeneas.
-\item[process\_files(parameters)]
-process the audio and generated subtitle files.
-\end{description}
-
-By default, the \texttt{smil} file is created. It is assumed that there
-is audio file in \texttt{mp3} format named as the TeX file. It is
-possible to use different formats and file names using mapping.
-
-The configuration options can be passed directly to the functions or set
-using \texttt{filter\_settings\ "aeneas-config"\ \{parameters\}}
-function.
-
-Available parameters:
-
-\begin{description}
-\item[lang]
-document language. It is interfered from the HTML file, so it is not
-necessary to set it.
-\item[map]
-mapping between HTML, audio and subtitle files. More info bellow.
-\item[text\_type]
-type of the input. The \texttt{aeneas} DOM filter produces
-\texttt{unparsed} text type.
-\item[id\_sort]
-sorting of id attributes. Default value is \texttt{numeric}.
-\item[id\_regex]
-regular expression to parse the id attributes.
-\item[sub\_format]
-generated subtitle format. Default \texttt{smil}.
-\end{description}
-
-Additional parameters for the job configuration file:
-
-\begin{itemize}
-\tightlist
-\item
- description
-\item
- prefix
-\item
- config\_name
-\item
- keep\_config
-\end{itemize}
-
-It is possible to generate multiple HTML files from the LaTeX source.
-For example, \texttt{tex4ebook} generates separate file for each chapter
-or section. It is possible to set options for each HTML file, in
-particular names of the corresponding audio files. This mapping is done
-using \texttt{map} parameter.
-
-Example:
-
-\begin{verbatim}
-filter_settings "aeneas-config" {
- map = {
- ["sampleli1.html"] = {audio_file="sample.mp3"},
- ["sample.html"] = false
- }
-}
-\end{verbatim}
-
-Table keys are the configured file names. It is necessary to insert them
-as \texttt{{[}"filename.html"{]}}, because of Lua syntax rules.
-
-This example maps audio file \texttt{sample.mp3} to a section subpage.
-The main HTML file, which may contain title and table of contents
-doesn't have a corresponding audio file.
-
-Filenames of the sub files corresponds to the chapter numbers, so they
-are not stable when a new chapter is added. It is possible to request
-file names interfered from the chapter titles using the
-\texttt{sec-filename} option or \texttt{tex4ht}.
-
-Available \texttt{map} options:
-
-\begin{description}
-\item[audio\_file]
-the corresponding audio file
-\item[sub\_file]
-name of the generated subtitle file
-\end{description}
-
-The following options are same as their counter-parts from the main
-parameters table and generally don't need to be set:
-
-\begin{itemize}
-\tightlist
-\item
- prefix
-\item
- file\_desc
-\item
- file\_id
-\item
- text\_type
-\item
- id\_sort
-\item
- id\_prefix
-\item
- sub\_format
-\end{itemize}
-
-Full example:
-
-\begin{verbatim}
-local domfilter = require "make4ht-domfilter"
-local aeneas_config = require "make4ht-aeneas-config"
-
-filter_settings "aeneas-config" {
- map = {
- ["krecekli1.xhtml"] = {audio_file="krecek.mp3"},
- ["krecek.xhtml"] = false
- }
-}
-
-local process = domfilter {"aeneas"}
-Make:match("html$", process)
-
-if mode == "draft" then
- aeneas_config.process_files {}
-else
- aeneas_config.execute {}
-end
-\end{verbatim}
-
\hypertarget{image-conversion}{%
\subsection{Image conversion}\label{image-conversion}}
-It is possible to convert parts of LaTeX input to pictures, it is used
-for example for math or diagrams in \texttt{tex4ht}.
+\label{sec:imageconversion}
-These pictures are stored in a special \texttt{dvi} file, which can be
-processed by the \texttt{dvi\ to\ image} commands.
+It is possible to convert parts of the \LaTeX~input as pictures. It can
+be used for preserving the appearance of math or diagrams, for example.
-This conversion is normally configured in the \texttt{env\ file}, which
-is system dependent and which has a bit unintuitive syntax. This
-configuration is processed by the \texttt{t4ht} application and
-conversion commands are called for all pictures.
+These pictures are stored in a special \texttt{DVI} file, which can be
+processed by a \texttt{DVI} to image commands, such as \texttt{dvipng}
+or \texttt{dvisvgm}.
+
+This conversion is normally configured in the \texttt{tex4ht.env} file.
+This file is system dependent and it has quite an unintuitive syntax.
+The configuration is processed by the \texttt{t4ht} application and the
+conversion command is called for all pictures.
It is possible to disable \texttt{t4ht} image processing and configure
-image conversion in the build file:
+image conversion in the build file using the \texttt{image} action:
\begin{verbatim}
Make:image("png$",
"dvipng -bg Transparent -T tight -o ${output} -pp ${page} ${source}")
\end{verbatim}
-\texttt{Make:image} takes two parameters, pattern to match image name
-and action. Action can be either string template with conversion
-command, or function which takes a table with parameters as an argument.
+\texttt{Make:image} takes two parameters, a \texttt{Lua} pattern to
+match the image name, and the action.
+
+Action can be either a string template with the conversion command or a
+function that takes a table with parameters as an argument.
There are three parameters:
\begin{itemize}
\tightlist
\item
- \texttt{output} - output image file name
+ \texttt{output} - output image filename
\item
- \texttt{source} - \texttt{dvi} file with the pictures
+ \texttt{source} - \texttt{DVI} file with the pictures
\item
\texttt{page} - page number of the converted image
\end{itemize}
@@ -664,9 +715,9 @@ There are three parameters:
\subsection{\texorpdfstring{The \texttt{mode}
variable}{The mode variable}}\label{the-mode-variable}}
-There is global \texttt{mode} variable available in the build file. It
-contains contents of the \texttt{-\/-mode} command line option. It can
-be used to run some commands conditionally. For example:
+The \texttt{mode} variable available in the build process contains
+contents of the \texttt{-\/-mode} command line option. It can be used to
+run some commands conditionally. For example:
\begin{verbatim}
if mode == "draft" then
@@ -679,8 +730,8 @@ be used to run some commands conditionally. For example:
\end{verbatim}
In this example (which is the default configuration used by
-\texttt{make4ht}), LaTeX is called only once when \texttt{make4ht} is
-called with \texttt{draft} mode:
+\texttt{make4ht}), \LaTeX~is called only once when \texttt{make4ht} is
+called with the \texttt{draft} mode:
\begin{verbatim}
make4ht -m draft filename
@@ -690,10 +741,12 @@ make4ht -m draft filename
\subsection{\texorpdfstring{The \texttt{settings}
table}{The settings table}}\label{the-settings-table}}
-You may want to access to the parameters also outside commands, file
-matches and image conversion functions. For example, if you want to
-convert your file to the \texttt{OpenDocument\ Format\ (ODT)}, you can
-use the following settings, based on the \texttt{oolatex} command:
+\label{sec:settings}
+
+It is possible to access the parameters outside commands, file matches
+and image conversion functions. For example, to convert the document to
+the \texttt{OpenDocument\ Format\ (ODT)}, the following settings can be
+used. They are based on the \texttt{oolatex} command:
\begin{verbatim}
settings.tex4ht_sty_par = settings.tex4ht_sty_par ..",ooffice"
@@ -701,7 +754,11 @@ settings.tex4ht_par = settings.tex4ht_par .. " ooffice/! -cmozhtf"
settings.t4ht_par = settings.t4ht_par .. " -cooxtpipes -coo "
\end{verbatim}
-There are some functions to ease access to the settings:
+(Note that it is possible to use the \texttt{-\/-format\ odt} option
+which is superior to the previous code. This example is intended just as
+an illustration)
+
+There are some functions to simplify access to the settings:
\begin{description}
\item[\texttt{set\_settings\{parameters\}}]
@@ -714,8 +771,8 @@ set settings for a filter
get settings for a filter
\end{description}
-Using these functions, it is possible to simplify the settings for the
-\texttt{ODT} format:
+For example, it is possible to simplify the sample from the previous
+code listings:
\begin{verbatim}
settings_add {
@@ -734,8 +791,8 @@ filter_settings "test" {
}
\end{verbatim}
-These settings can be read in the extensions and filters using
-\texttt{get\_filter\_settings}:
+These settings can be retrieved in the extensions and filters using the
+\texttt{get\_filter\_settings} function:
\begin{verbatim}
function test(input)
@@ -746,14 +803,153 @@ end
\end{verbatim}
+\hypertarget{default-settings}{%
+\subsubsection{Default settings}\label{default-settings}}
+
+The default parameters are the following:
+
+\begin{description}
+\item[\texttt{htlatex}]
+used \TeX~engine
+\item[\texttt{input}]
+content of \texttt{\textbackslash{}jobname}, see also the
+\texttt{tex\_file} parameter.
+\item[\texttt{interaction}]
+interaction mode for the \TeX~engine. The default value is
+\texttt{batchmode} to suppress user input on compilation errors. It also
+suppresses most of the \TeX~ compilation log output. Use the
+\texttt{errorstopmode} for the default behavior.
+\item[\texttt{tex\_file}]
+input \TeX~filename
+\item[\texttt{latex\_par}]
+command line parameters to the \TeX~engine
+\item[\texttt{packages}]
+additional \LaTeX~code inserted before
+\texttt{\textbackslash{}documentclass}. Useful for passing options to
+packages used in the document or to load additional packages.
+\item[\texttt{tex4ht\_sty\_par}]
+options for \texttt{tex4ht.sty}
+\item[\texttt{tex4ht\_par}]
+command line options for the \texttt{tex4ht} command
+\item[\texttt{t4ht\_par}]
+command line options for the \texttt{t4ht} command
+\item[\texttt{outdir}]
+the output directory
+\item[\texttt{correct\_exit}]
+expected \texttt{exit\ code} from the command. The compilation will be
+terminated if the exit code of the executed command has a different
+value.
+\end{description}
+
+\hypertarget{configfile}{%
+\section{Configuration file}\label{configfile}}
+
+It is possible to globally modify the build settings using the
+configuration file. It is a special version of a build file where the
+global settings can be set.
+
+Common tasks for the configuration file can be a declaration of the new
+commands, loading of the default filters or specification of a default
+build sequence.
+
+One additional functionality not available in the build files are
+commands for enabling and disabling of extensions.
+
+\hypertarget{location}{%
+\subsection{Location}\label{location}}
+
+The configuration file can be saved either in the
+\texttt{\$HOME/.config/make4ht/config.lua} file, or in the
+\texttt{.make4ht} file placed in the current directory or it's parent
+directories (up to the \texttt{\$HOME} directory).
+
+\hypertarget{additional-commands}{%
+\subsection{Additional commands}\label{additional-commands}}
+
+There are two additional commands:
+
+\begin{description}
+\item[\texttt{Make:enable\_extension(name)}]
+require extension
+\item[\texttt{Make:disable\_extension(name)}]
+disable extension
+\end{description}
+
+\hypertarget{example}{%
+\subsection{Example}\label{example}}
+
+The following example of the configuration file adds support for the
+\texttt{biber} command, requires \texttt{common\_domfilters} extension
+and requires MathML output for math.
+
+\begin{verbatim}
+Make:add("biber", "biber ${input}")
+Make:enable_extension "common_domfilters"
+settings_add {
+ tex4ht_sty_par =",mathml"
+}
+\end{verbatim}
+
\hypertarget{list-of-available-settings-for-filters-and-extensions.}{%
-\subsection{List of available settings for filters and
+\section{List of available settings for filters and
extensions.}\label{list-of-available-settings-for-filters-and-extensions.}}
-These settings may be set using \texttt{filter\_settings} function.
+These settings may be set using \texttt{filter\_settings} function in a
+build file or in the \texttt{make4ht} configuration file.
+
+\hypertarget{indexing-commands}{%
+\subsection{Indexing commands}\label{indexing-commands}}
+
+The indexing commands (like \texttt{xindy} or \texttt{makeindex}) use
+some common settings.
+
+\begin{description}
+\item[idxfile]
+name of the \texttt{.idx} file. Default value is
+\texttt{\textbackslash{}jobname.idx}.
+\item[indfile]
+name of the \texttt{.ind} file. Default value is the same as
+\texttt{idxfile} with the file extension changed to \texttt{.ind}.
+\end{description}
+
+Each indexing command can have some additional settings.
+
+\hypertarget{the-xindy-command}{%
+\subsubsection{\texorpdfstring{The \texttt{xindy}
+command}{The xindy command}}\label{the-xindy-command}}
+
+\begin{description}
+\item[encoding]
+text encoding of the \texttt{.idx} file. Default value is \texttt{utf8}.
+\item[language]
+index language. Default language is English.
+\item[modules]
+table with names of additional \texttt{Xindy} modules to be used.
+\end{description}
+
+\hypertarget{the-makeindex-command}{%
+\subsubsection{\texorpdfstring{The \texttt{makeindex}
+command}{The makeindex command}}\label{the-makeindex-command}}
+
+options
+
+: additional command line options for the Makeindex command.
+
+\hypertarget{the-xindex-command}{%
+\subsubsection{\texorpdfstring{The \texttt{xindex}
+command}{The xindex command}}\label{the-xindex-command}}
+
+options
+
+: additional command line options for the Xindex command.
+
+\begin{description}
+\item[language]
+document language
+\end{description}
\hypertarget{the-tidy-extension}{%
-\subsubsection{\texorpdfstring{The \texttt{tidy}
+\subsection{\texorpdfstring{The \texttt{tidy}
extension}{The tidy extension}}\label{the-tidy-extension}}
\begin{description}
@@ -762,13 +958,37 @@ command line options for the \texttt{tidy} command. Default value is
\texttt{-m\ -utf8\ -w\ 512\ -q}.
\end{description}
+\hypertarget{the-collapsetoc-dom-filter}{%
+\subsection{\texorpdfstring{The \texttt{collapsetoc} dom
+filter}{The collapsetoc dom filter}}\label{the-collapsetoc-dom-filter}}
+
+\begin{description}
+\item[\texttt{toc\_query}]
+CSS selector for selecting the table of contents container.
+\item[\texttt{title\_query}]
+CSS selector for selecting all elements that contain the section ID
+attribute.
+\item[\texttt{toc\_levels}]
+table containing a hierarchy of classes used in TOC
+\end{description}
+
+Default values:
+
+\begin{verbatim}
+filter_settings "collapsetoc" {
+ toc_query = ".tableofcontents",
+ title_query = ".partHead a, .chapterHead a, .sectionHead a, .subsectionHead a",
+ toc_levels = {"partToc", "chapterToc", "sectionToc", "subsectionToc", "subsubsectionToc"}
+}
+\end{verbatim}
+
\hypertarget{the-fixinlines-dom-filter}{%
-\subsubsection{\texorpdfstring{The \texttt{fixinlines} dom
+\subsection{\texorpdfstring{The \texttt{fixinlines} dom
filter}{The fixinlines dom filter}}\label{the-fixinlines-dom-filter}}
\begin{description}
\item[inline\_elements]
-table of inline elements which shouldn't be direct descendants of the
+table of inline elements that shouldn't be direct descendants of the
\texttt{body} element. The element names should be table keys, the
values should be true.
\end{description}
@@ -780,23 +1000,24 @@ filter_settings "fixinlines" {inline_elements = {a = true, b = true}}
\end{verbatim}
\hypertarget{the-joincharacters-dom-filter}{%
-\subsubsection{\texorpdfstring{The \texttt{joincharacters} dom
+\subsection{\texorpdfstring{The \texttt{joincharacters} dom
filter}{The joincharacters dom filter}}\label{the-joincharacters-dom-filter}}
\begin{description}
-\item[charelements]
-table of elements which should be joined if several instances with the
-same value of \texttt{class} attribute are side by side.
+\item[charclasses]
+table of elements that should be concatenated when two or more of such
+elements with the same value of the \texttt{class} attribute are placed
+one after another.
\end{description}
Example
\begin{verbatim}
-filter_settings "joincharacters" { charclases = { span=true, mn = true}}
+filter_settings "joincharacters" { charclasses = { span=true, mn = true}}
\end{verbatim}
\hypertarget{mathjaxsettings}{%
-\subsubsection{\texorpdfstring{The \texttt{mathjaxnode}
+\subsection{\texorpdfstring{The \texttt{mathjaxnode}
filter}{The mathjaxnode filter}}\label{mathjaxsettings}}
\begin{description}
@@ -815,12 +1036,12 @@ filter_settings "mathjaxnode" {
\begin{description}
\item[cssfilename]
-\texttt{mjpage} puts some CSS code into the HTML pages.
+the \texttt{mjpage} command puts some CSS code into the HTML pages.
\texttt{mathjaxnode} extracts this information and saves it to a
standalone CSS file. Default CSS filename is \texttt{mathjax-chtml.css}
\item[fontdir]
-directory with MathJax font files. This option enables use of local
-fonts, which is usefull in Epub conversion, for example. The font
+directory with MathJax font files. This option enables the use of local
+fonts, which is useful in the conversion to ePub, for example. The font
directory should be sub-directory of the current directory. Only TeX
font is supported at the moment.
\end{description}
@@ -833,37 +1054,22 @@ filter_settings "mathjaxnode" {
}
\end{verbatim}
-\hypertarget{the-aeneas-filter}{%
-\subsubsection{\texorpdfstring{The \texttt{aeneas}
-filter}{The aeneas filter}}\label{the-aeneas-filter}}
-
-\begin{description}
-\item[skip\_elements]
-List of CSS selectors that match elements which shouldn't be processed.
-Default value: \texttt{\{\ "math",\ "svg"\}}.
-\item[id\_prefix]
-prefix used in the ID attribute forming.
-\item[sentence\_match]
-Lua pattern used to match a sentence. Default value:
-\texttt{"({[}\^{}\%.\^{}\%?\^{}!{]}*)({[}\%.\%?!{]}?)"}.
-\end{description}
-
\hypertarget{the-staticsite-filter-and-extension}{%
-\subsubsection{\texorpdfstring{The \texttt{staticsite} filter and
+\subsection{\texorpdfstring{The \texttt{staticsite} filter and
extension}{The staticsite filter and extension}}\label{the-staticsite-filter-and-extension}}
\begin{description}
\item[site\_root]
directory where generated files should be copied.
\item[map]
-table where keys are patterns that match filenames, value contains
-destination directoryfor matched files, relative to the
-\texttt{site\_root} (it is possible to use \texttt{..} to swich to
-parent directory).
+a hash table where keys contain patterns that match filenames and values
+contain destination directory for the matched files. The destination
+directories are relative to the \texttt{site\_root} (it is possible to
+use \texttt{..} to switch to a parent directory).
\item[file\_pattern]
-pattern used for filename generation. It is possible to use string
-templates and format strings for \texttt{os.date} function. Default
-value of \texttt{\%Y-\%m-\%d-\$\{input\}} creates names in the form of
+a pattern used for filename generation. It is possible to use string
+templates and format strings for \texttt{os.date} function. The default
+pattern \texttt{\%Y-\%m-\%d-\$\{input\}} creates names in the form of
\texttt{YYYY-MM-DD-file\_name}.
\item[header]
table with variables to be set in the YAML header in HTML files. If the
@@ -891,7 +1097,7 @@ filter_settings "staticsite" {
\end{verbatim}
\hypertarget{the-dvisvgm_hashes-extension}{%
-\subsubsection{\texorpdfstring{The \texttt{dvisvgm\_hashes}
+\subsection{\texorpdfstring{The \texttt{dvisvgm\_hashes}
extension}{The dvisvgm\_hashes extension}}\label{the-dvisvgm_hashes-extension}}
\begin{description}
@@ -899,18 +1105,18 @@ extension}{The dvisvgm\_hashes extension}}\label{the-dvisvgm_hashes-extension}}
command line options for Dvisvgm. The default value is
\texttt{-n\ -\/-exact\ -c\ 1.15,1.15}.
\item[cpu\_cnt]
-number of processor cores used for conversion. The extension tries to
-detect the available cores automatically by default.
+the number of processor cores used for the conversion. The extension
+tries to detect the available cores automatically by default.
\item[parallel\_size]
-number of pages used in each Dvisvgm call. The extension detects changed
-pages in the DVI file and construct multiple calls to Dvisvgm with only
-changed pages.
+the number of pages used in each Dvisvgm call. The extension detects
+changed pages in the DVI file and constructs multiple calls to Dvisvgm
+with only changed pages.
\item[scale]
SVG scaling.
\end{description}
\hypertarget{the-odttemplate-filter-and-extension}{%
-\subsubsection{\texorpdfstring{The \texttt{odttemplate} filter and
+\subsection{\texorpdfstring{The \texttt{odttemplate} filter and
extension}{The odttemplate filter and extension}}\label{the-odttemplate-filter-and-extension}}
\begin{description}
@@ -920,108 +1126,175 @@ filename of the template \texttt{ODT} file
\texttt{odttemplate} can also get the template filename from the
\texttt{odttemplate} option from \texttt{tex4ht\_sty\_par} parameter. It
-can be set useing following command line call, for example:
+can be set using the following command line call:
\begin{verbatim}
make4ht -f odt+odttemplate filename.tex "odttemplate=template.odt"
\end{verbatim}
-\hypertarget{configfile}{%
-\section{Configuration file}\label{configfile}}
+\hypertarget{the-aeneas-filter}{%
+\subsection{\texorpdfstring{The \texttt{aeneas}
+filter}{The aeneas filter}}\label{the-aeneas-filter}}
-It is possible to globally modify the build settings using the
-configuration file. New compilation commands can be added, extensions
-can be loaded or disabled and settings can be set.
+\begin{description}
+\item[skip\_elements]
+List of CSS selectors that match elements that shouldn't be processed.
+Default value: \texttt{\{\ "math",\ "svg"\}}.
+\item[id\_prefix]
+prefix used in the ID attribute forming.
+\item[sentence\_match]
+Lua pattern used to match a sentence. Default value:
+\texttt{"({[}\^{}\%.\^{}\%?\^{}!{]}*)({[}\%.\%?!{]}?)"}.
+\end{description}
-\hypertarget{location}{%
-\subsection{Location}\label{location}}
+\hypertarget{the-make4ht-aeneas-config-package}{%
+\subsection{\texorpdfstring{The \texttt{make4ht-aeneas-config}
+package}{The make4ht-aeneas-config package}}\label{the-make4ht-aeneas-config-package}}
-The configuration file can be saved either in
-\texttt{\$HOME/.config/make4ht/config.lua} or in \texttt{.make4ht} in
-the current directory or it's parents (up to \texttt{\$HOME}).
+Companion for the \texttt{aeneas} DOM filter is the
+\texttt{make4ht-aeneas-config} plugin. It can be used to write the
+Aeneas configuration file or execute Aeneas on the generated HTML files.
-\hypertarget{additional-commands}{%
-\subsection{Additional commands}\label{additional-commands}}
+Available functions:
-There are two additional commands:
+\begin{description}
+\item[write\_job(parameters)]
+write Aenas job configuration to \texttt{config.xml} file. See the
+\href{https://www.readbeyond.it/aeneas/docs/clitutorial.html\#processing-jobs}{Aeneas
+documentation} for more information about jobs.
+\item[execute(parameters)]
+execute Aeneas.
+\item[process\_files(parameters)]
+process the audio and generated subtitle files.
+\end{description}
+
+By default, a \texttt{SMIL} file is created. It is assumed that there is
+an audio file in the \texttt{mp3} format, named as the \TeX~file. It is
+possible to use different formats and filenames using mapping.
+
+The configuration options can be passed directly to the functions or set
+using \texttt{filter\_settings\ "aeneas-config"\ \{parameters\}}
+function.
+
+\hypertarget{available-parameters}{%
+\subsubsection{Available parameters}\label{available-parameters}}
\begin{description}
-\item[\texttt{Make:enable\_extension(name)}]
-require extension
-\item[\texttt{Make:disable\_extension(name)}]
-disable extension
+\item[lang]
+document language. It is interfered from the HTML file, so it is not
+necessary to set it.
+\item[map]
+mapping between HTML, audio and subtitle files. More info below.
+\item[text\_type]
+type of input. The \texttt{aeneas} DOM filter produces an
+\texttt{unparsed} text type.
+\item[id\_sort]
+sorting of id attributes. The default value is \texttt{numeric}.
+\item[id\_regex]
+regular expression to parse the id attributes.
+\item[sub\_format]
+generated subtitle format. The default value is \texttt{smil}.
\end{description}
-\hypertarget{example}{%
-\subsection{Example}\label{example}}
+\hypertarget{additional-parameters-for-the-job-configuration-file}{%
+\subsubsection{Additional parameters for the job configuration
+file}\label{additional-parameters-for-the-job-configuration-file}}
+
+\begin{itemize}
+\tightlist
+\item
+ description
+\item
+ prefix
+\item
+ config\_name
+\item
+ keep\_config
+\end{itemize}
-The following configuration add support for the \texttt{biber} command,
-requires \texttt{common\_domfilters} extension and requires MathML
-output for math.
+It is possible to generate multiple HTML files from the \LaTeX~source.
+For example, \texttt{tex4ebook} generates a separate file for each
+chapter or section. It is possible to set options for each HTML file, in
+particular names of the corresponding audio files. This mapping is done
+using the \texttt{map} parameter.
+
+Example:
\begin{verbatim}
-Make:add("biber", "biber ${input}")
-Make:enable_extension "common_domfilters"
-settings_add {
- tex4ht_sty_par =",mathml"
+filter_settings "aeneas-config" {
+ map = {
+ ["sampleli1.html"] = {audio_file="sample.mp3"},
+ ["sample.html"] = false
+ }
}
\end{verbatim}
-\hypertarget{command-line-options}{%
-\section{Command line options}\label{command-line-options}}
+Table keys are the configured filenames. It is necessary to insert them
+as \texttt{{[}"filename.html"{]}}, because of Lua syntax rules.
-\begin{verbatim}
-make4ht - build system for tex4ht
-Usage:
-make4ht [options] filename ["tex4ht.sty op." "tex4ht op."
- "t4ht op" "latex op"]
--b,--backend (default tex4ht) Backend used for xml generation.
- possible values: tex4ht or lua4ht
--c,--config (default xhtml) Custom config file
--d,--output-dir (default "") Output directory
--e,--build-file (default nil) If build file name is different
- than `filename`.mk4
--f,--format (default nil) Output file format
--l,--lua Use lualatex for document compilation
--m,--mode (default default) Switch which can be used in the makefile
--n,--no-tex4ht Disable dvi file processing with tex4ht command
--s,--shell-escape Enables running external programs from LaTeX
--u,--utf8 For output documents in utf8 encoding
--v,--version Print version number
--x,--xetex Use xelatex for document compilation
-<filename> (string) Input file name
-\end{verbatim}
+This example maps audio file \texttt{sample.mp3} to a section subpage.
+The main HTML file, which may contain title and table of contents
+doesn't have a corresponding audio file.
-You can still invoke \texttt{make4ht} in the same way as
-\texttt{htlatex}:
+Filenames of the subfiles correspond to the chapter numbers, so they are
+not stable when a new chapter is added. It is possible to request
+filenames derived from the chapter titles using the
+\texttt{sec-filename} option for \texttt{tex4ht.sty}.
-\begin{verbatim}
-make4ht filename "customcfg, charset=utf-8" "-cunihtf -utf8" "-dfoo"
-\end{verbatim}
+\hypertarget{available-map-options}{%
+\subsubsection{\texorpdfstring{Available \texttt{map}
+options}{Available map options}}\label{available-map-options}}
-Note that this will not use \texttt{make4ht} routines for output
-directory making and copying. If you want to use them, change the line
-above to:
+\begin{description}
+\item[audio\_file]
+the corresponding audio file
+\item[sub\_file]
+name of the generated subtitle file
+\end{description}
-\begin{verbatim}
-make4ht -d foo filename "customcfg, charset=utf-8" "-cunihtf -utf8"
-\end{verbatim}
+The following options are the same as their counterparts from the main
+parameters table and generally, don't need to be set:
-This call has the same effect as the following:
+\begin{itemize}
+\tightlist
+\item
+ prefix
+\item
+ file\_desc
+\item
+ file\_id
+\item
+ text\_type
+\item
+ id\_sort
+\item
+ id\_prefix
+\item
+ sub\_format
+\end{itemize}
+
+\hypertarget{full-example}{%
+\subsubsection{Full example}\label{full-example}}
\begin{verbatim}
-make4ht -u -c customcfg -d foo filename
-\end{verbatim}
+local domfilter = require "make4ht-domfilter"
+local aeneas_config = require "make4ht-aeneas-config"
-Output directory doesn't have to exist, it will be created
-automatically. Specified path can be relative to current directory, or
-absolute:
+filter_settings "aeneas-config" {
+ map = {
+ ["krecekli1.xhtml"] = {audio_file="krecek.mp3"},
+ ["krecek.xhtml"] = false
+ }
+}
-\begin{verbatim}
-make4ht -d use/current/dir/ filename
-make4ht -d ../gotoparrentdir filename
-make4ht -d ~/gotohomedir filename
-make4ht -d c:\documents\windowspathsareworkingtoo filename
+local process = domfilter {"aeneas"}
+Make:match("html$", process)
+
+if mode == "draft" then
+ aeneas_config.process_files {}
+else
+ aeneas_config.execute {}
+end
\end{verbatim}
\hypertarget{troubleshooting}{%
@@ -1041,23 +1314,23 @@ make4ht:unrecognized parameter: i
It may be caused by a following \texttt{make4ht} invocation:
\begin{verbatim}
-make4ht hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8" -d foo
+$ make4ht hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8" -d foo
\end{verbatim}
The command line option parser is confused by mixing options for
-\texttt{make4ht} and \texttt{tex4ht} in this case and tries to interpret
-the \texttt{-cunihtf\ -utf8}, which are options for \texttt{tex4ht}
-command as \texttt{make4ht} options. To fix that, you can either move
-the \texttt{-d\ foo} directly after \texttt{make4ht} command:
+\texttt{make4ht} and \TeX4ht~in this case. It tries to interpret the
+\texttt{-cunihtf\ -utf8}, which are options for the \texttt{tex4ht}
+command, as \texttt{make4ht} options. To fix that, try to move the
+\texttt{-d\ foo} directly after the \texttt{make4ht} command:
\begin{verbatim}
-make4ht -d foo hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8"
+$ make4ht -d foo hello.tex "customcfg,charset=utf-8" "-cunihtf -utf8"
\end{verbatim}
-Another option is to add a space before \texttt{tex4ht} options:
+Another option is to add a space before the \texttt{tex4ht} options:
\begin{verbatim}
-make4ht hello.tex "customcfg,charset=utf-8" " -cunihtf -utf8" -d foo
+$ make4ht hello.tex "customcfg,charset=utf-8" " -cunihtf -utf8" -d foo
\end{verbatim}
The former way is preferable, though.
@@ -1066,10 +1339,10 @@ The former way is preferable, though.
\subsection{Filenames containing
spaces}\label{filenames-containing-spaces}}
-\texttt{tex4ht} cannot handle filenames containing spaces.
-\texttt{make4ht} thus replaces spaces in input file names with
-underscores, so generated XML files use underscores instead of spaces as
-well.
+\texttt{tex4ht} command cannot handle filenames containing spaces. to
+fix this issue, \texttt{make4ht} replaces spaces in the input filenames
+with underscores. The generated XML filenames use underscores instead of
+spaces as well.
\hypertarget{filenames-containing-non-ascii-characters}{%
\subsection{Filenames containing non-ASCII
diff --git a/support/tex4ebook/README b/support/tex4ebook/README
index 951dad5a57..796445674a 100644
--- a/support/tex4ebook/README
+++ b/support/tex4ebook/README
@@ -2,24 +2,22 @@
# Introduction
-`TeX4ebook` is bundle of Lua scripts and `LaTeX` packages for conversion of
-LaTeX files to ebook formats, for example `epub`, `mobi` and `epub3`. `tex4ht`
-is used as conversion engine.
+`TeX4ebook` is a tool for conversion from \LaTeX\ to
+ebook formats, such as EPUB, MOBI and EPUB 3.
+It is based on `TeX4ht`^[https://tug.org/tex4ht/],
+which provides instructions for the actual \LaTeX\ to HTML conversion,
+and on `make4ht`^[https://ctan.org/pkg/make4ht?lang=en].
-Note that while `mobi` is supported by Amazon Kindle, most widespread ebook
-reader, it doesn't support `mathml` and this means that math must re represented
-as images. The same is true for `epub`. This is not a good thing, especially
-for inline math, as you may experience wrong baselines. If your ebook contains
-math, the only correct solution is to produce `epub3`, as it supports `mathml`.
-The issue with `epub3` is, that majority of `e-ink` ebook readers doesn't
-support this format, reader applications exists mainly for Android and Apple
-devices. For books which contains mainly prose, all formats should be suitable,
-but `epub3` supports most features from web standards, such as `CSS`.
-As with `tex4ht`, the emphasis is on conversion of document's logical structure
-and metadata, basic visual appearance is preserved as well, but you should use
+The conversion is focused on the logical structure of the converted document
+and metadata. Basic visual appearance is preserved as well, but you should use
custom configurations if you want to make the document more visually appealing.
-You can include custom `CSS` or fonts in configuration files.
+You can include custom `CSS` or fonts in a configuration file.
+
+`TeX4ebook` supports the same features as `make4ht`, in particular build files and extensions.
+These may be used for post-processing of the generated HTML files, or to configure the image conversion.
+See the `make4ht` documentation to see the supported features.
+
## License
@@ -38,6 +36,7 @@ You don't have to modify your source files unless you want to use commands
defined by `tex4ebook` in the document, or when your document uses a
package which causes a compilation error.
+
If you want to use `tex4ebook` commands, add this line to your document
preamble:
@@ -51,9 +50,13 @@ But it is optional. You shouldn't need to modify your \TeX\ files
# Command line options
+`-a,--loglevel`
+
+: Set message log level. Possible values: debug, info, status, warning, error, fatal. Default: status.
+
`-c,--config`
-: specify custom config file for `tex4ht`
+: specify custom config file for `TeX4ht`
**example config file**: File `sample.cfg`
@@ -78,7 +81,11 @@ But it is optional. You shouldn't need to modify your \TeX\ files
`-f,--format (default epub)`
-: Output format. Epub, Epub3 and Mobi formats are supported.
+: Output format. Possible values are `epub`, `epub3` and `mobi`.
+
+`-j,--jobname`
+
+: Specify the output file name, without file extension.
`-l,--lua`
@@ -97,7 +104,7 @@ But it is optional. You shouldn't need to modify your \TeX\ files
`-s,--shell-escape`
-: Enable shell escape in htlatex run. This may be needed if you run external
+: Enable shell escape in the `htlatex` run. This is necessary for the execution of the external
commands from your source files.
`-t,--tidy`
@@ -112,12 +119,11 @@ But it is optional. You shouldn't need to modify your \TeX\ files
`-v,--version`
: Print the version number.
-
# Configuration
-`tex4ebook` uses `tex4ht`^[http://www.tug.org/tex4ht/] for conversion from LaTeX
-to html. `tex4ht` is highly configurable using config files. Basic config file
+`TeX4ebook` uses `TeX4ht`^[http://www.tug.org/tex4ht/] for conversion from LaTeX
+to html. `TeX4ht` is highly configurable using config files. Basic config file
structure is
\Preamble{xhtml, comma separated list of options}
@@ -127,16 +133,16 @@ structure is
\EndPreamble
Basic info about command configurations can be found in a
-work-in-progres *tex4ht tutorial*^[https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial],
-*tex4ht documentation*^[http://www.tug.org/applications/tex4ht/mn11.html],
+work-in-progres *TeX4ht tutorial*^[https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial],
+*TeX4ht documentation*^[http://www.tug.org/applications/tex4ht/mn11.html],
and in series of blogposts on CV Radhakrishnan's blog:
-*Configure part 1*^[http://www.cvr.cc/?p=323],
-*Configure part 2*^[http://www.cvr.cc/?p=362],
-*Low level commands*^[http://www.cvr.cc/?p=482].
+*Configure part 1*^[https://web.archive.org/web/20180908234227/http://www.cvr.cc/?p=323],
+*Configure part 2*^[https://web.archive.org/web/20180908201057/http://www.cvr.cc/?p=362],
+*Low level commands*^[https://web.archive.org/web/20180909101325/http://cvr.cc/?p=482].
Available options for `\Preamble` command are listed in the article
-*TeX4ht: options*^[http://www.cvr.cc/?p=504]. *Comparison of tex4ebook and Pandoc output*^[https://github.com/richelbilderbeek/travis_tex_to_epub_example_1]
+*TeX4ht: options*^[https://web.archive.org/web/20180813043722/http://cvr.cc/?p=504]. *Comparison of tex4ebook and Pandoc output*^[https://github.com/richelbilderbeek/travis_tex_to_epub_example_1]
-Great source of tips for `tex4ht` configuring is *tex4ht tag on TeX.sx*^[http://tex.stackexchange.com/questions/tagged/tex4ht], there is also a *tag for tex4ebook*^[http://tex.stackexchange.com/questions/tagged/tex4ebook].
+A great source of tips for `TeX4ht` configuration is *tex4ht tag on TeX.sx*^[http://tex.stackexchange.com/questions/tagged/tex4ht]. There is also a *tag for tex4ebook*^[http://tex.stackexchange.com/questions/tagged/tex4ebook].
Examples of interesting questions are
*including images and fonts in ebooks*^[http://tex.stackexchange.com/a/213165/2891]
@@ -149,7 +155,7 @@ or *setting image size in em units instead of pt*^[http://tex.stackexchange.com/
\Configure{UniqueIdentifier}{identifier}
-Every epub file should have unique identifier, like ISBN, DOI, URI etc.
+Every EPUB file should have unique identifier, like ISBN, DOI, URI etc.
Default identifier is URI, with value `http://example.com/\jobname`.
\Configure{@author}{\let\footnote\@gobble}
@@ -161,7 +167,7 @@ which don't belongs here, such as `\footnote`.
\Configure{OpfScheme}{URI}
Type of unique identifier, default type is URI. It is
-used only in `epub`, it is deprecated for `epub3`
+used only in the EPUB format, it is deprecated for EPUB 3.
\Configure{resettoclevels}{list of section types in descending order}
@@ -170,7 +176,7 @@ value is the whole document hierarchy, from `\part` to `\paragraph`.
\Configure{DocumentLanguage}{language code}
-Each ePub file must declare the document language. It is inferred from `babel` main
+Each EPUB file must declare the document language. It is inferred from `babel` main
language by default, but you can configure it when it doesn't work correctly.
The `language code` should be in [ISO
639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) form.
@@ -203,11 +209,11 @@ Add item to `<manifest>` section in the `OPF` file.
\Configure{xmlns}{prefix}{uri}
-Add xml name space to `xhtml` files. Useful in `EPUB 3`
+Add `XML` name space to the generated `XHTML` files. Useful in `EPUB 3`.
-## Commands available in config files
+## Commands available in the config file
`\OpfRegisterFile[filename]`
@@ -244,53 +250,44 @@ See the `make4ht` documentation for an example and more information.
# Troubleshooting
+## Fixed layout EPUB
+
+The basic support for the Fixed layout EPUB 3 can be enabled using the following configurations:
+
+ \Configure{OpfMetadata}{\HCode{<meta property="rendition:layout">pre-paginated</meta>}}
+ \Configure{OpfMetadata}{\HCode{<meta property="rendition:orientation">landscape</meta>}}
+ \Configure{OpfMetadata}{\HCode{<meta property="rendition:spread">none</meta>}}
+ \Configure{@HEAD}{\HCode{<meta name="viewport" content="width=1920, height=1080"/>\Hnewline}}
+
+Modify the dimensions in the `<meta name="viewport>` element according to your needs.
+
+## Math issues
+
+Note that while `mobi` is supported by Amazon Kindle, most widespread ebook
+reader, it doesn't support `MathML`. This means that math must be represented
+as images. The same issue is true for the EPUB format as well.
+This is problematic especially for the inline math, as you may experience wrong
+vertical alignment of the math content and surrounding text. If your ebook contains
+math, a better solution is to produce the `epub3` format, as it supports `MathML`.
+The issue with EPUB 3 is that majority of `e-ink` ebook readers don't
+support it. Reader applications exists mainly for Android and Apple
+devices. For books which contains mainly prose, all formats should be suitable,
+but EPUB 3 supports most features from web standards, such as `CSS`.
+
+## Compilation errors
+
When compilation of the document breaks with error during `LaTeX` run, it may
-be caused by some problem in `tex4ht` configuration. Comment out line
+be caused by some problem in `TeX4ht` configuration. Comment out line
`\usepackage{tex4ebook}` in your source file and run command:
htlatex filename
-if same error as in `tex4ebook` run arises, the problem is in some `tex4ht`
+if same error as in `tex4ebook` run arises, the problem is in some `TeX4ht`
configuration. Try to identify the source of problem and if you cannot find the
solution, make minimal example showing the error and ask for help either on
-*tex4ht mailing list*^[http://tug.org/mailman/listinfo/tex4ht] or on
+*TeX4ht mailing list*^[http://tug.org/mailman/listinfo/tex4ht] or on
*TeX.sx*^[http://tex.stackexchange.com/].
-<!--
-## Fontspec
-
-`tex4ht` currently doesn't support `fontspec` and open type fonts. At this
-moment, workaround for this is to modify your source file and conditionally
-include fontspec and any other conflicting packages only when document is not
-processed with `tex4ht`.
-
-Sample:
-
- \documentclass{article}
- \makeatletter
- \@ifpackageloaded{tex4ht}{%
- % Packages for tex4ht unicode support
- \usepackage[utf8]{inputenc}
- \usepackage[T1]{fontenc}
- \usepackage[english,czech]{babel}
- }{%
- % Packages for xelatex
- \usepackage{fontspec}
- \usepackage{polyglossia}
- \setmainfont{Latin Modern Roman}
- }
- \makeatother
-
-The drawback is that not all characters of the Unicode range are supported with
-`inputenc`. For some solutions of this limitation, see a thread on *tex4ht
-mailing list*^[http://tug.org/pipermail/tex4ht/2013q1/000719.html]
-
-Other approach is to use `alternative4ht` package from [helpers4ht](https://github.com/michal-h21/helpers4ht)
-bundle. It works only with Lua backend, but it supports full unicode and you
-don't have to use conditional package inclusion in your document. See
-an [example](http://michal-h21.github.io/samples/helpers4ht/fontspec.html).
--->
-
## Validation
In case of successful compilation, use command line tool `epubcheck`^[you need
diff --git a/support/tex4ebook/changelog.tex b/support/tex4ebook/changelog.tex
index d7743b1204..0d3393cca5 100644
--- a/support/tex4ebook/changelog.tex
+++ b/support/tex4ebook/changelog.tex
@@ -3,6 +3,106 @@
\begin{itemize}
\item
+ 2019/11/01
+
+ \begin{itemize}
+ \tightlist
+ \item
+ released version \texttt{0.3}
+ \end{itemize}
+\item
+ 2019/10/20
+
+ \begin{itemize}
+ \tightlist
+ \item
+ fixed the \texttt{TOC} cleanup in the \texttt{ePub\ 3} mode.
+ \item
+ added support for the \texttt{page-spread-left} and
+ \texttt{page-spreat-right} properties.
+ \end{itemize}
+\item
+ 2019/10/20
+
+ \begin{itemize}
+ \tightlist
+ \item
+ addapted to use the \texttt{make4ht} logging mechanism.
+ \end{itemize}
+\item
+ 2019/10/06
+
+ \begin{itemize}
+ \tightlist
+ \item
+ fixed bug with void elements parsing in the OPF file.
+ \item
+ undo \texttt{\textbackslash{}XeTeXcharclass} for the \texttt{:}
+ character when the OPF file is generated.
+ \end{itemize}
+\item
+ 2019/09/16
+
+ \begin{itemize}
+ \tightlist
+ \item
+ make the default build sequence before loading of the extensions.
+ Some extensions need to modify the build sequence.
+ \end{itemize}
+\item
+ 2019/08/28
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added support for reading input from \texttt{STDIN}.
+ \end{itemize}
+\item
+ 2019/08/27
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added support for the \texttt{-\/-jobname} command line option.
+ \end{itemize}
+\item
+ 2019/08/25
+
+ \begin{itemize}
+ \tightlist
+ \item
+ use the \texttt{mkparams.get\_args} function to retrieve the command
+ line options
+ \end{itemize}
+\item
+ 2019/07/24
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added support for the \texttt{\textbackslash{}author} command with
+ an optional argument
+ \end{itemize}
+\item
+ 2019/05/09
+
+ \begin{itemize}
+ \tightlist
+ \item
+ added support for the \texttt{\textbackslash{}title} command with an
+ optional argument
+ \end{itemize}
+\item
+ 2019/04/04
+
+ \begin{itemize}
+ \tightlist
+ \item
+ register appendix chapters and section in the OPF file list
+ \item
+ fixed handling of appendices in the NCX table of contents
+ \end{itemize}
+\item
2019/03/21
\begin{itemize}
diff --git a/support/tex4ebook/exec_epub.lua b/support/tex4ebook/exec_epub.lua
index d92a8d103c..24cc626aad 100644
--- a/support/tex4ebook/exec_epub.lua
+++ b/support/tex4ebook/exec_epub.lua
@@ -2,6 +2,7 @@ module("exec_epub",package.seeall)
local lfs = require("lfs")
local os = require("os")
local io = require("io")
+local log = logging.new("exec_epub")
--local ebookutils = require("ebookutils")
local ebookutils = require "mkutils"
-- font loading doesn't work, font database format changes often
@@ -29,25 +30,19 @@ local function deletedir(dir)
if file ~= "." and file ~= ".." then
if lfs.attributes(file_path, 'mode') == 'file' then
os.remove(file_path)
- print('remove file',file_path)
+ log:info('remove file',file_path)
elseif lfs.attributes(file_path, 'mode') == 'directory' then
- print('dir', file_path)
+ log:info('dir', file_path)
deletedir(file_path)
end
end
end
lfs.rmdir(dir)
end
- print('remove dir',dir)
+ log:info('remove dir',dir)
end
function prepare(params)
- local randname=tostring(math.random(12000))
- -- if not ebookutils.file_exists("tex4ht.env") then
- -- local env_file = kpse.find_file("epub2.env")
- --print("Local env file: "..env_file)
- -- ebookutils.copy(env_file,"tex4ht.env")
- -- end
local makedir= function(path)
local current = lfs.currentdir()
local dir = ebookutils.prepare_path(path .. "/")
@@ -60,29 +55,45 @@ function prepare(params)
lfs.chdir(current)
end
basedir = params.input.."-".. params.format
- outputdir= basedir.."/"..outputdir_name --"outdir-"..randname --os.tmpdir()
+ outputdir= basedir.."/"..outputdir_name
deletedir(basedir)
makedir(outputdir)
- -- lfs.mkdir(outputdir)
- --ebookutils.mkdirectories(ebookutils.prepare_path(outputdir.."/"))
- metadir = basedir .."/" .. metadir_name --"metadir-"..randname
+ metadir = basedir .."/" .. metadir_name
makedir(metadir)
if params.outdir ~= "" then
destdir = params.outdir .. "/"
makedir(destdir)
end
- --local dd = ebookutils.prepare_path(metadir.."/")
- --for _,d in pairs(dd) do print("metadir path: "..d) end
- -- lfs.mkdir(metadir)
- --local status, msg = ebookutils.mkdirectories(ebookutils.prepare_path(metadir.."/"))
- --if not status then print("make mmetadir error:" ..msg) end
mimetype= basedir .. "/" ..mimetype_name --os.tmpname()
- print(outputdir)
- print(mimetype)
tidy = params.tidy
include_fonts = params.include_fonts
params["t4ht_par"] = params["t4ht_par"] -- + "-d"..string.format(params["t4ht_dir_format"],outputdir)
params.tex4ht_sty_par = params.tex4ht_sty_par .. ",uni-html4"
+ params.config_file.Make.params = params
+ local mode = params.mode
+ if params.config_file.Make:length() < 1 then
+ if mode == "draft" then
+ params.config_file.Make:htlatex()
+ else
+ params.config_file.Make:htlatex()
+ params.config_file.Make:htlatex()
+ params.config_file.Make:htlatex()
+ end
+ end
+ if #params.config_file.Make.image_patterns > 0 then
+ params["t4ht_par"] = params["t4ht_par"] .." -p"
+ end
+ params.config_file.Make:tex4ht()
+ params.config_file.Make:t4ht()
+ -- do some cleanup
+ params.config_file.Make:match("tmp$",function(filename, par)
+ -- detect if a tmp file was created for content from STDIN
+ if par.is_tmp_file then
+ -- and remove it
+ log:info("Removing temporary file", par.tex_file)
+ os.remove(par.tex_file)
+ end
+ end)
return(params)
end
@@ -90,7 +101,7 @@ function run(out,params)
--local currentdir=
outputfilename=out
outputfile = outputfilename..".epub"
- print("Output file: "..outputfile)
+ log:info("Output file: "..outputfile)
--lfs.chdir(metadir)
local m= io.open(metadir.."/container.xml","w")
m:write([[
@@ -107,27 +118,7 @@ media-type="application/oebps-package+xml"/>
m=io.open(mimetype,"w")
m:write("application/epub+zip")
m:close()
- local htlatex_run = "${htlatex} ${input} \"${config}${tex4ht_sty_par}\" \"${tex4ht_par}\" \"${t4ht_par}\" \"${latex_par}\"" % params
- print("Make4ht run")
- print("-------------------")
- params.config_file.Make.params = params
- local mode = params.mode
- if params.config_file.Make:length() < 1 then
- if mode == "draft" then
- params.config_file.Make:htlatex()
- else
- params.config_file.Make:htlatex()
- params.config_file.Make:htlatex()
- params.config_file.Make:htlatex()
- end
- end
- if #params.config_file.Make.image_patterns > 0 then
- params["t4ht_par"] = params["t4ht_par"] .." -p"
- end
- params.config_file.Make:tex4ht()
- params.config_file.Make:t4ht()
params.config_file.Make:run()
- print("-------------------")
--[[for k,v in pairs(params.config_file.Make) do
print(k.. " : "..type(v))
end--]]
@@ -162,7 +153,7 @@ function make_opf()
-- Find mimetype and make item tag for each converted file in the lg file
local fname,ext = item:match("([%a%d%_%-]*)%p([%a%d]*)$")
local mimetype = mimetypes[ext] or ""
- if mimetype == "" then print("Mimetype for "..ext.." is not registered"); return nil end
+ if mimetype == "" then log:info("Mimetype for "..ext.." is not registered"); return nil end
local dir_part = item:split("/")
table.remove(dir_part,#dir_part)
local id=table.concat(dir_part,"-")..fname.."_"..ext
@@ -190,165 +181,164 @@ function make_opf()
--local opf_second_part = outputdir .. "/content-part2.opf"
if
ebookutils.file_exists(opf_first_part) and ebookutils.file_exists(opf_second_part)
- then
- local h_first = io.open(opf_first_part,"r")
- local h_second = io.open(opf_second_part,"r")
- local opf_complete = {}
- table.insert(opf_complete,h_first:read("*all"))
- local used_html = find_all_files(opf_complete[1])
- -- local lg_file = ebookutils.parse_lg(outputfilename..".lg")
- -- The lg_file has been already loaded by make4ht, it doesn't make sense to load it again
- -- Furthermore, it is now possible to add new files from Lua build files
- local lg_file = Make.lgfile or ebookutils.parse_lg(outputfilename..".lg")
- local used_files = {}
- for _,filename in ipairs(lg_file["files"]) do
- -- we need to test the filenames in order to prevent duplicates
- -- filenames are tested without paths, so there may be issues if
- -- the same filename is used in different directories. Is that a problem?
- used_files[filename] = true
- end
- local outside_spine = {}
- local all_used_files = find_all_files(opf_complete[1],"([%a%d%-%_]+%.[%a%d]+)")
- local used_paths = {}
- local used_ids = {}
- for _,k in ipairs(lg_file["files"]) do
- local ext = k:match("%.([%a%d]*)$")
- local parts = k:split "/"
- local fn = parts[#parts]
- local allow_in_spine = {html="",xhtml = "", xml = ""}
- table.remove(parts,#parts)
- --table.insert(parts,1,"OEBPS")
- table.insert(parts,1,outputdir)
- -- print("SSSSS "..fn.." ext .." .. ext)
- --if string.find("jpg gif png", ext) and not all_used_files[k] then
- local item,id = lg_item(k)
- if item then
- local path = table.concat(parts)
- if not used_paths[path] then
- ebookutils.mkdirectories(parts)
- used_paths[path]=true
- end
- if allow_in_spine[ext] and tidy then
- if tidyconf then
- print("Tidy: "..k)
- local run ="tidy -c -w 200 -q -utf8 -m -config " .. tidyconf .." " .. k
- os.execute(run)
- else
- print "Tidy: Cannot load tidyconf.conf"
- end
- end
- if not used_ids[id] then
- ebookutils.copy(k, outputdir .. "/"..k)
- if not all_used_files[fn] then
- table.insert(opf_complete,item)
- if allow_in_spine[ext] then
- table.insert(outside_spine,id)
- end
+ then
+ local h_first = io.open(opf_first_part,"r")
+ local h_second = io.open(opf_second_part,"r")
+ local opf_complete = {}
+ table.insert(opf_complete,h_first:read("*all"))
+ local used_html = find_all_files(opf_complete[1])
+ -- local lg_file = ebookutils.parse_lg(outputfilename..".lg")
+ -- The lg_file has been already loaded by make4ht, it doesn't make sense to load it again
+ -- Furthermore, it is now possible to add new files from Lua build files
+ local lg_file = Make.lgfile or ebookutils.parse_lg(outputfilename..".lg")
+ local used_files = {}
+ for _,filename in ipairs(lg_file["files"]) do
+ -- we need to test the filenames in order to prevent duplicates
+ -- filenames are tested without paths, so there may be issues if
+ -- the same filename is used in different directories. Is that a problem?
+ used_files[filename] = true
+ end
+ local outside_spine = {}
+ local all_used_files = find_all_files(opf_complete[1],"([%a%d%-%_]+%.[%a%d]+)")
+ local used_paths = {}
+ local used_ids = {}
+ for _,k in ipairs(lg_file["files"]) do
+ local ext = k:match("%.([%a%d]*)$")
+ local parts = k:split "/"
+ local fn = parts[#parts]
+ local allow_in_spine = {html="",xhtml = "", xml = ""}
+ table.remove(parts,#parts)
+ --table.insert(parts,1,"OEBPS")
+ table.insert(parts,1,outputdir)
+ -- print("SSSSS "..fn.." ext .." .. ext)
+ --if string.find("jpg gif png", ext) and not all_used_files[k] then
+ local item,id = lg_item(k)
+ if item then
+ local path = table.concat(parts)
+ if not used_paths[path] then
+ ebookutils.mkdirectories(parts)
+ used_paths[path]=true
+ end
+ if allow_in_spine[ext] and tidy then
+ if tidyconf then
+ log:info("Tidy: "..k)
+ local run ="tidy -c -w 200 -q -utf8 -m -config " .. tidyconf .." " .. k
+ os.execute(run)
+ else
+ log:info "Tidy: Cannot load tidyconf.conf"
+ end
+ end
+ if not used_ids[id] then
+ ebookutils.copy(k, outputdir .. "/"..k)
+ if not all_used_files[fn] then
+ table.insert(opf_complete,item)
+ if allow_in_spine[ext] then
+ table.insert(outside_spine,id)
end
- end
- used_ids[id] = true
- end
- end
- for _,f in ipairs(lg_file["images"]) do
- local f = f.output
- local p, id = lg_item(f)
- -- process the images only if they weren't registered in lg_file["files"]
- -- they would be processed twice otherwise
- if not used_files[f] and not used_ids[id] then
- ebookutils.copy(f, outputdir .. "/"..f)
- table.insert(opf_complete,p)
+ end
end
used_ids[id] = true
- end
- local end_opf = h_second:read("*all")
- local spine_items = {}
- for _,i in ipairs(outside_spine) do
- table.insert(spine_items,
- '<itemref idref="${idref}" linear="no" />' % {idref=i})
- end
- table.insert(opf_complete,end_opf % {spine = table.concat(spine_items,"\n")})
- h_first:close()
- h_second:close()
- h_first = io.open(opf_first_part,"w")
- local opf_completed = table.concat(opf_complete,"\n")
- -- poor man's tidy: remove trailing whitespace befora xml tags
- opf_completed = opf_completed:gsub("[ ]*<","<")
- opf_completed = remove_empty_guide(opf_completed)
- h_first:write(opf_completed)
- h_first:close()
- os.remove(opf_second_part)
- --ebookutils.copy(outputfilename ..".css",outputdir.."/")
- ebookutils.copy(opf_first_part,outputdir.."/"..opf_first_part)
- --for c,v in pairs(lg_file["fonts"]) do
- -- print(c, table.concat(v,", "))
- --end
- --print(table.concat(opf_complete,"\n"))
- else
- print("Missing opf file")
- end
- end
- local function find_zip()
- if io.popen("zip -v","r"):close() then
- return "zip"
- elseif io.popen("miktex-zip -v","r"):close() then
- return "miktex-zip"
+ end
+ end
+ for _,f in ipairs(lg_file["images"]) do
+ local f = f.output
+ local p, id = lg_item(f)
+ -- process the images only if they weren't registered in lg_file["files"]
+ -- they would be processed twice otherwise
+ if not used_files[f] and not used_ids[id] then
+ ebookutils.copy(f, outputdir .. "/"..f)
+ table.insert(opf_complete,p)
+ end
+ used_ids[id] = true
+ end
+ local end_opf = h_second:read("*all")
+ local spine_items = {}
+ for _,i in ipairs(outside_spine) do
+ table.insert(spine_items,
+ '<itemref idref="${idref}" linear="no" />' % {idref=i})
end
- print "It appears you don't have zip command installed. I can't pack the ebook"
+ table.insert(opf_complete,end_opf % {spine = table.concat(spine_items,"\n")})
+ h_first:close()
+ h_second:close()
+ h_first = io.open(opf_first_part,"w")
+ local opf_completed = table.concat(opf_complete,"\n")
+ -- poor man's tidy: remove trailing whitespace befora xml tags
+ opf_completed = opf_completed:gsub("[ ]*<","<")
+ opf_completed = remove_empty_guide(opf_completed)
+ h_first:write(opf_completed)
+ h_first:close()
+ os.remove(opf_second_part)
+ --ebookutils.copy(outputfilename ..".css",outputdir.."/")
+ ebookutils.copy(opf_first_part,outputdir.."/"..opf_first_part)
+ --for c,v in pairs(lg_file["fonts"]) do
+ -- print(c, table.concat(v,", "))
+ --end
+ --print(table.concat(opf_complete,"\n"))
+ else
+ log:warning("Missing opf file")
+ end
+end
+local function find_zip()
+ if io.popen("zip -v","r"):close() then
return "zip"
+ elseif io.popen("miktex-zip -v","r"):close() then
+ return "miktex-zip"
end
+ log:warning "It appears you don't have zip command installed. I can't pack the ebook"
+ return "zip"
+end
- function pack_container()
- local ncxfilename = outputdir .. "/" .. outputfilename .. ".ncx"
- if os.execute("tidy -v") > 0 then
- print("Warning:\n tidy command seems missing, you should install it" ..
- " in order\n to make valid epub file")
- print("Using regexp based cleaning")
- local lines = {}
- for line in io.lines(ncxfilename) do
- local content = line:gsub("[ ]*<","<")
- if content:len() > 0 then
- table.insert(lines, content)
- end
+function pack_container()
+ local ncxfilename = outputdir .. "/" .. outputfilename .. ".ncx"
+ if os.execute("tidy -v") > 0 then
+ log:warning("tidy command seems missing, you should install it" ..
+ " in order\n to make valid epub file")
+ log:info("Using regexp based cleaning")
+ local lines = {}
+ for line in io.lines(ncxfilename) do
+ local content = line:gsub("[ ]*<","<")
+ if content:len() > 0 then
+ table.insert(lines, content)
end
- table.insert(lines,"")
- local ncxfile = io.open(ncxfilename,"w")
- ncxfile:write(table.concat(lines,"\n"))
- ncxfile:close()
- else
- print("Tidy ncx "..
- os.execute("tidy -xml -i -q -utf8 -m " .. ncxfilename))
- print("Tidy opf "..
- os.execute("tidy -xml -i -q -utf8 -m " ..
- outputdir .. "/" .. "content.opf"))
- end
- print(mimetype)
- local zip = find_zip()
- -- we need to remove the epub file if it exists already, because it may contain files which aren't used anymore
- if ebookutils.file_exists(outputfile) then os.remove(outputfile) end
- print("Pack mimetype " .. os.execute("cd "..basedir.." && "..zip.." -q0X "..outputfile .." ".. mimetype_name))
- print("Pack metadir " .. os.execute("cd "..basedir.." && "..zip.." -qXr9D " .. outputfile.." "..metadir_name))
- print("Pack outputdir " .. os.execute("cd "..basedir.." && "..zip.." -qXr9D " .. outputfile.." "..outputdir_name))
- print("Copy generated epub ")
- ebookutils.cp(basedir .."/"..outputfile, destdir .. outputfile)
+ end
+ table.insert(lines,"")
+ local ncxfile = io.open(ncxfilename,"w")
+ ncxfile:write(table.concat(lines,"\n"))
+ ncxfile:close()
+ else
+ log:info("Tidy ncx "..
+ os.execute("tidy -xml -i -q -utf8 -m " .. ncxfilename))
+ log:info("Tidy opf "..
+ os.execute("tidy -xml -i -q -utf8 -m " ..
+ outputdir .. "/" .. "content.opf"))
+ end
+ local zip = find_zip()
+ -- we need to remove the epub file if it exists already, because it may contain files which aren't used anymore
+ if ebookutils.file_exists(outputfile) then os.remove(outputfile) end
+ log:info("Pack mimetype " .. os.execute("cd "..basedir.." && "..zip.." -q0X "..outputfile .." ".. mimetype_name))
+ log:info("Pack metadir " .. os.execute("cd "..basedir.." && "..zip.." -qXr9D " .. outputfile.." "..metadir_name))
+ log:info("Pack outputdir " .. os.execute("cd "..basedir.." && "..zip.." -qXr9D " .. outputfile.." "..outputdir_name))
+ log:info("Copy generated epub ")
+ ebookutils.cp(basedir .."/"..outputfile, destdir .. outputfile)
end
- function writeContainer()
- make_opf()
- pack_container()
- end
- local function deldir(path)
- for entry in lfs.dir(path) do
- if entry~="." and entry~=".." then
- os.remove(path.."/"..entry)
- end
- end
- os.remove(path)
- --]]
- end
+function writeContainer()
+ make_opf()
+ pack_container()
+end
+local function deldir(path)
+ for entry in lfs.dir(path) do
+ if entry~="." and entry~=".." then
+ os.remove(path.."/"..entry)
+ end
+ end
+ os.remove(path)
+ --]]
+end
- function clean()
- --deldir(outputdir)
- --deldir(metadir)
- --os.remove(mimetype)
+function clean()
+ --deldir(outputdir)
+ --deldir(metadir)
+ --os.remove(mimetype)
end
diff --git a/support/tex4ebook/exec_epub3.lua b/support/tex4ebook/exec_epub3.lua
index 53173be9e9..edf6df01c2 100644
--- a/support/tex4ebook/exec_epub3.lua
+++ b/support/tex4ebook/exec_epub3.lua
@@ -1,6 +1,7 @@
module(...,package.seeall)
local eb = require("exec_epub")
local dom = require("luaxml-domobject")
+local log = logging.new "exec_epub3"
local ext = "xhtml"
local outputdir = nil
@@ -60,7 +61,10 @@ local function add_media_overlays(content)
end
return os.date("%H:%M:%S",time)
end
- local opfdom = dom.parse(content)
+ -- the second parameter for parse is table with void elements. the OPF format has no
+ -- void elements, so it needs to be empty, otherwise we may get parsing error because of
+ -- <meta> element, which is included in the default void elements
+ local opfdom = dom.parse(content, {})
local items = opfdom:query_selector("manifest item")
local ref = {}
local times = {}
@@ -109,23 +113,136 @@ local function add_media_overlays(content)
end
+local function remove_spurious_TOC_elements(tocdom)
+ local function count_child_elements(el)
+ -- count children elements of the current element
+ local count = 0
+ for _, curr_el in ipairs(el:get_children()) do
+ if curr_el:is_element() then count = count + 1 end
+ end
+ return count
+ end
+ -- modify the TOC to comply to epubcheck tests
+ -- add a blank <li> to empty <ol>
+ for _, el in ipairs(tocdom:query_selector("ol")) do
+ if count_child_elements(el) == 0 then
+ el:remove_node()
+ -- local newli = el:create_element("li")
+ -- local newspan = newli:create_element("span")
+ -- newli:add_child_node(newspan)
+ -- el:add_child_node(newli)
+ end
+ end
+ -- place child elements of the <li> elements to an <a> element, epubcheck reports
+ -- error for text nodes that are direct child of <li>
+ for _, el in ipairs(tocdom:query_selector("li")) do
+ local text = {}
+ local link -- save the <a> element
+ for i, child in ipairs(el._children) do
+ if child:is_text() then
+ -- trim spurious spaces
+ local childtext = child._text:gsub("^%s*",""):gsub("%s*$","")
+ -- save the text for the later use
+ table.insert(text, childtext)
+ child:remove_node()
+ elseif child:is_element() and child:get_element_name() == "a" then
+ link = child
+ table.insert(text, child:get_text())
+ end
+ end
+ if link then
+ local content = table.concat(text, " ")
+ -- remove the original text
+ link._children = {}
+ local text = link:create_text_node(content)
+ link:add_child_node(text)
+ end
+ end
+ return tocdom
+
+end
+local function cleanTOC(content)
+ -- remove spurious empty elements from the TOC, to make epubcheck happy
+ -- find the file with TOC ("properties" attribute set to "nav"
+ local opfdom = dom.parse(content,{})
+ for _,item in ipairs(opfdom:query_selector("item")) do
+ local properties = item:get_attribute("properties") or ""
+ if properties:match("nav") then
+ local filename = item:get_attribute("href")
+ if filename then
+ filename = outputdir .. "/" .. filename
+ local f = io.open(filename, "r")
+ local t = f:read("*all")
+ f:close()
+ local tocdom = dom.parse(t)
+ tocdom = remove_spurious_TOC_elements(tocdom)
+ f = io.open(filename,"w")
+ f:write(tocdom:serialize())
+ f:close()
+ end
+ end
+ end
+
+
+end
+
+local function fix_properties(content)
+ -- some properties should be used only in the <spine> element, so we need to move them
+ -- here from the <manifest> section
+ -- because why it should be easy, when you can just make messy specification
+ -- and of course my old code is extremely messy as well.
+ if content:match("page%-spread%-") or content:match("rendition") then
+ local spread_ids = {}
+ local opfdom = dom.parse(content,{})
+ local update_properties = function(id, s)
+ local current_val = spread_ids[id] or {}
+ current_val[#current_val + 1] = s
+ spread_ids[id] = current_val
+ return ""
+ end
+ for _,item in ipairs(opfdom:query_selector("manifest item")) do
+ local properties = item:get_attribute "properties"
+ if properties then
+ local id = item:get_attribute "id"
+ properties = properties:gsub("(page%-spread%-[^%s]+)", function(s) return update_properties(id,s) end)
+ properties = properties:gsub("(rendition%:[^%s]+)", function(s) return update_properties(id,s) end)
+ -- properties attribute cannot be empty, we must disable it if
+ -- it doesn't contain anything after removing of the page spread
+ if properties:match("^%s*$") then properties = nil
+ end
+ item:set_attribute("properties", properties)
+ end
+ end
+ for _, item in ipairs(opfdom:query_selector("spine itemref")) do
+ local idref = item:get_attribute("idref")
+ local spread = spread_ids[idref]
+ if spread then
+ item:set_attribute("properties", table.concat(spread, " "))
+ end
+ end
+ return opfdom:serialize()
+ end
+ return content
+end
+
local function cleanOPF()
-- in epub3, there must be table of contents
-- if there is no toc in the document, we must add generic one
local opf = "content.opf"
local f = io.open(opf,"r")
if not f then
- print("Cannot open "..opf .. " for toc searching")
+ log:info("Cannot open "..opf .. " for toc searching")
return nil
end
local content = f:read("*all")
f:close()
if content:find "properties[%s]*=[%s]*\"[^\"]*nav" then
- print "TOC nav found"
+ log:info "TOC nav found"
+ cleanTOC(content)
else
- print "no TOC, using generic one"
+ log:info "no TOC, using a generic one"
local inputfile = input .. "." .. ext
- print("Main file name", inputfile)
+ log:info("Main file name: ".. inputfile)
-- write toc file
local toc_name = "generic_toc" .."."..ext
local f = io.open(outputdir .. "/" .. toc_name, "w")
@@ -142,6 +259,7 @@ local function cleanOPF()
content = eb.remove_empty_guide(content)
content = add_media_overlays(content)
+ content = fix_properties(content)
f = io.open(outputdir .. "/" ..opf,"w")
f:write(content)
f:close()
@@ -152,6 +270,7 @@ end
function writeContainer()
--local ret = eb.writeContainer()
+ log:info "write container"
eb.make_opf()
cleanOPF()
local ret = eb.pack_container()
diff --git a/support/tex4ebook/exec_mobi.lua b/support/tex4ebook/exec_mobi.lua
index 11871ade76..ce10b6da76 100644
--- a/support/tex4ebook/exec_mobi.lua
+++ b/support/tex4ebook/exec_mobi.lua
@@ -1,6 +1,7 @@
module(...,package.seeall)
local eb = require("exec_epub")
local ebookutils = require("mkutils")
+local log = logging.new "exec_mobi"
function prepare(params)
return eb.prepare(params)
@@ -14,7 +15,7 @@ function writeContainer()
local ret = eb.writeContainer()
-- convert the epub file to mobi
local epubpath = eb.basedir .. "/" .. eb.outputfile
- print("Pack mobi "..os.execute("kindlegen " .. epubpath))
+ log:info("Pack mobi "..os.execute("kindlegen " .. epubpath))
-- find the mobi filename
local mobifile = epubpath:gsub("epub$", "mobi")
local mobidist = eb.destdir .. eb.outputfile:gsub("epub$", "mobi")
diff --git a/support/tex4ebook/readme.tex b/support/tex4ebook/readme.tex
index 2a6110e03f..13b064bf31 100644
--- a/support/tex4ebook/readme.tex
+++ b/support/tex4ebook/readme.tex
@@ -1,29 +1,23 @@
\hypertarget{introduction}{%
\section{Introduction}\label{introduction}}
-\texttt{TeX4ebook} is bundle of Lua scripts and \texttt{LaTeX} packages
-for conversion of LaTeX files to ebook formats, for example
-\texttt{epub}, \texttt{mobi} and \texttt{epub3}. \texttt{tex4ht} is used
-as conversion engine.
-
-Note that while \texttt{mobi} is supported by Amazon Kindle, most
-widespread ebook reader, it doesn't support \texttt{mathml} and this
-means that math must re represented as images. The same is true for
-\texttt{epub}. This is not a good thing, especially for inline math, as
-you may experience wrong baselines. If your ebook contains math, the
-only correct solution is to produce \texttt{epub3}, as it supports
-\texttt{mathml}. The issue with \texttt{epub3} is, that majority of
-\texttt{e-ink} ebook readers doesn't support this format, reader
-applications exists mainly for Android and Apple devices. For books
-which contains mainly prose, all formats should be suitable, but
-\texttt{epub3} supports most features from web standards, such as
-\texttt{CSS}.
-
-As with \texttt{tex4ht}, the emphasis is on conversion of document's
-logical structure and metadata, basic visual appearance is preserved as
-well, but you should use custom configurations if you want to make the
-document more visually appealing. You can include custom \texttt{CSS} or
-fonts in configuration files.
+\texttt{TeX4ebook} is a tool for conversion from \LaTeX~to ebook
+formats, such as EPUB, MOBI and EPUB 3. It is based on
+\texttt{TeX4ht}\footnote{\url{https://tug.org/tex4ht/}}, which provides
+instructions for the actual \LaTeX~to HTML conversion, and on
+\texttt{make4ht}\footnote{\url{https://ctan.org/pkg/make4ht?lang=en}}.
+
+The conversion is focused on the logical structure of the converted
+document and metadata. Basic visual appearance is preserved as well, but
+you should use custom configurations if you want to make the document
+more visually appealing. You can include custom \texttt{CSS} or fonts in
+a configuration file.
+
+\texttt{TeX4ebook} supports the same features as \texttt{make4ht}, in
+particular build files and extensions. These may be used for
+post-processing of the generated HTML files, or to configure the image
+conversion. See the \texttt{make4ht} documentation to see the supported
+features.
\hypertarget{license}{%
\subsection{License}\label{license}}
@@ -67,8 +61,11 @@ But it is optional. You shouldn't need to modify your \TeX~files
\section{Command line options}\label{command-line-options}}
\begin{description}
+\item[\texttt{-a,-\/-loglevel}]
+Set message log level. Possible values: debug, info, status, warning,
+error, fatal. Default: status.
\item[\texttt{-c,-\/-config}]
-specify custom config file for \texttt{tex4ht}
+specify custom config file for \texttt{TeX4ht}
\end{description}
\textbf{example config file}: File \texttt{sample.cfg}
@@ -95,7 +92,10 @@ Specify make4ht build file\footnote{\url{https://github.com/michal-h21/make4ht\#
Defaulf build file filename is \texttt{filename.mk4}, use this option if
you use different filename.
\item[\texttt{-f,-\/-format\ (default\ epub)}]
-Output format. Epub, Epub3 and Mobi formats are supported.
+Output format. Possible values are \texttt{epub}, \texttt{epub3} and
+\texttt{mobi}.
+\item[\texttt{-j,-\/-jobname}]
+Specify the output file name, without file extension.
\item[\texttt{-l,-\/-lua}]
Use LuaLaTeX as TeX engine.
\item[\texttt{-m,-\/-mode\ (default\ default)}]
@@ -107,8 +107,8 @@ times.
Resolution of generated images, for example math. It should meet
resolution of target devices, which is usually about 167 ppi.
\item[\texttt{-s,-\/-shell-escape}]
-Enable shell escape in htlatex run. This may be needed if you run
-external commands from your source files.
+Enable shell escape in the \texttt{htlatex} run. This is necessary for
+the execution of the external commands from your source files.
\item[\texttt{-t,-\/-tidy}]
process output html files with \texttt{HTML\ tidy} command\footnote{It
needs to be installed separately}.
@@ -121,8 +121,8 @@ Print the version number.
\hypertarget{configuration}{%
\section{Configuration}\label{configuration}}
-\texttt{tex4ebook} uses \texttt{tex4ht}\footnote{\url{http://www.tug.org/tex4ht/}}
-for conversion from LaTeX to html. \texttt{tex4ht} is highly
+\texttt{TeX4ebook} uses \texttt{TeX4ht}\footnote{\url{http://www.tug.org/tex4ht/}}
+for conversion from LaTeX to html. \texttt{TeX4ht} is highly
configurable using config files. Basic config file structure is
\begin{verbatim}
@@ -134,19 +134,19 @@ configurable using config files. Basic config file structure is
\end{verbatim}
Basic info about command configurations can be found in a
-work-in-progres \emph{tex4ht tutorial}\footnote{\url{https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial}},
-\emph{tex4ht documentation}\footnote{\url{http://www.tug.org/applications/tex4ht/mn11.html}},
+work-in-progres \emph{TeX4ht tutorial}\footnote{\url{https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial}},
+\emph{TeX4ht documentation}\footnote{\url{http://www.tug.org/applications/tex4ht/mn11.html}},
and in series of blogposts on CV Radhakrishnan's blog: \emph{Configure
-part 1}\footnote{\url{http://www.cvr.cc/?p=323}}, \emph{Configure part
-2}\footnote{\url{http://www.cvr.cc/?p=362}}, \emph{Low level
-commands}\footnote{\url{http://www.cvr.cc/?p=482}}. Available options
-for \texttt{\textbackslash{}Preamble} command are listed in the article
-\emph{TeX4ht: options}\footnote{\url{http://www.cvr.cc/?p=504}}.
+part 1}\footnote{\url{https://web.archive.org/web/20180908234227/http://www.cvr.cc/?p=323}},
+\emph{Configure part 2}\footnote{\url{https://web.archive.org/web/20180908201057/http://www.cvr.cc/?p=362}},
+\emph{Low level commands}\footnote{\url{https://web.archive.org/web/20180909101325/http://cvr.cc/?p=482}}.
+Available options for \texttt{\textbackslash{}Preamble} command are
+listed in the article \emph{TeX4ht: options}\footnote{\url{https://web.archive.org/web/20180813043722/http://cvr.cc/?p=504}}.
\emph{Comparison of tex4ebook and Pandoc output}\footnote{\url{https://github.com/richelbilderbeek/travis_tex_to_epub_example_1}}
-Great source of tips for \texttt{tex4ht} configuring is \emph{tex4ht tag
-on TeX.sx}\footnote{\url{http://tex.stackexchange.com/questions/tagged/tex4ht}},
-there is also a \emph{tag for tex4ebook}\footnote{\url{http://tex.stackexchange.com/questions/tagged/tex4ebook}}.
+A great source of tips for \texttt{TeX4ht} configuration is \emph{tex4ht
+tag on TeX.sx}\footnote{\url{http://tex.stackexchange.com/questions/tagged/tex4ht}}.
+There is also a \emph{tag for tex4ebook}\footnote{\url{http://tex.stackexchange.com/questions/tagged/tex4ebook}}.
Examples of interesting questions are \emph{including images and fonts
in ebooks}\footnote{\url{http://tex.stackexchange.com/a/213165/2891}} or
@@ -161,7 +161,7 @@ in ebooks}\footnote{\url{http://tex.stackexchange.com/a/213165/2891}} or
\Configure{UniqueIdentifier}{identifier}
\end{verbatim}
-Every epub file should have unique identifier, like ISBN, DOI, URI etc.
+Every EPUB file should have unique identifier, like ISBN, DOI, URI etc.
Default identifier is URI, with value
\texttt{http://example.com/\textbackslash{}jobname}.
@@ -179,8 +179,8 @@ to strip away any information which don't belongs here, such as
\Configure{OpfScheme}{URI}
\end{verbatim}
-Type of unique identifier, default type is URI. It is used only in
-\texttt{epub}, it is deprecated for \texttt{epub3}
+Type of unique identifier, default type is URI. It is used only in the
+EPUB format, it is deprecated for EPUB 3.
\begin{verbatim}
\Configure{resettoclevels}{list of section types in descending order}
@@ -194,7 +194,7 @@ file. Default value is the whole document hierarchy, from
\Configure{DocumentLanguage}{language code}
\end{verbatim}
-Each ePub file must declare the document language. It is inferred from
+Each EPUB file must declare the document language. It is inferred from
\texttt{babel} main language by default, but you can configure it when
it doesn't work correctly. The \texttt{language\ code} should be in
\href{https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes}{ISO 639-1}
@@ -243,11 +243,12 @@ Add item to \texttt{\textless{}manifest\textgreater{}} section in the
\Configure{xmlns}{prefix}{uri}
\end{verbatim}
-Add xml name space to \texttt{xhtml} files. Useful in \texttt{EPUB\ 3}
+Add \texttt{XML} name space to the generated \texttt{XHTML} files.
+Useful in \texttt{EPUB\ 3}.
-\hypertarget{commands-available-in-config-files}{%
-\subsection{Commands available in config
-files}\label{commands-available-in-config-files}}
+\hypertarget{commands-available-in-the-config-file}{%
+\subsection{Commands available in the config
+file}\label{commands-available-in-the-config-file}}
\begin{description}
\item[\texttt{\textbackslash{}OpfRegisterFile{[}filename{]}}]
@@ -293,8 +294,44 @@ information.
\hypertarget{troubleshooting}{%
\section{Troubleshooting}\label{troubleshooting}}
+\hypertarget{fixed-layout-epub}{%
+\subsection{Fixed layout EPUB}\label{fixed-layout-epub}}
+
+The basic support for the Fixed layout EPUB 3 can be enabled using the
+following configurations:
+
+\begin{verbatim}
+\Configure{OpfMetadata}{\HCode{<meta property="rendition:layout">pre-paginated</meta>}}
+\Configure{OpfMetadata}{\HCode{<meta property="rendition:orientation">landscape</meta>}}
+\Configure{OpfMetadata}{\HCode{<meta property="rendition:spread">none</meta>}}
+\Configure{@HEAD}{\HCode{<meta name="viewport" content="width=1920, height=1080"/>\Hnewline}}
+\end{verbatim}
+
+Modify the dimensions in the
+\texttt{\textless{}meta\ name="viewport\textgreater{}} element according
+to your needs.
+
+\hypertarget{math-issues}{%
+\subsection{Math issues}\label{math-issues}}
+
+Note that while \texttt{mobi} is supported by Amazon Kindle, most
+widespread ebook reader, it doesn't support \texttt{MathML}. This means
+that math must be represented as images. The same issue is true for the
+EPUB format as well. This is problematic especially for the inline math,
+as you may experience wrong vertical alignment of the math content and
+surrounding text. If your ebook contains math, a better solution is to
+produce the \texttt{epub3} format, as it supports \texttt{MathML}. The
+issue with EPUB 3 is that majority of \texttt{e-ink} ebook readers don't
+support it. Reader applications exists mainly for Android and Apple
+devices. For books which contains mainly prose, all formats should be
+suitable, but EPUB 3 supports most features from web standards, such as
+\texttt{CSS}.
+
+\hypertarget{compilation-errors}{%
+\subsection{Compilation errors}\label{compilation-errors}}
+
When compilation of the document breaks with error during \texttt{LaTeX}
-run, it may be caused by some problem in \texttt{tex4ht} configuration.
+run, it may be caused by some problem in \texttt{TeX4ht} configuration.
Comment out line \texttt{\textbackslash{}usepackage\{tex4ebook\}} in
your source file and run command:
@@ -303,9 +340,9 @@ htlatex filename
\end{verbatim}
if same error as in \texttt{tex4ebook} run arises, the problem is in
-some \texttt{tex4ht} configuration. Try to identify the source of
+some \texttt{TeX4ht} configuration. Try to identify the source of
problem and if you cannot find the solution, make minimal example
-showing the error and ask for help either on \emph{tex4ht mailing
+showing the error and ask for help either on \emph{TeX4ht mailing
list}\footnote{\url{http://tug.org/mailman/listinfo/tex4ht}} or on
\emph{TeX.sx}\footnote{\url{http://tex.stackexchange.com/}}.
diff --git a/support/tex4ebook/tex4ebook b/support/tex4ebook/tex4ebook
index a95bf44c23..731607fc5b 100755
--- a/support/tex4ebook/tex4ebook
+++ b/support/tex4ebook/tex4ebook
@@ -5,6 +5,9 @@
kpse.set_program_name("luatex")
require("lapp-mk4")
-- require("ebookutils")
+logging = require "make4ht-logging"
+if os.type == "windows" then logging.use_colors = false end
+local log = logging.new("tex4ebook")
local ebookutils = require "mkutils"
local mkparams = require "mkparams"
local mk_config = require "make4ht-config"
@@ -24,39 +27,37 @@ local output_formats={epub=true,mobi=true,epub3=true}
local executor=nil
local tidy = false
local include_fonts = false
+
+-- message used for option parsing by the mkparams lib
local arg_message = [[
tex4ebook - ebook generation support for LaTeX
Usage:
tex4ebook [switches] filename ["tex4ht.sty op."] ["tex4ht op."] ["t4ht op"] ["latex op"]
+ -a,--loglevel (default status) Set log level.
+ possible values: debug, info, status, warning, error, fatal
-c,--config (default xhtml) Custom config file
-d,--output-dir (default nil) Output directory
-e,--build-file (default nil) If build file is different than `filename`.mk4
-f,--format (default epub) Output format. Supported values: epub, epub3, mobi
-h,--help Display help message
+ -j,--jobname (default nil) Set the jobname
-l,--lua Use lualatex for document compilation
-m,--mode (default default) Switch which can be used in the makefile
-r,--resolution (default 167)
-s,--shell-escape Enable shell escape in htlatex run
-t,--tidy Run html tidy on html output. May result in wrong spacing!
- -v,--version Display version number
-x,--xetex Use xelatex for document compilation
+ -v,--version Display version number
+ ]]
- <filename> (string) Input file name
-
-Positional optional argumens:
- ["tex4ht.sty op."] Additional parameters for tex4ht.sty
- ["tex4ht op."] Options for tex4ht command
- ["t4ht op"] Options for t4ht command
- ["latex op"] Additional options for LaTeX
+-- options for the template used by mkparams to generate the help message
+local mkparams_parameters = {
+ progname = "tex4ebook",
+ issue_tracker = "https://github.com/michal-h21/tex4ebook/issues"
+}
-Documentation: https://tug.org/applications/tex4ht/mn.html
-Issue tracker for tex4ht bugs: https://puszcza.gnu.org.ua/bugs/?group=tex4ht
-Issue tracker for tex4ebook bugs: https://github.com/michal-h21/tex4ebook/issues
-]]
-
--- This option is no longer available, all files must be unicode
--- -u,--utf8
-local args=lapp(arg_message)
+-- process the command line arguments
+local args = mkparams.get_args(mkparams_parameters, arg_message)
if args["filename"] == nil and args["version"] == false then
print(arg_message)
@@ -66,7 +67,7 @@ else
end
if args.version then
- print "tex4ebook v0.2c"
+ print "tex4ebook v0.3"
return
end
@@ -85,11 +86,6 @@ if args["include-fonts"] then
include_fonts = true
end
--- local mathml = ","
--- if args["mathml"] then
--- -- mathml = ",mathml,"
--- tex4ht_sty_par = tex4ht_sty_par .. ",mathml"
--- end
local mode = args.mode or "default"
if os.type=="unix" then
@@ -109,25 +105,7 @@ if args.tidy then
else
tidy = false
end
--- Env file copying
-
---[[if not ebookutils.file_exists("tex4ht.env") then
-local env_file = kpse.find_file("epub2.env")
-ebookutils.copy_filter(env_file,"tex4ht.env",function(s) return s % {
-move = move_cmd,
-copy = copy_cmd,
-resolution = args.resolution
-} end)
-end--]]
-
---print ("nazdar ${world}" % {world="svete"})
---print(args.config)
-
-local input = ebookutils.remove_extension(input_file)
-local config=ebookutils.remove_extension(args.config)
--- local tex4ht_sty_par = config ..tex4ht_sty_par..","+args.format
---local sty_args = args[2] and ", " .. args[2] or ""
local sty_args = ""
if args[2] then
sty_args = "," .. args[2]
@@ -138,12 +116,17 @@ local t4ht_par = t4ht_par + args[4]
local latex_par = latex_par + args[5]
-- use default parameter processing from make4ht
--- add some needed args
+-- add some needed args (is it useful anymore?)
args.filename=input_file
+
+-- let make4ht handle the common options
local params = mkparams.process_args(args)
+local input = params.input
+log:status("Conversion started")
+log:status("Input file: ".. params.tex_file)
-local output_format = params.output_format --args.format
+local output_format = params.output_format
-- use epub as default output_format
output_format = output_format or "epub"
local extensions = ebookutils.load_extensions(params.extensions, output_format)
@@ -152,7 +135,7 @@ local oldparams = {
-- htlatex=latex_cmd
-- ,input=input
-- ,tex_file = tex_file
- format= output_format
+ format = output_format
-- ,latex_par=latex_par
-- ,tex4ht_sty_par=tex4ht_sty_par
-- ,tex4ht_par=tex4ht_par
@@ -162,7 +145,6 @@ local oldparams = {
,tidy = tidy
,include_fonts = include_fonts
,resolution=args.resolution
- ,mathml=mathml
,packages="\\RequirePackage{tex4ebook}"
}
@@ -175,25 +157,15 @@ params.tex4ht_sty_par=params.tex4ht_sty_par .. ",charset=utf-8,"..output_format
params.tex4ht_par= " -cmozhtf -utf8" .. params.tex4ht_par
-if output_formats[output_format] then
- executor=require("exec_"..output_format)
- params=executor.prepare(params)
- if #extensions > 0 then
- params = ebookutils.extensions_prepare_parameters(extensions,params)
- end
-else
- print("Unknown output format: "..output_format)
- return
-end
-- find tex4ebook configuration file
local configname = "tex4ebook"
local conffile = mk_config.find_config(configname) or mk_config.find_xdg_config(configname)
if conffile then
- print("Using configuration file: " .. conffile)
+ log:info("Using configuration file: " .. conffile)
ebookutils.load_config(params, conffile)
else
- print "No conffile"
+ log:info "No conffile"
end
local build_file = input.. ".mk4"
@@ -205,8 +177,20 @@ end
local config_file = ebookutils.load_config(params, build_file)
params["config_file"] = config_file
+
+
+if output_formats[output_format] then
+ executor=require("exec_"..output_format)
+ params=executor.prepare(params)
+ if #extensions > 0 then
+ params = ebookutils.extensions_prepare_parameters(extensions,params)
+ end
+else
+ log:error("Unknown output format: "..output_format)
+ return
+end
--config_file.Make:run()
-print("${htlatex} ${input} \"${tex4ht_sty_par}\" \"${tex4ht_par}\" \"${t4ht_par}\" \"${latex_par}\"" % params)
+-- print("${htlatex} ${input} \"${tex4ht_sty_par}\" \"${tex4ht_par}\" \"${t4ht_par}\" \"${latex_par}\"" % params)
if #extensions > 0 then
config_file.Make = ebookutils.extensions_modify_build(extensions, config_file.Make)
end
@@ -214,4 +198,5 @@ end
executor.run(input,params)
executor.writeContainer()
executor.clean()
+log:status("Conversion finished")
--print(args[1])
diff --git a/support/tex4ebook/tex4ebook-doc.pdf b/support/tex4ebook/tex4ebook-doc.pdf
index 6c7fd83af0..8372406fd9 100644
--- a/support/tex4ebook/tex4ebook-doc.pdf
+++ b/support/tex4ebook/tex4ebook-doc.pdf
Binary files differ
diff --git a/support/tex4ebook/tex4ebook.4ht b/support/tex4ebook/tex4ebook.4ht
index e4233fc55a..e623ac8bc2 100644
--- a/support/tex4ebook/tex4ebook.4ht
+++ b/support/tex4ebook/tex4ebook.4ht
@@ -178,6 +178,10 @@ href="#1" media-type="\a:CoverMimeType" />}}
\patch:sec:register{likesection}
\patch:sec:register{likesubsection}
\patch:sec:register{likesubsubsection}
+\patch:sec:register{appendix}
+\patch:sec:register{appendixsec}
+\patch:sec:register{appendixsubsec}
+\patch:sec:register{appendixsubsubsec}
\:CheckOption{epub}
\if:Option
@@ -264,7 +268,7 @@ href="#1" media-type="\a:CoverMimeType" />}}
\def\tmp:processlevel#1{
\bgroup
\csxdef{tmp:resettoclevels#1}{}
- \def\do##1{\csxdef{tmp:resettoclevels#1}{\csname tmp:resettoclevels#1\endcsname ##1,like##1,}}
+ \def\do##1{\csxdef{tmp:resettoclevels#1}{\csname tmp:resettoclevels#1\endcsname ##1,like##1,\appendix:type{##1}}}
\def\tmp:parse##1#1##2\nil{
\docsvlist{#1##2}
}
@@ -273,6 +277,8 @@ href="#1" media-type="\a:CoverMimeType" />}}
\navsection{#1}{\csname tmp:resettoclevels#1\endcsname}
% define hierarchy also for starred sections
\navsection{like#1}{\csname tmp:resettoclevels#1\endcsname}
+ % and for appendices
+ \ifcsdef{appendix:type:#1}{\navsection{\csuse{appendix:type:#1}}{\csname tmp:resettoclevels#1\endcsname}}{}
}
% define children levels for each sectioning level
@@ -292,6 +298,14 @@ href="#1" media-type="\a:CoverMimeType" />}}
\ifx\:temp\z@ro\else#1\fi
}
+% to create correct hiearchical NCX for appendices, we register corresponding appendix types
+% for various section types
+\def\appendix:type#1{\ifcsdef{appendix:type:#1}{\csuse{appendix:type:#1},}{}}
+\def\def:appendix:type#1#2{\csdef{appendix:type:#1}{#2}}
+\def:appendix:type{chapter}{appendix}
+\def:appendix:type{section}{appendixsec}
+\def:appendix:type{subsection}{appendixsubsec}
+\def:appendix:type{subsubsection}{appendixsubsubsec}
%
\def\ncx:head{%
@@ -312,7 +326,7 @@ href="#1" media-type="\a:CoverMimeType" />}}
% define toc levels which should be included in the NCX file
\NewConfigure{resettoclevels}{1}
-\Configure{resettoclevels}{part,appendix,chapter,appendixsec,section,appendixsubsec,subsection,appendixsubsubsec,subsubsection,paragraph}
+\Configure{resettoclevels}{part,chapter,section,subsection,subsubsection,paragraph}
\def\:tempa{%
\EndP
@@ -369,6 +383,8 @@ href="#1" media-type="\a:CoverMimeType" />}}
\def\print:opf:scheme#1{ opf:scheme="#1"}
\def\:tempa{%
+% French language definition makes the : character active, which can cause compilation error
+\ifdefined\XeTeXcharclass\XeTeXcharclass `\: \z@\fi%
\bgroup
\setcounter{tocdepth}{3}
% Basic sctructure of the opf file
diff --git a/support/tex4ebook/tex4ebook.sty b/support/tex4ebook/tex4ebook.sty
index c3726ee167..27a46b756e 100644
--- a/support/tex4ebook/tex4ebook.sty
+++ b/support/tex4ebook/tex4ebook.sty
@@ -1,10 +1,10 @@
-% Package odsfile. Author Michal Hoftich <michal.h21@gmail.com>
+% Package tex4ebook. Author Michal Hoftich <michal.h21@gmail.com>
% This package is subject of LPPL license, version 1.3
\ProvidesPackage{tex4ebook}[2016/03/31 version 0.1d]
\RequirePackage{etoolbox}
\RequirePackage{kvoptions}
\RequirePackage{graphicx}
-% Command for generating NCX file. Hard work is odne in the file
+% Command for generating NCX file. The hard work is done in the file
% tex4ebook.4ht
\def\ncxtable{}
% Command for generating OPF file
@@ -122,18 +122,41 @@
\def\Author{Anonymous}
% We need to save values of title, author etc.
-%\AtBeginDocument{
-\let\origtitle\title
-\renewcommand\title[1]{%
- \origtitle{#1}
- \let\Title\@title
+\let\tf@orig@title\title
+
+% normal \title
+\newcommand\tf@title[1]{%
+ \tf@orig@title{#1}%
+ \let\Title\@title%
+}
+
+% \title with optional argument
+\newcommand\tf@opttitle[2][]{%
+ \tf@orig@title[#1]{#2}%
+ \let\Title\@title%
+}
+
+% some classes (amsart) define \title command with optional argument
+\renewcommand\title{%
+\@ifnextchar[\tf@opttitle\tf@title%
}
-\let\origauthor\author
-\renewcommand\author[1]{%
- \origauthor{#1}%
- \let\Author\@author
+\let\tf@orig@author\author
+\newcommand\tf@author[1]{%
+ \tf@orig@author{#1}%
+ \let\Author\@author%
}
+
+\newcommand\tf@optauthor[2][]{%
+ \tf@orig@author[#1]{#2}%
+ \let\Author\@author%
+}
+
+% support optiona argument for \author as well
+\renewcommand\author{%
+\@ifnextchar[\tf@optauthor\tf@author%
+}
+
%\let\Author\@author
\let\Date\today
\let\origdate\date
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index c73a604404..3a262d5963 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -21,9 +21,6 @@ $mirrors = {
'http://mirrors.tuna.tsinghua.edu.cn/CTAN/' => 1,
'http://mirrors.ustc.edu.cn/CTAN/' => 1
},
- 'Hong Kong' => {
- 'https://mirror-hk.koddos.net/CTAN/' => 1
- },
'India' => {
'http://ctan.imsc.res.in/' => 1,
'http://mirror.iopb.res.in/tex-archive/' => 1
@@ -36,7 +33,6 @@ $mirrors = {
'http://ctan.yazd.ac.ir/' => 1
},
'Japan' => {
- 'ftp://ftp.kddilabs.jp/CTAN/' => 1,
'ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/' => 1,
'http://ftp.jaist.ac.jp/pub/CTAN/' => 1,
'http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/' => 1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 4b392becb0..1779b2f546 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/2019
-depend revision/52582
+depend revision/52592
name 00texlive.image
category TLCore
-revision 52581
+revision 52593
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
@@ -4055,7 +4055,7 @@ depend opt_w32_multi_user:1
name 00texlive.installer
category TLCore
-revision 52579
+revision 52584
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -34167,7 +34167,7 @@ catalogue-version 1.0
name biblatex-ext
category Package
-revision 51959
+revision 52588
shortdesc Extended BibLaTeX standard styles
relocated 1
longdesc The BibLaTeX-ext bundle provides styles that slightly extend
@@ -34177,11 +34177,11 @@ longdesc stylistic decisions made in the standard styles. At the same
longdesc time they stay as close to their standard counterparts as
longdesc possible, so that most customisation methods can be applied
longdesc here as well.
-containersize 25920
-containerchecksum 2cc2dd7ccfe5e664471bc67992fdc655d66fbda0f60dfdc62853067206c467cbbf85595983df25a71e317b3193653996ba76147b96419f32a4c0df0f9628083d
-doccontainersize 549948
-doccontainerchecksum 7ee2a44ea93c1e7f85f046ac36084a4a7d521e4fd48844e75b68b61551f35d6be75cdeb7c458c83e93eaa7340acf9bb2f99c10c242ec129cb0da38e1d5a3a247
-docfiles size=215
+containersize 25956
+containerchecksum 78c4b1e5dc61cd7a2d518edfb1fbe45167fdf7f903a5e554ddd5c7bcd7853639ce96babb741b1eda348ba11b4a03e2ff4569baf97487b708ffc5196e07a72b4e
+doccontainersize 541092
+doccontainerchecksum c963c640cd27f8958b4b3b2d0cf8e776e627bb311a9559fdc013cff8f971b09fc2171a47b3819ed38cf1f3b94cca4ffcea6425beb2d3855937f01074e3957b13
+docfiles size=213
RELOC/doc/latex/biblatex-ext/CHANGES.md
RELOC/doc/latex/biblatex-ext/README.md details="Readme"
RELOC/doc/latex/biblatex-ext/biblatex-ext-examples.bib
@@ -34263,10 +34263,10 @@ runfiles size=114
catalogue-contact-bugs https://github.com/moewew/biblatex-ext/issues
catalogue-contact-home https://github.com/moewew/biblatex-ext
catalogue-ctan /macros/latex/contrib/biblatex-contrib/biblatex-ext
-catalogue-date 2019-08-25 20:01:44 +0200
+catalogue-date 2019-10-31 20:16:31 +0100
catalogue-license lppl1.3c
catalogue-topics biblatex
-catalogue-version 0.8
+catalogue-version 0.8a
name biblatex-fiwi
category Package
@@ -121906,23 +121906,21 @@ catalogue-version 1.5.2
name gloss-occitan
category Package
-revision 39609
+revision 52593
shortdesc Polyglossia support for Occitan
relocated 1
longdesc Occitan language description file for polyglossia
-containersize 2008
-containerchecksum 699068d013af556efe5c02f5a2338f2440c0b8dd6bed61dfec94c9fea3f8b50926061db899e5408172414e48fbef98e79905df51463967ae173ee0dd7f361b85
+containersize 408
+containerchecksum ee68a2f0c41dac79d00a4103804ad735b5bdc78bad660d5933e61e88290a2dea17a695ea45129a672cdb301e1c89e4fc319173df1fbfd87f944abbe46f7f1dd0
doccontainersize 69740
-doccontainerchecksum 68b577e22544b76caf10aae62282a2649e1d18d9019c0727d9eb14d5f0342b95f35e1a95c85bcaeea551808aedebb76a9d5031453269d5ead71a2df0fa45e228
+doccontainerchecksum 1325b4c8c0ff8c1e53d27b5696da419f99852bd6c272176bab4e03f91bb6a715de51d24317b9cec1af50ee0ae2b34c03c51afe9cedb8903a1e8f74bbee3cc06f
docfiles size=19
RELOC/doc/latex/gloss-occitan/README details="Readme"
RELOC/doc/latex/gloss-occitan/gloss-occitan.pdf details="Package documentation"
srccontainersize 6340
-srccontainerchecksum a4d1936873891b2e04e6d9b476432090b7b3e31ccd07dcce7931b62a8044f691ae79df929dea87ab2f6b7bb89dc84e33054f56e51332d84fb97db9d787dadb0f
+srccontainerchecksum 043c132580baf8e66ac76a01312706996902c448cbd81f596db732cbb90d66be64d8a1f673275edaf11031d1f878587270663bba7db32da37360ed024e210280
srcfiles size=5
RELOC/source/latex/gloss-occitan/gloss-occitan.dtx
-runfiles size=2
- RELOC/tex/latex/gloss-occitan/gloss-occitan.ldf
catalogue-ctan /macros/latex/contrib/gloss-occitan
catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
@@ -186877,7 +186875,7 @@ catalogue-version 0.10
name modiagram
category Package
-revision 38448
+revision 52589
shortdesc Drawing molecular orbital diagrams
relocated 1
longdesc The package provides an environment MOdiagram and some
@@ -186887,21 +186885,21 @@ longdesc \begin{MOdiagram} \atom{left}{ 1s = {0;up} } \atom{right}{ 1s =
longdesc {0;up} } \molecule{ 1sMO = {1;pair, } } \end{MOdiagram} The
longdesc package also needs the l3kernel and l3packages bundles from the
longdesc LaTeX 3 experimental distribution.
-containersize 8612
-containerchecksum 7a84caae8d6811bed003266283674bf364d18b9d3cb01a440bfca97ee66124b991b4a3dfc9edd07059f02e047892d8cabff81bb0066d449171b669cc872be2fb
-doccontainersize 625648
-doccontainerchecksum cf1ffc9c60773c8860cc4c0021e6af82a719aa02d1ae7c56dc332d1e2fb6bfccab85c09473ad8f62a7219703d792cd4bd9db311834a35a186accd4857661ec37
-docfiles size=164
+containersize 8860
+containerchecksum aee09f61375cde8fd2ad80099fc42234a4ba787b212cf8f5e5e28a09480bcda5c307bc3e2b0e027b18666808debaa2f5215d3e98f9cd816b9f31192b30f5993b
+doccontainersize 534332
+doccontainerchecksum d07402a534917ec27c6415503c73ea5b680515a223d41d2f16ceddbf6805c61c29404d4628cec21cb15ec8e8cf3ac62c5756744fe5eb0545e9381d001d05a3e8
+docfiles size=141
RELOC/doc/latex/modiagram/README details="Readme"
RELOC/doc/latex/modiagram/modiagram_en.pdf details="Package documentation (English)" language="en"
RELOC/doc/latex/modiagram/modiagram_en.tex
runfiles size=20
RELOC/tex/latex/modiagram/modiagram.sty
catalogue-ctan /macros/latex/contrib/modiagram
-catalogue-date 2016-06-24 19:18:15 +0200
+catalogue-date 2019-10-31 20:25:21 +0100
catalogue-license lppl1.3
catalogue-topics chemistry diagram expl3
-catalogue-version 0.2g
+catalogue-version 0.3
name modref
category Package
@@ -234181,7 +234179,7 @@ catalogue-version 3.0
name preview
category Package
-revision 44883
+revision 52590
shortdesc Extract bits of a LaTeX source for output
relocated 1
longdesc The package is a free-standing part of the preview-latex
@@ -234189,15 +234187,15 @@ longdesc bundle. The package provides the support preview-latex needs,
longdesc when it chooses the matter it will preview. The output may
longdesc reasonably be expected to have other uses, as in html
longdesc translators, etc.
-containersize 6796
-containerchecksum 3884a0b8c8f09d046c7f39df28b7dcce43a95820636f39f628b499b2d06ab44eef647f74c6eaaf23692ff48d3bf5580ba97daa1e2021985c7d0f05f7206782f2
-doccontainersize 172176
-doccontainerchecksum d1d78634eb2289292948197bf3399b6afd2ccf5d59abe47ba489e11c0ca911c9820e7e06e9b84920ee0c323e83b32c0be53bfc8d09261ffc45ee728642e640b9
+containersize 6824
+containerchecksum 176ec9db33dd9d95583216b4003921842df3e2eb76ceef40abe3a6f39daac058fa9807ddd2f2b789d011b415473b88d15f60916828317d30b65c8ceeb5d45422
+doccontainersize 172144
+doccontainerchecksum b6834905bc34836b33970933cb8a7b1a94a8d030e0da112a3092ea3ba3abe1fe1ec248aca3fd362eef653df5b05ebe7b2aa04338e721edcbd4358ae83b034566
docfiles size=43
RELOC/doc/latex/preview/README details="Readme"
RELOC/doc/latex/preview/preview.pdf details="Package documentation"
-srccontainersize 22596
-srccontainerchecksum 169f2fa0b59d1312a3cb42268612194455568cb8429b0c03b658a106dc0968fedd88f9ffe82fa984a02950640f1d0c6cba20e51674e747a3699488034dd7e0d1
+srccontainersize 22556
+srccontainerchecksum c4d3f247edc4235ae2a4fa6ac6d0a8cba2f6f6b56b650b3fdb9c8b585d9f7dc9549aed6b5f072c7a89a6baf31ff4f3a5ad08dada4ffc8dd6d0e748644fb087ba
srcfiles size=22
RELOC/source/latex/preview/preview.drv
RELOC/source/latex/preview/preview.dtx
@@ -234213,14 +234211,17 @@ runfiles size=14
RELOC/tex/latex/preview/prshowlabels.def
RELOC/tex/latex/preview/prtightpage.def
RELOC/tex/latex/preview/prtracingall.def
+catalogue-contact-announce https://lists.gnu.org/mailman/listinfo/info-auctex
catalogue-contact-bugs https://debbugs.gnu.org/cgi/pkgreport.cgi?package=auctex
+catalogue-contact-development https://lists.gnu.org/mailman/listinfo/auctex-devel
catalogue-contact-home https://www.gnu.org/software/auctex/preview-latex.html
catalogue-contact-repository https://git.savannah.gnu.org/gitweb/?p=auctex.git
+catalogue-contact-support https://lists.gnu.org/mailman/listinfo/auctex
catalogue-ctan /macros/latex/contrib/preview
-catalogue-date 2018-01-06 12:14:59 +0100
+catalogue-date 2019-10-31 09:36:29 +0100
catalogue-license gpl3
catalogue-topics chunks
-catalogue-version 11.91
+catalogue-version 12.2
name prftree
category Package
@@ -267065,34 +267066,37 @@ catalogue-version 2.1.5
name subfiles
category Package
-revision 52532
+revision 52591
shortdesc Individual typesetting of subfiles of a "main" document
relocated 1
longdesc Using subfiles the user can handle multi-file projects more
longdesc comfortably making it possible to both process the subsidiary
longdesc files by themselves and to process the main file that includes
longdesc them, without making any changes to either.
-containersize 1696
-containerchecksum 2080dffd971b552c4d858af1577b2b8226467358f332c67e3ec63576ff45a0b0c63d7a2eb4678bcf22120f2c8103a089086b54060abf4361d0df37d7973f268d
-doccontainersize 205404
-doccontainerchecksum 27a3012ef91e23f98417b06d37b9f4b554c915a5ff257adfa6fc046b3e51e6ad61773f1f65476088b469c56b843b5ade6fcff4c82c65dc3179ec989e5a8fdd8e
-docfiles size=52
+containersize 1920
+containerchecksum 4a5b07cb5ce3f6a0af66517f55bc96abd8bbc1b02c7923b09d2e57457b00b8e7fe2c9ece51d72f170a83051456f2991cf1f801a33d61cda0c8ee34f27b915249
+doccontainersize 211320
+doccontainerchecksum 31ca134e0c74b12de2a1fdd38114c7fe23baf5db4b0a9fc40bfcc808f9d82b5776f250257ec28fe575db8dbf2cd45123e5b76fe2f1e50b97b4724b26601cc34a
+docfiles size=53
RELOC/doc/latex/subfiles/README details="Readme"
RELOC/doc/latex/subfiles/subfiles.pdf details="Package documentation"
-srccontainersize 6004
-srccontainerchecksum 0bc765fa6f447f6111eae67d9484a72f9414da0ff69c53c40133867532f55138cf3692db8c2771a93ef838e81b7b812447317bf6e0dbc7db72f2ef53dd4658ae
-srcfiles size=6
+srccontainersize 7028
+srccontainerchecksum 5ebc706ce6f50dd8b8ab9083ffa89c9fbde0b6264ece466f12de6aeab71eddb3c277d47a07cdebe17052e609e9728851420e347ad86cde1cabfacda8aa67140b
+srcfiles size=7
RELOC/source/latex/subfiles/subfiles.dtx
RELOC/source/latex/subfiles/subfiles.ins
runfiles size=2
RELOC/tex/latex/subfiles/subfiles.cls
RELOC/tex/latex/subfiles/subfiles.sty
catalogue-also combine standalone
+catalogue-contact-bugs https://github.com/gsalzer/subfiles/issues
+catalogue-contact-repository https://github.com/gsalzer/subfiles
+catalogue-contact-support https://tex.stackexchange.com/
catalogue-ctan /macros/latex/contrib/subfiles
-catalogue-date 2019-10-25 20:49:18 +0200
+catalogue-date 2019-10-30 21:50:03 +0100
catalogue-license lppl1.3
catalogue-topics subdocs class
-catalogue-version 1.4
+catalogue-version 1.5
name subfloat
category Package
@@ -273992,7 +273996,7 @@ binfiles arch=x86_64-solaris size=1
name tex4ht
category Package
-revision 52515
+revision 52586
shortdesc Convert (La)TeX to HTML/XML
longdesc A converter from TeX and LaTeX to SGML-based formats such as
longdesc (X)HTML, MathML, OpenDocument, and DocBook, providing a
@@ -274007,10 +274011,10 @@ longdesc restricted-syntax systems such as hyperlatex and gellmu. Note
longdesc that CTAN no longer holds the definitive sources of the
longdesc package: see the 'Readme' file.
depend tex4ht.ARCH
-containersize 896936
-containerchecksum 5f660173e0040b0d070284b3b32d8fcdf9728032735ddb24930f4cb3b9ba6a027196321a031810ab9eedd7a8173bfa71744c3a3a99f4bee662df3c0b53aeb697
-doccontainersize 61188
-doccontainerchecksum 9a80ee6834a02ece14fd3a3d805c6c6db683b701c708e0d73aeec0f8bb6be9685912aa711c846bf13fd62514948822ba45d2e0bda7bf001f6edacb4b7d508061
+containersize 897040
+containerchecksum 678c03b0e89133aab0469d80e339d9d2db9a3cc76e30fae5416c1816b012c8411594de92ac68d8841e4c70cdca73062bfdfc12f6fb48967b371ecdccc0eb7e89
+doccontainersize 61192
+doccontainerchecksum 439067533e72207b673c5c351a15df198fe542df504a884490471777c5d39701a189449002de4385890bfe837cd56e5328c5a6048488682f843e77ab0354fdb1
docfiles size=195
texmf-dist/doc/generic/tex4ht/bugfixes.css
texmf-dist/doc/generic/tex4ht/bugfixes.html
@@ -282462,17 +282466,17 @@ docfiles size=503
name texlive-scripts
category TLCore
-revision 52579
+revision 52584
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
depend texlive.infra
depend texlive-scripts.ARCH
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 85476
-containerchecksum 79a8fc73c7d3ca7033f0af31ae7e4186604682db6dd1ec9d5a3265841aaaaeb42b0da207383ced8a7d192c46c59c33dc762f68f42a855669b4509582c65957bd
+containersize 85456
+containerchecksum bc15096efd7550a601d8c0264d8052c1cd2273fb67d37c69cfb7cf958f79292f32fb1609dcde768482cbe2a402920c1757f1079e1ce01ed98fb9a114c0ea66c0
doccontainersize 51244
-doccontainerchecksum 8d7afd3c96fd4e4755a857333cd8832f71259c9b4f5efeadaced6acac20592cce0f43ce7a371548c9df55cc414d41c5c157b3a78b7dfea55c80884f610d2d859
+doccontainerchecksum 7273b4566c9de9b72a3fbbd49d8fe15eaafa4559dccdef6a463c69805db157c0dbda3269f1983fb4771f8571c0e2ab6b19366c4c4974bffbe3bda5f46802c110
docfiles size=20
texmf-dist/doc/man/man1/install-tl.1
texmf-dist/doc/man/man1/install-tl.man1.pdf
@@ -313799,17 +313803,17 @@ catalogue-topics frivolous
name xindex
category Package
-revision 52551
+revision 52587
shortdesc Unicode compatible index generation
longdesc This package provides a unicode compatible index programm for
longdesc LaTeX. It needs Lua 5.3, which will be included in at least
longdesc LuaTeX 1.09 (TeX Live 2019).
depend xindex.ARCH
-containersize 29820
-containerchecksum 48270db5b875afdf8fccba41efb59977172818a74cf766408cc984059b2ea43f9aa30d4418ffeff8136ab2cb84b2c18afbbe6192b8cdedb167da6f76842e4853
-doccontainersize 447948
-doccontainerchecksum fe69b10d8c28157639738db9733a91a68f4e05f01bd078831d51691fd7487c1794b0ce07e21f412fb8b14673fdde5c3afef6a990dd59be29d60eb48938615cba
-docfiles size=192
+containersize 30016
+containerchecksum 663417ac4117238607443a95e0055c3d23aa22b5175c0e36b7e5e9157284ade8a5f34afcd28bb6fa49295cadae100deb1182470a0f8026f5aa02d4b8a964de2c
+doccontainersize 446268
+doccontainerchecksum 5236cd71c13deaeada6c3af4558f77e705dd57c7f08443f3911d7b95e19272b0a975af1c437e2d92101c0fc014e22d85b20b84d710110e39151b5fd40c3cd77e
+docfiles size=191
texmf-dist/doc/lualatex/xindex/CHANGELOG
texmf-dist/doc/lualatex/xindex/Makefile
texmf-dist/doc/lualatex/xindex/README.md details="Readme"
@@ -313865,10 +313869,10 @@ runfiles size=51
catalogue-contact-bugs https://gitlab.com/hvoss49/xindex/issues
catalogue-contact-repository https://gitlab.com/hvoss49/xindex
catalogue-ctan /indexing/xindex
-catalogue-date 2019-10-28 15:11:00 +0100
+catalogue-date 2019-10-31 09:24:31 +0100
catalogue-license lppl1.3
catalogue-topics index use-lua
-catalogue-version 0.18
+catalogue-version 0.19
name xindex.aarch64-linux
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index a4b22898b1..f2ced46032 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-8e18b5de01b9239014ef16005103c85c texlive.tlpdb
+52c17d2f333e786e8a490938d9e8284a texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 14e14fd69a..d6a59bc1b1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-009531a58bf62a9bfd0b4b83d98878751fa53f9e722bf422b932e912287f6e2f7ef91eed56caad6969fe65d68cb65b1e4f6adbe27ec6b0e0a2eb09afa3a1e6f0 texlive.tlpdb
+85baa1f39726d6484ff4e36009f21cacdef02a41acd7fb7a69964c49c8bb2f3fb1f3b8678a7b62e6161a5dc90e00636f91ff2fbe8cf8d7f774084be8f95c1013 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 0ee575d301..8c14c1a133 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-----
-iQEcBAEBCgAGBQJdujCyAAoJEEzhh34ZQ4xwP6kH/RyyxVGrmEEQyjt2NvjcVQzH
-Fnlh0f4risEDcK794frwGMjUMskeDCgLbrfT0bloW3VwHYlTIztAAx13gIzN0FHe
-munu6xZFOCvKbynKGrqGoxgmrJTw3aL/nAcixBj7qzpjjfhVbofzs+C6K1/UIRGP
-AqzxZaqSf7ecJkDoqAoggyt3RAU2+mN6qArlD7zqiIRg8QyYBrVbiCqmtb0E+Vdi
-0vBhpj55zzP8HMFxVZGDu7U8v4kItDn+g37jVXURl7nirqE+r/8bo0YrkEEl7WYw
-yGEWsaCS00DPipVvlJlsTe5bGRMvN83sQihAWavemp3NuMioVKoxRqOBIj3Uv8Y=
-=catg
+iQEcBAEBCgAGBQJdu4TyAAoJEEzhh34ZQ4xw4wAH/jg+k3Samyoy/gOdgKxg/OLJ
+mTqCf4XKa0hPzwYj2cHG33HBWwwfQ+m3IUN+Zs/AwSWd1TaHSSSZmq9VpIRLb0gn
+V1ICQeAWO+eYaUvmqo2QceElgKa9PnxVJdYQp2/NQNJAUlkOCjMhoeIPL+28FHVC
+114kjWI5P4XWbEfseOA+2p0fsbol18AQgeQ+xYYXxaK+chpVTClLfs8YER0COEFO
+W7DzcaoWl0IcWhy5N3MnPg8L5d7pMpOzXkhlsPaAS495b/oG+85IoI6QDN/tuMc+
+humcSg2sgfk0EZyXyL+WcNTExw1jGucx5UFmKi6VJqUR6IKp/xSMo0O/CB8uU6I=
+=FeNV
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index cf125973cd..cb093ed1cf 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/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index 03aee413c9..3d3185b36a 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -1,5 +1,49 @@
W32TeX (x86 & x64) ChangeLog
+[2019/10/31]
+(01) datetime2.tar.xz
+ Update datetime2-welsh.
+(02) dvipdfm-w32.tar.xz
+ Update a map file.
+(03) dvipsk-w32.tar.xz
+ Update a map file.
+(04) harftex-w32.tar.xz
+ Update harftex.dll.
+(05) luajittex-dev-w32.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(06) luajittex-exp-w32.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(07) luajittex-w32.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(08) luatex-dev-w32.tar.xz
+ Update luatex.dll, luahbtex.dll.
+(09) luatex-exp-w32.tar.xz
+ Update luatex.dll, luahbtex.dll.
+(10) luatex-w32.tar.xz
+ Update luatex.dll, luahbtex.dll.
+(11) mftools.tar.xz
+ Update a map file.
+(12) newtxpx-boondoxfonts.tar.xz
+ Update newtx fonts.
+(13) pdftex-w32.tar.xz
+ Update a map file.
+(14) pstricks.tar.xz
+ Update pst-eucl.
+(15) win64/harftex-w64.tar.xz
+ Update harftex.dll.
+(16) win64/luajittex-dev-w64.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(17) win64/luajittex-exp-w64.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(18) win64/luajittex-w64.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(19) win64/luatex-dev-w64.tar.xz
+ Update luatex.dll, luahbtex.dll.
+(20) win64/luatex-exp-w64.tar.xz
+ Update luatex.dll, luahbtex.dll.
+(21) win64/luatex-w64.tar.xz
+ Update luatex.dll, luahbtex.dll.
+
[2019/10/30]
(01) context.tar.xz
ConTeXt version: 2019.10.29 15:00.
diff --git a/timestamp b/timestamp
index a060d671bb..8a88fe0c12 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:
-2019-11-01-02-02
+2019-11-02-02-02