summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname701
-rw-r--r--FILES.byname.gzbin2309041 -> 2309055 bytes
-rw-r--r--FILES.last07days824
-rw-r--r--graphics/mcf2graph/CHANGELOG9
-rw-r--r--graphics/mcf2graph/README6
-rw-r--r--graphics/mcf2graph/mcf2graph.mf122
-rw-r--r--graphics/mcf2graph/mcf_data_base.mcf166
-rw-r--r--graphics/mcf2graph/mcf_exa_soc.mf13
-rw-r--r--graphics/mcf2graph/mcf_example.pdfbin319877 -> 320335 bytes
-rw-r--r--graphics/mcf2graph/mcf_example.tex10
-rw-r--r--graphics/mcf2graph/mcf_man_soc.mf52
-rw-r--r--graphics/mcf2graph/mcf_manual.pdfbin375534 -> 378071 bytes
-rw-r--r--graphics/mcf2graph/mcf_manual.tex79
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.pdfbin195927 -> 184190 bytes
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.tex241
-rw-r--r--graphics/mcf2graph/mcf_setup.sty5
-rw-r--r--help/wp-conv/GPL.txt341
-rw-r--r--help/wp-conv/bin/license.txt341
-rw-r--r--help/wp-conv/html2LaTeX.txt8
-rw-r--r--help/wp-conv/html2latex.html147
-rw-r--r--help/wp-conv/index.html119
-rw-r--r--help/wp-conv/ktbugs.html88
-rw-r--r--help/wp-conv/la2mml.html35
-rw-r--r--help/wp-conv/laola.html37
-rw-r--r--help/wp-conv/latex2rtf.html114
-rw-r--r--help/wp-conv/ltx2word.html97
-rw-r--r--help/wp-conv/mathtype.html56
-rw-r--r--help/wp-conv/pc2txtbl.html231
-rw-r--r--help/wp-conv/pctotex.html511
-rw-r--r--help/wp-conv/pubcomp.html108
-rw-r--r--help/wp-conv/readme.txt12
-rw-r--r--help/wp-conv/rtf2latex.html94
-rw-r--r--help/wp-conv/rtf2latex2e.html52
-rw-r--r--help/wp-conv/sciword.html129
-rw-r--r--help/wp-conv/texperf.html93
-rw-r--r--help/wp-conv/texport.html155
-rw-r--r--help/wp-conv/textopc.html310
-rw-r--r--help/wp-conv/tx2pctbl.html76
-rw-r--r--help/wp-conv/w2latex.html56
-rw-r--r--help/wp-conv/winw2ltx.html85
-rw-r--r--help/wp-conv/word2x.html72
-rw-r--r--help/wp-conv/wp2latex.html57
-rw-r--r--info/tlmgr-intro-zh-cn/body/actions.tex4
-rw-r--r--info/tlmgr-intro-zh-cn/body/options.tex2
-rw-r--r--info/tlmgr-intro-zh-cn/body/schemes_and_collections.tex71
-rw-r--r--info/tlmgr-intro-zh-cn/latexmkrc2
-rw-r--r--info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdfbin368005 -> 376444 bytes
-rw-r--r--info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty9
-rw-r--r--info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex3
-rw-r--r--macros/generic/polexpr/README.md6
-rw-r--r--macros/generic/polexpr/polexpr.html67
-rw-r--r--macros/generic/polexpr/polexpr.sty12
-rw-r--r--macros/generic/polexpr/polexprcore.tex11
-rw-r--r--macros/generic/polexpr/polexprexpr.tex2
-rw-r--r--macros/generic/polexpr/polexprsturm.tex2
-rw-r--r--macros/generic/xint/CHANGES.html209
-rw-r--r--macros/generic/xint/README.md83
-rw-r--r--macros/generic/xint/sourcexint.pdfbin1031328 -> 1131946 bytes
-rw-r--r--macros/generic/xint/xint.dtx6584
-rw-r--r--macros/generic/xint/xint.pdfbin1012827 -> 1023655 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx217
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin477941 -> 479006 bytes
-rw-r--r--macros/latex/contrib/l3build/CHANGELOG.md20
-rw-r--r--macros/latex/contrib/l3build/CONTRIBUTING.md2
-rw-r--r--macros/latex/contrib/l3build/README.md12
-rw-r--r--macros/latex/contrib/l3build/l3build-arguments.lua10
-rw-r--r--macros/latex/contrib/l3build/l3build-aux.lua134
-rw-r--r--macros/latex/contrib/l3build/l3build-check.lua423
-rw-r--r--macros/latex/contrib/l3build/l3build-clean.lua50
-rw-r--r--macros/latex/contrib/l3build/l3build-ctan.lua8
-rw-r--r--macros/latex/contrib/l3build/l3build-file-functions.lua128
-rw-r--r--macros/latex/contrib/l3build/l3build-help.lua10
-rw-r--r--macros/latex/contrib/l3build/l3build-install.lua82
-rw-r--r--macros/latex/contrib/l3build/l3build-manifest-setup.lua26
-rw-r--r--macros/latex/contrib/l3build/l3build-manifest.lua5
-rw-r--r--macros/latex/contrib/l3build/l3build-stdmain.lua10
-rw-r--r--macros/latex/contrib/l3build/l3build-tagging.lua11
-rw-r--r--macros/latex/contrib/l3build/l3build-typesetting.lua41
-rw-r--r--macros/latex/contrib/l3build/l3build-unpack.lua12
-rw-r--r--macros/latex/contrib/l3build/l3build-upload.lua20
-rw-r--r--macros/latex/contrib/l3build/l3build-variables.lua22
-rw-r--r--macros/latex/contrib/l3build/l3build.14
-rw-r--r--macros/latex/contrib/l3build/l3build.dtx132
-rw-r--r--macros/latex/contrib/l3build/l3build.ins4
-rw-r--r--[-rwxr-xr-x]macros/latex/contrib/l3build/l3build.lua25
-rw-r--r--macros/latex/contrib/l3build/l3build.pdfbin707231 -> 708509 bytes
-rw-r--r--macros/plain/contrib/xintsession/README.md30
-rw-r--r--macros/plain/contrib/xintsession/xintsession.tex196
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl9
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb121
-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.xzbin2302392 -> 2302228 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--systems/win32/w32tex/ChangeLog18
-rw-r--r--timestamp2
-rw-r--r--usergrps/usergrps/bg.html103
-rw-r--r--usergrps/usergrps/br.html103
-rw-r--r--usergrps/usergrps/ca.html103
-rw-r--r--usergrps/usergrps/cn.html103
-rw-r--r--usergrps/usergrps/cz.html103
-rw-r--r--usergrps/usergrps/de.html103
-rw-r--r--usergrps/usergrps/dk.html103
-rw-r--r--usergrps/usergrps/ee.html103
-rw-r--r--usergrps/usergrps/es.html103
-rw-r--r--usergrps/usergrps/esc.html103
-rw-r--r--usergrps/usergrps/fr.html103
-rw-r--r--usergrps/usergrps/gb.html103
-rw-r--r--usergrps/usergrps/gr.html103
-rw-r--r--usergrps/usergrps/hu.html103
-rw-r--r--usergrps/usergrps/ie.html103
-rw-r--r--usergrps/usergrps/index.html103
-rw-r--r--usergrps/usergrps/is.html103
-rw-r--r--usergrps/usergrps/it.html103
-rw-r--r--usergrps/usergrps/kh.html103
-rw-r--r--usergrps/usergrps/kr.html103
-rw-r--r--usergrps/usergrps/lt.html103
-rw-r--r--usergrps/usergrps/mx.html103
-rw-r--r--usergrps/usergrps/nl.html103
-rw-r--r--usergrps/usergrps/no.html103
-rw-r--r--usergrps/usergrps/pl.html103
-rw-r--r--usergrps/usergrps/pt.html103
-rw-r--r--usergrps/usergrps/us.html103
-rw-r--r--usergrps/usergrps/uy.html103
-rw-r--r--usergrps/usergrps/vn.html103
-rw-r--r--usergrps/usergrps/za.html103
128 files changed, 8616 insertions, 9011 deletions
diff --git a/FILES.byname b/FILES.byname
index f933470f44..04285310e3 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5087,7 +5087,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2021/05/04 | 70528 | FILES.last07days
+2021/05/05 | 87600 | FILES.last07days
2020/08/14 | 104065 | fonts/academicons/academicons.pdf
2020/08/14 | 17247 | fonts/academicons/academicons.sty
2020/08/14 | 6546 | fonts/academicons/academicons.tex
@@ -139424,20 +139424,20 @@
2011/05/31 | 231925 | graphics/mathspic/perl/sourcecode113.html
2011/05/31 | 183530 | graphics/mathspic/perl/sourcecode113.nw
2011/05/31 | 2864043 | graphics/mathspic/perl/sourcecode113.pdf
-2021/04/18 | 12874 | graphics/mcf2graph/CHANGELOG
-2021/04/18 | 102433 | graphics/mcf2graph/mcf2graph.mf
-2021/04/17 | 36019 | graphics/mcf2graph/mcf_data_base.mcf
-2021/04/18 | 319877 | graphics/mcf2graph/mcf_example.pdf
-2021/04/18 | 2386 | graphics/mcf2graph/mcf_example.tex
-2021/04/18 | 2730 | graphics/mcf2graph/mcf_exa_soc.mf
-2021/04/11 | 44341 | graphics/mcf2graph/mcf_man_soc.mf
-2021/04/18 | 375534 | graphics/mcf2graph/mcf_manual.pdf
-2021/04/18 | 56906 | graphics/mcf2graph/mcf_manual.tex
-2021/04/18 | 195927 | graphics/mcf2graph/mcf_mplib_exa.pdf
-2021/04/17 | 15800 | graphics/mcf2graph/mcf_mplib_exa.tex
-2021/04/03 | 3682 | graphics/mcf2graph/mcf_setup.sty
-2021/04/18 | 4484 | graphics/mcf2graph/README
-2021/04/18 | 947773 | graphics/mcf2graph.zip
+2021/05/04 | 13068 | graphics/mcf2graph/CHANGELOG
+2021/05/05 | 103789 | graphics/mcf2graph/mcf2graph.mf
+2021/04/25 | 35977 | graphics/mcf2graph/mcf_data_base.mcf
+2021/05/05 | 320335 | graphics/mcf2graph/mcf_example.pdf
+2021/05/04 | 2318 | graphics/mcf2graph/mcf_example.tex
+2021/05/05 | 2743 | graphics/mcf2graph/mcf_exa_soc.mf
+2021/05/05 | 44379 | graphics/mcf2graph/mcf_man_soc.mf
+2021/05/05 | 378071 | graphics/mcf2graph/mcf_manual.pdf
+2021/05/05 | 59133 | graphics/mcf2graph/mcf_manual.tex
+2021/05/05 | 184190 | graphics/mcf2graph/mcf_mplib_exa.pdf
+2021/05/05 | 16439 | graphics/mcf2graph/mcf_mplib_exa.tex
+2021/05/03 | 3843 | graphics/mcf2graph/mcf_setup.sty
+2021/04/25 | 4485 | graphics/mcf2graph/README
+2021/05/05 | 940055 | graphics/mcf2graph.zip
2004/07/13 | 8567 | graphics/metaplot/axes.mp
2004/06/28 | 1122 | graphics/metaplot/examples/cap1.cc
2004/06/28 | 2178 | graphics/metaplot/examples/cap1.mp
@@ -171924,21 +171924,22 @@
2021/04/23 | 22084 | info/tlmgrbasics/doc/tlmgr.tex
2021/04/23 | 447 | info/tlmgrbasics/README
2021/04/23 | 150646 | info/tlmgrbasics.zip
-2021/04/21 | 23914 | info/tlmgr-intro-zh-cn/body/actions.tex
-2021/04/21 | 1030 | info/tlmgr-intro-zh-cn/body/examples.tex
-2021/04/21 | 3020 | info/tlmgr-intro-zh-cn/body/mirrors.tex
-2021/04/21 | 1649 | info/tlmgr-intro-zh-cn/body/options.tex
-2021/04/21 | 2282 | info/tlmgr-intro-zh-cn/body/preface.tex
-2021/04/21 | 1753 | info/tlmgr-intro-zh-cn/body/syntex.tex
+2021/05/05 | 23941 | info/tlmgr-intro-zh-cn/body/actions.tex
+2021/04/20 | 1030 | info/tlmgr-intro-zh-cn/body/examples.tex
+2021/03/07 | 3020 | info/tlmgr-intro-zh-cn/body/mirrors.tex
+2021/05/05 | 1663 | info/tlmgr-intro-zh-cn/body/options.tex
+2021/03/07 | 2282 | info/tlmgr-intro-zh-cn/body/preface.tex
+2021/05/05 | 3288 | info/tlmgr-intro-zh-cn/body/schemes_and_collections.tex
+2021/03/07 | 1753 | info/tlmgr-intro-zh-cn/body/syntex.tex
2021/03/06 | 34527 | info/tlmgr-intro-zh-cn/fig/collection.png
2021/03/06 | 19054 | info/tlmgr-intro-zh-cn/fig/scheme.png
-2021/04/21 | 828 | info/tlmgr-intro-zh-cn/latexmkrc
-2021/04/21 | 35149 | info/tlmgr-intro-zh-cn/LICENSE
-2021/04/21 | 1314 | info/tlmgr-intro-zh-cn/README.md
-2021/04/22 | 368005 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf
-2021/04/21 | 1815 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty
-2021/04/22 | 605 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex
-2021/04/22 | 439165 | info/tlmgr-intro-zh-cn.zip
+2021/05/05 | 828 | info/tlmgr-intro-zh-cn/latexmkrc
+2021/03/06 | 35149 | info/tlmgr-intro-zh-cn/LICENSE
+2021/03/07 | 1314 | info/tlmgr-intro-zh-cn/README.md
+2021/05/05 | 376444 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf
+2021/05/05 | 1880 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty
+2021/05/05 | 651 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex
+2021/05/05 | 449016 | info/tlmgr-intro-zh-cn.zip
2000/12/10 | 13558 | info/translations/amsmath/it/amsmath.faq
2000/08/28 | 25750 | info/translations/amsmath/it/diffs-m_it.txt
2011/06/10 | 150 | info/translations/amsmath/it/README
@@ -172667,7 +172668,7 @@
2018/08/26 | 1014893 | install/macros/generic/tex-locale.tds.zip
2020/06/30 | 1215011 | install/macros/generic/tracklang.tds.zip
2020/10/26 | 572538 | install/macros/generic/unicode-data.tds.zip
-2021/03/29 | 2543611 | install/macros/generic/xint.tds.zip
+2021/05/05 | 2695315 | install/macros/generic/xint.tds.zip
2016/05/15 | 295442 | install/macros/latex/contrib/abc.tds.zip
2018/11/24 | 6522794 | install/macros/latex/contrib/abntex2.tds.zip
2009/09/02 | 160216 | install/macros/latex/contrib/abstract.tds.zip
@@ -172824,7 +172825,7 @@
2020/10/09 | 503116 | install/macros/latex/contrib/kvoptions.tds.zip
2019/12/15 | 385518 | install/macros/latex/contrib/kvsetkeys.tds.zip
2021/03/18 | 882834 | install/macros/latex/contrib/l3backend.tds.zip
-2020/06/04 | 790724 | install/macros/latex/contrib/l3build.tds.zip
+2021/05/05 | 793324 | install/macros/latex/contrib/l3build.tds.zip
2021/02/18 | 3978954 | install/macros/latex/contrib/l3experimental.tds.zip
2021/02/18 | 12259058 | install/macros/latex/contrib/l3kernel.tds.zip
2021/03/12 | 2195433 | install/macros/latex/contrib/l3packages.tds.zip
@@ -187337,13 +187338,13 @@
1996/03/04 | 6344 | macros/generic/pmat/pmat.tex
1996/03/04 | 499 | macros/generic/pmat/readme
2005/08/07 | 65920 | macros/generic/pmat.zip
-2021/04/12 | 39369 | macros/generic/polexpr/polexprcore.tex
-2021/04/12 | 6733 | macros/generic/polexpr/polexprexpr.tex
-2021/04/12 | 274151 | macros/generic/polexpr/polexpr.html
-2021/04/12 | 73050 | macros/generic/polexpr/polexprsturm.tex
-2021/04/12 | 38668 | macros/generic/polexpr/polexpr.sty
-2021/04/12 | 4142 | macros/generic/polexpr/README.md
-2021/04/12 | 94525 | macros/generic/polexpr.zip
+2021/05/05 | 39443 | macros/generic/polexpr/polexprcore.tex
+2021/05/05 | 6733 | macros/generic/polexpr/polexprexpr.tex
+2021/05/05 | 272964 | macros/generic/polexpr/polexpr.html
+2021/05/05 | 73050 | macros/generic/polexpr/polexprsturm.tex
+2021/05/05 | 38702 | macros/generic/polexpr/polexpr.sty
+2021/05/05 | 4191 | macros/generic/polexpr/README.md
+2021/05/05 | 94287 | macros/generic/polexpr.zip
2019/09/10 | 592 | macros/generic/poormanlog/poormanlog.sty
2019/04/22 | 9814 | macros/generic/poormanlog/poormanlog.tex
2021/04/21 | 4052 | macros/generic/poormanlog/README
@@ -187665,13 +187666,13 @@
2010/05/14 | 253 | macros/generic/xcomment/xcomment.sty
2010/05/14 | 5315 | macros/generic/xcomment/xcomment.tex
2010/05/15 | 84896 | macros/generic/xcomment.zip
-2021/03/29 | 115429 | macros/generic/xint/CHANGES.html
+2021/05/05 | 120696 | macros/generic/xint/CHANGES.html
2020/02/02 | 466 | macros/generic/xint/Makefile
-2021/03/29 | 3769 | macros/generic/xint/README.md
-2021/03/29 | 1031328 | macros/generic/xint/sourcexint.pdf
-2021/03/29 | 1651784 | macros/generic/xint/xint.dtx
-2021/03/29 | 1012827 | macros/generic/xint/xint.pdf
-2021/03/29 | 2443624 | macros/generic/xint.zip
+2021/05/05 | 4122 | macros/generic/xint/README.md
+2021/05/05 | 1131946 | macros/generic/xint/sourcexint.pdf
+2021/05/05 | 1775575 | macros/generic/xint/xint.dtx
+2021/05/05 | 1023655 | macros/generic/xint/xint.pdf
+2021/05/05 | 2584372 | macros/generic/xint.zip
2020/11/11 | 3056 | macros/generic/xlop/doc/history.txt
2020/11/11 | 389668 | macros/generic/xlop/doc/xlop-doc-fr.pdf
2020/11/11 | 108183 | macros/generic/xlop/doc/xlop-doc-fr.tex
@@ -197229,11 +197230,11 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2021/05/04 | 113487 | macros/latex/contrib/easybook/easybook.dtx
-2021/05/04 | 673 | macros/latex/contrib/easybook/easybook.ins
-2021/05/04 | 477941 | macros/latex/contrib/easybook/easybook.pdf
-2021/05/04 | 3043 | macros/latex/contrib/easybook/README.md
-2021/05/04 | 507386 | macros/latex/contrib/easybook.zip
+2021/05/05 | 116153 | macros/latex/contrib/easybook/easybook.dtx
+2021/05/05 | 673 | macros/latex/contrib/easybook/easybook.ins
+2021/05/05 | 479006 | macros/latex/contrib/easybook/easybook.pdf
+2021/05/03 | 3043 | macros/latex/contrib/easybook/README.md
+2021/05/05 | 509240 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -203535,31 +203536,31 @@
2021/03/18 | 48528 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
2021/03/18 | 549 | macros/latex/contrib/l3backend/README.md
2021/03/18 | 847744 | macros/latex/contrib/l3backend.zip
-2020/06/04 | 13305 | macros/latex/contrib/l3build/CHANGELOG.md
-2020/06/04 | 2339 | macros/latex/contrib/l3build/CONTRIBUTING.md
-2020/06/04 | 1817 | macros/latex/contrib/l3build/l3build.1
-2020/06/04 | 7599 | macros/latex/contrib/l3build/l3build-arguments.lua
-2020/06/04 | 3244 | macros/latex/contrib/l3build/l3build-aux.lua
-2020/06/04 | 34369 | macros/latex/contrib/l3build/l3build-check.lua
-2020/06/04 | 1876 | macros/latex/contrib/l3build/l3build-clean.lua
-2020/06/04 | 4479 | macros/latex/contrib/l3build/l3build-ctan.lua
-2020/06/04 | 106499 | macros/latex/contrib/l3build/l3build.dtx
-2020/06/04 | 11746 | macros/latex/contrib/l3build/l3build-file-functions.lua
-2020/06/04 | 2480 | macros/latex/contrib/l3build/l3build-help.lua
-2020/06/04 | 1537 | macros/latex/contrib/l3build/l3build.ins
-2020/06/04 | 9358 | macros/latex/contrib/l3build/l3build-install.lua
-2020/06/04 | 5479 | macros/latex/contrib/l3build/l3build.lua
-2020/06/04 | 7205 | macros/latex/contrib/l3build/l3build-manifest.lua
-2020/06/04 | 11024 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
-2020/06/04 | 707231 | macros/latex/contrib/l3build/l3build.pdf
-2020/06/04 | 4308 | macros/latex/contrib/l3build/l3build-stdmain.lua
-2020/06/04 | 2310 | macros/latex/contrib/l3build/l3build-tagging.lua
-2020/06/04 | 6838 | macros/latex/contrib/l3build/l3build-typesetting.lua
-2020/06/04 | 2795 | macros/latex/contrib/l3build/l3build-unpack.lua
-2020/06/04 | 12042 | macros/latex/contrib/l3build/l3build-upload.lua
-2020/06/04 | 7246 | macros/latex/contrib/l3build/l3build-variables.lua
-2020/06/04 | 1024 | macros/latex/contrib/l3build/README.md
-2020/06/05 | 786681 | macros/latex/contrib/l3build.zip
+2021/05/05 | 13821 | macros/latex/contrib/l3build/CHANGELOG.md
+2021/05/05 | 2338 | macros/latex/contrib/l3build/CONTRIBUTING.md
+2021/05/05 | 1816 | macros/latex/contrib/l3build/l3build.1
+2021/05/05 | 7629 | macros/latex/contrib/l3build/l3build-arguments.lua
+2021/05/05 | 5011 | macros/latex/contrib/l3build/l3build-aux.lua
+2021/05/05 | 34538 | macros/latex/contrib/l3build/l3build-check.lua
+2021/05/05 | 2145 | macros/latex/contrib/l3build/l3build-clean.lua
+2021/05/05 | 4476 | macros/latex/contrib/l3build/l3build-ctan.lua
+2021/05/05 | 107586 | macros/latex/contrib/l3build/l3build.dtx
+2021/05/05 | 12641 | macros/latex/contrib/l3build/l3build-file-functions.lua
+2021/05/05 | 2471 | macros/latex/contrib/l3build/l3build-help.lua
+2021/05/05 | 1540 | macros/latex/contrib/l3build/l3build.ins
+2021/05/05 | 9438 | macros/latex/contrib/l3build/l3build-install.lua
+2021/05/05 | 5232 | macros/latex/contrib/l3build/l3build.lua
+2021/05/05 | 7189 | macros/latex/contrib/l3build/l3build-manifest.lua
+2021/05/05 | 10790 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
+2021/05/05 | 708509 | macros/latex/contrib/l3build/l3build.pdf
+2021/05/05 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua
+2021/05/05 | 2285 | macros/latex/contrib/l3build/l3build-tagging.lua
+2021/05/05 | 6739 | macros/latex/contrib/l3build/l3build-typesetting.lua
+2021/05/05 | 2745 | macros/latex/contrib/l3build/l3build-unpack.lua
+2021/05/05 | 11969 | macros/latex/contrib/l3build/l3build-upload.lua
+2021/05/05 | 7585 | macros/latex/contrib/l3build/l3build-variables.lua
+2021/05/05 | 1019 | macros/latex/contrib/l3build/README.md
+2021/05/05 | 789282 | macros/latex/contrib/l3build.zip
2021/02/18 | 6027 | macros/latex/contrib/l3experimental/CHANGELOG.md
2021/02/18 | 18438 | macros/latex/contrib/l3experimental/l3benchmark.dtx
2021/02/18 | 1562 | macros/latex/contrib/l3experimental/l3benchmark.ins
@@ -225118,9 +225119,9 @@
2017/11/13 | 451 | macros/plain/contrib/xii/README.txt
1998/12/11 | 767 | macros/plain/contrib/xii/xii.tex
2017/11/14 | 1183 | macros/plain/contrib/xii.zip
-2021/04/13 | 2420 | macros/plain/contrib/xintsession/README.md
-2021/04/13 | 14789 | macros/plain/contrib/xintsession/xintsession.tex
-2021/04/14 | 6494 | macros/plain/contrib/xintsession.zip
+2021/05/05 | 2745 | macros/plain/contrib/xintsession/README.md
+2021/05/05 | 14321 | macros/plain/contrib/xintsession/xintsession.tex
+2021/05/05 | 6604 | macros/plain/contrib/xintsession.zip
2016/05/12 | 9522 | macros/plain/contrib/zztex/doc/zzbuiltin.dat
2018/08/05 | 56207 | macros/plain/contrib/zztex/doc/zzdetails.dat
2018/02/16 | 78474 | macros/plain/contrib/zztex/doc/zzphrase.dat
@@ -263616,9 +263617,9 @@
1994/02/22 | 94984 | systems/mac/macmakeindex2.12.sea.hqx
1993/07/19 | 61321 | systems/mac/macmakeindex.sit.hqx
2021/04/01 | 47 | systems/mac/mactex/BasicTeX.pkg.md5
-2021/04/22 | 38116 | systems/mac/mactex/ExtrasFolder.pdf
+2021/05/04 | 38111 | systems/mac/mactex/ExtrasFolder.pdf
2021/04/01 | 50 | systems/mac/mactex/Ghostscript.pkg.md5
-2021/04/22 | 1711 | systems/mac/mactex/Licenses.txt
+2021/05/04 | 1711 | systems/mac/mactex/Licenses.txt
2021/03/29 | 4701496188 | systems/mac/mactex/mactex-20210328.pkg
2021/03/29 | 54 | systems/mac/mactex/mactex-20210328.pkg.md5
2021/03/25 | 97330890 | systems/mac/mactex/mactex-basictex-20210325.pkg
@@ -263628,8 +263629,8 @@
2021/04/01 | 45 | systems/mac/mactex/MacTeX.pkg.md5
2021/02/26 | 77461 | systems/mac/mactex/mactex-texdist-20210226.pkg
2021/02/26 | 58 | systems/mac/mactex/mactex-texdist-20210226.pkg.md5
-2021/04/22 | 416530836 | systems/mac/mactex/MacTeXtras-20210422.zip
-2021/04/22 | 58 | systems/mac/mactex/MacTeXtras-20210422.zip.md5
+2021/05/04 | 416544875 | systems/mac/mactex/MacTeXtras-20210504.zip
+2021/05/04 | 58 | systems/mac/mactex/MacTeXtras-20210504.zip.md5
2021/04/01 | 179 | systems/mac/mactex/README
1995/08/15 | 308344 | systems/mac/MakeIndex-Fat-1.0-sit.hqx
1994/04/20 | 2925109 | systems/mac/metafont/bluesky/MAC_MF_0.66.sit.hqx
@@ -268220,9 +268221,9 @@
2021/01/25 | 1828 | systems/texlive/tlnet/archive/ean13isbn.r57514.tar.xz
2019/02/28 | 948 | systems/texlive/tlnet/archive/ean.doc.r20851.tar.xz
2019/02/28 | 3148 | systems/texlive/tlnet/archive/ean.r20851.tar.xz
-2021/05/04 | 734676 | systems/texlive/tlnet/archive/easybook.doc.r59068.tar.xz
-2021/05/04 | 12380 | systems/texlive/tlnet/archive/easybook.r59068.tar.xz
-2021/05/04 | 26664 | systems/texlive/tlnet/archive/easybook.source.r59068.tar.xz
+2021/05/05 | 478208 | systems/texlive/tlnet/archive/easybook.doc.r59076.tar.xz
+2021/05/05 | 12744 | systems/texlive/tlnet/archive/easybook.r59076.tar.xz
+2021/05/05 | 27668 | systems/texlive/tlnet/archive/easybook.source.r59076.tar.xz
2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz
2020/09/08 | 175976 | systems/texlive/tlnet/archive/easyfig.doc.r56291.tar.xz
2020/09/08 | 1936 | systems/texlive/tlnet/archive/easyfig.r56291.tar.xz
@@ -269168,8 +269169,8 @@
2019/02/28 | 384 | systems/texlive/tlnet/archive/fontools.x86_64-solaris.r25997.tar.xz
2020/09/16 | 293728 | systems/texlive/tlnet/archive/fonts-churchslavonic.doc.r56350.tar.xz
2020/09/16 | 1610164 | systems/texlive/tlnet/archive/fonts-churchslavonic.r56350.tar.xz
-2021/05/02 | 573164 | systems/texlive/tlnet/archive/fontsetup.doc.r59042.tar.xz
-2021/05/02 | 6096 | systems/texlive/tlnet/archive/fontsetup.r59042.tar.xz
+2021/05/05 | 456368 | systems/texlive/tlnet/archive/fontsetup.doc.r59079.tar.xz
+2021/05/05 | 6008 | systems/texlive/tlnet/archive/fontsetup.r59079.tar.xz
2021/04/19 | 398936 | systems/texlive/tlnet/archive/fontsize.doc.r58906.tar.xz
2021/04/19 | 4976 | systems/texlive/tlnet/archive/fontsize.r58906.tar.xz
2021/04/19 | 14868 | systems/texlive/tlnet/archive/fontsize.source.r58906.tar.xz
@@ -270742,9 +270743,9 @@
2020/10/29 | 65376 | systems/texlive/tlnet/archive/latex-amsmath-dev.source.r56791.tar.xz
2020/06/08 | 147412 | systems/texlive/tlnet/archive/latexbangla.doc.r55475.tar.xz
2020/06/08 | 3268 | systems/texlive/tlnet/archive/latexbangla.r55475.tar.xz
-2021/02/28 | 25830708 | systems/texlive/tlnet/archive/latex-base-dev.doc.r57982.tar.xz
-2021/02/28 | 211196 | systems/texlive/tlnet/archive/latex-base-dev.r57982.tar.xz
-2021/02/28 | 647432 | systems/texlive/tlnet/archive/latex-base-dev.source.r57982.tar.xz
+2021/05/05 | 27216200 | systems/texlive/tlnet/archive/latex-base-dev.doc.r59080.tar.xz
+2021/05/05 | 215440 | systems/texlive/tlnet/archive/latex-base-dev.r59080.tar.xz
+2021/05/05 | 665048 | systems/texlive/tlnet/archive/latex-base-dev.source.r59080.tar.xz
2020/03/03 | 384 | systems/texlive/tlnet/archive/latex-bin.aarch64-linux.r54018.tar.xz
2020/03/03 | 384 | systems/texlive/tlnet/archive/latex-bin.amd64-freebsd.r54018.tar.xz
2020/03/03 | 380 | systems/texlive/tlnet/archive/latex-bin.amd64-netbsd.r54018.tar.xz
@@ -270874,9 +270875,9 @@
2020/04/21 | 5280 | systems/texlive/tlnet/archive/latexgit.source.r54811.tar.xz
2019/02/28 | 61484 | systems/texlive/tlnet/archive/latex-graphics-companion.doc.r29235.tar.xz
2019/02/28 | 436 | systems/texlive/tlnet/archive/latex-graphics-companion.r29235.tar.xz
-2020/10/29 | 2003580 | systems/texlive/tlnet/archive/latex-graphics-dev.doc.r56791.tar.xz
-2020/10/29 | 15100 | systems/texlive/tlnet/archive/latex-graphics-dev.r56791.tar.xz
-2020/10/29 | 52132 | systems/texlive/tlnet/archive/latex-graphics-dev.source.r56791.tar.xz
+2021/05/05 | 2028260 | systems/texlive/tlnet/archive/latex-graphics-dev.doc.r59080.tar.xz
+2021/05/05 | 15148 | systems/texlive/tlnet/archive/latex-graphics-dev.r59080.tar.xz
+2021/05/05 | 52252 | systems/texlive/tlnet/archive/latex-graphics-dev.source.r59080.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.aarch64-linux.r46208.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.amd64-freebsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.amd64-netbsd.r32150.tar.xz
@@ -270902,13 +270903,13 @@
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.amd64-freebsd.r16472.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.amd64-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.armhf-linux.r30015.tar.xz
-2021/04/17 | 479588 | systems/texlive/tlnet/archive/latexmk.doc.r58886.tar.xz
+2021/05/05 | 480040 | systems/texlive/tlnet/archive/latexmk.doc.r59081.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/latexmk.i386-cygwin.r13717.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.i386-freebsd.r16472.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.i386-linux.r10937.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/latexmk.i386-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.i386-solaris.r10937.tar.xz
-2021/04/17 | 94260 | systems/texlive/tlnet/archive/latexmk.r58886.tar.xz
+2021/05/05 | 93244 | systems/texlive/tlnet/archive/latexmk.r59081.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/latexmk.universal-darwin.r57908.tar.xz
2019/02/28 | 684 | systems/texlive/tlnet/archive/latexmk.win32.r15404.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.x86_64-cygwin.r33557.tar.xz
@@ -270962,9 +270963,9 @@
2019/02/28 | 5020492 | systems/texlive/tlnet/archive/latex-refsheet.doc.r45076.tar.xz
2019/02/28 | 480 | systems/texlive/tlnet/archive/latex-refsheet.r45076.tar.xz
2021/01/09 | 604512 | systems/texlive/tlnet/archive/latex.source.r57354.tar.xz
-2021/02/28 | 5277952 | systems/texlive/tlnet/archive/latex-tools-dev.doc.r57982.tar.xz
-2021/02/28 | 42180 | systems/texlive/tlnet/archive/latex-tools-dev.r57982.tar.xz
-2021/02/28 | 227024 | systems/texlive/tlnet/archive/latex-tools-dev.source.r57982.tar.xz
+2021/05/05 | 5280832 | systems/texlive/tlnet/archive/latex-tools-dev.doc.r59080.tar.xz
+2021/05/05 | 42452 | systems/texlive/tlnet/archive/latex-tools-dev.r59080.tar.xz
+2021/05/05 | 227844 | systems/texlive/tlnet/archive/latex-tools-dev.source.r59080.tar.xz
2019/02/28 | 3380 | systems/texlive/tlnet/archive/latex-uni8.doc.r49729.tar.xz
2019/02/28 | 4112 | systems/texlive/tlnet/archive/latex-uni8.r49729.tar.xz
2020/05/22 | 521444 | systems/texlive/tlnet/archive/latex-veryshortguide.doc.r55228.tar.xz
@@ -273415,8 +273416,8 @@
2020/03/09 | 739152 | systems/texlive/tlnet/archive/pgfornament-han.doc.r54191.tar.xz
2020/03/09 | 86108 | systems/texlive/tlnet/archive/pgfornament-han.r54191.tar.xz
2020/05/29 | 616692 | systems/texlive/tlnet/archive/pgfornament.r55326.tar.xz
-2020/05/31 | 113008 | systems/texlive/tlnet/archive/pgf-pie.doc.r55342.tar.xz
-2020/05/31 | 3316 | systems/texlive/tlnet/archive/pgf-pie.r55342.tar.xz
+2021/05/05 | 212708 | systems/texlive/tlnet/archive/pgf-pie.doc.r59075.tar.xz
+2021/05/05 | 3632 | systems/texlive/tlnet/archive/pgf-pie.r59075.tar.xz
2020/03/04 | 13006532 | systems/texlive/tlnet/archive/pgfplots.doc.r54080.tar.xz
2020/03/04 | 522388 | systems/texlive/tlnet/archive/pgfplots.r54080.tar.xz
2020/03/04 | 1726108 | systems/texlive/tlnet/archive/pgfplots.source.r54080.tar.xz
@@ -273629,9 +273630,9 @@
2019/02/28 | 10064 | systems/texlive/tlnet/archive/pmgraph.r15878.tar.xz
2020/03/18 | 683796 | systems/texlive/tlnet/archive/pmhanguljamo.doc.r54378.tar.xz
2020/03/18 | 5136 | systems/texlive/tlnet/archive/pmhanguljamo.r54378.tar.xz
-2021/05/02 | 623532 | systems/texlive/tlnet/archive/pm-isomath.doc.r59038.tar.xz
-2021/05/02 | 2656 | systems/texlive/tlnet/archive/pm-isomath.r59038.tar.xz
-2021/05/02 | 17016 | systems/texlive/tlnet/archive/pm-isomath.source.r59038.tar.xz
+2021/05/05 | 624016 | systems/texlive/tlnet/archive/pm-isomath.doc.r59077.tar.xz
+2021/05/05 | 2664 | systems/texlive/tlnet/archive/pm-isomath.r59077.tar.xz
+2021/05/05 | 17108 | systems/texlive/tlnet/archive/pm-isomath.source.r59077.tar.xz
2021/02/26 | 245112 | systems/texlive/tlnet/archive/pmx.aarch64-linux.r57930.tar.xz
2021/02/27 | 220600 | systems/texlive/tlnet/archive/pmx.amd64-freebsd.r57941.tar.xz
2021/02/24 | 199516 | systems/texlive/tlnet/archive/pmx.amd64-netbsd.r57877.tar.xz
@@ -275746,14 +275747,14 @@
2019/02/28 | 36596 | systems/texlive/tlnet/archive/tex-label.doc.r16372.tar.xz
2019/02/28 | 940 | systems/texlive/tlnet/archive/tex-label.r16372.tar.xz
2019/02/28 | 420 | systems/texlive/tlnet/archive/tex-label.source.r16372.tar.xz
-2021/04/22 | 577600 | systems/texlive/tlnet/archive/texlive-common.doc.r58933.tar.xz
-2021/04/22 | 348 | systems/texlive/tlnet/archive/texlive-common.r58933.tar.xz
+2021/05/05 | 577640 | systems/texlive/tlnet/archive/texlive-common.doc.r59073.tar.xz
+2021/05/05 | 348 | systems/texlive/tlnet/archive/texlive-common.r59073.tar.xz
2020/03/24 | 1197876 | systems/texlive/tlnet/archive/texlive-cz.doc.r54496.tar.xz
2020/03/24 | 280 | systems/texlive/tlnet/archive/texlive-cz.r54496.tar.xz
2021/03/23 | 1554012 | systems/texlive/tlnet/archive/texlive-de.doc.r58648.tar.xz
2021/03/23 | 272 | systems/texlive/tlnet/archive/texlive-de.r58648.tar.xz
-2021/05/04 | 174980 | systems/texlive/tlnet/archive/texlive-docindex.doc.r59058.tar.xz
-2021/05/04 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r59058.tar.xz
+2021/05/05 | 174892 | systems/texlive/tlnet/archive/texlive-docindex.doc.r59073.tar.xz
+2021/05/05 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r59073.tar.xz
2021/05/03 | 1937260 | systems/texlive/tlnet/archive/texlive-en.doc.r59056.tar.xz
2021/05/03 | 276 | systems/texlive/tlnet/archive/texlive-en.r59056.tar.xz
2021/03/09 | 3667820 | systems/texlive/tlnet/archive/texlive-es.doc.r58221.tar.xz
@@ -275809,7 +275810,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2021/05/04 | 218532 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59063.tar.xz
+2021/05/05 | 218536 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59073.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -275833,7 +275834,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2021/05/04 | 107256 | systems/texlive/tlnet/archive/texlive-scripts.r59063.tar.xz
+2021/05/05 | 107212 | systems/texlive/tlnet/archive/texlive-scripts.r59073.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -276831,9 +276832,9 @@
2020/10/23 | 1890332 | systems/texlive/tlnet/archive/utfsym.r56729.tar.xz
2019/02/28 | 2820 | systems/texlive/tlnet/archive/utopia.doc.r15878.tar.xz
2019/02/28 | 205556 | systems/texlive/tlnet/archive/utopia.r15878.tar.xz
-2021/03/23 | 116928 | systems/texlive/tlnet/archive/ut-thesis.doc.r58661.tar.xz
-2021/03/23 | 2540 | systems/texlive/tlnet/archive/ut-thesis.r58661.tar.xz
-2021/03/23 | 6608 | systems/texlive/tlnet/archive/ut-thesis.source.r58661.tar.xz
+2021/05/05 | 117040 | systems/texlive/tlnet/archive/ut-thesis.doc.r59078.tar.xz
+2021/05/05 | 2720 | systems/texlive/tlnet/archive/ut-thesis.r59078.tar.xz
+2021/05/05 | 6828 | systems/texlive/tlnet/archive/ut-thesis.source.r59078.tar.xz
2019/02/28 | 11764 | systems/texlive/tlnet/archive/uwmslide.doc.r27354.tar.xz
2019/02/28 | 3916 | systems/texlive/tlnet/archive/uwmslide.r27354.tar.xz
2019/02/28 | 137544 | systems/texlive/tlnet/archive/uwthesis.doc.r15878.tar.xz
@@ -277533,16 +277534,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2021/05/02 | 105152 | systems/texlive/tlnet/install-tl
-2021/05/04 | 6810371 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/05/04 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2021/05/04 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/05/05 | 6810399 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/05/05 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/05/05 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2021/05/04 | 20811860 | systems/texlive/tlnet/install-tl-windows.exe
-2021/05/04 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/05/04 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/05/04 | 25581526 | systems/texlive/tlnet/install-tl.zip
-2021/05/04 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2021/05/04 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/05/05 | 20810833 | systems/texlive/tlnet/install-tl-windows.exe
+2021/05/05 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/05/05 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/05/05 | 25581487 | systems/texlive/tlnet/install-tl.zip
+2021/05/05 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/05/05 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2021/04/01 | 1229 | systems/texlive/tlnet/README.md
2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021
2021/03/15 | 6571 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -277552,7 +277553,7 @@
2021/03/15 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2021/01/27 | 49446 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2021/05/03 | 6798 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2021/05/04 | 6660 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -277594,12 +277595,12 @@
2021/05/02 | 20361 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/02/20 | 5400 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2020/09/22 | 27563 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2021/05/04 | 17219437 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2021/05/04 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/05/05 | 17219411 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/05/05 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2020/05/13 | 86417 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2021/05/04 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2021/05/04 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/05/04 | 2303728 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/05/05 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/05/05 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/05/05 | 2302392 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/03/15 | 58775 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/03/17 | 42077 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2020/05/11 | 15010 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -282286,7 +282287,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2021/05/04 | 574836 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/05/05 | 574836 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -283486,9 +283487,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2021/03/15 | 39247 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2021/03/15 | 43386 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/05/04 | 209138 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/05/04 | 1268350 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/05/04 | 1184949 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/05/05 | 209147 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/05/05 | 1268685 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/05/05 | 1184781 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/03/15 | 13447 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2021/03/15 | 14320 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -283649,190 +283650,190 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2021/05/04 | 574674 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/05/04 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/05/04 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/05/04 | 968698 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/05/04 | 1078877 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/05/04 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/05/04 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/05/04 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/05/04 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/05/04 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2021/05/04 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/05/04 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/05/04 | 94739 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/05/04 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/05/04 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/05/04 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/05/04 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2021/05/04 | 330234 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2021/05/04 | 392598 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/05/04 | 32745 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/05/04 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2021/05/04 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/05/04 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/05/04 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2021/05/04 | 239480 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/05/04 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/05/04 | 179380 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/05/04 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/05/04 | 52476 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2021/05/04 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/05/04 | 21132 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/05/04 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/05/04 | 461399 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/05/04 | 45648 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/05/04 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/05/04 | 282106 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/05/04 | 321895 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2021/05/04 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/05/04 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/05/04 | 116930 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2021/05/04 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/05/04 | 1281105 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/05/04 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/05/04 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2021/05/04 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/05/04 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2021/05/04 | 47879 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/05/04 | 25156 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/05/04 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/05/04 | 55824 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/05/04 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/05/04 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/05/04 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/05/04 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/05/04 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/05/04 | 71570 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/05/04 | 80662 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/05/04 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/05/04 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/05/04 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/05/04 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/05/04 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/05/04 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2021/05/04 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/05/04 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/05/04 | 96146 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/05/04 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/05/04 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/05/04 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/05/04 | 484055 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/05/04 | 567627 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/05/04 | 147139 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/05/04 | 159969 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2021/05/04 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/05/04 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/05/04 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2021/05/04 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/05/04 | 28120 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/05/04 | 30036 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/05/04 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/05/04 | 680050 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/05/04 | 532040 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/05/04 | 594871 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/05/04 | 475934 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/05/04 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/05/04 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2021/05/04 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/05/04 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/05/04 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/05/04 | 67649 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/05/04 | 74165 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/05/04 | 27361 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/05/04 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/05/04 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/05/04 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/05/04 | 195568 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/05/04 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/05/04 | 250213 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/05/04 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/05/04 | 97134 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/05/04 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2021/05/04 | 60553 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/05/04 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/05/04 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/05/04 | 136429 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/05/04 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/05/04 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/05/04 | 199703 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/05/04 | 180048 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/05/04 | 67452 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/05/04 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/05/04 | 31193 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/05/04 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/05/04 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/05/04 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/05/04 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/05/04 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/05/04 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/05/04 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/05/04 | 193716 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2021/05/04 | 211056 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/05/04 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2021/05/04 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/05/04 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/05/04 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2021/05/04 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2021/05/04 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/05/04 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/05/04 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/05/04 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/05/04 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/05/04 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/05/04 | 1307727 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/05/04 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/05/04 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/05/04 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/05/04 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2021/05/04 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2021/05/04 | 72150 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/05/04 | 43677 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/05/04 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/05/04 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/05/04 | 1424812 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/05/04 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2021/05/04 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/05/04 | 56223 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/05/04 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/05/04 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/05/04 | 27275 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/05/04 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/05/04 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/05/04 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/05/04 | 70111 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2021/05/04 | 153890 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/05/04 | 167905 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2021/05/04 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/05/04 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2021/05/04 | 98518 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2021/05/04 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2021/05/04 | 2499403 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2021/05/04 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/05/04 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2021/05/04 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/05/04 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/05/04 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/05/04 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/05/04 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/05/04 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2021/05/04 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/05/04 | 311192 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2021/05/04 | 345366 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/05/04 | 55564 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/05/04 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/05/04 | 583626 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/05/04 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/05/04 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/05/04 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/05/04 | 209136 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/05/04 | 1269636 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/05/04 | 1185130 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/05/04 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/05/04 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/05/05 | 574674 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/05/05 | 50846 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/05/05 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/05/05 | 968701 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/05/05 | 1078878 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/05/05 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/05/05 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/05/05 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/05/05 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/05/05 | 49970 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/05/05 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/05/05 | 84775 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/05/05 | 94739 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/05/05 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/05/05 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/05/05 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/05/05 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/05/05 | 330231 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/05/05 | 392598 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/05/05 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/05/05 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/05/05 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/05/05 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/05/05 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2021/05/05 | 239476 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/05/05 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/05/05 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/05/05 | 195665 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/05/05 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/05/05 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/05/05 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/05/05 | 23289 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/05/05 | 461401 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/05/05 | 45649 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/05/05 | 51161 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/05/05 | 282106 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/05/05 | 321895 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/05/05 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/05/05 | 45276 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/05/05 | 116932 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/05/05 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/05/05 | 1281102 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/05/05 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/05/05 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/05/05 | 99604 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/05/05 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/05/05 | 47879 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/05/05 | 25155 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/05/05 | 28010 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/05/05 | 55821 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/05/05 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/05/05 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/05/05 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/05/05 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/05/05 | 77858 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/05/05 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/05/05 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/05/05 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/05/05 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/05/05 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/05/05 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/05/05 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/05/05 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/05/05 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/05/05 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/05/05 | 96147 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/05/05 | 115468 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/05/05 | 38069 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/05/05 | 42626 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/05/05 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/05/05 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/05/05 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/05/05 | 159966 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/05/05 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/05/05 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/05/05 | 16328 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/05/05 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/05/05 | 28121 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/05/05 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/05/05 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/05/05 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/05/05 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/05/05 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/05/05 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/05/05 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/05/05 | 94269 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/05/05 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/05/05 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/05/05 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/05/05 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/05/05 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/05/05 | 27362 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/05/05 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/05/05 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/05/05 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/05/05 | 195567 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/05/05 | 214106 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/05/05 | 250214 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/05/05 | 283977 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/05/05 | 97133 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/05/05 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/05/05 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/05/05 | 67929 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/05/05 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/05/05 | 136428 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/05/05 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/05/05 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/05/05 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/05/05 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/05/05 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/05/05 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/05/05 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/05/05 | 35065 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/05/05 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/05/05 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/05/05 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/05/05 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/05/05 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/05/05 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/05/05 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/05/05 | 211056 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/05/05 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/05/05 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/05/05 | 748362 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/05/05 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/05/05 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/05/05 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/05/05 | 208180 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/05/05 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/05/05 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/05/05 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/05/05 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/05/05 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/05/05 | 20119 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/05/05 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/05/05 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/05/05 | 37243 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/05/05 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/05/05 | 72151 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/05/05 | 43676 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/05/05 | 51978 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/05/05 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/05/05 | 1424812 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/05/05 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/05/05 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/05/05 | 56221 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/05/05 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/05/05 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/05/05 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/05/05 | 16112 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/05/05 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/05/05 | 63675 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/05/05 | 70110 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/05/05 | 153892 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/05/05 | 167908 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/05/05 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/05/05 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/05/05 | 98517 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/05/05 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/05/05 | 2499403 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/05/05 | 2616929 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/05/05 | 55218 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/05/05 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/05/05 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/05/05 | 37291 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/05/05 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/05/05 | 33153 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/05/05 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/05/05 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/05/05 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/05/05 | 345366 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/05/05 | 55561 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/05/05 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/05/05 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/05/05 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/05/05 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/05/05 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/05/05 | 209108 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/05/05 | 1268973 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/05/05 | 1185696 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/05/05 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/05/05 | 14354 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2021/05/04 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/05/05 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -284166,7 +284167,7 @@
2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2021/05/04 | 870 | systems/win32/miktex/tm/packages/pr.ini
+2021/05/05 | 870 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -285352,7 +285353,7 @@
2021/04/30 | 5529724 | systems/win32/w32tex/aleph-w32.tar.xz
2021/05/03 | 63703268 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2021/05/03 | 823076 | systems/win32/w32tex/ChangeLog
+2021/05/04 | 823322 | 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
@@ -285361,7 +285362,7 @@
2021/03/22 | 23474308 | systems/win32/w32tex/cjkzr.tar.xz
2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz
2021/04/30 | 144765388 | systems/win32/w32tex/context.tar.xz
-2021/05/03 | 912188 | systems/win32/w32tex/cweb-w32.tar.xz
+2021/05/04 | 914852 | systems/win32/w32tex/cweb-w32.tar.xz
2021/03/22 | 6433932 | systems/win32/w32tex/datetime2.tar.xz
2021/04/07 | 846020 | systems/win32/w32tex/dvi2ps-w32.tar.xz
2021/04/07 | 484144 | systems/win32/w32tex/dvi2tty-w32.tar.xz
@@ -285376,7 +285377,7 @@
2021/03/21 | 34776716 | systems/win32/w32tex/latex.tar.xz
2021/04/07 | 1007424 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz
2021/03/30 | 421014648 | systems/win32/w32tex/ltxpkgdocs.tar.xz
-2021/04/30 | 35202232 | systems/win32/w32tex/ltxpkgs.tar.xz
+2021/05/04 | 35208696 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/04/11 | 3848920 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
2021/04/22 | 3796504 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
2021/04/20 | 3842928 | systems/win32/w32tex/luajittex-w32.tar.xz
@@ -285395,7 +285396,7 @@
2021/04/07 | 1246480 | systems/win32/w32tex/omegaj-w32.tar.xz
2020/11/16 | 324540 | systems/win32/w32tex/otfbeta.tar.xz
2021/05/03 | 22153424 | systems/win32/w32tex/pdftex-w32.tar.xz
-2021/05/03 | 97665472 | systems/win32/w32tex/pgfcontrib.tar.xz
+2021/05/04 | 97754860 | systems/win32/w32tex/pgfcontrib.tar.xz
2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz
2021/02/14 | 2826912 | systems/win32/w32tex/platex.tar.xz
2021/04/07 | 1726052 | systems/win32/w32tex/pmx.tar.xz
@@ -285407,7 +285408,7 @@
2019/04/15 | 499188 | systems/win32/w32tex/sam2p-w32.tar.xz
2021/03/23 | 87955068 | systems/win32/w32tex/t1fonts.tar.xz
2020/10/31 | 142032 | systems/win32/w32tex/t1utils-w32.tar.xz
-2021/05/03 | 3421760 | systems/win32/w32tex/tex4htk-w32.tar.xz
+2021/05/04 | 3417280 | systems/win32/w32tex/tex4htk-w32.tar.xz
2018/06/20 | 15940044 | systems/win32/w32tex/tex-gyre.tar.xz
2021/04/07 | 4485428 | systems/win32/w32tex/texinfo-w32.tar.xz
2021/01/03 | 2050496 | systems/win32/w32tex/texinstwin.zip
@@ -285436,7 +285437,7 @@
2021/04/30 | 811524 | systems/win32/w32tex/win64/aleph-w64.tar.xz
2020/08/20 | 22351540 | systems/win32/w32tex/win64/biblatex-biber-w64.tar.xz
2021/04/28 | 2224192 | systems/win32/w32tex/win64/context-w64.tar.xz
-2021/05/03 | 440224 | systems/win32/w32tex/win64/cweb-w64.tar.xz
+2021/05/04 | 441456 | systems/win32/w32tex/win64/cweb-w64.tar.xz
2021/04/07 | 758972 | systems/win32/w32tex/win64/dvi2ps-w64.tar.xz
2021/04/07 | 448472 | systems/win32/w32tex/win64/dvi2tty-w64.tar.xz
2021/04/17 | 808944 | systems/win32/w32tex/win64/dvipdfm-w64.tar.xz
@@ -285573,7 +285574,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2021/05/05 | 186 | timestamp
+2021/05/06 | 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
@@ -286905,41 +286906,41 @@
1999/06/04 | 27445 | usergrps/uktug/baskervi/baskrep.cls
1999/05/12 | 7702 | usergrps/uktug/baskervi/epstopdf
1997/10/01 | 444 | usergrps/uktug/baskervi/README
-2021/04/21 | 12028 | usergrps/usergrps/bg.html
-2021/04/21 | 11725 | usergrps/usergrps/br.html
-2021/04/21 | 11711 | usergrps/usergrps/ca.html
-2021/04/21 | 11990 | usergrps/usergrps/cn.html
-2021/04/21 | 12144 | usergrps/usergrps/cz.html
-2021/04/21 | 12261 | usergrps/usergrps/de.html
-2021/04/21 | 11782 | usergrps/usergrps/dk.html
-2021/04/21 | 11561 | usergrps/usergrps/ee.html
-2021/04/21 | 11786 | usergrps/usergrps/esc.html
-2021/04/21 | 11931 | usergrps/usergrps/es.html
-2021/04/21 | 12071 | usergrps/usergrps/fr.html
-2021/04/21 | 11914 | usergrps/usergrps/gb.html
-2021/04/21 | 11807 | usergrps/usergrps/gr.html
-2021/04/21 | 12211 | usergrps/usergrps/hu.html
-2021/04/21 | 11707 | usergrps/usergrps/ie.html
-2021/04/21 | 7871 | usergrps/usergrps/index.html
-2021/04/21 | 11682 | usergrps/usergrps/is.html
-2021/04/21 | 11934 | usergrps/usergrps/it.html
-2021/04/21 | 11651 | usergrps/usergrps/kh.html
-2021/04/21 | 12051 | usergrps/usergrps/kr.html
+2021/05/05 | 12025 | usergrps/usergrps/bg.html
+2021/05/05 | 11722 | usergrps/usergrps/br.html
+2021/05/05 | 11708 | usergrps/usergrps/ca.html
+2021/05/05 | 11987 | usergrps/usergrps/cn.html
+2021/05/05 | 12141 | usergrps/usergrps/cz.html
+2021/05/05 | 12258 | usergrps/usergrps/de.html
+2021/05/05 | 11779 | usergrps/usergrps/dk.html
+2021/05/05 | 11558 | usergrps/usergrps/ee.html
+2021/05/05 | 11783 | usergrps/usergrps/esc.html
+2021/05/05 | 11928 | usergrps/usergrps/es.html
+2021/05/05 | 12068 | usergrps/usergrps/fr.html
+2021/05/05 | 11911 | usergrps/usergrps/gb.html
+2021/05/05 | 11804 | usergrps/usergrps/gr.html
+2021/05/05 | 12208 | usergrps/usergrps/hu.html
+2021/05/05 | 11704 | usergrps/usergrps/ie.html
+2021/05/05 | 7868 | usergrps/usergrps/index.html
+2021/05/05 | 11679 | usergrps/usergrps/is.html
+2021/05/05 | 11931 | usergrps/usergrps/it.html
+2021/05/05 | 11648 | usergrps/usergrps/kh.html
+2021/05/05 | 12048 | usergrps/usergrps/kr.html
2021/01/28 | 16642 | usergrps/usergrps/labels.pdf
2020/08/05 | 2357 | usergrps/usergrps/labels.tex
-2021/04/21 | 11591 | usergrps/usergrps/lt.html
+2021/05/05 | 11588 | usergrps/usergrps/lt.html
2021/04/21 | 65954 | usergrps/usergrps/lugs.html
2021/01/28 | 57162 | usergrps/usergrps/lugs.pdf
2020/11/05 | 23855 | usergrps/usergrps/lugs.tex
-2021/04/21 | 11641 | usergrps/usergrps/mx.html
-2021/04/29 | 12013 | usergrps/usergrps/nl.html
-2021/04/21 | 11752 | usergrps/usergrps/no.html
-2021/04/21 | 12216 | usergrps/usergrps/pl.html
-2021/04/21 | 11780 | usergrps/usergrps/pt.html
-2021/04/21 | 11822 | usergrps/usergrps/us.html
-2021/04/21 | 11691 | usergrps/usergrps/uy.html
-2021/04/21 | 11762 | usergrps/usergrps/vn.html
-2021/04/21 | 11701 | usergrps/usergrps/za.html
+2021/05/05 | 11638 | usergrps/usergrps/mx.html
+2021/05/05 | 12011 | usergrps/usergrps/nl.html
+2021/05/05 | 11749 | usergrps/usergrps/no.html
+2021/05/05 | 12213 | usergrps/usergrps/pl.html
+2021/05/05 | 11777 | usergrps/usergrps/pt.html
+2021/05/05 | 11819 | usergrps/usergrps/us.html
+2021/05/05 | 11688 | usergrps/usergrps/uy.html
+2021/05/05 | 11759 | usergrps/usergrps/vn.html
+2021/05/05 | 11698 | usergrps/usergrps/za.html
1992/12/06 | 2551 | web/aplweb/announcement
1993/11/03 | 802292 | web/aplweb/aplweba.zip
1993/11/03 | 771814 | web/aplweb/aplwebb.zip
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 3e8d1e7ce9..987936b997 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 308b6c4933..8087ea9bcf 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,19 +1,338 @@
+2021/05/05 | 99604 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/05/05 | 98517 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/05/05 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/05/05 | 97133 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/05/05 | 968701 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/05/05 | 96147 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/05/05 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/05/05 | 94739 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/05/05 | 9438 | macros/latex/contrib/l3build/l3build-install.lua
+2021/05/05 | 94287 | macros/generic/polexpr.zip
+2021/05/05 | 94269 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/05/05 | 940055 | graphics/mcf2graph.zip
+2021/05/05 | 93244 | systems/texlive/tlnet/archive/latexmk.r59081.tar.xz
+2021/05/05 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/05/05 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/05/05 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/05/05 | 870 | systems/win32/miktex/tm/packages/pr.ini
+2021/05/05 | 84775 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/05/05 | 828 | info/tlmgr-intro-zh-cn/latexmkrc
+2021/05/05 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/05/05 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/05/05 | 793324 | install/macros/latex/contrib/l3build.tds.zip
+2021/05/05 | 789282 | macros/latex/contrib/l3build.zip
+2021/05/05 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/05/05 | 7868 | usergrps/usergrps/index.html
+2021/05/05 | 77858 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/05/05 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/05/05 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/05/05 | 7629 | macros/latex/contrib/l3build/l3build-arguments.lua
+2021/05/05 | 7585 | macros/latex/contrib/l3build/l3build-variables.lua
+2021/05/05 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/05/05 | 748362 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/05/05 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/05/05 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/05/05 | 73050 | macros/generic/polexpr/polexprsturm.tex
+2021/05/05 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/05/05 | 72151 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/05/05 | 7189 | macros/latex/contrib/l3build/l3build-manifest.lua
+2021/05/05 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/05/05 | 708509 | macros/latex/contrib/l3build/l3build.pdf
+2021/05/05 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/05/05 | 70110 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/05/05 | 6828 | systems/texlive/tlnet/archive/ut-thesis.source.r59078.tar.xz
+2021/05/05 | 6810399 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/05/05 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/05/05 | 67929 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/05/05 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/05/05 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/05/05 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/05/05 | 673 | macros/latex/contrib/easybook/easybook.ins
+2021/05/05 | 6739 | macros/latex/contrib/l3build/l3build-typesetting.lua
+2021/05/05 | 6733 | macros/generic/polexpr/polexprexpr.tex
+2021/05/05 | 665048 | systems/texlive/tlnet/archive/latex-base-dev.source.r59080.tar.xz
+2021/05/05 | 6604 | macros/plain/contrib/xintsession.zip
+2021/05/05 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/05/05 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/05/05 | 651 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex
+2021/05/05 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/05/05 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/05/05 | 63675 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/05/05 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/05/05 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/05/05 | 624016 | systems/texlive/tlnet/archive/pm-isomath.doc.r59077.tar.xz
+2021/05/05 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/05/05 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/05/05 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/05/05 | 6008 | systems/texlive/tlnet/archive/fontsetup.r59079.tar.xz
+2021/05/05 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/05/05 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/05/05 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/05/05 | 59133 | graphics/mcf2graph/mcf_manual.tex
+2021/05/05 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/05/05 | 577640 | systems/texlive/tlnet/archive/texlive-common.doc.r59073.tar.xz
+2021/05/05 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/05/05 | 574836 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/05/05 | 574674 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/05/05 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/05/05 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/05/05 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/05/05 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/05/05 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/05/05 | 56221 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/05/05 | 55821 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/05/05 | 55561 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/05/05 | 55218 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/05/05 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/05/05 | 5280832 | systems/texlive/tlnet/archive/latex-tools-dev.doc.r59080.tar.xz
+2021/05/05 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/05/05 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/05/05 | 5232 | macros/latex/contrib/l3build/l3build.lua
+2021/05/05 | 52252 | systems/texlive/tlnet/archive/latex-graphics-dev.source.r59080.tar.xz
+2021/05/05 | 51978 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/05/05 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/05/05 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/05/05 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/05/05 | 51161 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/05/05 | 509240 | macros/latex/contrib/easybook.zip
+2021/05/05 | 50846 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/05/05 | 5011 | macros/latex/contrib/l3build/l3build-aux.lua
+2021/05/05 | 49970 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/05/05 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/05/05 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/05/05 | 480040 | systems/texlive/tlnet/archive/latexmk.doc.r59081.tar.xz
+2021/05/05 | 479006 | macros/latex/contrib/easybook/easybook.pdf
+2021/05/05 | 47879 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/05/05 | 478208 | systems/texlive/tlnet/archive/easybook.doc.r59076.tar.xz
+2021/05/05 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/05/05 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2021/05/05 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/05/05 | 461401 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/05/05 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/05/05 | 45649 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/05/05 | 456368 | systems/texlive/tlnet/archive/fontsetup.doc.r59079.tar.xz
+2021/05/05 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/05/05 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/05/05 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/05/05 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/05/05 | 45276 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/05/05 | 449016 | info/tlmgr-intro-zh-cn.zip
+2021/05/05 | 4476 | macros/latex/contrib/l3build/l3build-ctan.lua
+2021/05/05 | 44379 | graphics/mcf2graph/mcf_man_soc.mf
+2021/05/05 | 43676 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/05/05 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/05/05 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua
+2021/05/05 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/05/05 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/05/05 | 42626 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/05/05 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/05/05 | 42452 | systems/texlive/tlnet/archive/latex-tools-dev.r59080.tar.xz
+2021/05/05 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/05/05 | 4191 | macros/generic/polexpr/README.md
+2021/05/05 | 4122 | macros/generic/xint/README.md
+2021/05/05 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/05/05 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/05/05 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/05/05 | 39443 | macros/generic/polexpr/polexprcore.tex
+2021/05/05 | 392598 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/05/05 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r59073.tar.xz
+2021/05/05 | 38702 | macros/generic/polexpr/polexpr.sty
+2021/05/05 | 38069 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/05/05 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/05/05 | 378071 | graphics/mcf2graph/mcf_manual.pdf
+2021/05/05 | 376444 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf
+2021/05/05 | 37291 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/05/05 | 37243 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/05/05 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/05/05 | 3632 | systems/texlive/tlnet/archive/pgf-pie.r59075.tar.xz
+2021/05/05 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/05/05 | 35065 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/05/05 | 348 | systems/texlive/tlnet/archive/texlive-common.r59073.tar.xz
+2021/05/05 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/05/05 | 34538 | macros/latex/contrib/l3build/l3build-check.lua
+2021/05/05 | 345366 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/05/05 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/05/05 | 33153 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/05/05 | 330231 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/05/05 | 3288 | info/tlmgr-intro-zh-cn/body/schemes_and_collections.tex
+2021/05/05 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/05/05 | 321895 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/05/05 | 320335 | graphics/mcf2graph/mcf_example.pdf
+2021/05/05 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/05/05 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/05/05 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/05/05 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/05/05 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/05/05 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/05/05 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/05/05 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/05/05 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/05/05 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/05/05 | 283977 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/05/05 | 282106 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/05/05 | 28121 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/05/05 | 28010 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/05/05 | 27668 | systems/texlive/tlnet/archive/easybook.source.r59076.tar.xz
+2021/05/05 | 2745 | macros/plain/contrib/xintsession/README.md
+2021/05/05 | 2745 | macros/latex/contrib/l3build/l3build-unpack.lua
+2021/05/05 | 2743 | graphics/mcf2graph/mcf_exa_soc.mf
+2021/05/05 | 27362 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/05/05 | 272964 | macros/generic/polexpr/polexpr.html
+2021/05/05 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/05/05 | 27216200 | systems/texlive/tlnet/archive/latex-base-dev.doc.r59080.tar.xz
+2021/05/05 | 2720 | systems/texlive/tlnet/archive/ut-thesis.r59078.tar.xz
+2021/05/05 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/05/05 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/05/05 | 2695315 | install/macros/generic/xint.tds.zip
+2021/05/05 | 2664 | systems/texlive/tlnet/archive/pm-isomath.r59077.tar.xz
+2021/05/05 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/05/05 | 2616929 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/05/05 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/05/05 | 2584372 | macros/generic/xint.zip
+2021/05/05 | 25581487 | systems/texlive/tlnet/install-tl.zip
+2021/05/05 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/05/05 | 25155 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/05/05 | 250214 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/05/05 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/05/05 | 2499403 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/05/05 | 2471 | macros/latex/contrib/l3build/l3build-help.lua
+2021/05/05 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/05/05 | 239476 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/05/05 | 23941 | info/tlmgr-intro-zh-cn/body/actions.tex
+2021/05/05 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/05/05 | 2338 | macros/latex/contrib/l3build/CONTRIBUTING.md
+2021/05/05 | 23289 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/05/05 | 2302392 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/05/05 | 2285 | macros/latex/contrib/l3build/l3build-tagging.lua
+2021/05/05 | 227844 | systems/texlive/tlnet/archive/latex-tools-dev.source.r59080.tar.xz
+2021/05/05 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/05/05 | 218536 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59073.tar.xz
+2021/05/05 | 215440 | systems/texlive/tlnet/archive/latex-base-dev.r59080.tar.xz
+2021/05/05 | 2145 | macros/latex/contrib/l3build/l3build-clean.lua
+2021/05/05 | 214106 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/05/05 | 212708 | systems/texlive/tlnet/archive/pgf-pie.doc.r59075.tar.xz
+2021/05/05 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/05/05 | 211056 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/05/05 | 209147 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/05/05 | 209108 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/05/05 | 208180 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/05/05 | 20810833 | systems/texlive/tlnet/install-tl-windows.exe
+2021/05/05 | 2028260 | systems/texlive/tlnet/archive/latex-graphics-dev.doc.r59080.tar.xz
+2021/05/05 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/05/05 | 20119 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/05/05 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/05/05 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/05/05 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/05/05 | 195665 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/05/05 | 195567 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/05/05 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/05/05 | 1880 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty
+2021/05/05 | 184190 | graphics/mcf2graph/mcf_mplib_exa.pdf
+2021/05/05 | 1816 | macros/latex/contrib/l3build/l3build.1
+2021/05/05 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/05/05 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/05/05 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/05/05 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/05/05 | 1775575 | macros/generic/xint/xint.dtx
+2021/05/05 | 174892 | systems/texlive/tlnet/archive/texlive-docindex.doc.r59073.tar.xz
+2021/05/05 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/05/05 | 17219411 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/05/05 | 17108 | systems/texlive/tlnet/archive/pm-isomath.source.r59077.tar.xz
+2021/05/05 | 167908 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/05/05 | 1663 | info/tlmgr-intro-zh-cn/body/options.tex
+2021/05/05 | 16439 | graphics/mcf2graph/mcf_mplib_exa.tex
+2021/05/05 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/05/05 | 16328 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/05/05 | 16112 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/05/05 | 159966 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/05/05 | 1540 | macros/latex/contrib/l3build/l3build.ins
+2021/05/05 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/05/05 | 153892 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/05/05 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/05/05 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/05/05 | 15148 | systems/texlive/tlnet/archive/latex-graphics-dev.r59080.tar.xz
+2021/05/05 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/05/05 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/05/05 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/05/05 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/05/05 | 14354 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/05/05 | 14321 | macros/plain/contrib/xintsession/xintsession.tex
+2021/05/05 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/05/05 | 1424812 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/05/05 | 13821 | macros/latex/contrib/l3build/CHANGELOG.md
+2021/05/05 | 136428 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/05/05 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/05/05 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/05/05 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/05/05 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/05/05 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/05/05 | 1281102 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/05/05 | 12744 | systems/texlive/tlnet/archive/easybook.r59076.tar.xz
+2021/05/05 | 1268973 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/05/05 | 1268685 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/05/05 | 12641 | macros/latex/contrib/l3build/l3build-file-functions.lua
+2021/05/05 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/05/05 | 12258 | usergrps/usergrps/de.html
+2021/05/05 | 12213 | usergrps/usergrps/pl.html
+2021/05/05 | 12208 | usergrps/usergrps/hu.html
+2021/05/05 | 12141 | usergrps/usergrps/cz.html
+2021/05/05 | 120696 | macros/generic/xint/CHANGES.html
+2021/05/05 | 12068 | usergrps/usergrps/fr.html
+2021/05/05 | 12048 | usergrps/usergrps/kr.html
+2021/05/05 | 12025 | usergrps/usergrps/bg.html
+2021/05/05 | 12011 | usergrps/usergrps/nl.html
+2021/05/05 | 11987 | usergrps/usergrps/cn.html
+2021/05/05 | 11969 | macros/latex/contrib/l3build/l3build-upload.lua
+2021/05/05 | 11931 | usergrps/usergrps/it.html
+2021/05/05 | 11928 | usergrps/usergrps/es.html
+2021/05/05 | 11911 | usergrps/usergrps/gb.html
+2021/05/05 | 1185696 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/05/05 | 1184781 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/05/05 | 11819 | usergrps/usergrps/us.html
+2021/05/05 | 11804 | usergrps/usergrps/gr.html
+2021/05/05 | 11783 | usergrps/usergrps/esc.html
+2021/05/05 | 11779 | usergrps/usergrps/dk.html
+2021/05/05 | 11777 | usergrps/usergrps/pt.html
+2021/05/05 | 11759 | usergrps/usergrps/vn.html
+2021/05/05 | 11749 | usergrps/usergrps/no.html
+2021/05/05 | 11722 | usergrps/usergrps/br.html
+2021/05/05 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/05/05 | 11708 | usergrps/usergrps/ca.html
+2021/05/05 | 11704 | usergrps/usergrps/ie.html
+2021/05/05 | 117040 | systems/texlive/tlnet/archive/ut-thesis.doc.r59078.tar.xz
+2021/05/05 | 11698 | usergrps/usergrps/za.html
+2021/05/05 | 116932 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/05/05 | 11688 | usergrps/usergrps/uy.html
+2021/05/05 | 11679 | usergrps/usergrps/is.html
+2021/05/05 | 11648 | usergrps/usergrps/kh.html
+2021/05/05 | 11638 | usergrps/usergrps/mx.html
+2021/05/05 | 116153 | macros/latex/contrib/easybook/easybook.dtx
+2021/05/05 | 11588 | usergrps/usergrps/lt.html
+2021/05/05 | 11558 | usergrps/usergrps/ee.html
+2021/05/05 | 115468 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/05/05 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/05/05 | 1131946 | macros/generic/xint/sourcexint.pdf
+2021/05/05 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/05/05 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/05/05 | 10790 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
+2021/05/05 | 1078878 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/05/05 | 107586 | macros/latex/contrib/l3build/l3build.dtx
+2021/05/05 | 107212 | systems/texlive/tlnet/archive/texlive-scripts.r59073.tar.xz
+2021/05/05 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/05/05 | 103789 | graphics/mcf2graph/mcf2graph.mf
+2021/05/05 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/05/05 | 1023655 | macros/generic/xint/xint.pdf
+2021/05/05 | 1019 | macros/latex/contrib/l3build/README.md
+2021/05/05 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2021/05/04 | 99 | macros/latex-dev/base/ltpara-code.tex
-2021/05/04 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/05/04 | 98518 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2021/05/04 | 9809 | macros/latex-dev/base/ltnews21.tex
-2021/05/04 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/05/04 | 97134 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/05/04 | 968698 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/05/04 | 96146 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/05/04 | 97754860 | systems/win32/w32tex/pgfcontrib.tar.xz
2021/05/04 | 9583 | macros/latex-dev/base/format.ins
2021/05/04 | 9562 | macros/latex-dev/base/ltcntrl.dtx
2021/05/04 | 9493 | macros/latex-dev/required/tools/shellesc.dtx
-2021/05/04 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/05/04 | 94739 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/05/04 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
2021/05/04 | 9400 | macros/latex-dev/base/syntonly.dtx
2021/05/04 | 9373 | macros/latex-dev/base/preload.dtx
+2021/05/04 | 914852 | systems/win32/w32tex/cweb-w32.tar.xz
2021/05/04 | 90917 | macros/latex-dev/base/fntguide.tex
2021/05/04 | 9068 | macros/latex-dev/base/lppl-1-0.txt
2021/05/04 | 906804 | systems/texlive/tlnet/archive/tex4ht.r59071.tar.xz
@@ -22,123 +341,72 @@
2021/05/04 | 8981 | macros/latex-dev/required/tools/rawfonts.dtx
2021/05/04 | 89718 | macros/latex-dev/base/slides.dtx
2021/05/04 | 8863 | macros/latex-dev/base/ltnews17.tex
-2021/05/04 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/05/04 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/05/04 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
2021/05/04 | 8736 | macros/latex-dev/base/ltthm.dtx
-2021/05/04 | 870 | systems/win32/miktex/tm/packages/pr.ini
2021/05/04 | 8631 | macros/latex-dev/base/oldlfont.dtx
2021/05/04 | 85817 | macros/latex-dev/base/ltdefns.dtx
2021/05/04 | 8531 | macros/latex-dev/base/source2edoc.cls
2021/05/04 | 8496 | macros/latex-dev/base/texpert.txt
-2021/05/04 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2021/05/04 | 8364 | systems/texlive/tlnet/archive/hvfloat.r59069.tar.xz
2021/05/04 | 8259 | macros/latex-dev/base/ltnews.tex
-2021/05/04 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/05/04 | 823322 | systems/win32/w32tex/ChangeLog
2021/05/04 | 811021 | macros/latex-dev/base/ltshipout-code.pdf
2021/05/04 | 80670 | macros/latex-dev/base/ltfssbas.dtx
-2021/05/04 | 80662 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/05/04 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
2021/05/04 | 784738 | macros/latex-dev/base/ltfilehook-code.pdf
2021/05/04 | 78305 | macros/latex-dev/base/ltshipout.dtx
-2021/05/04 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/05/04 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/05/04 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2021/05/04 | 76725 | macros/latex-dev/base/ltfssini.dtx
2021/05/04 | 76003 | macros/latex-dev/required/tools/longtable.dtx
-2021/05/04 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2021/05/04 | 7524 | macros/latex-dev/base/ltxguide.cls
-2021/05/04 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/05/04 | 74165 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2021/05/04 | 73674 | macros/latex-dev/required/tools/tools-overview.pdf
2021/05/04 | 7347977 | install/macros/latex-dev/required/latex-tools-dev.tds.zip
-2021/05/04 | 734676 | systems/texlive/tlnet/archive/easybook.doc.r59068.tar.xz
2021/05/04 | 7325 | macros/latex-dev/base/ltnews20.tex
-2021/05/04 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/05/04 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
2021/05/04 | 7265798 | macros/latex-dev/required/tools.zip
2021/05/04 | 72479 | macros/latex-dev/base/ltfsstrc.dtx
2021/05/04 | 7221 | macros/latex-dev/base/exscale.dtx
-2021/05/04 | 72150 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
2021/05/04 | 72141 | macros/latex-dev/required/tools/verbatim.dtx
2021/05/04 | 7200 | macros/latex-dev/base/sample2e.tex
-2021/05/04 | 71570 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2021/05/04 | 7109 | macros/latex-dev/base/alltt.dtx
-2021/05/04 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2021/05/04 | 70176 | macros/latex-dev/required/graphics/graphics.dtx
-2021/05/04 | 70111 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2021/05/04 | 69050 | macros/latex-dev/base/clsguide.tex
2021/05/04 | 69007 | macros/latex-dev/base/ltpictur.dtx
2021/05/04 | 6871 | macros/latex-dev/base/ltnews13.tex
2021/05/04 | 686990 | macros/latex-dev/base/ltcmdhooks-code.pdf
2021/05/04 | 68435 | macros/latex-dev/base/usrguide.tex
-2021/05/04 | 6810371 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/05/04 | 680050 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2021/05/04 | 6794 | macros/latex-dev/required/tools/delarray.dtx
-2021/05/04 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/05/04 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2021/05/04 | 676691 | macros/latex-dev/base/lthooks-doc.pdf
2021/05/04 | 676545 | macros/latex-dev/base/doc.pdf
-2021/05/04 | 67649 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2021/05/04 | 6760 | macros/latex-dev/base/slides.ins
-2021/05/04 | 67452 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/05/04 | 673 | macros/latex/contrib/easybook/easybook.ins
2021/05/04 | 6714 | macros/latex-dev/base/latexsym.dtx
-2021/05/04 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/05/04 | 6660 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/05/04 | 655726 | macros/latex-dev/base/ltpara-code.pdf
-2021/05/04 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2021/05/04 | 64748 | macros/latex-dev/base/ltluatex.dtx
-2021/05/04 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
2021/05/04 | 639157 | macros/latex/contrib/pm-isomath.zip
-2021/05/04 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/05/04 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2021/05/04 | 6362 | macros/latex-dev/base/newlfont.dtx
2021/05/04 | 63283 | macros/latex-dev/base/letter.dtx
2021/05/04 | 63179 | macros/latex-dev/base/ltfilehook.dtx
-2021/05/04 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2021/05/04 | 6273 | macros/latex-dev/base/ltnews14.tex
-2021/05/04 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
2021/05/04 | 624109 | macros/latex/contrib/pm-isomath/pm-isomath.pdf
2021/05/04 | 6223 | macros/latex-dev/required/tools/xr.dtx
-2021/05/04 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/05/04 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2021/05/04 | 6160 | macros/latex-dev/base/ltpar.dtx
2021/05/04 | 61460 | macros/latex-dev/required/tools/bm.dtx
2021/05/04 | 61425 | macros/latex-dev/base/ltfssdcl.dtx
-2021/05/04 | 60553 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
2021/05/04 | 60326 | macros/latex-dev/base/fontdef.dtx
-2021/05/04 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2021/05/04 | 59683 | macros/latex-dev/required/tools/changes.txt
-2021/05/04 | 594871 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2021/05/04 | 5917 | macros/latex-dev/base/latexrelease.ins
-2021/05/04 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/05/04 | 58 | systems/mac/mactex/MacTeXtras-20210504.zip.md5
2021/05/04 | 58703 | macros/latex-dev/base/ltmiscen.dtx
2021/05/04 | 5864 | macros/latex-dev/base/ltidxglo.dtx
2021/05/04 | 58556 | macros/latex-dev/base/ltfssaxes.dtx
2021/05/04 | 5839 | macros/latex-dev/base/ltnews15.tex
-2021/05/04 | 583626 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2021/05/04 | 5796 | macros/latex-dev/required/tools/somedefs.dtx
2021/05/04 | 5776 | macros/latex-dev/base/ltnews16.tex
-2021/05/04 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/05/04 | 574836 | systems/win32/miktex/tm/packages/files.csv.lzma
-2021/05/04 | 574674 | systems/win32/miktex/tm/packages/next/files.csv.lzma
2021/05/04 | 5714 | macros/latex-dev/base/inputenc.ins
-2021/05/04 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
2021/05/04 | 5695 | macros/latex-dev/base/ltnews08.tex
-2021/05/04 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
2021/05/04 | 5680 | macros/latex-dev/required/tools/tools.ins
-2021/05/04 | 567627 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/05/04 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
2021/05/04 | 5659 | macros/latex-dev/base/ltnews10.tex
-2021/05/04 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2021/05/04 | 562571 | macros/latex-dev/base/ltshipout-doc.pdf
-2021/05/04 | 56223 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
2021/05/04 | 5608 | macros/latex-dev/base/ltnews05.tex
-2021/05/04 | 55824 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
2021/05/04 | 557225 | macros/latex-dev/base/ltpara-doc.pdf
-2021/05/04 | 55564 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
2021/05/04 | 5529 | macros/latex-dev/base/ltnews11.tex
-2021/05/04 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2021/05/04 | 5514 | macros/latex-dev/base/graphpap.dtx
2021/05/04 | 55087 | macros/latex-dev/base/ltfiles.dtx
2021/05/04 | 5506 | macros/latex-dev/base/ltnews27.tex
@@ -153,7 +421,6 @@
2021/05/04 | 539851 | macros/latex-dev/base/ltnews33.pdf
2021/05/04 | 5390 | macros/latex-dev/base/ltnews06.tex
2021/05/04 | 53579 | macros/latex/contrib/pm-isomath/pm-isomath.dtx
-2021/05/04 | 532040 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
2021/05/04 | 53199 | macros/latex-dev/base/ltplain.dtx
2021/05/04 | 53172 | macros/latex-dev/required/tools/calc.dtx
2021/05/04 | 5293 | macros/latex-dev/base/ltnews09.tex
@@ -162,78 +429,47 @@
2021/05/04 | 5273 | macros/latex-dev/base/cmextra.ins
2021/05/04 | 526312 | macros/latex-dev/base/ltnews31.pdf
2021/05/04 | 52578 | macros/latex-dev/base/lb2.err
-2021/05/04 | 52476 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2021/05/04 | 5246 | macros/latex-dev/base/ltnews01.tex
-2021/05/04 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2021/05/04 | 5211 | macros/latex-dev/required/tools/tools-overview.tex
2021/05/04 | 5200 | macros/latex-dev/base/ltnews03.tex
-2021/05/04 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/05/04 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
2021/05/04 | 516484 | macros/latex-dev/required/tools/array.pdf
2021/05/04 | 516282 | macros/latex-dev/required/tools/multicol.pdf
-2021/05/04 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2021/05/04 | 511855 | macros/latex-dev/base/ltnews30.pdf
-2021/05/04 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/05/04 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2021/05/04 | 510108 | systems/texlive/tlnet/archive/windycity.doc.r59067.tar.xz
-2021/05/04 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
2021/05/04 | 50810 | macros/latex-dev/required/graphics/drivers.dtx
-2021/05/04 | 507386 | macros/latex/contrib/easybook.zip
2021/05/04 | 5041 | macros/latex-dev/base/latexsym.ins
2021/05/04 | 503349 | macros/latex-dev/base/docstrip.pdf
-2021/05/04 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2021/05/04 | 4964 | macros/latex-dev/required/tools/fileerr.dtx
2021/05/04 | 4959329 | macros/latex-dev/base/source2e.pdf
2021/05/04 | 4950 | macros/latex-dev/base/lthyphen.dtx
2021/05/04 | 493957 | macros/latex-dev/base/fntguide.pdf
-2021/05/04 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/05/04 | 48576 | macros/latex-dev/base/ltpara.dtx
-2021/05/04 | 484055 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2021/05/04 | 47901 | macros/latex-dev/base/lttab.dtx
-2021/05/04 | 47879 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/05/04 | 477941 | macros/latex/contrib/easybook/easybook.pdf
2021/05/04 | 477922 | macros/latex-dev/base/ltcmdhooks-doc.pdf
2021/05/04 | 4762 | macros/latex-dev/base/ltlength.dtx
-2021/05/04 | 475934 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/05/04 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2021/05/04 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
2021/05/04 | 468043 | macros/latex-dev/base/latexchanges.pdf
-2021/05/04 | 461399 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/05/04 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
2021/05/04 | 458655 | support/latexmk.zip
-2021/05/04 | 45648 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/05/04 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/05/04 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2021/05/04 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/05/04 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/05/04 | 454808 | macros/latex-dev/base/ltnews29.pdf
-2021/05/04 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2021/05/04 | 45245 | macros/latex-dev/base/ltspace.dtx
2021/05/04 | 44724 | macros/latex-dev/base/ltfinal.dtx
2021/05/04 | 44409 | macros/latex-dev/base/latexrelease.dtx
+2021/05/04 | 441456 | systems/win32/w32tex/win64/cweb-w64.tar.xz
2021/05/04 | 4390 | macros/latex-dev/base/ec.ins
2021/05/04 | 43867 | macros/latex-dev/base/ltboxes.dtx
-2021/05/04 | 43677 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2021/05/04 | 43636 | macros/latex-dev/base/cmfonts.fdd
2021/05/04 | 43453 | macros/latex-dev/required/tools/theorem.dtx
-2021/05/04 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
2021/05/04 | 4324 | macros/latex-dev/base/cmfonts.ins
2021/05/04 | 430996 | macros/latex-dev/base/usrguide.pdf
-2021/05/04 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2021/05/04 | 4303 | macros/latex-dev/base/ltalloc.dtx
-2021/05/04 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
2021/05/04 | 42708 | macros/latex-dev/base/changes.old.txt
-2021/05/04 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/05/04 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
2021/05/04 | 4254 | macros/latex-dev/base/newdc.ins
-2021/05/04 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2021/05/04 | 4221 | macros/latex-dev/base/docstrip.ins
2021/05/04 | 4219 | macros/latex-dev/base/latex209.ins
2021/05/04 | 41831 | macros/latex-dev/base/doc-v3beta.sty
2021/05/04 | 4170 | macros/latex-dev/base/ltnews19.tex
+2021/05/04 | 416544875 | systems/mac/mactex/MacTeXtras-20210504.zip
2021/05/04 | 413242 | support/latexmk/latexmk.pl
2021/05/04 | 4113 | macros/latex-dev/required/graphics/epsfig.dtx
-2021/05/04 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
2021/05/04 | 40979 | macros/latex-dev/base/ltcmdhooks.dtx
2021/05/04 | 4087 | macros/latex-dev/base/classes.ins
2021/05/04 | 407 | macros/latex/contrib/pm-isomath/README.txt
@@ -241,43 +477,33 @@
2021/05/04 | 40795 | macros/latex-dev/base/latexchanges.tex
2021/05/04 | 402779 | macros/latex-dev/base/clsguide.pdf
2021/05/04 | 39701 | macros/latex-dev/required/tools/ftnright.dtx
-2021/05/04 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
2021/05/04 | 3960 | macros/latex-dev/base/olddc.ins
-2021/05/04 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
2021/05/04 | 39431 | macros/latex-dev/base/ltmath.dtx
2021/05/04 | 3937 | macros/latex-dev/required/graphics/lscape.dtx
-2021/05/04 | 392598 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/05/04 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r59058.tar.xz
2021/05/04 | 387987 | macros/latex-dev/base/ltnews28.pdf
2021/05/04 | 38735 | macros/latex-dev/base/latex209.dtx
2021/05/04 | 383483 | macros/latex-dev/required/tools/varioref.pdf
2021/05/04 | 382012 | macros/latex-dev/required/tools/longtable.pdf
-2021/05/04 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/05/04 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/05/04 | 38111 | systems/mac/mactex/ExtrasFolder.pdf
2021/05/04 | 38031 | macros/latex-dev/base/ltnews18.pdf
2021/05/04 | 379735 | macros/latex-dev/base/ltnews26.pdf
2021/05/04 | 3781 | macros/latex-dev/base/tulm.ins
2021/05/04 | 375158 | macros/latex-dev/base/changes.txt
2021/05/04 | 374051 | macros/latex-dev/base/slides.pdf
2021/05/04 | 3730 | macros/latex-dev/base/ltlogos.dtx
-2021/05/04 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/05/04 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2021/05/04 | 37089 | macros/latex-dev/required/graphics/grfguide.tex
2021/05/04 | 370414 | macros/latex-dev/required/tools/calc.pdf
2021/05/04 | 369809 | macros/latex-dev/required/tools/ftnright.pdf
-2021/05/04 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2021/05/04 | 36157 | macros/latex-dev/base/ltlists.dtx
2021/05/04 | 361356 | macros/latex-dev/base/utf8ienc.pdf
2021/05/04 | 36113 | support/latexmk/CHANGES
2021/05/04 | 35880 | macros/latex-dev/required/tools/tabularx.dtx
-2021/05/04 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2021/05/04 | 35302 | macros/latex-dev/base/ltdirchk.dtx
+2021/05/04 | 35208696 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/05/04 | 3514 | macros/latex-dev/base/README.md
2021/05/04 | 351310 | macros/latex-dev/required/tools/theorem.pdf
-2021/05/04 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/05/04 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/05/04 | 345366 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2021/05/04 | 3434 | macros/latex-dev/base/makeindx.ins
+2021/05/04 | 3417280 | systems/win32/w32tex/tex4htk-w32.tar.xz
2021/05/04 | 34063495 | install/macros/latex-dev/latex-base-dev.tds.zip
2021/05/04 | 3401 | macros/latex-dev/base/proc.ins
2021/05/04 | 33863 | macros/latex-dev/required/tools/varioref-2016-02-16.sty
@@ -285,49 +511,33 @@
2021/05/04 | 3372 | macros/latex-dev/base/letter.ins
2021/05/04 | 3367 | macros/latex-dev/base/ltoutenc.ins
2021/05/04 | 33572905 | macros/latex-dev/base.zip
-2021/05/04 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
2021/05/04 | 3338 | macros/latex-dev/base/exscale.ins
2021/05/04 | 33256 | macros/latex-dev/base/ltnews32.tex
-2021/05/04 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2021/05/04 | 331424 | macros/latex-dev/required/tools/bm.pdf
2021/05/04 | 330815 | macros/latex-dev/required/tools/verbatim.pdf
-2021/05/04 | 330234 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2021/05/04 | 330071 | macros/latex-dev/required/graphics/grfguide.pdf
2021/05/04 | 328853 | macros/latex-dev/base/letter.pdf
2021/05/04 | 3284 | macros/latex-dev/required/tools/manifest.txt
2021/05/04 | 3282 | macros/latex-dev/base/bugs.txt
-2021/05/04 | 32745 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2021/05/04 | 32648 | macros/latex-dev/base/ltsect.dtx
2021/05/04 | 325299 | macros/latex-dev/base/usrguide3.pdf
2021/05/04 | 325289 | macros/latex-dev/base/ltluatex.pdf
-2021/05/04 | 321895 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2021/05/04 | 32034 | macros/latex-dev/required/tools/layout.dtx
2021/05/04 | 318399 | macros/latex-dev/base/ltnews22.pdf
2021/05/04 | 3181 | macros/latex-dev/base/unpack.ins
2021/05/04 | 318168 | macros/latex-dev/base/inputenc.pdf
2021/05/04 | 31659 | macros/latex-dev/required/graphics/color.dtx
-2021/05/04 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/05/04 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/05/04 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/05/04 | 31193 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/05/04 | 311192 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
2021/05/04 | 310676 | macros/latex-dev/required/graphics/graphics.pdf
-2021/05/04 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2021/05/04 | 308392 | systems/texlive/tlnet/archive/mparhack.doc.r59066.tar.xz
2021/05/04 | 30456 | macros/latex-dev/base/ltnews31.tex
-2021/05/04 | 3043 | macros/latex/contrib/easybook/README.md
2021/05/04 | 30185 | macros/latex-dev/required/graphics/graphicx.dtx
-2021/05/04 | 30036 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2021/05/04 | 2994 | macros/latex-dev/required/graphics/graphics-drivers.ins
2021/05/04 | 29923 | macros/latex-dev/base/usrguide3.tex
-2021/05/04 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2021/05/04 | 29712 | macros/latex-dev/required/tools/multicol-2017-04-11.sty
2021/05/04 | 297070 | macros/latex-dev/base/ltnews20.pdf
2021/05/04 | 29569 | macros/latex-dev/required/tools/showkeys.dtx
-2021/05/04 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2021/05/04 | 292317 | macros/latex-dev/base/cmfonts.pdf
2021/05/04 | 29191 | macros/latex-dev/base/ltfntcmd.dtx
-2021/05/04 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2021/05/04 | 290495 | macros/latex-dev/base/latexrelease.pdf
2021/05/04 | 2896 | macros/latex-dev/base/syntonly.ins
2021/05/04 | 2893 | macros/latex-dev/base/nfssfont.ins
@@ -339,113 +549,74 @@
2021/05/04 | 287672 | macros/latex-dev/base/fix-cm.pdf
2021/05/04 | 287125 | macros/latex-dev/base/ltnews23.pdf
2021/05/04 | 286309 | macros/latex-dev/required/graphics/drivers.pdf
-2021/05/04 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
2021/05/04 | 28260 | macros/latex-dev/base/ltnews33.tex
-2021/05/04 | 282106 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/05/04 | 28120 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2021/05/04 | 2804 | systems/texlive/tlnet/archive/mparhack.r59066.tar.xz
-2021/05/04 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
2021/05/04 | 278041 | macros/latex-dev/required/tools/tabularx.pdf
2021/05/04 | 2738 | macros/latex-dev/base/tex2.txt
-2021/05/04 | 27361 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
2021/05/04 | 2733 | macros/latex-dev/base/ltpageno.dtx
-2021/05/04 | 27275 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/05/04 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/05/04 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
2021/05/04 | 27122 | macros/latex-dev/base/ltxcheck.tex
2021/05/04 | 2705 | macros/latex-dev/base/idx.tex
2021/05/04 | 269434 | macros/latex-dev/required/graphics/rotating.pdf
2021/05/04 | 267761 | macros/latex-dev/required/tools/layout.pdf
-2021/05/04 | 26664 | systems/texlive/tlnet/archive/easybook.source.r59068.tar.xz
2021/05/04 | 2666324 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip
2021/05/04 | 265211 | macros/latex-dev/base/ltnews24.pdf
2021/05/04 | 2632527 | macros/latex-dev/required/graphics.zip
-2021/05/04 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/05/04 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2021/05/04 | 260624 | macros/latex-dev/required/tools/showkeys.pdf
-2021/05/04 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2021/05/04 | 2576 | macros/latex-dev/required/tools/multicol.ins
2021/05/04 | 256897 | macros/latex-dev/required/tools/xspace.pdf
-2021/05/04 | 25581526 | systems/texlive/tlnet/install-tl.zip
2021/05/04 | 2538 | macros/latex-dev/required/tools/longtable.ins
2021/05/04 | 2538 | macros/latex-dev/required/tools/afterpage.ins
2021/05/04 | 2535 | macros/latex-dev/required/tools/tabularx.ins
-2021/05/04 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2021/05/04 | 2531 | macros/latex-dev/required/tools/varioref.ins
2021/05/04 | 2524 | macros/latex-dev/required/tools/bm.ins
2021/05/04 | 252432 | macros/latex-dev/base/ltnews27.pdf
2021/05/04 | 252154 | macros/latex-dev/base/lb2.pdf
-2021/05/04 | 25156 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
2021/05/04 | 25151 | macros/latex-dev/required/tools/trace.dtx
-2021/05/04 | 250213 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/05/04 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/05/04 | 2499403 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2021/05/04 | 247910 | macros/latex-dev/required/graphics/graphicx.pdf
2021/05/04 | 245818 | macros/latex-dev/base/ltnews19.pdf
2021/05/04 | 244869 | macros/latex-dev/base/ltnews21.pdf
2021/05/04 | 243601 | macros/latex-dev/base/modguide.pdf
-2021/05/04 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2021/05/04 | 242886 | macros/latex-dev/base/cfgguide.pdf
2021/05/04 | 24015 | macros/latex-dev/base/lterror.dtx
2021/05/04 | 239681 | macros/latex-dev/base/cyrguide.pdf
2021/05/04 | 239654 | macros/latex-dev/required/graphics/keyval.pdf
-2021/05/04 | 239480 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/05/04 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2021/05/04 | 238577 | macros/latex-dev/base/ltxdoc.pdf
2021/05/04 | 23651 | macros/latex-dev/base/ltnews30.tex
2021/05/04 | 23521 | macros/latex-dev/base/fix-cm.dtx
2021/05/04 | 234008 | macros/latex-dev/base/slifonts.pdf
2021/05/04 | 233995 | macros/latex-dev/base/proc.pdf
2021/05/04 | 23386 | macros/latex-dev/base/lppl.tex
-2021/05/04 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/05/04 | 2303728 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/05/04 | 2318 | graphics/mcf2graph/mcf_example.tex
2021/05/04 | 229713 | macros/latex-dev/required/tools/trace.pdf
2021/05/04 | 22676 | macros/latex-dev/base/ltcounts.dtx
2021/05/04 | 22456 | macros/latex-dev/base/cfgguide.tex
2021/05/04 | 2225 | macros/latex-dev/required/tools/indentfirst.dtx
2021/05/04 | 220689 | macros/latex-dev/required/tools/dcolumn.pdf
2021/05/04 | 220417 | macros/latex-dev/base/ifthen.pdf
-2021/05/04 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2021/05/04 | 219354 | macros/latex-dev/base/ltx3info.pdf
2021/05/04 | 218782 | macros/latex-dev/base/nfssfont.pdf
-2021/05/04 | 218532 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59063.tar.xz
2021/05/04 | 215355 | macros/latex-dev/required/tools/enumerate.pdf
2021/05/04 | 215091 | macros/latex-dev/base/lgc2.pdf
2021/05/04 | 215002 | macros/latex-dev/required/graphics/color.pdf
2021/05/04 | 214710 | macros/latex-dev/base/alltt.pdf
-2021/05/04 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2021/05/04 | 212307 | macros/latex-dev/base/exscale.pdf
2021/05/04 | 211589 | support/latexmk/latexmk.txt
-2021/05/04 | 21132 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/05/04 | 211056 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
2021/05/04 | 21072 | macros/latex-dev/required/graphics/rotating.dtx
2021/05/04 | 2092 | macros/latex-dev/required/graphics/README.md
-2021/05/04 | 209138 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/05/04 | 209136 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
2021/05/04 | 208359 | macros/latex-dev/base/latexsym.pdf
-2021/05/04 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/05/04 | 20811860 | systems/texlive/tlnet/install-tl-windows.exe
2021/05/04 | 207299 | macros/latex-dev/required/graphics/trig.pdf
2021/05/04 | 205344 | macros/latex-dev/required/tools/afterpage.pdf
2021/05/04 | 205162 | macros/latex-dev/base/ltnews25.pdf
2021/05/04 | 20486 | macros/latex-dev/base/lgc2.err
2021/05/04 | 20469 | macros/latex-dev/base/ltnews.cls
2021/05/04 | 204007 | macros/latex-dev/base/doc.dtx
-2021/05/04 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2021/05/04 | 2013372 | systems/texlive/tlnet/archive/xindy.universal-darwin.r59070.tar.xz
-2021/05/04 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/05/04 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/05/04 | 199703 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
2021/05/04 | 198647 | macros/latex-dev/required/tools/delarray.pdf
-2021/05/04 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2021/05/04 | 197297 | macros/latex-dev/base/syntonly.pdf
2021/05/04 | 19724 | systems/texlive/tlnet/archive/windycity.r59067.tar.xz
-2021/05/04 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/05/04 | 195568 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2021/05/04 | 19510 | macros/latex/contrib/ut-thesis/ut-thesis.dtx
2021/05/04 | 195098 | macros/latex-dev/required/tools/fileerr.pdf
2021/05/04 | 1937 | macros/latex-dev/base/minimal.cls
-2021/05/04 | 193716 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2021/05/04 | 193197 | support/latexmk/latexmk.pdf
2021/05/04 | 19073660 | systems/texlive/tlnet/archive/hvfloat.doc.r59069.tar.xz
2021/05/04 | 19064 | macros/latex-dev/base/ltxdoc.dtx
@@ -460,47 +631,36 @@
2021/05/04 | 18299 | macros/latex-dev/base/ltx3info.tex
2021/05/04 | 182354 | macros/latex-dev/required/tools/multicol.dtx
2021/05/04 | 180 | macros/latex-dev/base/ltfilehook-doc.tex
-2021/05/04 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/05/04 | 180048 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2021/05/04 | 179 | macros/latex-dev/base/ltshipout-doc.tex
-2021/05/04 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/05/04 | 179380 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2021/05/04 | 17861 | macros/latex-dev/required/tools/xspace.dtx
2021/05/04 | 177 | macros/latex-dev/base/lthooks-doc.tex
2021/05/04 | 177 | macros/latex-dev/base/ltcmdhooks-doc.tex
2021/05/04 | 177595 | macros/latex-dev/required/tools/xr.pdf
2021/05/04 | 175624 | macros/latex-dev/base/ltoutput.dtx
2021/05/04 | 175169 | macros/latex-dev/required/tools/somedefs.pdf
-2021/05/04 | 174980 | systems/texlive/tlnet/archive/texlive-docindex.doc.r59058.tar.xz
2021/05/04 | 17495 | macros/latex-dev/base/cyrguide.tex
2021/05/04 | 174488 | macros/latex-dev/base/ltnews05.pdf
2021/05/04 | 173 | macros/latex-dev/base/ltpara-doc.tex
2021/05/04 | 173682 | macros/latex-dev/base/makeindx.pdf
2021/05/04 | 173323 | macros/latex-dev/base/ltnews13.pdf
-2021/05/04 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
2021/05/04 | 172278 | macros/latex-dev/base/tlc2.err
2021/05/04 | 172231 | macros/latex-dev/required/graphics/rotex.pdf
-2021/05/04 | 17219437 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/05/04 | 1711 | systems/mac/mactex/Licenses.txt
2021/05/04 | 170747 | support/latexmk/latexmk.1
2021/05/04 | 170529 | macros/latex-dev/base/tulm.pdf
2021/05/04 | 170214 | macros/latex-dev/base/docstrip.dtx
2021/05/04 | 1694 | macros/latex-dev/base/small2e.tex
2021/05/04 | 169323 | macros/latex-dev/base/graphpap.pdf
-2021/05/04 | 167905 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2021/05/04 | 167686 | macros/latex-dev/required/graphics/epsfig.pdf
2021/05/04 | 1666 | macros/latex-dev/required/tools/README.md
2021/05/04 | 166368 | macros/latex-dev/base/ltnews17.pdf
2021/05/04 | 16427 | CTAN.sites
-2021/05/04 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2021/05/04 | 163584 | macros/latex-dev/required/graphics/lscape.pdf
-2021/05/04 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2021/05/04 | 16233 | macros/latex-dev/base/modguide.tex
2021/05/04 | 161518 | macros/latex-dev/base/ltnews01.pdf
2021/05/04 | 161405 | macros/latex-dev/base/ltnews14.pdf
-2021/05/04 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
2021/05/04 | 16105 | macros/latex-dev/base/ltbibl.dtx
2021/05/04 | 160521 | macros/latex-dev/base/manual.pdf
-2021/05/04 | 159969 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2021/05/04 | 159313 | macros/latex-dev/base/ltnews10.pdf
2021/05/04 | 157803 | macros/latex-dev/required/tools/indentfirst.pdf
2021/05/04 | 15737 | macros/latex-dev/required/graphics/cat.eps
@@ -510,10 +670,6 @@
2021/05/04 | 155055 | macros/latex-dev/base/ltnews08.pdf
2021/05/04 | 15429 | macros/latex-dev/required/graphics/graphics-2017-06-25.sty
2021/05/04 | 154034 | macros/latex-dev/required/tools/fontsmpl.pdf
-2021/05/04 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/05/04 | 153890 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/05/04 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2021/05/04 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2021/05/04 | 1510 | macros/latex/contrib/ut-thesis/README
2021/05/04 | 15104 | macros/latex-dev/base/source2e.tex
2021/05/04 | 150493 | macros/latex-dev/base/ltnews03.pdf
@@ -521,78 +677,50 @@
2021/05/04 | 149221 | macros/latex-dev/base/ltoutenc.dtx
2021/05/04 | 14891 | macros/latex-dev/base/ltnews28.tex
2021/05/04 | 147587 | macros/latex-dev/base/ltnews12.pdf
-2021/05/04 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/05/04 | 147139 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2021/05/04 | 146534 | macros/latex-dev/required/tools/rawfonts.pdf
2021/05/04 | 146533 | macros/latex-dev/base/ltnews16.pdf
2021/05/04 | 146200 | macros/latex-dev/base/webcomp.pdf
-2021/05/04 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2021/05/04 | 14575 | macros/latex-dev/required/graphics/rotex.tex
-2021/05/04 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2021/05/04 | 14421 | macros/latex-dev/base/lppl-1-2.txt
2021/05/04 | 143686 | macros/latex-dev/base/ltnews04.pdf
-2021/05/04 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2021/05/04 | 143532 | macros/latex-dev/base/ltcmd.dtx
2021/05/04 | 14341 | macros/latex-dev/base/lppl-1-1.txt
2021/05/04 | 142909 | macros/latex-dev/base/ltnews06.pdf
-2021/05/04 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/05/04 | 1424812 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2021/05/04 | 14077 | macros/latex-dev/required/tools/afterpage.dtx
2021/05/04 | 13920 | macros/latex-dev/base/ltexpl.dtx
2021/05/04 | 13902 | macros/latex-dev/base/ltvers.dtx
2021/05/04 | 13880 | macros/latex-dev/required/graphics/keyval.dtx
2021/05/04 | 138044 | macros/latex-dev/base/ltnews07.pdf
-2021/05/04 | 136429 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2021/05/04 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r59071.tar.xz
2021/05/04 | 136299 | macros/latex-dev/base/ltclass.dtx
-2021/05/04 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/05/04 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2021/05/04 | 1341 | macros/latex-dev/base/ltnews18.tex
2021/05/04 | 13301 | macros/latex-dev/base/proc.dtx
2021/05/04 | 132373 | macros/latex-dev/base/lppl.pdf
2021/05/04 | 1316472 | macros/latex-dev/base/encguide.pdf
-2021/05/04 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/05/04 | 1307727 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/05/04 | 13068 | graphics/mcf2graph/CHANGELOG
2021/05/04 | 130447 | macros/latex-dev/base/ltnews15.pdf
-2021/05/04 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
2021/05/04 | 12946 | macros/latex-dev/base/manual.err
2021/05/04 | 129032 | macros/latex-dev/base/ltnews09.pdf
2021/05/04 | 12822 | support/latexmk/README
-2021/05/04 | 1281105 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2021/05/04 | 1279 | macros/latex-dev/base/legal.txt
2021/05/04 | 127986 | macros/latex-dev/required/tools/array.dtx
2021/05/04 | 12714 | macros/latex-dev/required/tools/dcolumn.dtx
-2021/05/04 | 1269636 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/05/04 | 1268350 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2021/05/04 | 12559 | macros/latex-dev/required/tools/array-2020-02-10.sty
2021/05/04 | 12520 | macros/latex-dev/base/testpage.tex
-2021/05/04 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/05/04 | 12380 | systems/texlive/tlnet/archive/easybook.r59068.tar.xz
2021/05/04 | 123154 | macros/latex/contrib/ut-thesis.zip
2021/05/04 | 12224 | macros/latex-dev/base/ltnews24.tex
2021/05/04 | 12133 | macros/latex-dev/required/tools/longtable-2020-01-07.sty
2021/05/04 | 12119 | macros/latex-dev/base/tulm.fdd
2021/05/04 | 1204676 | systems/texlive/tlnet/archive/tex4ht.source.r59071.tar.xz
-2021/05/04 | 1185130 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/05/04 | 1184949 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/05/04 | 11749 | macros/latex-dev/required/tools/array-2016-10-06.sty
-2021/05/04 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/05/04 | 116930 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2021/05/04 | 116669 | macros/latex/contrib/ut-thesis/ut-thesis.pdf
2021/05/04 | 11590 | macros/latex-dev/base/ltpage.dtx
-2021/05/04 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/05/04 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2021/05/04 | 114211 | macros/latex-dev/required/tools/varioref.dtx
-2021/05/04 | 113487 | macros/latex/contrib/easybook/easybook.dtx
2021/05/04 | 1128 | macros/latex-dev/required/graphics/graphics.ins
-2021/05/04 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2021/05/04 | 111955 | macros/latex-dev/base/ltnews11.pdf
2021/05/04 | 11153 | macros/latex-dev/required/tools/hhline.dtx
-2021/05/04 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2021/05/04 | 10871 | macros/latex-dev/base/manifest.txt
-2021/05/04 | 1078877 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2021/05/04 | 10776 | macros/latex-dev/required/tools/fontsmpl.dtx
-2021/05/04 | 107256 | systems/texlive/tlnet/archive/texlive-scripts.r59063.tar.xz
2021/05/04 | 10697 | macros/latex-dev/base/ltnews26.tex
2021/05/04 | 106908 | macros/latex-dev/base/inputenc.dtx
2021/05/04 | 10687 | macros/latex-dev/base/ltnews23.tex
@@ -603,24 +731,18 @@
2021/05/04 | 10603 | macros/latex-dev/base/makeindx.dtx
2021/05/04 | 105 | macros/latex-dev/base/ltfilehook-code.tex
2021/05/04 | 104 | macros/latex-dev/base/ltshipout-code.tex
-2021/05/04 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2021/05/04 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex
2021/05/04 | 10375 | macros/latex-dev/base/ltfsscmp.dtx
-2021/05/04 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2021/05/04 | 102 | macros/latex-dev/base/lthooks-code.tex
2021/05/04 | 10192 | systems/texlive/tlnet/archive/mparhack.source.r59066.tar.xz
-2021/05/04 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2021/05/04 | 10105 | macros/latex-dev/base/webcomp.err
2021/05/04 | 1002696 | macros/latex-dev/base/lthooks-code.pdf
2021/05/03 | 99 | graphics/pgf/contrib/pgf-pie/demo/legend.tex
2021/05/03 | 99972379 | systems/win32/w32tex/TLW64/tl-win64.zip
2021/05/03 | 9892 | systems/texlive/tlnet/archive/elegantbook.r59053.tar.xz
-2021/05/03 | 97665472 | systems/win32/w32tex/pgfcontrib.tar.xz
2021/05/03 | 94 | graphics/pgf/contrib/pgf-pie/demo/colorwheel.tex
2021/05/03 | 9181 | graphics/pgf/contrib/pgf-pie/logo.png
-2021/05/03 | 912188 | systems/win32/w32tex/cweb-w32.tar.xz
2021/05/03 | 82 | graphics/pgf/contrib/pgf-pie/demo/hide-number.tex
-2021/05/03 | 823076 | systems/win32/w32tex/ChangeLog
2021/05/03 | 81 | graphics/pgf/contrib/pgf-pie/demo/text-inside.tex
2021/05/03 | 811522 | macros/unicodetex/latex/fontsetup.zip
2021/05/03 | 80 | graphics/pgf/contrib/pgf-pie/demo/scalefont.tex
@@ -630,23 +752,22 @@
2021/05/03 | 75 | graphics/pgf/contrib/pgf-pie/demo/polar.tex
2021/05/03 | 6916564 | systems/win32/w32tex/win64/pdftex-w64.tar.xz
2021/05/03 | 68 | graphics/pgf/contrib/pgf-pie/demo/first-pie.tex
-2021/05/03 | 6798 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/05/03 | 63703268 | systems/win32/w32tex/biblatex-biber.tar.xz
2021/05/03 | 591630 | macros/unicodetex/latex/fontsetup-nonfree.zip
2021/05/03 | 482 | graphics/pgf/contrib/pgf-pie/README.md
2021/05/03 | 4822 | graphics/pgf/contrib/pgf-pie/pgf-pie-manual.tex
2021/05/03 | 45303 | macros/latex/contrib/hvfloat/latex/hvfloat.sty
2021/05/03 | 445344 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.pdf
-2021/05/03 | 440224 | systems/win32/w32tex/win64/cweb-w64.tar.xz
2021/05/03 | 426 | graphics/pgf/contrib/pgf-pie/COPYING
+2021/05/03 | 3843 | graphics/mcf2graph/mcf_setup.sty
2021/05/03 | 370 | macros/unicodetex/latex/fontsetup/README
2021/05/03 | 349 | macros/unicodetex/latex/fontsetup-nonfree/README
2021/05/03 | 343 | macros/latex/contrib/mparhack/README.md
-2021/05/03 | 3421760 | systems/win32/w32tex/tex4htk-w32.tar.xz
2021/05/03 | 32831 | macros/latex/contrib/mparhack/mparhack.dtx
2021/05/03 | 3245 | macros/unicodetex/latex/fontsetup-nonfree/doc/fontsetup-nonfree-doc.tex
2021/05/03 | 316934 | macros/latex/contrib/mparhack.zip
2021/05/03 | 309552 | macros/latex/contrib/mparhack/mparhack.pdf
+2021/05/03 | 3043 | macros/latex/contrib/easybook/README.md
2021/05/03 | 300630 | macros/unicodetex/latex/fontsetup-nonfree/doc/fontsetup-nonfree-doc.pdf
2021/05/03 | 276 | systems/texlive/tlnet/archive/texlive-en.r59056.tar.xz
2021/05/03 | 235 | graphics/pgf/contrib/pgf-pie/pgf-pie.sty
@@ -707,10 +828,7 @@
2021/05/02 | 690730 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
2021/05/02 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
2021/05/02 | 6320 | systems/texlive/tlnet/archive/texfot.r59040.tar.xz
-2021/05/02 | 623532 | systems/texlive/tlnet/archive/pm-isomath.doc.r59038.tar.xz
2021/05/02 | 620 | macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx
-2021/05/02 | 6096 | systems/texlive/tlnet/archive/fontsetup.r59042.tar.xz
-2021/05/02 | 573164 | systems/texlive/tlnet/archive/fontsetup.doc.r59042.tar.xz
2021/05/02 | 568 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.r59037.tar.xz
2021/05/02 | 545345 | macros/latex/contrib/biblatex-contrib/windycity.zip
2021/05/02 | 54038 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
@@ -740,7 +858,6 @@
2021/05/02 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
2021/05/02 | 2704054 | install/graphics/pgf/contrib/circuitikz.tds.zip
2021/05/02 | 2688240 | graphics/pgf/contrib/circuitikz.zip
-2021/05/02 | 2656 | systems/texlive/tlnet/archive/pm-isomath.r59038.tar.xz
2021/05/02 | 241412 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
2021/05/02 | 2233 | macros/latex/contrib/elegantbook/README-CN.md
2021/05/02 | 20361 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
@@ -750,7 +867,6 @@
2021/05/02 | 1900 | macros/latex/contrib/elegantbook/README.md
2021/05/02 | 18519 | macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx
2021/05/02 | 17727 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
-2021/05/02 | 17016 | systems/texlive/tlnet/archive/pm-isomath.source.r59038.tar.xz
2021/05/02 | 16580 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
2021/05/02 | 14594 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
2021/05/02 | 1443332 | systems/texlive/tlnet/archive/newcomputermodern.doc.r59041.tar.xz
@@ -864,7 +980,6 @@
2021/04/30 | 49444108 | systems/win32/w32tex/xetex-w32.tar.xz
2021/04/30 | 45572992 | systems/win32/w32tex/web2c-w32.tar.xz
2021/04/30 | 3755224 | systems/win32/w32tex/win64/web2c-w64.tar.xz
-2021/04/30 | 35202232 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/04/30 | 2871 | macros/latex/contrib/vcell/vcell.sty
2021/04/30 | 2141572 | systems/texlive/tlnet/archive/worldflags.doc.r59021.tar.xz
2021/04/30 | 1874028 | systems/win32/w32tex/win64/ptex-w64.tar.xz
@@ -888,266 +1003,9 @@
2021/04/29 | 45320 | graphics/pgf/contrib/worldflags/doc/worldflags.tex
2021/04/29 | 3981362 | graphics/pgf/contrib/worldflags.zip
2021/04/29 | 3211 | graphics/pgf/contrib/worldflags/tex/worldflag_NATO.tex
-2021/04/29 | 274303836 | systems/win32/w32tex/pstricks.tar.xz
2021/04/29 | 2712 | macros/unicodetex/latex/fontsetup/doc/fspsample.tex
2021/04/29 | 24864 | systems/texlive/tlnet/archive/pst-circ.r59017.tar.xz
2021/04/29 | 2161981 | graphics/pgf/contrib/worldflags/doc/worldflags.pdf
2021/04/29 | 16460 | graphics/pgf/contrib/worldflags/tex/worldflags.sty
2021/04/29 | 12385 | graphics/pgf/contrib/worldflags/tex/worldflag_WB.tex
2021/04/29 | 122666236 | macros/context/latest/cont-tmf.zip
-2021/04/29 | 12013 | usergrps/usergrps/nl.html
-2021/04/28 | 994 | graphics/pgf/contrib/worldflags/tex/worldflag_GY.tex
-2021/04/28 | 986 | graphics/pgf/contrib/worldflags/tex/worldflag_ZA.tex
-2021/04/28 | 9407 | graphics/pgf/contrib/worldflags/tex/worldflag_KO.tex
-2021/04/28 | 924 | systems/texlive/tlnet/archive/xindy-persian.doc.r59013.tar.xz
-2021/04/28 | 924 | graphics/pgf/contrib/worldflags/tex/worldflag_CD.tex
-2021/04/28 | 922 | graphics/pgf/contrib/worldflags/tex/worldflag_ET.tex
-2021/04/28 | 918 | graphics/pgf/contrib/worldflags/tex/worldflag_NZ.tex
-2021/04/28 | 907081 | graphics/pstricks/contrib/pst-circ/pst-circ-doc.pdf
-2021/04/28 | 8936 | systems/texlive/tlnet/archive/buctthesis.r59002.tar.xz
-2021/04/28 | 890 | graphics/pgf/contrib/worldflags/tex/worldflag_AU.tex
-2021/04/28 | 878084 | systems/texlive/tlnet/archive/buctthesis.doc.r59002.tar.xz
-2021/04/28 | 87598 | graphics/pgf/contrib/worldflags/tex/worldflag_UNO.tex
-2021/04/28 | 86663 | graphics/pgf/contrib/worldflags/tex/worldflag_NI.tex
-2021/04/28 | 8628 | graphics/pgf/contrib/worldflags/tex/worldflag_BR.tex
-2021/04/28 | 860 | graphics/pgf/contrib/worldflags/tex/worldflag_BA.tex
-2021/04/28 | 8605 | graphics/pgf/contrib/worldflags/tex/worldflag_UG.tex
-2021/04/28 | 852 | graphics/pgf/contrib/worldflags/tex/worldflag_MW.tex
-2021/04/28 | 85040 | graphics/pgf/contrib/worldflags/tex/worldflag_LK.tex
-2021/04/28 | 835 | graphics/pgf/contrib/worldflags/tex/worldflag_NA.tex
-2021/04/28 | 83556 | systems/texlive/tlnet/archive/profcollege.r58995.tar.xz
-2021/04/28 | 833 | graphics/pgf/contrib/worldflags/tex/worldflag_KN.tex
-2021/04/28 | 819808 | systems/texlive/tlnet/archive/babel.doc.r58999.tar.xz
-2021/04/28 | 8156 | systems/texlive/tlnet/archive/grundgesetze.source.r58997.tar.xz
-2021/04/28 | 81477 | graphics/pgf/contrib/worldflags/tex/worldflag_MD.tex
-2021/04/28 | 8103 | graphics/pgf/contrib/worldflags/tex/worldflag_KI.tex
-2021/04/28 | 80680 | graphics/pgf/contrib/worldflags/tex/worldflag_BT.tex
-2021/04/28 | 801 | graphics/pgf/contrib/worldflags/tex/worldflag_BI.tex
-2021/04/28 | 795 | graphics/pgf/contrib/worldflags/tex/worldflag_IL.tex
-2021/04/28 | 791 | graphics/pgf/contrib/worldflags/tex/worldflag_MH.tex
-2021/04/28 | 771 | graphics/pgf/contrib/worldflags/tex/worldflag_VC.tex
-2021/04/28 | 766 | graphics/pgf/contrib/worldflags/tex/worldflag_US.tex
-2021/04/28 | 729 | graphics/pgf/contrib/worldflags/tex/worldflag_TT.tex
-2021/04/28 | 726 | graphics/pgf/contrib/worldflags/tex/worldflag_SC.tex
-2021/04/28 | 721 | graphics/pgf/contrib/worldflags/tex/worldflag_WS.tex
-2021/04/28 | 716 | graphics/pgf/contrib/worldflags/tex/worldflag_NU.tex
-2021/04/28 | 710 | graphics/pgf/contrib/worldflags/tex/worldflag_IN.tex
-2021/04/28 | 694 | graphics/pgf/contrib/worldflags/tex/worldflag_MY.tex
-2021/04/28 | 685 | graphics/pgf/contrib/worldflags/tex/worldflag_RW.tex
-2021/04/28 | 685 | graphics/pgf/contrib/worldflags/tex/worldflag_Rainbow.tex
-2021/04/28 | 684676 | systems/texlive/tlnet/archive/babel.source.r58999.tar.xz
-2021/04/28 | 676 | systems/texlive/tlnet/archive/latex-bin-dev.r59005.tar.xz
-2021/04/28 | 674 | graphics/pgf/contrib/worldflags/tex/worldflag_KM.tex
-2021/04/28 | 665 | graphics/pgf/contrib/worldflags/tex/worldflag_JM.tex
-2021/04/28 | 6639 | graphics/pgf/contrib/worldflags/tex/worldflag_PG.tex
-2021/04/28 | 6546 | graphics/pgf/contrib/worldflags/tex/worldflag_MZ.tex
-2021/04/28 | 652 | graphics/pgf/contrib/worldflags/tex/worldflag_SS.tex
-2021/04/28 | 649 | graphics/pgf/contrib/worldflags/tex/worldflag_HN.tex
-2021/04/28 | 649 | graphics/pgf/contrib/worldflags/tex/worldflag_Artsakh.tex
-2021/04/28 | 644 | graphics/pgf/contrib/worldflags/tex/worldflag_TZ.tex
-2021/04/28 | 642 | graphics/pgf/contrib/worldflags/tex/worldflag_AG.tex
-2021/04/28 | 6332 | systems/texlive/tlnet/archive/collection-latexextra.r59009.tar.xz
-2021/04/28 | 624 | graphics/pgf/contrib/worldflags/tex/worldflag_GR.tex
-2021/04/28 | 62320 | graphics/pgf/contrib/worldflags/tex/worldflag_BN.tex
-2021/04/28 | 6189 | graphics/pgf/contrib/worldflags/tex/worldflag_VU.tex
-2021/04/28 | 610981 | graphics/pgf/contrib/worldflags/tex/worldflag_AT.tex
-2021/04/28 | 6000 | graphics/pgf/contrib/worldflags/tex/worldflag_IQ.tex
-2021/04/28 | 599 | graphics/pgf/contrib/worldflags/tex/worldflag_CV.tex
-2021/04/28 | 597 | graphics/pgf/contrib/worldflags/tex/worldflag_TW.tex
-2021/04/28 | 596 | graphics/pgf/contrib/worldflags/tex/worldflag_LC.tex
-2021/04/28 | 587 | graphics/pgf/contrib/worldflags/tex/worldflag_FM.tex
-2021/04/28 | 584245 | graphics/pstricks/contrib/pst-circ.zip
-2021/04/28 | 583115 | graphics/pgf/contrib/worldflags/tex/worldflag_EC.tex
-2021/04/28 | 579 | graphics/pgf/contrib/worldflags/tex/worldflag_ST.tex
-2021/04/28 | 571324 | graphics/pgf/contrib/worldflags/tex/worldflag_SV.tex
-2021/04/28 | 56666 | graphics/pgf/contrib/worldflags/tex/worldflag_PY.tex
-2021/04/28 | 565 | graphics/pgf/contrib/worldflags/tex/worldflag_PK.tex
-2021/04/28 | 562496 | systems/texlive/tlnet/archive/beamertheme-trigon.doc.r59004.tar.xz
-2021/04/28 | 554 | graphics/pgf/contrib/worldflags/tex/worldflag_CK.tex
-2021/04/28 | 5504 | graphics/pgf/contrib/worldflags/tex/worldflag_SI.tex
-2021/04/28 | 5468 | systems/texlive/tlnet/archive/beamertheme-trigon.r59004.tar.xz
-2021/04/28 | 540 | graphics/pgf/contrib/worldflags/tex/worldflag_MR.tex
-2021/04/28 | 538 | graphics/pgf/contrib/worldflags/tex/worldflag_CN.tex
-2021/04/28 | 532 | graphics/pgf/contrib/worldflags/tex/worldflag_TO.tex
-2021/04/28 | 532 | graphics/pgf/contrib/worldflags/tex/worldflag_DJ.tex
-2021/04/28 | 523 | graphics/pgf/contrib/worldflags/tex/worldflag_MA.tex
-2021/04/28 | 523 | graphics/pgf/contrib/worldflags/tex/worldflag_EH.tex
-2021/04/28 | 521 | graphics/pgf/contrib/worldflags/tex/worldflag_PA.tex
-2021/04/28 | 520 | graphics/pgf/contrib/worldflags/tex/worldflag_CF.tex
-2021/04/28 | 517 | graphics/pgf/contrib/worldflags/tex/worldflag_QA.tex
-2021/04/28 | 516 | graphics/pgf/contrib/worldflags/tex/worldflag_CG.tex
-2021/04/28 | 516 | graphics/pgf/contrib/worldflags/tex/worldflag_AZ.tex
-2021/04/28 | 514 | graphics/pgf/contrib/worldflags/tex/worldflag_MV.tex
-2021/04/28 | 506 | graphics/pgf/contrib/worldflags/tex/worldflag_BH.tex
-2021/04/28 | 505 | graphics/pgf/contrib/worldflags/tex/worldflag_LY.tex
-2021/04/28 | 504 | graphics/pgf/contrib/worldflags/tex/worldflag_TN.tex
-2021/04/28 | 5032 | systems/texlive/tlnet/archive/tipauni.r59009.tar.xz
-2021/04/28 | 49552 | systems/texlive/tlnet/archive/onedown.source.r59010.tar.xz
-2021/04/28 | 491 | graphics/pgf/contrib/worldflags/tex/worldflag_LR.tex
-2021/04/28 | 486 | graphics/pgf/contrib/worldflags/tex/worldflag_VE.tex
-2021/04/28 | 484406 | graphics/pgf/contrib/worldflags/tex/worldflag_AF.tex
-2021/04/28 | 483 | graphics/pgf/contrib/worldflags/tex/worldflag_KP.tex
-2021/04/28 | 479 | graphics/pgf/contrib/worldflags/tex/worldflag_TR.tex
-2021/04/28 | 479 | graphics/pgf/contrib/worldflags/tex/worldflag_SR.tex
-2021/04/28 | 478 | graphics/pgf/contrib/worldflags/tex/worldflag_IS.tex
-2021/04/28 | 477 | graphics/pgf/contrib/worldflags/tex/worldflag_DZ.tex
-2021/04/28 | 4760 | systems/texlive/tlnet/archive/todonotes.r58998.tar.xz
-2021/04/28 | 472 | graphics/pgf/contrib/worldflags/tex/worldflag_CO.tex
-2021/04/28 | 471 | graphics/pgf/contrib/worldflags/tex/worldflag_GW.tex
-2021/04/28 | 471 | graphics/pgf/contrib/worldflags/tex/worldflag_CH.tex
-2021/04/28 | 469 | graphics/pgf/contrib/worldflags/tex/worldflag_RedCross.tex
-2021/04/28 | 4668 | graphics/pgf/contrib/worldflags/tex/worldflag_JollyRoger.tex
-2021/04/28 | 46675 | graphics/pgf/contrib/worldflags/tex/worldflag_OM.tex
-2021/04/28 | 465 | graphics/pgf/contrib/worldflags/tex/worldflag_NO.tex
-2021/04/28 | 4635 | graphics/pstricks/contrib/pst-circ/Changes
-2021/04/28 | 462 | graphics/pgf/contrib/worldflags/tex/worldflag_TL.tex
-2021/04/28 | 461176 | systems/texlive/tlnet/archive/xindy.doc.r59003.tar.xz
-2021/04/28 | 456 | graphics/pgf/contrib/worldflags/tex/worldflag_TG.tex
-2021/04/28 | 4532 | graphics/pgf/contrib/worldflags/tex/worldflag_AO.tex
-2021/04/28 | 451 | graphics/pgf/contrib/worldflags/tex/worldflag_SG.tex
-2021/04/28 | 45124 | graphics/pgf/contrib/worldflags/tex/worldflag_EG.tex
-2021/04/28 | 449 | graphics/pgf/contrib/worldflags/tex/worldflag_GF.tex
-2021/04/28 | 448 | systems/texlive/tlnet/archive/collection-langarabic.r59003.tar.xz
-2021/04/28 | 448 | graphics/pgf/contrib/worldflags/tex/worldflag_EU.tex
-2021/04/28 | 4472 | graphics/pgf/contrib/worldflags/tex/worldflag_LS.tex
-2021/04/28 | 439 | graphics/pgf/contrib/worldflags/tex/worldflag_JO.tex
-2021/04/28 | 439696 | systems/texlive/tlnet/archive/tipauni.doc.r59009.tar.xz
-2021/04/28 | 438 | graphics/pgf/contrib/worldflags/tex/worldflag_LA.tex
-2021/04/28 | 433 | graphics/pgf/contrib/worldflags/tex/worldflag_NR.tex
-2021/04/28 | 432 | systems/texlive/tlnet/archive/xindy-persian.r59013.tar.xz
-2021/04/28 | 431988 | systems/texlive/tlnet/archive/todonotes.doc.r58998.tar.xz
-2021/04/28 | 430 | graphics/pgf/contrib/worldflags/tex/worldflag_KW.tex
-2021/04/28 | 429 | graphics/pgf/contrib/worldflags/tex/worldflag_CU.tex
-2021/04/28 | 42792 | graphics/pgf/contrib/worldflags/tex/worldflag_MT.tex
-2021/04/28 | 4277 | graphics/pgf/contrib/worldflags/tex/worldflag_SK.tex
-2021/04/28 | 424 | graphics/pgf/contrib/worldflags/tex/worldflag_CM.tex
-2021/04/28 | 423 | graphics/pgf/contrib/worldflags/tex/worldflag_MM.tex
-2021/04/28 | 421 | graphics/pgf/contrib/worldflags/tex/worldflag_LV.tex
-2021/04/28 | 420 | graphics/pgf/contrib/worldflags/tex/worldflag_GH.tex
-2021/04/28 | 416 | graphics/pgf/contrib/worldflags/tex/worldflag_SY.tex
-2021/04/28 | 415 | graphics/pgf/contrib/worldflags/tex/worldflag_SN.tex
-2021/04/28 | 41555 | graphics/pgf/contrib/worldflags/tex/worldflag_ZW.tex
-2021/04/28 | 4121 | graphics/pgf/contrib/worldflags/tex/worldflag_MN.tex
-2021/04/28 | 411 | graphics/pgf/contrib/worldflags/tex/worldflag_BF.tex
-2021/04/28 | 408697 | graphics/pgf/contrib/worldflags/tex/worldflag_MX.tex
-2021/04/28 | 407 | graphics/pgf/contrib/worldflags/tex/worldflag_BJ.tex
-2021/04/28 | 407027 | graphics/pgf/contrib/worldflags/tex/worldflag_DO.tex
-2021/04/28 | 404 | graphics/pgf/contrib/worldflags/tex/worldflag_MU.tex
-2021/04/28 | 402 | graphics/pgf/contrib/worldflags/tex/worldflag_SE.tex
-2021/04/28 | 401 | graphics/pgf/contrib/worldflags/tex/worldflag_CL.tex
-2021/04/28 | 40125 | graphics/pgf/contrib/worldflags/tex/worldflag_SA.tex
-2021/04/28 | 3986 | graphics/pgf/contrib/worldflags/tex/worldflag_UY.tex
-2021/04/28 | 397478 | graphics/pgf/contrib/worldflags/tex/worldflag_HR.tex
-2021/04/28 | 396 | graphics/pgf/contrib/worldflags/tex/worldflag_AE.tex
-2021/04/28 | 395 | graphics/pgf/contrib/worldflags/tex/worldflag_VN.tex
-2021/04/28 | 392 | graphics/pgf/contrib/worldflags/tex/worldflag_PW.tex
-2021/04/28 | 392 | graphics/pgf/contrib/worldflags/tex/worldflag_BD.tex
-2021/04/28 | 3908208 | systems/texlive/tlnet/archive/profcollege.doc.r58995.tar.xz
-2021/04/28 | 387 | graphics/pgf/contrib/worldflags/tex/worldflag_DK.tex
-2021/04/28 | 386 | graphics/pgf/contrib/worldflags/tex/worldflag_TH.tex
-2021/04/28 | 384 | graphics/pgf/contrib/worldflags/tex/worldflag_GM.tex
-2021/04/28 | 383 | graphics/pgf/contrib/worldflags/tex/worldflag_NE.tex
-2021/04/28 | 382 | graphics/pgf/contrib/worldflags/tex/worldflag_FI.tex
-2021/04/28 | 381 | graphics/pgf/contrib/worldflags/tex/worldflag_GL.tex
-2021/04/28 | 381 | graphics/pgf/contrib/worldflags/tex/worldflag_CZ.tex
-2021/04/28 | 381 | graphics/pgf/contrib/worldflags/tex/worldflag_BS.tex
-2021/04/28 | 37849 | graphics/pgf/contrib/worldflags/tex/worldflag_CY.tex
-2021/04/28 | 377 | graphics/pgf/contrib/worldflags/tex/worldflag_MG.tex
-2021/04/28 | 375 | graphics/pgf/contrib/worldflags/tex/worldflag_SD.tex
-2021/04/28 | 369 | graphics/pgf/contrib/worldflags/tex/worldflag_Esperanto.tex
-2021/04/28 | 368 | graphics/pgf/contrib/worldflags/tex/worldflag_SO.tex
-2021/04/28 | 365 | graphics/pgf/contrib/worldflags/tex/worldflag_LT.tex
-2021/04/28 | 365 | graphics/pgf/contrib/worldflags/tex/worldflag_AM.tex
-2021/04/28 | 363 | graphics/pgf/contrib/worldflags/tex/worldflag_BO.tex
-2021/04/28 | 362 | graphics/pgf/contrib/worldflags/tex/worldflag_GN.tex
-2021/04/28 | 362 | graphics/pgf/contrib/worldflags/tex/worldflag_GA.tex
-2021/04/28 | 361 | graphics/pgf/contrib/worldflags/tex/worldflag_ES.tex
-2021/04/28 | 360 | graphics/pgf/contrib/worldflags/tex/worldflag_RO.tex
-2021/04/28 | 360 | graphics/pgf/contrib/worldflags/tex/worldflag_ML.tex
-2021/04/28 | 360 | graphics/pgf/contrib/worldflags/tex/worldflag_IT.tex
-2021/04/28 | 357 | graphics/pgf/contrib/worldflags/tex/worldflag_TD.tex
-2021/04/28 | 356 | graphics/pgf/contrib/worldflags/tex/worldflag_BW.tex
-2021/04/28 | 35503 | graphics/pgf/contrib/worldflags/tex/worldflag_Somaliland.tex
-2021/04/28 | 353 | graphics/pgf/contrib/worldflags/tex/worldflag_JP.tex
-2021/04/28 | 351 | graphics/pgf/contrib/worldflags/tex/worldflag_PS.tex
-2021/04/28 | 347 | graphics/pgf/contrib/worldflags/tex/worldflag_GB.tex
-2021/04/28 | 340 | graphics/pgf/contrib/worldflags/tex/worldflag_CI.tex
-2021/04/28 | 3400 | graphics/pgf/contrib/worldflags/tex/worldflag_Transnistria.tex
-2021/04/28 | 337 | graphics/pgf/contrib/worldflags/tex/worldflag_SL.tex
-2021/04/28 | 334 | graphics/pgf/contrib/worldflags/tex/worldflag_IE.tex
-2021/04/28 | 33163 | graphics/pgf/contrib/worldflags/tex/worldflag_KG.tex
-2021/04/28 | 330 | graphics/pgf/contrib/worldflags/tex/worldflag_NL.tex
-2021/04/28 | 330 | graphics/pgf/contrib/worldflags/tex/worldflag_LU.tex
-2021/04/28 | 330 | graphics/pgf/contrib/worldflags/tex/worldflag_BG.tex
-2021/04/28 | 329 | graphics/pgf/contrib/worldflags/tex/worldflag_BE.tex
-2021/04/28 | 328 | graphics/pgf/contrib/worldflags/tex/worldflag_HU.tex
-2021/04/28 | 32766 | graphics/pgf/contrib/worldflags/tex/worldflag_KH.tex
-2021/04/28 | 325 | graphics/pgf/contrib/worldflags/tex/worldflag_RU.tex
-2021/04/28 | 325 | graphics/pgf/contrib/worldflags/tex/worldflag_FR.tex
-2021/04/28 | 320 | graphics/pgf/contrib/worldflags/tex/worldflag_UA.tex
-2021/04/28 | 31864 | graphics/pgf/contrib/worldflags/tex/worldflag_LI.tex
-2021/04/28 | 3170 | graphics/pgf/contrib/worldflags/tex/worldflag_TJ.tex
-2021/04/28 | 3054 | graphics/pgf/contrib/worldflags/tex/worldflag_Abkhazia.tex
-2021/04/28 | 296 | graphics/pgf/contrib/worldflags/tex/worldflag_NG.tex
-2021/04/28 | 296 | graphics/pgf/contrib/worldflags/tex/worldflag_EE.tex
-2021/04/28 | 291 | graphics/pgf/contrib/worldflags/tex/worldflag_YE.tex
-2021/04/28 | 288 | graphics/pgf/contrib/worldflags/tex/worldflag_PE.tex
-2021/04/28 | 287 | graphics/pgf/contrib/worldflags/tex/worldflag_ID.tex
-2021/04/28 | 284 | graphics/pgf/contrib/worldflags/tex/worldflag_PL.tex
-2021/04/28 | 283041 | graphics/pgf/contrib/worldflags/tex/worldflag_ME.tex
-2021/04/28 | 2700112 | systems/texlive/tlnet/archive/onedown.doc.r59010.tar.xz
-2021/04/28 | 26271 | graphics/pgf/contrib/worldflags/tex/worldflag_PT.tex
-2021/04/28 | 24404 | systems/texlive/tlnet/archive/buctthesis.source.r59002.tar.xz
-2021/04/28 | 2427 | graphics/pgf/contrib/worldflags/tex/worldflag_KE.tex
-2021/04/28 | 2340 | systems/texlive/tlnet/archive/grundgesetze.r58997.tar.xz
-2021/04/28 | 230971 | graphics/pgf/contrib/worldflags/tex/worldflag_SM.tex
-2021/04/28 | 226836 | systems/texlive/tlnet/archive/grundgesetze.doc.r58997.tar.xz
-2021/04/28 | 223393 | graphics/pstricks/contrib/pst-circ/pst-circ.tex
-2021/04/28 | 2224192 | systems/win32/w32tex/win64/context-w64.tar.xz
-2021/04/28 | 22167 | graphics/pgf/contrib/worldflags/tex/worldflag_KZ.tex
-2021/04/28 | 2185 | graphics/pgf/contrib/worldflags/tex/worldflag_BB.tex
-2021/04/28 | 215601 | graphics/pgf/contrib/worldflags/tex/worldflag_BZ.tex
-2021/04/28 | 21347 | graphics/pgf/contrib/worldflags/tex/worldflag_GQ.tex
-2021/04/28 | 2131 | graphics/pgf/contrib/worldflags/tex/worldflag_IR.tex
-2021/04/28 | 205064 | graphics/pgf/contrib/worldflags/tex/worldflag_HT.tex
-2021/04/28 | 19510 | graphics/pgf/contrib/worldflags/tex/worldflag_AL.tex
-2021/04/28 | 191757 | graphics/pgf/contrib/worldflags/tex/worldflag_RS.tex
-2021/04/28 | 18416 | systems/texlive/tlnet/archive/todonotes.source.r58998.tar.xz
-2021/04/28 | 18042 | graphics/pgf/contrib/worldflags/tex/worldflag_ZM.tex
-2021/04/28 | 17956 | systems/texlive/tlnet/archive/onedown.r59010.tar.xz
-2021/04/28 | 178608 | systems/texlive/tlnet/archive/babel.r58999.tar.xz
-2021/04/28 | 1734 | graphics/pgf/contrib/worldflags/tex/worldflag_BY.tex
-2021/04/28 | 173231 | graphics/pgf/contrib/worldflags/tex/worldflag_GT.tex
-2021/04/28 | 1672 | graphics/pstricks/contrib/pst-circ/README
-2021/04/28 | 1632 | graphics/pgf/contrib/worldflags/tex/worldflag_GD.tex
-2021/04/28 | 161400 | graphics/pgf/contrib/worldflags/tex/worldflag_AD.tex
-2021/04/28 | 15826 | graphics/pgf/contrib/worldflags/tex/worldflag_SZ.tex
-2021/04/28 | 1548 | systems/texlive/tlnet/archive/collection-publishers.r59002.tar.xz
-2021/04/28 | 1533 | graphics/pgf/contrib/worldflags/tex/worldflag_MK.tex
-2021/04/28 | 1530 | graphics/pstricks/contrib/pst-circ/Makefile
-2021/04/28 | 14804 | systems/texlive/tlnet/archive/pdfxup.r59001.tar.xz
-2021/04/28 | 14605 | graphics/pgf/contrib/worldflags/tex/worldflag_DM.tex
-2021/04/28 | 144758 | graphics/pgf/contrib/worldflags/tex/worldflag_VA.tex
-2021/04/28 | 143100 | systems/texlive/tlnet/archive/xindy.r59003.tar.xz
-2021/04/28 | 14000 | graphics/pgf/contrib/worldflags/tex/worldflag_LB.tex
-2021/04/28 | 13972 | systems/texlive/tlnet/archive/latex-bin-dev.doc.r59005.tar.xz
-2021/04/28 | 1331 | graphics/pgf/contrib/worldflags/tex/worldflag_GE.tex
-2021/04/28 | 13001 | graphics/pgf/contrib/worldflags/tex/worldflag_DE.tex
-2021/04/28 | 1282 | graphics/pgf/contrib/worldflags/tex/worldflag_TV.tex
-2021/04/28 | 127569 | graphics/pgf/contrib/worldflags/tex/worldflag_TM.tex
-2021/04/28 | 126613 | graphics/pstricks/contrib/pst-circ/pst-circ-doc.tex
-2021/04/28 | 1225 | graphics/pgf/contrib/worldflags/tex/worldflag_PH.tex
-2021/04/28 | 121343 | graphics/pgf/contrib/worldflags/tex/worldflag_CR.tex
-2021/04/28 | 12000 | systems/texlive/tlnet/archive/beamertheme-trigon.source.r59004.tar.xz
-2021/04/28 | 119780 | systems/texlive/tlnet/archive/pdfxup.doc.r59001.tar.xz
-2021/04/28 | 1186 | graphics/pgf/contrib/worldflags/tex/worldflag_KR.tex
-2021/04/28 | 1149 | graphics/pgf/contrib/worldflags/tex/worldflag_CA.tex
-2021/04/28 | 11354 | macros/unicodetex/latex/fontsetup/fspolddefault.sty
-2021/04/28 | 109032 | graphics/pgf/contrib/worldflags/tex/worldflag_FJ.tex
-2021/04/28 | 1048 | graphics/pgf/contrib/worldflags/tex/worldflag_UZ.tex
-2021/04/28 | 10430 | graphics/pgf/contrib/worldflags/tex/worldflag_ER.tex
-2021/04/28 | 1041 | graphics/pgf/contrib/worldflags/tex/worldflag_Olympics.tex
-2021/04/28 | 1037 | graphics/pgf/contrib/worldflags/tex/worldflag_NP.tex
-2021/04/28 | 10109 | graphics/pgf/contrib/worldflags/tex/worldflag_AR.tex
-2021/04/28 | 10100 | systems/texlive/tlnet/archive/tipauni.source.r59009.tar.xz
-2021/04/28 | 1005 | graphics/pgf/contrib/worldflags/tex/worldflag_SB.tex
diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG
index 79a088b7db..3283706b9c 100644
--- a/graphics/mcf2graph/CHANGELOG
+++ b/graphics/mcf2graph/CHANGELOG
@@ -1,6 +1,13 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2021-04-18
+ Changelog of mcf2graph software package by Akira Yamaji 2021-05-05
*******************************************************************************
+[ver. 4.64 / 2021-05-05]
+ -add parameter for sw_output
+ Mcode : output MCF aux files
+ Mcode_t : output 'temp-mc.aux'
+ Info_t : output 'temp-info.aux'
+ -update MCF manual,example
+
[ver. 4.63 / 2021-04-18]
-add option parameter sw_output
sw_calc =1 => sw_output=None
diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README
index 44b86eb694..230ffee1ba 100644
--- a/graphics/mcf2graph/README
+++ b/graphics/mcf2graph/README
@@ -1,7 +1,7 @@
********************************************************************************
mcf2graph : Convert Molecular Coding Format to graphics with METAFONT/METAPOST
Author : Akira Yamaji
- version : 4.63 2021-04-18
+ version : 4.64 2021-05-05
E-mail : mcf2graph@gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
@@ -16,7 +16,7 @@
2. The distribution of software
( 1) README This file
- ( 2) CHANGELOG Changelog file of mcf2graph
+ ( 2) CHANGELOG Changelog file of mcf2graph
( 3) mcf2graph.mf Main macro of Metafont / Metapost
( 4) mcf_data_base.mcf Molecular data base file
( 5) mcf_setup.sty Style file for aux file input
@@ -25,7 +25,7 @@
use mps file for final print
make file 'mcf_man_soc-***.mps' before typeset
>mpost mcf_man_soc.mf
- ( 7) mcf_man_soc.mf Molecular difinition file for mcf_manual.tex
+ ( 7) mcf_man_soc.mf Molecular definition file for mcf_manual.tex
( 8) mcf_manual.pdf PDF of (4) (used pdftex(LaTeX),makeindex)
( 9) mcf_example.tex LaTeX example
make file 'mcf_exa_soc-info.aux' before typeset
diff --git a/graphics/mcf2graph/mcf2graph.mf b/graphics/mcf2graph/mcf2graph.mf
index 0c935ab56a..38086f87eb 100644
--- a/graphics/mcf2graph/mcf2graph.mf
+++ b/graphics/mcf2graph/mcf2graph.mf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.63 Copyright (c) 2013-2021 Akira Yamaji
+% mcf2graph ver 4.64 Copyright (c) 2013-2021 Akira Yamaji
%
% Permission is hereby granted, free of charge, to any person obtaining a copy of this software
% and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -37,16 +37,16 @@
% Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tracingstats:=1;
-message "* This is mcf2graph ver 4.63 2021.04.18";
+message "* This is mcf2graph ver 4.64 2021.05.05";
%-------------------------------------------------------------------------------------------------
newinternal cntA,cntB,cntM,minX,minY,maxX,maxY,sftX,sftY,com,par,envT,envB,lenT,lineT,angT,rotT,
crR,nA,nB,nC,nD,nE,nF,nS,nL,nR,nU,nP,xpos,ypos,markA,markB,saveA,saveB,bondL;
numeric save_num[],comD[][],parD[][],adrD[][],cntD[],tbl_atom[],tbl_group[][],f_char[],
tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],addA[],add_rot[],chargeA[],
com_group[][],par_group[][],cnt_group[],colorA[],colorB[],sumA[],bondC[],hideH[],
- lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],numS[],wdM[],htM[],wdA[],dxA[],
- mc_indent[],cmm_adr[];
-string save_str[],tbl_atom_str[],strD[],tag[],file_name_output,blank_str,temps,aux_delimiter,
+ lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],numS[],wdM[],htM[],wdA[],dxA[],cmm_adr[],
+ mc_indent[];
+string save_str[],tbl_atom_str[],strD[],tag[],file_name_output,blank_str,aux_delimiter,
atomfont,mpfont,s_tag,s_var,cal_FM,cal_MW,cal_MI,
inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW;
pair save_pair[],posA[],posM[][],msize,mposition,fsize,fmargin,save_mposition,posBs,posBe,dum;
@@ -58,10 +58,10 @@ sw_numberA:=sw_numberB:=sw_expand:=sw_fframe:=sw_mframe:=sw_aframe:=sw_trimming:
sw_group_off:=sw_single:=sw_arrow_emu:=sw_output:=0;
numberA_start:=numberB_start:=1; numberA_end:=numberB_end:=4095;
%-------------------------------------------------------------------------------------------------
-aux_max:=max_inf_num:=20; aux_delimiter:=";"; blank_str:= " ";
+aux_max:=max_inf_num:=20; aux_delimiter:=";"; blank_str:= " "; dum:=(-4091,0);
for i=1 upto aux_max: tag[i]:=""; endfor
-dum:=(-4091,0);
-None:=11; Info1:=21; Info2:=22; Report:=31; MOL2k:=41; MOL3k:=42; Mfont:=51;
+None:=11; Info1:=21; Info2:=22; Info_t:=23; Report:=31; MOL2k:=41; MOL3k:=42;
+Mfont:=51; Mcode:=61; Mcode_t:=62; Info_Mcode_t:=63;
%-------------------------------------------------------------------------------------------------
a_prn_s:=ASCII("("); a_prn_e:=ASCII(")"); a_brc_s:=ASCII("{"); a_brc_e:=ASCII("}");
a_brk_s:=ASCII("["); a_brk_e:=ASCII("]"); a_cmm:=ASCII(","); a_equ:=ASCII("=");
@@ -98,20 +98,22 @@ if (known green)and(known ahlength):
mpfont:="uhvr8r";
atomfont:=defaultfont:="";
%--default ahangle=45---------------------------------------------------------------------
- if ahangle=0: outputformat:="eps"; % eps format(.mps)
- elseif ahangle=1: outputformat:="png"; hppp:=vppp:=0.12; % png format(600dpi)
- elseif ahangle=11: outputformat:="png"; hppp:=vppp:=0.06; % png format(1200dpi)
- elseif ahangle=2: outputformat:="svg"; % svg format
- elseif ahangle=3: outputformat:="eps"; % eps format(.eps)
- elseif ahangle=45: outputformat:="eps"; % eps format(.eps)
+ if ahangle=0: outputformat:="eps"; % eps format(.mps)
+ elseif ahangle=1: outputformat:="png"; hppp:=vppp:=0.12; % png format(600dpi)
+ elseif ahangle=11: outputformat:="png"; hppp:=vppp:=0.06; % png format(1200dpi)
+ elseif ahangle=2: outputformat:="svg"; % svg format
+ elseif ahangle=3: outputformat:="eps"; % eps format(.eps)
+ elseif ahangle=45: outputformat:="eps"; % eps format(.mps) *default
fi
%--default ahlength=4---------------------------------------------------------------------
if ahlength=1: sw_output:=Info1; % output aux file
elseif ahlength=2: sw_output:=Info2; % output aux file(fixed mode)
elseif ahlength=3: sw_output:=Report; % output report
+ elseif ahlength=4: sw_output:=0; % *default
elseif ahlength=5: sw_output:=MOL2k; % output MOL(V2000)
elseif ahlength=6: sw_output:=MOL3k; % output MOL(V3000)
- elseif ahlength=7: sw_output:=Mfont; % output Mfont
+ elseif ahlength=7: sw_output:=Mfont; % output aux mf
+ elseif ahlength=8: sw_output:=Mcode; % output aux mc
fi
%-- default bboxmargin=2------------------------------------------------------------------
if bboxmargin=1: proc_end:=1; fi % output first font only
@@ -154,11 +156,12 @@ if f_MP=1:
if bboxmargin=1: message "* output first font only"; fi
message "* jobname="&jobname;
message "* numbersystem="&numbersystem;
- if ahlength=1: message "* output info file";
+ if (ahlength=1)or(ahlength=2):
+ message "* output info file";
message "* file name="&jobname&"-info.aux";
message "* info delimiter="&aux_delimiter;
- ef ahlength=2: message "* output report file";
- message "* file name="jobname&"-report.txt";
+ ef ahlength=3: message "* output report file";
+ message "* file name="&jobname&"-report.txt";
ef ahlength=5: message "* output MOL file(V2000)";
message "* "&jobname&"-nnn-"&"inf_EN"&".mol";
ef ahlength=6: message "* output MOL file(V3000)";
@@ -251,10 +254,10 @@ enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def beginfont(text s)=
begingroup
- save ',f_beginchar,f_ext,blen,ext,add,ang_br,n_fw,n_bw,at_colon,at_semicol,info,mc,temps,
- file_name_input,t_tag,f_close;
+ save ',f_beginchar,f_ext,blen,ext,add,ang_br,n_fw,n_bw,at_colon,at_semicol,temps,t_tag,f_close,
+ mc,info,file_name_input,bond_cnt,warning_cnt,hideH_cnt,bondC;
numeric at_semicol[];
- string info[],mc[],temps,mc,file_name_input,t_tag;
+ string info[],mc[],mc,temps,file_name_input,t_tag;
%------------------------------------------------------------------------------------------------
def ext=ext_to_font enddef;
def add=add_to_molecule enddef;
@@ -296,7 +299,7 @@ def beginfont(text s)=
enddef;
%==================================================================================================
def endfont=
- if (sw_output=0)or(sw_output=None):
+ if ((sw_output=0)or(sw_output=None))and(f_EOF=0):
if cntM>=1:
if sw_ext_all=1: ext_to_font(EXT_ALL); fi
if sw_trimming>=1:
@@ -344,7 +347,18 @@ def endfont=
%% message "* parts_cnt (0)="& decimal(parts_cnt) &" "& decimal(parts_usr-parts_usr_start);
%% message "* parts_int (0)="& decimal(parts_int) &" "& decimal(parts_int-parts_int_start);
%-----------------------------------------------------------------------------------------------
+ ef sw_output=Info1: proc_info_out(1);
+ ef sw_output=Info2: proc_info_out(2);
+ ef sw_output=Info_t: proc_info_out(3);
+ ef sw_output=Mcode: proc_mc_out(1);
+ ef sw_output=Mcode_t: proc_mc_out(2);
+ ef sw_output=Mfont: proc_mf_out(0);
+ ef sw_output=Report: proc_report_out(0);
+ ef sw_output=MOL2k: proc_mol_out(1);
+ ef sw_output=MOL3k: proc_mol_out(2);
+ ef sw_output=Info_Mcode_t: proc_info_out(3); proc_mc_out(2);
fi
+ %-----------------------------------------------------------------------------------------------
restore_par(parameter_list);
if proc_end=1: scantokens("bye"); fi
endgroup;
@@ -937,7 +951,7 @@ def MC(text TXT)=
mol_stru[cntM]:=currentpicture;
clearit;
endgroup;
- if cntM=1: if (sw_output>=None)and(sw_output<=Mfont): proc_output(sw_output); fi fi
+ if sw_output>0: proc_calc(0); fi
enddef;
%-------------------------------------------------------------------------------------------------
def add_group=
@@ -1508,10 +1522,21 @@ vardef erase_brace(expr ATOM)=
else: ATOM
fi
enddef;
+%-------------------------------------------------------------------------------------------------
+vardef erase_space(expr TXT)=
+ save temp_c,temp_s;
+ string temp_c,temp_s;
+ temp_s:="";
+ for i=1 upto length(TXT):
+ temp_c:=subc(i,TXT);
+ if temp_c=" ": temp_s:=temp_s&"_"; else: temp_s:=temp_s&temp_c; fi
+ endfor
+ temp_s
+enddef;
%=================================================================================================
-def proc_output(expr n)=
+def proc_calc(expr n)=
begingroup
- save knownA,bondC,tmp_wtp,bond_cnt,warning_cnt,hideH_cnt;
+ save knownA,tmp_wtp;
num_MW:=num_MI:=cen_MW:=cen_MI:=tbl_atom_max:=warning_cnt:=hideH_cnt:=0;
nE:=parts_emb_start;
for i=1 upto tbl_atom_end: sumA[i]:=0; endfor
@@ -1581,27 +1606,22 @@ def proc_output(expr n)=
if cen_MI<40: cal_MI:=substring (0,10) of decimal(num_MI);
else: num_MI:=cen_MI; cal_MI:=fdr(8)(cen_MI)&"*100"; fi
%-------------------------------------------------------------------------------------
- if n=Report: proc_report_out(0);
- ef n=Info1: proc_auxfile_out(1);
- ef n=Info2: proc_auxfile_out(2);
- ef n=MOL2k: proc_mol_out(1);
- ef n=MOL3k: proc_mol_out(2);
- ef n=Mfont: proc_mf_out(0);
- fi
endgroup
enddef;
%=================================================================================================
-def proc_auxfile_out(expr n)=
+def proc_info_out(expr n)=
message "["&decimal(char_num)&"]:"&inf_EN;
- file_name_output:=jobname&"-info.aux";
+ if n=3: file_name_output:="temp-info.aux";
+ else: file_name_output:=jobname&"-info.aux";
+ fi
%--------------------------------------------------------------------------------------
if (char_num=1)and(n=2):
- printf tag[1] for i=2 upto aux_max: exitif tag[i]=""; &aux_delimiter&tag[i] endfor ;
+ printf tag[1] for i=2 upto aux_max: exitif tag[i]=""; &aux_delimiter&tag[i] endfor% ;
fi
%--------------------------------------------------------------------------------------
for i=1 upto aux_max: exitif tag[i]="";
if i=1: printf "" else: &aux_delimiter fi
- if n=1: &tag[i]&":" fi
+ if (n=1)or(n=3): &tag[i]&":" fi
%-------------------------------------------
if tag[i]="J": & jobname
ef tag[i]="C": & decimal(char_num)
@@ -1627,14 +1647,10 @@ def proc_auxfile_out(expr n)=
ef tag[i]="EXB": & inf_EXB
ef tag[i]="MC": & inf_MC
fi
- endfor
+ endfor ;
+ if n=3: printf EOF; fi
enddef;
%=================================================================================================
-vardef round_auto(expr n)=
- if (n<4) and(n>-4): round(n*1000)/1000 elseif (n<40) and(n>-40): round(n*100)/100
- elseif (n<400)and(n>-400): round(n*10)/10 else: round(n) fi
-enddef;
-%-------------------------------------------------------------------------------------------------
def proc_report_out(expr n)=
message "["&decimal(char_num)&"]:"&inf_EN;
file_name_output:=jobname&"-report.txt";
@@ -1642,9 +1658,7 @@ def proc_report_out(expr n)=
printf " No."&fdr(4)(char_num)&" / Name = "& inf_EN&" / file = "& file_name_input;
if mc_row>=1:
printf "---------------------------------------------------------------------------";
- for i=1 upto mc_row:
- printf (substring(0,mc_indent[i]) of blank_str)&mc[i];
- endfor
+ for i=1 upto mc_row: printf (substring(0,mc_indent[i]) of blank_str)&mc[i]; endfor
printf "---------------------------------------------------------------------------";
printf " row="&fdr(3)(mc_row)&" / length="&fdr(4)(length(mc))&
" / commands="&fdr(3)(cnt_cmm);
@@ -1698,10 +1712,15 @@ def proc_report_out(expr n)=
if inf_FM<>"-": &inf_FM&" / "& iif(inf_FM=cal_FM,"MACTCH","NOT MACTCH") fi;
printf "===========================================================================";
enddef;
+%-------------------------------------------------------------------------------------------------
+vardef round_auto(expr n)=
+ if (n<4) and(n>-4): round(n*1000)/1000 elseif (n<40) and(n>-40): round(n*100)/100
+ elseif (n<400)and(n>-400): round(n*10)/10 else: round(n) fi
+enddef;
%=================================================================================================
def proc_mol_out(expr n)=
message "["&decimal(char_num)&"]:"&inf_EN;
- file_name_output:=jobname&"-"&fit_zero(char_num)&"-"&inf_EN&".mol";
+ file_name_output:=jobname&"-"&fit_zero(char_num)&"-"&erase_space(inf_EN)&".mol";
%-V2000---------------------------------------------------------------------------------------
if n=1:
printf ""; printf " -MCFtoMOL- "&fsl(20)(info[1]); printf "";
@@ -1753,7 +1772,16 @@ def proc_mf_out(expr n)=
printf "endfont";
if n=1: printf "%-------------------------------------------------------------------------"; fi
enddef;
-%-------------------------------------------------------------------------------------------------
+%=================================================================================================
+def proc_mc_out(expr n)=
+ message "["&decimal(char_num)&"]:"&inf_EN;
+ if n=2: file_name_output:="temp-mc.aux";
+ else: file_name_output:=jobname&"-"&fit_zero(char_num)&"-"&erase_space(inf_EN)&"-mc.aux";
+ fi
+ for i=1 upto mc_row: printf (substring(0,mc_indent[i]) of blank_str)&mc[i]; endfor
+ printf EOF;
+enddef;
+%=================================================================================================
vardef fit_zero(expr n)=if n<=9: "00" elseif n<=99: "0" else: "" fi &decimal(n) enddef;
%-------------------------------------------------------------------------------------------------
vardef bond_type(expr n)=
diff --git a/graphics/mcf2graph/mcf_data_base.mcf b/graphics/mcf2graph/mcf_data_base.mcf
index 015712b2df..726ac90578 100644
--- a/graphics/mcf2graph/mcf_data_base.mcf
+++ b/graphics/mcf2graph/mcf_data_base.mcf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.04.18
+% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.05.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tag1:var1;tag2:var2;tag3:var3 .....
% first character of line '%' comment out
@@ -89,13 +89,13 @@ Cat:biological;EN:Capsaicin;MW:305.418
Cat:biological;EN:Thiamine;MW:300.81
+
<30,Ph,4:/NH2,@3,\`1,!,<-12,?5,{-1,-4}=dl,{1,5,8}:N,11:S,{6,9}:/_,
- @-3,\,!2,OH,8:p_^72,@(6.7,1.5),Cl,n_^15
+ @-3,\,!2,OH,8:p_^72,@(6.7,1.5),Cl,n_^15
+------------------------------------------------------------------------------
Cat:biological;EN:Gibberellin A3;MW:346.379
+
<18,?5,3=?7,5=?6[12],@8,160`1.3,&3,13=dl,6=wf,8=wb,
- @5,40~zf`1,O,50,//O^180,&14~zb,
- 2:/COOH,7://_,13:*/OH,8:/*OH,14:*/_,{1,4}:*/H^60
+ @5,40~zf`1,O,50,//O^180,&14~zb,
+ 2:/COOH,7://_,13:*/OH,8:/*OH,14:*/_,{1,4}:*/H^60
+------------------------------------------------------------------------------
Cat:biological;EN:Cholesterol;MW:386.664
+
@@ -105,7 +105,7 @@ Cat:biological;EN:Cholesterol;MW:386.664
Cat:biological;EN:Riboflavin;MW:376.37
+
<30,Ph,3=?6,9=?6,{8,16}=dl,{7,10,14}:N,12:NH,{11,13}://O,{1,6}:/_,
- @10,\`1.2,!,*/OH,!,/*OH,!,*/OH,!2,OH
+ @10,\`1.2,!,*/OH,!,/*OH,!,*/OH,!2,OH
+------------------------------------------------------------------------------
Cat:biological;EN:Resveratrol;MW:228.24
+
@@ -122,7 +122,7 @@ Cat:synthetic;EN:Hexaphenylbenzene;MW:534.6876
Cat:synthetic;EN:Kekulene;MW:600.7
+
<30,Ph,{3,-2,-3,-2,-3,-2,-3,-2,-3,-2}=?6,(-3,6)=?6[3],@-4,&6,
-{8,12,14,16,18,22,24,26,28,32,34,36,38,42,44,46,48,52,54,56,58}=dl
+ {8,12,14,16,18,22,24,26,28,32,34,36,38,42,44,46,48,52,54,56,58}=dl
+------------------------------------------------------------------------------
Cat:synthetic;EN:18-Crown-6;MW:264.32
+
@@ -131,13 +131,13 @@ Cat:synthetic;EN:18-Crown-6;MW:264.32
Cat:synthetic;EN:Porphyrin;MW:310.4
+
<9,#1,?5,@3,\,54,?5,@-2,\,54,?5,@-2,\,54,?5,@-2,\,&5,##,
-{1,4,6,8,10,14,16,18,21,23,27}=dl,{4,17}:N,{11,23}:NH
+ {1,4,6,8,10,14,16,18,21,23,27}=dl,{4,17}:N,{11,23}:NH
+------------------------------------------------------------------------------
Cat:synthetic;EN:Sulflower;MW:448.69
+
<67.5,?8,{1,3,5,7}=?5,@11,30`1.15,&12,@14,30`1.15,&15,
-@17,30`1.15,&18,@20,30`1.15,&9,{9,12,13,16,17,20,21,24}=dl,
-{10,13,16,19,21,22,23,24}:S
+ @17,30`1.15,&18,@20,30`1.15,&9,{9,12,13,16,17,20,21,24}=dl,
+ {10,13,16,19,21,22,23,24}:S
+------------------------------------------------------------------------------
Cat:synthetic;EN:Arsphenamine x5;MW:915.2
+
@@ -178,7 +178,7 @@ Cat:pesticide;EN:pp-DDT;MW:354.49
Cat:pesticide;EN:Endrin;MW:380.91
+
<30,?6`1.3,3=?6,6=dl,9=?3,-1:O,
- @2,210~wf`1.5,&5~wb,@7,210~zf`1.5,&10~zb,{1,2,5,6,12^-210,12^-150}:/Cl
+ @2,210~wf`1.5,&5~wb,@7,210~zf`1.5,&10~zb,{1,2,5,6,12^-210,12^-150}:/Cl
+------------------------------------------------------------------------------
Cat:pesticide;EN:Acrinathrin;MW:541.45
+
@@ -192,7 +192,7 @@ Cat:pesticide;EN:Cafenstrole;MW:350.4
Cat:pesticide;EN:Carfentrazone-ethyl;MW:412.19
+
<30,Ph,4:/F,6:/Cl,@1,\,!,/Cl,!,//O,!,O,!2,
- @3,\,|,?5,4=dl,{1,3,5}:N,-4://O,-3:/CF2,-2:/_
+ @3,\,|,?5,4=dl,{1,3,5}:N,-4://O,-3:/CF2,-2:/_
+------------------------------------------------------------------------------
Cat:pesticide;EN:Carboxin;MW:235.301
+
@@ -258,7 +258,7 @@ Cat:pesticide;EN:Fenitrothion;MW:277.23
Cat:pesticide;EN:Fipronil;MW:437.2
+
<30,Ph,{2,4}:/Cl,6:/CF3,@3,\,|,?5,{2,4}=dl,{1,2}:N,3:/CN,5:/NH2,
- @-2,\,S,//O,!,CF3
+ @-2,\,S,//O,!,CF3
+------------------------------------------------------------------------------
Cat:pesticide;EN:Flumequine;MW:261.225
+
@@ -343,7 +343,7 @@ Cat:pesticide;EN:Tetraconazole;MW:372.145
Cat:pesticide;EN:Endosulfan;MW:406.904
+
<26,?7,7=?6[13],@11,208~wf`1.45,&8~wb,10=dl,{3,5}:O,4:S,4://O,
- {8,9,10,11,12^-210,12^-150}:/Cl
+ {8,9,10,11,12^-210,12^-150}:/Cl
+------------------------------------------------------------------------------
Cat:pesticide;EN:Uniconazole-P;MW:291.779
+
@@ -417,13 +417,13 @@ Cat:antibiotics;EN:Oxacillin;MW:401.4363
Cat:antibiotics;EN:Cloxacillin;MW:435.8813
+
<45,?4,-3=?5,2:N,7:S,3^45:/*H,1://O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH,!,//O,!,<-24,?5,{-2,-5}=dl,-2:N,-3:O,-4:/_,@-1,\^-24,Ph,-5:/Cl
+ @4,*\^15,NH,!,//O,!,<-24,?5,{-2,-5}=dl,-2:N,-3:O,-4:/_,@-1,\^-24,Ph,-5:/Cl
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Dicloxacillin;MW:470.3264
+
<45,?4,-3=?5,2:N,7:S,3^45:/*H,1://O^15,5:/*COOH^-18,6:??,
- @4,*\^15,NH,!,//O,!,<-24,?5,{-2,-5}=dl,-2:N,-3:O,-4:/_,
- @-1,\^-24,Ph,{-1,-5}:/Cl
+ @4,*\^15,NH,!,//O,!,<-24,?5,{-2,-5}=dl,-2:N,-3:O,-4:/_,
+ @-1,\^-24,Ph,{-1,-5}:/Cl
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Cefalexin;MW:347.3889
+
@@ -433,60 +433,60 @@ Cat:antibiotics;EN:Cefalexin;MW:347.3889
Cat:antibiotics;EN:Cefalonium;MW:458.5107
+
<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1://O^15,@5,\*,//O,!,O,n_^40,
- @4,*\^15,NH,!,//O,!2,?5,{-1,-3}=dl,-4:S,
- @6,\,!,|,Ph,1:N,1:p_^180,@4,\,//O,!,NH2
+ @4,*\^15,NH,!,//O,!2,?5,{-1,-3}=dl,-4:S,
+ @6,\,!,|,Ph,1:N,1:p_^180,@4,\,//O,!,NH2
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Cefazorin;MW:454.51
+
<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1://O^15,5:/*COOH,
- @4,*\^15,NH,!,//O,!2,?5,{-2,-4}=dl,{-1,-2,-3,-5}:N,
- @6,\,!,S,!,?5,{-3,-5}=dl,-1:S,-2:/_,{-3,-4}:N
+ @4,*\^15,NH,!,//O,!2,?5,{-2,-4}=dl,{-1,-2,-3,-5}:N,
+ @6,\,!,S,!,?5,{-3,-5}=dl,-1:S,-2:/_,{-3,-4}:N
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Cefquinome;MW:528.6
+
<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1://O^15,@5,\*,//O,!,O,n_^40,
- @4,*\^15,NH,!,//O,!,//'(N,!,O,!),!,?5,{-2,-5}=dl,-3:S,-1:N,-2:/NH2,
- @6,\,!,Ph,-2=?6,-10:N,-10:p_^180
+ @4,*\^15,NH,!,//O,!,//'(N,!,O,!),!,?5,{-2,-5}=dl,-3:S,-1:N,-2:/NH2,
+ @6,\,!,Ph,-2=?6,-10:N,-10:p_^180
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Ceftiofur;MW:523.5626
+
<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1://O^15,5:/*COOH,
- @4,*\^15,NH,!,//O,!,//'(N,!,O,!),!,?5,{-2,-5}=dl,-3:S,-1:N,-2:/NH2,
- @6,\,!,S,!,//O,!,?5,{-1,-3}=dl,-4:O
+ @4,*\^15,NH,!,//O,!,//'(N,!,O,!),!,?5,{-2,-5}=dl,-3:S,-1:N,-2:/NH2,
+ @6,\,!,S,!,//O,!,?5,{-1,-3}=dl,-4:O
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Cefuroxime;MW:424.3852
+
<45,?4,-3=?6,-4=dl,2:N,8:S,3^45:/*H,1://O^15,5:/*COOH,
- @4,*\^15,NH,!,//O,!,//'(N,!,O,!),!,?5,{-1,-3}=dl,-4:O,@6,\,!,O,!,//O,!,NH2
+ @4,*\^15,NH,!,//O,!,//'(N,!,O,!),!,?5,{-1,-3}=dl,-4:O,@6,\,!,O,!,//O,!,NH2
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Apramycin;MW:539.58
+
<30,?6,-4=?6,{2,10}:O,@1,\*,O,60~zb,?6,@9,\*,O,-60~zb,?6,-5:O,
- {7,13,-2}:*/OH,{14,-1}:/*OH,{15,17}:*/NH2,{6,-3}:/*NH2,8:*/NH!>vt,
- -4:*/!OH,3:/*H^-60`.75,4:*/H^60`.75
+ {7,13,-2}:*/OH,{14,-1}:/*OH,{15,17}:*/NH2,{6,-3}:/*NH2,8:*/NH!>vt,
+ -4:*/!OH,3:/*H^-60`.75,4:*/H^60`.75
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Gentamycin;MW:477.596
+
<-30,?6,@1,\*,O,0~zb,?6,-5:O,@5,\*,O,0~zb,?6,-5:O,{2,4}:*/NH2,20:/*NH2,6:*/OH,
- 11:*/OH^-35,11:/*_^35,12:*/NH!,13:/*OH,17:/'(*/_,!NH!)
+ 11:*/OH^-35,11:/*_^35,12:*/NH!,13:/*OH,17:/'(*/_,!NH!)
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Kanamycin;MW:484.499
+
<-30,?6,@1,\*,O,0~zb,?6,-5:O,@5,\,O,0,?6,-5:O,
- {2,4,12}:*/NH2,{6,19}:*/OH,{11,13,18,20}:/*OH,10:*/!OH,17:*/!NH2
+ {2,4,12}:*/NH2,{6,19}:*/OH,{11,13,18,20}:/*OH,10:*/!OH,17:*/!NH2
+------------------------------------------------------------------------------
Cat:antibiotics;EN:DihydroStreptmycin;MW:583.574
+
<54,?5,3:O,4:/*_,5:/!OH^-48,5:/*OH^35,@1,\*,O,-24~wb,?6,-5:O,@2,*\,O,24~zb,?6,
- {10,15}:*/OH,{11,16,18}:/*OH,9:/*!OH,12:*/NH!,
- @17,*\^-18,NH,!,//NH,!,NH2,@19,*\,NH,!,//NH,!,NH2
+ {10,15}:*/OH,{11,16,18}:/*OH,9:/*!OH,12:*/NH!,
+ @17,*\^-18,NH,!,//NH,!,NH2,@19,*\,NH,!,//NH,!,NH2
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Fradiomycin;MW:614.644
+
<30,?6,3:O,2:/*!NH2,1:*/OH,6:/*OH,5:*/NH2,
- @4,*\,O,!~wb,?6,{-3,-5^15}:/*NH2,-2:*/OH^-15,
- @-1,\*,O,-72~wb,?5,-4:O,-1:/*OH>vt,-3:*/!OH>vt,
- @-2,\*^-24,O,-60~zb,?6,-5:O,-1:/*NH2,-2:*/OH,-3:/*OH,-4:/*!NH2>60
+ @4,*\,O,!~wb,?6,{-3,-5^15}:/*NH2,-2:*/OH^-15,
+ @-1,\*,O,-72~wb,?5,-4:O,-1:/*OH>vt,-3:*/!OH>vt,
+ @-2,\*^-24,O,-60~zb,?6,-5:O,-1:/*NH2,-2:*/OH,-3:/*OH,-4:/*!NH2>60
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Streptmycin;MW:581.574
+
@@ -497,18 +497,18 @@ Cat:antibiotics;EN:Streptmycin;MW:581.574
Cat:antibiotics;EN:Neospiramycin;MW:698.9
+
<-90,#1,60,60,-60,60,60,-60,60,60,-60,60,60,60,-60,60,-60,&1,##,
- {12,14}=dl,2:O,1:/*_,5:/*OH,3://O,10:/*_,6:/*O!>vt,
- @-6,\*,O,!~wb,?6`.7,-5:O,-3:/*N?!,-4:*/_,
- @7,\*,O,0~wb,?6`.7,-5:O,-2:*/N?!,-1:/*OH,-4:*/_,-3:/*OH,@8,\*,!,!!,O
+ {12,14}=dl,2:O,1:/*_,5:/*OH,3://O,10:/*_,6:/*O!>vt,
+ @-6,\*,O,!~wb,?6`.7,-5:O,-3:/*N?!,-4:*/_,
+ @7,\*,O,0~wb,?6`.7,-5:O,-2:*/N?!,-1:/*OH,-4:*/_,-3:/*OH,@8,\*,!,!!,O
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Emamectine;MW:886.133
+
<24,?6,6=?5,3=dl,9:O,2:*/OH,3:/_,6:/*OH^-60,
- @5,#1.04,6,//O,-60,O,60~wb,60,-60,60~wf,60,-60,60,60,60,-60,60,##,&7,
- {-1,-3,-7}=dl,(-11,-10)=?6[4],@-2,?6,-6=wf,-1=zb,-5=dl,
- {-1,-6}:O,-3:*/_,@-2,\,*/_,!2,
- 17:/_,19:/*_,@18,\,O,!,?6`.8,-1:O,-2:*/_,-4:*/O!,
- @-3,\,O,60,?6`.8,-5:O,-4:*/_,-3:/*NH!,-2:*/O!
+ @5,#1.04,6,//O,-60,O,60~wb,60,-60,60~wf,60,-60,60,60,60,-60,60,##,&7,
+ {-1,-3,-7}=dl,(-11,-10)=?6[4],@-2,?6,-6=wf,-1=zb,-5=dl,
+ {-1,-6}:O,-3:*/_,@-2,\,*/_,!2,
+ 17:/_,19:/*_,@18,\,O,!,?6`.8,-1:O,-2:*/_,-4:*/O!,
+ @-3,\,O,60,?6`.8,-5:O,-4:*/_,-3:/*NH!,-2:*/O!
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Spinosad;MW:731.968
+
@@ -560,7 +560,7 @@ Cat:antibiotics;EN:Chlortetracyclin;MW:478.88
Cat:antibiotics;EN:Oxytetracyclin;MW:460.434
+
<30,Ph,{-4,-3,-3}=?6,{16,19}=dl,{10,18}://O,7:*/_^-35,11:*/OH,
-{5,7~zf^35,13~wf^60,14,16}:/OH,15:*/N?!,17:/CONH2
+ {5,7~zf^35,13~wf^60,14,16}:/OH,15:*/N?!,17:/CONH2
+------------------------------------------------------------------------------
Cat:antibiotics;EN:Tetracyclin;MW:444.435
+
@@ -614,12 +614,12 @@ Cat:biological;EN:Limonin;MW:470.518
Cat:biological;EN:Cromolyn;MW:468.37
+
<30,Ph,|,-1=?6,3=dl,1:O,4://O,2:/COOH,
-@$2,\,O,!2,/OH,!2,O,60,Ph,|,-5=?6,3=dl,4:O,1://O,3:/COOH
+ @$2,\,O,!2,/OH,!2,O,60,Ph,|,-5=?6,3=dl,4:O,1://O,3:/COOH
+------------------------------------------------------------------------------
Cat:biological;EN:Emetine;MW:480.649
+
<30,Ph,{-4,-4}=?6,8:N,{1,6}:/O!,-2:/*!,{7^-60,12^-60}:/*H,
-@-3,\,!~zb,<-60,|,?6,5=dl,2:NH,-6^-60:*/H,|,-2=?6,{2,4}=dl,{-2,-3}:/O!
+ @-3,\,!~zb,<-60,|,?6,5=dl,2:NH,-6^-60:*/H,|,-2=?6,{2,4}=dl,{-2,-3}:/O!
+------------------------------------------------------------------------------
Cat:biological;EN:Acronycine;MW:321.376
+
@@ -636,12 +636,12 @@ Cat:biological;EN:Febrifugine;MW:301.346
Cat:biological;EN:Mitomycine C;MW:334.332
+
<30,?6,{3,6}=dl,{2,5}://O,1:/_,-4=?5,-3:N,
-6:/NH2,,-3=?5,-2=?3,-1=wb,-2=wf,-1:NH,8:/*O!^35,@$9,\,!,O,60,//O,!,NH2
+ 6:/NH2,,-3=?5,-2=?3,-1=wb,-2=wf,-1:NH,8:/*O!^35,@$9,\,!,O,60,//O,!,NH2
+------------------------------------------------------------------------------
Cat:biological;EN:Podophyllotoxin;MW:414.41
+
<0,?5,{2,5}:O,-3=Ph2,-3=?6,-3=?5,-2:O,-1=wb,-3://O,
-@10,\*,Ph,{-2,-3,-4}:/O!,13:/*OH,{11~wf^-60,12~zf^60}:/H
+ @10,\*,Ph,{-2,-3,-4}:/O!,13:/*OH,{11~wf^-60,12~zf^60}:/H
+------------------------------------------------------------------------------
Cat:biological;EN:Warfarin;MW:308.333
+
@@ -658,17 +658,17 @@ Cat:biological;EN:Baicalein;MW:270.24
Cat:biological;EN:Reserpine;MW:608.688
+
<54,Ph,-4=?5,-2=?6,-4=?6,-3=?6,9=dl,11:N,7:NH,10:*/H^-60,{15^-60,16^60}:/*H,
-@20,*\,O,!,//O,!,Ph,{-2,-3,-4}:/O!,{1,19~zf>rl}:/O!,18:*/COO!>lr
+ @20,*\,O,!,//O,!,Ph,{-2,-3,-4}:/O!,{1,19~zf>rl}:/O!,18:*/COO!>lr
+------------------------------------------------------------------------------
Cat:biological;EN:Rotenone;MW:394.423
+
<-60,?5,{-3,-2,-3,-4}=?6,{7,9,-2,-4}=dl,{3,17}=dr,
-{2,13,16}:O,10://O,{11^-60,12^60}:*/H,{-2,-3}:/O!,@1,*\,/_,!!
+ {2,13,16}:O,10://O,{11^-60,12^60}:*/H,{-2,-3}:/O!,@1,*\,/_,!!
+------------------------------------------------------------------------------
Cat:biological;EN:Pyrethrin I;MW:328.452
+
<30,?3,{3^35~wf,3^-35~zf}:/_,@1,*\,!!,?!,
-@2,\*,//O,!,O,-36~zb,|,?5,-2=dl,-1:/_,-3://O,@-2,\,!4,{-1,-3}=dl
+ @2,\*,//O,!,O,-36~zb,|,?5,-2=dl,-1:/_,-3://O,@-2,\,!4,{-1,-3}=dl
+------------------------------------------------------------------------------
Cat:biological;EN:Oseltamivir;MW:312.40
+
@@ -677,14 +677,14 @@ Cat:biological;EN:Oseltamivir;MW:312.40
Cat:biological;EN:Paclitaxel;MW:853.918
+
?6,5=dl,@3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O,
-4:??,6:/_,{3^-60,15}:*/OH,8:/*H^-60,9:*/_^60,10://O,
-@1,\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,
-@7,\*,O,-45,//O,60,Ph,11:*/OCO!>rl,12:/*OCO!^-15>lr
+ 4:??,6:/_,{3^-60,15}:*/OH,8:/*H^-60,9:*/_^60,10://O,
+ @1,\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,
+ @7,\*,O,-45,//O,60,Ph,11:*/OCO!>rl,12:/*OCO!^-15>lr
+------------------------------------------------------------------------------
Cat:biological;EN:Mevastatin;MW:390.52
+
<30,?6,2=dl,4:*/H^60,-4=?6,-4=dl,9:*/_,
-@10,*\,!,60~wb,?6,6:O,-2://O,-4:/*OH,@5,\*,O,60,//O,!,*/_,!2
+ @10,*\,!,60~wb,?6,6:O,-2://O,-4:/*OH,@5,\*,O,60,//O,!,*/_,!2
+------------------------------------------------------------------------------
Cat:biological;EN:Sesamine;MW:354.35
+
@@ -698,7 +698,7 @@ Cat:biological;EN:Morphine;MW:285.343
Cat:biological;EN:Quinine;MW:324.424
+
<30,Ph,3=Ph,7:N,6:/O!,
-@10,\,*/OH,/H~zf^-60,!,|,?6,2:N,1:*/H^60,@4,*\,!!,@2,165~zf,60,&5~zb
+ @10,\,*/OH,/H~zf^-60,!,|,?6,2:N,1:*/H^60,@4,*\,!!,@2,165~zf,60,&5~zb
+------------------------------------------------------------------------------
Cat:biological;EN:Atoropin;MW:289.375
+
@@ -711,7 +711,7 @@ Cat:biological;EN:Colchicine;MW:399.443
Cat:biological;EN:Lycorine;MW:287.315
+
<30,Ph,-4=?6,-2=?6,6=?5,(9,12)=?5[3],13=dl,8:N,{15,17}:O,
-9:/*H^180,10:*/H^60,13:*/OH,14:/*OH
+ 9:/*H^180,10:*/H^60,13:*/OH,14:/*OH
+------------------------------------------------------------------------------
Cat:biological;EN:Ibotenic acid;MW:158.113
+
@@ -733,8 +733,8 @@ Cat:biological;EN:Psilocybin;MW:284.248
Cat:biological;EN:Tetrodotoxine;MW:319.27
+
#1,<60,-90,60,-30`1.15,150,60,&1,@3,-135,60,-30`1.15,150,&4,
-@10,\,O,60`1.33,60,&($3)~si_,@8,-15~si_,O,&12,##,
-@9,45,-60,OH,1^120://NH,{5~zf^-15,7,9^-75,12,13~zf}:/OH,{2,6^180}:NH
+ @10,\,O,60`1.33,60,&($3)~si_,@8,-15~si_,O,&12,##,
+ @9,45,-60,OH,1^120://NH,{5~zf^-15,7,9^-75,12,13~zf}:/OH,{2,6^180}:NH
+------------------------------------------------------------------------------
Cat:biological;EN:Aflatoxin B1;MW:312.27
+
@@ -747,37 +747,37 @@ Cat:biological;EN:Aflatoxin B1;MW:312.27
Cat:antibiotics;EN:Vancomycin;MW:1449.25
+
<-30,#1,!12,{1,3,12}=zf,7=wf,/H^-60,60,*/OH,60,
- Ph,-4:/Cl,@-3,\,O,!,Ph,@-4,\,O,!,Ph,-1^15:/Cl,@-3,\,/*OH,*/H^-60,&1,
- @7,&26,@$1,60,//O,60,NH,60,/*H,*/COOH^180,-60,
- Ph,{-2,-4}:/OH,@-1,\,Ph,-5:/OH,@-2,&4,##,
- {3^40,6,9,12}://O,{2,5,8,11}:NH,{1,4^180}:*/H,{7^-60,10^60,14^60}:/*H,
- @10,*\^-60,60,//O,!,NH2,@13,*\,NH,!,//O,!,/??!,*/H^60,!~zf,NH,!,
- @23,\,O,!,|,?6`.7,2:O,3^10:/!OH,{4,5}:/OH,
- @-1,\,O,!,|,?6`.7,6:O,{3^35,5}:/_,3^-35:/NH2,4:/OH
+ Ph,-4:/Cl,@-3,\,O,!,Ph,@-4,\,O,!,Ph,-1^15:/Cl,@-3,\,/*OH,*/H^-60,&1,
+ @7,&26,@$1,60,//O,60,NH,60,/*H,*/COOH^180,-60,
+ Ph,{-2,-4}:/OH,@-1,\,Ph,-5:/OH,@-2,&4,##,
+ {3^40,6,9,12}://O,{2,5,8,11}:NH,{1,4^180}:*/H,{7^-60,10^60,14^60}:/*H,
+ @10,*\^-60,60,//O,!,NH2,@13,*\,NH,!,//O,!,/??!,*/H^60,!~zf,NH,!,
+ @23,\,O,!,|,?6`.7,2:O,3^10:/!OH,{4,5}:/OH,
+ @-1,\,O,!,|,?6`.7,6:O,{3^35,5}:/_,3^-35:/NH2,4:/OH
+------------------------------------------------------------------------------
Cat:biological;EN:Maitotoxin;MW:3425.86
+
<55.8,?6,-4=?7 ,{-4,-3,-3,-3}=?6,@-3,\,!3,?6,{-4,-3,-3,-3}=?6,@-3,\,?6,-3=?6,
- @-3,\,!3,60,<-30,?6,-3=?6,@-3,30,<30,?6,{-3,-3}=?6,-3=?7,{-4,-3,-3}=?6,
- @-2,\,?6,-3=?6,-3=?7,{-3,-3}=?6,-3=?8,-3=dl,{-5,-3,-3,-3}=?6,
- {5,7,15,16,23,24,32,40,41,48,49,58,59,72,73,82,83,90,91,99,
- 100,107,113,114,122,123,130,131,140,141,148,149}:O,
- {1^60,2,26,28,29,51,54,61,63,68,75^60,78,109}:*/OH,
- {11,20,35,45,52,55,65,69,86}:/*OH,{47,57,71}:/*H^60,
- {3,8,13,17,21,33,38,42,56,70,84,92,101,106,111,128,138,142,146,150}:/*H^-60,
- {4,14,22,34,39,43,81,89,98,102,116,121,125,129,133}:*/H^60,
- {6,46,50,53,60,67,74}:*/H^-60,
- {9,18,85,93,112,139,143,147}:*/_`1^60,
- {80,88,97,115,120,124}:/*_`1^-60,108:*/_`1^-60,
- @$6,\,|,!11,60~dr,-60,60,OH,2:/*OH,{7,10}:*/OH,{1,3}:*/_,{8~zf,11~dm,12}:/_,
- @6,\,O,30,SOO,30,"O{Na}",
- @$36,-45~zf,O,30,SOO,30,"O{Na}",
- @$150,\,|,!7,{1,2}:/*OH,4:*/_,5:/*_,7=dl
+ @-3,\,!3,60,<-30,?6,-3=?6,@-3,30,<30,?6,{-3,-3}=?6,-3=?7,{-4,-3,-3}=?6,
+ @-2,\,?6,-3=?6,-3=?7,{-3,-3}=?6,-3=?8,-3=dl,{-5,-3,-3,-3}=?6,
+ {5,7,15,16,23,24,32,40,41,48,49,58,59,72,73,82,83,90,91,99,
+ 100,107,113,114,122,123,130,131,140,141,148,149}:O,
+ {1^60,2,26,28,29,51,54,61,63,68,75^60,78,109}:*/OH,
+ {11,20,35,45,52,55,65,69,86}:/*OH,{47,57,71}:/*H^60,
+ {3,8,13,17,21,33,38,42,56,70,84,92,101,106,111,128,138,142,146,150}:/*H^-60,
+ {4,14,22,34,39,43,81,89,98,102,116,121,125,129,133}:*/H^60,
+ {6,46,50,53,60,67,74}:*/H^-60,
+ {9,18,85,93,112,139,143,147}:*/_`1^60,
+ {80,88,97,115,120,124}:/*_`1^-60,108:*/_`1^-60,
+ @$6,\,|,!11,60~dr,-60,60,OH,2:/*OH,{7,10}:*/OH,{1,3}:*/_,{8~zf,11~dm,12}:/_,
+ @6,\,O,30,SOO,30,"O{Na}",
+ @$36,-45~zf,O,30,SOO,30,"O{Na}",
+ @$150,\,|,!7,{1,2}:/*OH,4:*/_,5:/*_,7=dl
+------------------------------------------------------------------------------
Cat:biological;EN:Okadaic acid;MW:805.00
+
<30,?6,@4,?6,@-4,\,!3,<-12,?5,@-3,<-12,?6,-3=?6,@-3,*\,!3,
- ?6,@-4,?6,@6,\,!,/*Me^-40,*/OH^20,!,//O,!1,OH,
- 3=wb,11=dl,15=dr,17=wf,19=wf,38=wb,{5,7,16,24,25,33,42}:O,
- 32:*/H^60,10:/Me,{12,31}:*/_,27://_,37:/*_,28:/OH,{3,29}:/*OH
+ ?6,@-4,?6,@6,\,!,/*Me^-40,*/OH^20,!,//O,!1,OH,
+ 3=wb,11=dl,15=dr,17=wf,19=wf,38=wb,{5,7,16,24,25,33,42}:O,
+ 32:*/H^60,10:/Me,{12,31}:*/_,27://_,37:/*_,28:/OH,{3,29}:/*OH
+------------------------------------------------------------------------------
diff --git a/graphics/mcf2graph/mcf_exa_soc.mf b/graphics/mcf2graph/mcf_exa_soc.mf
index 581833d27b..b6bc26a348 100644
--- a/graphics/mcf2graph/mcf_exa_soc.mf
+++ b/graphics/mcf2graph/mcf_exa_soc.mf
@@ -1,17 +1,15 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.04.18
+% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.05.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %%% it must be version 4.63
-message "* mcf_exa_soc 2021.04.18";
+input mcf2graph.mf; %%% it must be version 4.64
+message "* mcf_exa_soc 2021.05.05";
message "";
%------------------------------------------------------------------------------
fsize:=(35mm,24mm);
max_blength:=4.5mm;
+tag1:="J"; tag2:="C"; tag3:="fm"; tag4:="mw"; tag5:="EN"; tag6:="MW";
%------------------------------------------------------------------------------
%%%%sw_fframe:=1;
-tag1:="J"; tag2:="C"; tag3:="fm"; tag4:="mw"; tag5:="EN"; tag6:="MW";
-%%%% atomfont:="uhvb8r";
-%%%% atomfont:="cmtt8";
%%%% outputformat:="png"; hppp:=vppp:=0.1; outputtemplate:="%j-%3c.png";
%%ext(defaultfont:="uhvr8r"; defaultscale:=.6; label.lrt(inf_EN,(-2bp,1.5bp));)
%------------------------------------------------------------------------------
@@ -38,9 +36,10 @@ beginfont("f+:mcf_data_base","t:n","v:5") % 'f+'=keep file open
if check(mc)=0: MC(scantokens(mc)) fi % 'v:5' select No.5
endfont
%******************************************************************************
+%%%%forever: % All
for i=6 upto 155: % No.6 - No.155
beginfont("f+:mcf_data_base","v:*") % 'f+'=keep file open
- if check(mc)=0: MC(scantokens(mc)) fi % 'v:0' no selection
+ if check(mc)=0: MC(scantokens(mc)) fi % 'v:*' no selection
endfont %
exitif f_EOF=1; % exit if file end
endfor
diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf
index e29e57298f..3307bc7cd8 100644
--- a/graphics/mcf2graph/mcf_example.pdf
+++ b/graphics/mcf2graph/mcf_example.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_example.tex b/graphics/mcf2graph/mcf_example.tex
index b6ea719116..c0874a757c 100644
--- a/graphics/mcf2graph/mcf_example.tex
+++ b/graphics/mcf2graph/mcf_example.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2021.04.18
+% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2021.05.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage{graphicx}
@@ -8,7 +8,7 @@
\edef\jobname{mcf_exa_soc}%
\usepackage{mcf_setup}
%--------------------------------
-\pdfpkresolution=1200
+%%%%\pdfpkresolution=1200
%--------------------------------
%%%%\edef\f@ext{pk}%
\edef\f@ext{mps}%
@@ -46,9 +46,9 @@
\openin\@auxf=\jobname-info.aux%
\CONT@true%
\loop%
-\read\@auxf to \@info%
-\ifeof\@auxf\CONT@false\else\@sfor\@info{\tag@var\@list}%
- %------------------------------------------------------------
+\read\@auxf to \info%
+\ifeof\@auxf\CONT@false\else%
+ \infotovar{\info}%
\begin{picture}(3750,3350)%
\put(20,3000){\footnotesize\bf \the\f@num:\EN}%
\put(20,2750){\labelM MW:\mw { / }FM:\fm}%
diff --git a/graphics/mcf2graph/mcf_man_soc.mf b/graphics/mcf2graph/mcf_man_soc.mf
index f2f874ee85..3fff89f92e 100644
--- a/graphics/mcf2graph/mcf_man_soc.mf
+++ b/graphics/mcf2graph/mcf_man_soc.mf
@@ -1,9 +1,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.04.18
+% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.05.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %% it must be version 4.63
+input mcf2graph.mf; %% it must be version 4.64
% ** use data base file 'mcf_data_base.mcf'
-message "mcf_man_soc 2021.04.18"; message "";
+message "mcf_man_soc 2021.05.05"; message "";
%------------------------------------------------------------------------
sw_mframe:=0;
sw_expand:=0;
@@ -1312,28 +1312,28 @@ endfont
%***************************************************************************
sw_calc:=1;
ext(defaultfont:="uhvr8r"; defaultscale:=.75;
- label.urt("NO = "&decimal(char_num),(0.01w,0.60h));
- label.urt("EN = "&inf_EN ,(0.01w,0.57h));
- label.urt("MW = "&inf_MW ,(0.01w,0.54h));
- label.urt("mw = "&cal_MW ,(0.01w,0.51h));
- label.urt("fm = "&cal_FM ,(0.01w,0.48h));
- label.urt("w = "&decimal(w) ,(0.01w,0.45h));
- label.urt("h = "&decimal(h) ,(0.01w,0.42h));
- label.urt("n = "&decimal(n) ,(0.01w,0.39h));
+ label.urt("NO = "&decimal(char_num),(0.01w,0.55h));
+ label.urt("EN = "&inf_EN ,(0.01w,0.52h));
+ label.urt("MW(D) = "&inf_MW ,(0.01w,0.49h));
+ label.urt("MW(C) = "&cal_MW ,(0.01w,0.46h));
+ label.urt("FM(C) = "&cal_FM ,(0.01w,0.43h));
+ label.urt("w = "&decimal(w) ,(0.01w,0.40h));
+ label.urt("h = "&decimal(h) ,(0.01w,0.37h));
+ label.urt("n = "&decimal(n) ,(0.01w,0.34h));
label.urt("ratio_thickness_bond = "&decimal(ratio_thickness_bond),
- (0.01w,0.36h));
+ (0.01w,0.31h));
label.urt("ratio_atom_bond = "&decimal(ratio_atom_bond),
- (0.01w,0.33h));
+ (0.01w,0.28h));
label.urt("ratio_bondgap_bond = "&decimal(ratio_bondgap_bond),
- (0.01w,0.30h));
+ (0.01w,0.25h));
label.urt("ratio_chain_ring = "&decimal(ratio_chain_ring),
- (0.01w,0.27h));
- label.urt("sw_fframe = "&decimal(sw_fframe),(0.01w,0.24h));
- label.urt("sw_aframe = "&decimal(sw_aframe),(0.01w,0.21h));
- label.urt("sw_trimming = "&decimal(sw_trimming),(0.01w,0.18h));
- label.urt("mc1= "&mc1,(0.01w,0.12h));
- label.urt("mc2= "&mc2,(0.01w,0.09h));
- label.urt("mc3= "&mc3,(0.01w,0.06h));
+ (0.01w,0.22h));
+ label.urt("sw_fframe = "&decimal(sw_fframe),(0.01w,0.19h));
+ label.urt("sw_aframe = "&decimal(sw_aframe),(0.01w,0.16h));
+ label.urt("sw_trimming = "&decimal(sw_trimming),(0.01w,0.13h));
+ label.urt("mc1= "&mc1,(0.01w,0.09h));
+ label.urt("mc2= "&mc2,(0.01w,0.06h));
+ label.urt("mc3= "&mc3,(0.01w,0.03h));
)
%***************************************************************************
beginfont("EN:Ampicillin","MW:349.405",
@@ -1341,8 +1341,9 @@ beginfont("EN:Ampicillin","MW:349.405",
": 3^45:/*H,1://O^15,5:/*COOH^-18,6:??,",
": @4,*\^15,NH,!,//O,!,/*NH2,!,Ph"
)
- fsize:=(72mm,110mm);
- blength:=7mm;
+ sw_output:=None;
+ fsize:=(72mm,85mm);
+ blength:=6mm;
if check(mc)=0: MCat(0.5,0.95)(scantokens(mc)) fi
endfont
%***************************************************************************
@@ -1350,8 +1351,9 @@ beginfont("EN:Cholesterol","MW:386.65",
": <30,?6,{-4,-2}=?6,-4=?5,7=dl, ",
": 10:/*H^180,11:/*H^-60,17:/*H^-54, ",
": 1:*/OH,{4,12}:*/_^60,@-1,18,/*_,-60,!3,?!")
- fsize:=(72mm,110mm);
- blength:=7mm;
+ sw_output:=None;
+ fsize:=(72mm,85mm);
+ blength:=5.5mm;
if check(mc)=0: MCat(0.5,0.95)(scantokens(mc)) fi
endfont
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf
index 34896448cd..a952e91f00 100644
--- a/graphics/mcf2graph/mcf_manual.pdf
+++ b/graphics/mcf2graph/mcf_manual.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_manual.tex b/graphics/mcf2graph/mcf_manual.tex
index f96a5357cf..e5842f9eac 100644
--- a/graphics/mcf2graph/mcf_manual.tex
+++ b/graphics/mcf2graph/mcf_manual.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2021.04.18
+% Molecular Coding Format manual by Akira Yamaji 2021.05.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage[pdftex]{graphicx}
@@ -12,8 +12,8 @@
%----------------------------------------------------------------------------
%%%%\pdfpkresolution=1200
%----------------------------------------------------------------------------
-\edef\fext{pk}% **** for proof print (fast)
-%%%%\edef\fext{mps}% **** for final print (it takes long time)
+%%%%\edef\fext{pk}% **** for proof print (fast)
+\edef\fext{mps}% **** for final print (it takes long time)
%----------------------------------------------------------------------------
%%%%\edef\fext{png}%
%%%%\edef\fext{svg}%
@@ -54,9 +54,9 @@
}%
%---------------------------------------------------------------------------
\def\put@char{%
- \begin{picture}(75,130)%
- \put(0,120){\bf [\NO]\EN}%
- \put(5,115){\small\tt FM:\fm{ }MW:\mw}%
+ \begin{picture}(75,100)%
+ \put(0,95){\bf [\NO]\EN}%
+ \put(5,90){\small\tt FM:\fm{ }MW:\mw}%
\put(5,0){\MCFgraph}%
\end{picture}%
}%
@@ -1470,7 +1470,6 @@ endfont
\subsection{Metafont/Metapost souce file}
\index{mcf2graph.mf}%
\index{sw\_output}%
-\index{sw\_file\_open}%
\index{tag}%
\index{var}%
\begin{verbatim}
@@ -1608,9 +1607,13 @@ Cat:biological;EN:Linoleic acid;MW:280.45
\index{mi}%
\index{w}%
\index{h}%
+\index{Info1}%
+\index{Info2}%
+\index{Info\_t}%
\begin{verbatim}
sw_output:=Info1; % tag1:var1;tag2:var2
sw_output:=Info2; % tag1;tag2 var1;var2
+ sw_output:=Info_t; % tag1:var1;tag2:var2 / output 'temp-info.aux'
\end{verbatim}
\paragraph{(Command line)}
\begin{verbatim}
@@ -1671,6 +1674,7 @@ h : font height
\noindent%
\newpage
\subsection{Metafont aux file output}
+\index{Mfont}%
\paragraph{(Insert option parameter setting)}
\begin{verbatim}
sw_output:=Mfont;
@@ -1731,11 +1735,69 @@ if check(mc)=0: MC(scantokens(mc)) fi
endfont
\end{verbatim}
%------------------------------------------------------------------------
+\noindent%
+\newpage
+\subsection{MCF aux file output(1)}
+\paragraph{(Insert option parameter setting)}
+\index{Mcode}%
+\begin{verbatim}
+sw_output:=Mcode;
+\end{verbatim}
+\paragraph{(Command line)}
+\index{Mcode\_t}%
+\begin{verbatim}
+ >mpost -s ahlength=8 FILENAME (sw_output=Mcode)
+\end{verbatim}
+\paragraph{(Output)}
+\begin{verbatim}
+file name = 'mcf_exa_soc-001-Adenine-mc.aux'
+
+<30,?6,3=?5,{1,3,5,9}=dl,{2,6,9}:N,5:/NH2,7:NH
+\end{verbatim}
+%------------------------------------------------------------------------
+\subsection{MCF aux file output(2)}
+\paragraph{(Insert option parameter setting)}
+\begin{verbatim}
+beginfont("f:mcf_data_base","t:EN","v:Adenine")
+ sw_output:=Mcode_t;
+endfont
+\end{verbatim}
+%-----------------------------------------------------------------------
+\paragraph{(Lualatex example)}
+%-----------------------------------------------------------------------
+\begin{verbatim}
+%-----------------------------------------------------------------------
+\begin{mplibcode}
+ beginfont("f:mcf_data_base","t:EN","v:Vancomycin")
+ sw_output:=Mcode_t; %%%% output temp-mc.aux %%%%
+ endfont;
+\end{mplibcode}
+%-----------------------------------------------------------------------
+\verbatiminput{temp-mc.aux}
+%-----------------------------------------------------------------------
+\end{verbatim}
+%-----------------------------------------------------------------------
+\paragraph{(Output)}
+%-----------------------------------------------------------------------
+\begin{verbatim}
+file name = 'temp-mc.aux'
+
+<-30,#1,!12,{1,3,12}=zf,7=wf,/H^-60,60,*/OH,60,
+ Ph,-4:/Cl,@-3,\,O,!,Ph,@-4,\,O,!,Ph,-1^15:/Cl,@-3,\,/*OH,*/H^-60,&1,
+ @7,&26,@$1,60,//O,60,NH,60,/*H,*/COOH^180,-60,
+ Ph,{-2,-4}:/OH,@-1,\,Ph,-5:/OH,@-2,&4,##,
+ {3^40,6,9,12}://O,{2,5,8,11}:NH,{1,4^180}:*/H,{7^-60,10^60,14^60}:/*H,
+ @10,*\^-60,60,//O,!,NH2,@13,*\,NH,!,//O,!,/??!,*/H^60,!~zf,NH,!,
+ @23,\,O,!,|,?6`.7,2:O,3^10:/!OH,{4,5}:/OH,
+ @-1,\,O,!,|,?6`.7,6:O,{3^35,5}:/_,3^-35:/NH2,4:/OH
+\end{verbatim}
+%------------------------------------------------------------------------
\newpage
\noindent%
\subsection{Report output}
\paragraph{(Insert option parameter setting)}
\index{sw\_output}%
+\index{Report}%
\begin{verbatim}
sw_output:=Report;
\end{verbatim}
@@ -1798,6 +1860,8 @@ endfont
\subsection{MOL file output}
\paragraph{(Insert option parameter setting)}
\index{sw\_output}%
+\index{MOL2k}%
+\index{MOL3k}%
\begin{verbatim}
sw_output:=MOL2k; % MOL(V2000)
sw_output:=MOL3k; % MOL(V3000)
@@ -1848,6 +1912,7 @@ M END
%----------------------------------------------------------------------------
\newpage
\subsection{LuaTeX file example}
+\index{None}%
%############################################################################
\begin{verbatim}
\documentclass{article}
diff --git a/graphics/mcf2graph/mcf_mplib_exa.pdf b/graphics/mcf2graph/mcf_mplib_exa.pdf
index 8c6aaac13a..92420313d8 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.pdf
+++ b/graphics/mcf2graph/mcf_mplib_exa.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_mplib_exa.tex b/graphics/mcf2graph/mcf_mplib_exa.tex
index 71f5f26909..93ac0e0f1f 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.tex
+++ b/graphics/mcf2graph/mcf_mplib_exa.tex
@@ -1,18 +1,19 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2021.04.18
+% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2021.05.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.63
+% ** mcf2graph.mf must be version 4.64
% ** use mcf_data_base.mcf
\documentclass{article}
%------------------------------------------------------------------------------
\usepackage{luamplib}%
\usepackage[T1]{fontenc}%
-\usepackage{textcomp}%
+\usepackage{textcomp,verbatim,mcf_setup}%
\mplibcodeinherit{enable}%
\mplibverbatim{enable}%
\mplibnumbersystem{double}%
\everymplib{%
if unknown Ph1: input mcf2graph.mf; fi
+ tag1:="J"; tag2:="C"; tag3:="fm"; tag4:="mw"; tag5:="EN"; tag6:="MW";
sw_output:=None;
sw_fframe:=4;
max_blength:=4.5mm;
@@ -46,56 +47,52 @@
\subsection{Chlorophyll a}
\noindent%
\begin{verbatim}
-beginfont("f:mcf_data_base","t:EN","v:Chlorophyll a")
+beginfont("f:mcf_data_base","t:EN","v:Chlorophyll a",
+ ":,||,{4,11,17,23}:red,27:green") %%%% change color of atoms %%%%
fsize:=(100mm,45mm);
if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,h-13mm));
- )
+ ext(defaultscale:=0.8;
+ label.lrt("FM(C): "&cal_FM,(0,h-5mm));
+ label.lrt("MW(C): "&cal_MW,(0,h-9mm));
+ label.lrt("MW(D): "&inf_MW,(0,h-13mm));)
endfont
\end{verbatim}
%------------------------------------------------------------------------------------
\begin{mplibcode}
-beginfont("f:mcf_data_base","t:EN","v:Chlorophyll a")
+beginfont("f:mcf_data_base","t:EN","v:Chlorophyll a",
+ ":,||,{4,11,17,23}:red,27:green") %%%% change color of atoms %%%%
fsize:=(100mm,45mm);
if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,h-13mm));
- )
+ ext(defaultscale:=0.8;
+ label.lrt("FM(C): "&cal_FM,(0,h-5mm));
+ label.lrt("MW(C): "&cal_MW,(0,h-9mm));
+ label.lrt("MW(D): "&inf_MW,(0,h-13mm));)
endfont
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\subsection{Okadaic acid}
+\subsection{Dinophysistoxin-1}
\noindent%
\begin{verbatim}
-beginfont("f:mcf_data_base","t:EN","v:Okadaic acid")
+beginfont("f:mcf_data_base","t:EN","v:Okadaic acid","EN:Dinophysistoxin-1",
+ "MW:819",":,@38,*\,-1=red") %%%% add methyl group (color red) %%%%
fsize:=(150mm,35mm);
if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,h-13mm));
- )
+ ext(defaultscale:=0.8;
+ label.lrt("FM(C): "&cal_FM,(0,h-5mm));
+ label.lrt("MW(C): "&cal_MW,(0,h-9mm));
+ label.lrt("MW(D): "&inf_MW,(0,h-13mm));)
endfont;
\end{verbatim}
%----------------------------------------------------------------------------
\begin{mplibcode}
-beginfont("f:mcf_data_base","t:EN","v:Okadaic acid")
+beginfont("f:mcf_data_base","t:EN","v:Okadaic acid","EN:Dinophysistoxin-1",
+ "MW:819",":,@38,*\,-1=red") %%%% add methyl group (color red) %%%%
fsize:=(150mm,35mm);
if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,h-13mm));
- )
+ ext(defaultscale:=0.8;
+ label.lrt("FM(C): "&cal_FM,(0,h-5mm));
+ label.lrt("MW(C): "&cal_MW,(0,h-9mm));
+ label.lrt("MW(D): "&inf_MW,(0,h-13mm));)
endfont;
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -128,12 +125,10 @@ beginfont("EN:Erythromycin","MW:733.93",
%------------------------------------------------------------------
fsize:=(120mm,30mm);
if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,h-13mm));
- )
+ ext(defaultscale:=0.8;
+ label.lrt("FM(C): "&cal_FM,(0,h-5mm));
+ label.lrt("MW(C): "&cal_MW,(0,h-9mm));
+ label.lrt("MW(D): "&inf_MW,(0,h-13mm));)
endfont;
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -162,12 +157,10 @@ beginfont("EN:Paclitaxel","MW:853.918",
%---------------------------------------------------------------------
fsize:=(120mm,30mm);
if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,h-13mm));
- )
+ ext(defaultscale:=0.8;
+ label.lrt("FM(C): "&cal_FM,(0,h-5mm));
+ label.lrt("MW(C): "&cal_MW,(0,h-9mm));
+ label.lrt("MW(D): "&inf_MW,(0,h-13mm));)
endfont
\end{mplibcode}
%----------------------------------------------------------------------------
@@ -190,86 +183,70 @@ beginfont("EN:Kekulene","MW:600.7",
": {8,12,14,16,18,22,24,26,28,32,34,36,38,42,44,46,48,52,54,56,58}=dl ")
fsize:=(120mm,25mm);
if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,h-13mm));
- )
+ ext(defaultscale:=0.8;
+ label.lrt("FM(C): "&cal_FM,(0,h-5mm));
+ label.lrt("MW(C): "&cal_MW,(0,h-9mm));
+ label.lrt("MW(D): "&inf_MW,(0,h-13mm));)
endfont
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
%----------------------------------------------------------------------------
-\subsection{Vancomycin}
+\subsection{Maitotoxin}
\noindent%
-%----------------------------------------------------------------------------
+%--------------------------------------------------------------------------------
\begin{verbatim}
-% extract from molecular data base file 'mcf_data_base.mcf'
-EN:Vancomycin;MW:1449.25
-+
-<-30,#1,!12,{1,3,12}=zf,7=wf,/H^-60,60,*/OH,60,
- Ph,-4:/Cl,@-3,\,O,!,Ph,@-4,\,O,!,Ph,-1^15:/Cl,@-3,\,/*OH,*/H^-60,&1,
- @7,&26,@$1,60,//O,60,NH,60,/*H,*/COOH^180,-60,
- Ph,{-2,-4}:/OH,@-1,\,Ph,-5:/OH,@-2,&4,##,
- {3^40,6,9,12}://O,{2,5,8,11}:NH,{1,4^180}:*/H,{7^-60,10^60,14^60}:/*H,
- @10,*\^-60,60,//O,!,NH2,@13,*\,NH,!,//O,!,/??!,*/H^60,!~zf,NH,!,
- @23,\,O,!,|,?6`.7,2:O,3^10:/!OH,{4,5}:/OH,
- @-1,\,O,!,|,?6`.7,6:O,{3^35,5}:/_,3^-35:/NH2,4:/OH
-+------------------------------------------------------------------------------
-\end{verbatim}
-%----------------------------------------------------------------------------
+%--------------------------------------------------------------------------------
\begin{mplibcode}
-beginfont("f:mcf_data_base","t:EN","v:Vancomycin")
-fsize:=(150mm,40mm);
- if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,h-4mm));
- label.lrt("MW(C): "&cal_MW,(0,h-8mm));
- label.lrt("MW(D): "&inf_MW,(0,h-12mm));
- )
-endfont;
+ beginfont("f:mcf_data_base","t:EN","v:Maitotoxin")
+ sw_output:=Mcode_t; %%%% output temp-mc.aux %%%%
+ endfont;
+ beginfont("f:mcf_data_base","t:EN","v:Maitotoxin")
+ sw_output:=Info_t; %%%% output temp-info.aux %%%%
+ if check(mc)=0: MC(scantokens(mc)) fi
+ endfont
+\end{mplibcode}
+\verbatiminput{temp-mc.aux} %%%% input temp-mc.aux %%%%
+\begin{mplibcode}
+ beginfont("f:mcf_data_base","t:EN","v:Maitotoxin")
+ fsize:=(120mm,60mm); fmargin:=(0,3mm); sw_fframe:=1;
+ if check(mc)=0: MC(scantokens(mc)) fi %%%% output font %%%%
+ endfont
\end{mplibcode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\subsection{Maitotoxin}
-\noindent%
%--------------------------------------------------------------------------------
-\begin{verbatim}
-% extract from molecular data base file 'mcf_data_base.mcf'
-EN:Maitotoxin;MW:3425.86
-+
-<55.8,?6,-4=?7 ,{-4,-3,-3,-3}=?6,@-3,\,!3,?6,{-4,-3,-3,-3}=?6,@-3,\,?6,-3=?6,
- @-3,\,!3,60,<-30,?6,-3=?6,@-3,30,<30,?6,{-3,-3}=?6,-3=?7,{-4,-3,-3}=?6,
- @-2,\,?6,-3=?6,-3=?7,{-3,-3}=?6,-3=?8,-3=dl,{-5,-3,-3,-3}=?6,
- {5,7,15,16,23,24,32,40,41,48,49,58,59,72,73,82,83,90,91,99,
- 100,107,113,114,122,123,130,131,140,141,148,149}:O,
- {1^60,2,26,28,29,51,54,61,63,68,75^60,78,109}:*/OH,
- {11,20,35,45,52,55,65,69,86}:/*OH,{47,57,71}:/*H^60,
- {3,8,13,17,21,33,38,42,56,70,84,92,101,106,111,128,138,142,146,150}:/*H^-60,
- {4,14,22,34,39,43,81,89,98,102,116,121,125,129,133}:*/H^60,
- {6,46,50,53,60,67,74}:*/H^-60,
- {9,18,85,93,112,139,143,147}:*/_`1^60,
- {80,88,97,115,120,124}:/*_`1^-60,108:*/_`1^-60,
- @$6,\,|,!11,60~dr,-60,60,OH,2:/*OH,{7,10}:*/OH,{1,3}:*/_,{8~zf,11~dm,12}:/_,
- @6,\,O,30,SOO,30,"O{Na}",
- @$36,-45~zf,O,30,SOO,30,"O{Na}",
- @$150,\,|,!7,{1,2}:/*OH,4:*/_,5:/*_,7=dl
-+------------------------------------------------------------------------------
+\newread\auxfile%
+\openin\auxfile=temp-info.aux %%%% input temp-info.aux %%%%
+\read\auxfile to \info%
+\infotovar{\info} %%%% info to variables %%%%
+\closein\auxfile%
+{\tt ** EN:\EN \quad MW(C):\MW \quad MW(D):\mw \quad FM(C):\fm}%
+%--------------------------------------------------------------------------------
\end{verbatim}
%--------------------------------------------------------------------------------
\begin{mplibcode}
-beginfont("f:mcf_data_base","t:EN","v:Maitotoxin")
- fsize:=(170mm,55mm);
- if check(mc)=0: MC(scantokens(mc)) fi
- ext(
- defaultscale:=0.8;
- label.lrt("FM(C): "&cal_FM,(0,.8h-5mm));
- label.lrt("MW(C): "&cal_MW,(0,.8h-9mm));
- label.lrt("MW(D): "&inf_MW,(0,.8h-13mm));
- )
-endfont
+ beginfont("f:mcf_data_base","t:EN","v:Maitotoxin")
+ sw_output:=Mcode_t; %%%% output temp-mc.aux %%%%
+ endfont;
+ beginfont("f:mcf_data_base","t:EN","v:Maitotoxin")
+ sw_output:=Info_t; %%%% output temp-info.aux %%%%
+ if check(mc)=0: MC(scantokens(mc)) fi
+ endfont
+\end{mplibcode}
+\verbatiminput{temp-mc.aux} %%%% input temp-mc.aux %%%%
+\begin{mplibcode}
+ beginfont("f:mcf_data_base","t:EN","v:Maitotoxin")
+ fsize:=(120mm,60mm); fmargin:=(0,3mm); sw_fframe:=1;
+ if check(mc)=0: MC(scantokens(mc)) fi %%%% output font %%%%
+ endfont
\end{mplibcode}
+%--------------------------------------------------------------------------------
+\newread\auxfile%
+\openin\auxfile=temp-info.aux %%%% input temp-info.aux %%%%
+\read\auxfile to \info%
+\infotovar{\info} %%%% info to variables %%%%
+\closein\auxfile%
+{\tt ** EN:\EN \quad MW(C):\MW \quad MW(D):\mw \quad FM(C):\fm}%
+%--------------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\subsection{TCA cycle}
@@ -278,20 +255,20 @@ endfont
beginfont("EN:TCA cycle")
fsize:=(160mm,75mm);
max_blength:=5mm;
-%------------------------------------------------------------------------
+%--------------------------------------------------------------------------------
COOH:='(//O,!,OH);
HOCO:='(OH,!,//O,);
-MCat(0.33, 1)(<30,HOCO,!,//O,!2,COOH)
-MCat(0.66, 1)(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165)
-MCat(1, 1)(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH)
-MCat(1, 0.55)(<30,HOCO,!4,COOH,@-4,\`1,COOH)
-MCat(1, 0.05)(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH)
-MCat(0.66,0.05)(<30,HOCO,!3,//O,!,COOH)
-MCat(0.33,0.05)(<30,HOCO,!3,//O,!,"{S-CoA}")
-MCat(0, 0.05)(<30,HOCO,!3,COOH)
-MCat(0, 0.55)(<30,HOCO,!,!~dr,!,COOH)
-MCat(0, 1)(<30,HOCO,!3,COOH,3:/OH)
-%-------------------------------------------------------------------------
+MCat(0.33, 1)(<30,HOCO,!,//O,!2,COOH) % Oxaloacetate
+MCat(0.66, 1)(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165) % Citrate
+MCat(1, 1)(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH) % cis-Aconitate
+MCat(1, 0.55)(<30,HOCO,!4,COOH,@-4,\`1,COOH) % Isocitrate
+MCat(1, 0.05)(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH) % Oxalosuccinate
+MCat(0.66,0.05)(<30,HOCO,!3,//O,!,COOH) % alfa-Ketoglutarate
+MCat(0.33,0.05)(<30,HOCO,!3,//O,!,"{S-CoA}") % Succinyl-CoA
+MCat(0, 0.05)(<30,HOCO,!3,COOH) % Succinate
+MCat(0, 0.55)(<30,HOCO,!,!~dr,!,COOH) % Fumarate
+MCat(0, 1)(<30,HOCO,!3,COOH,3:/OH) % L-Malate
+%--------------------------------------------------------------------------------
ext(
defaultfont:="uhvr8r";
defaultscale:=0.75;
@@ -346,16 +323,16 @@ fsize:=(160mm,75mm);
max_blength:=5mm;
COOH:='(//O,!,OH);
HOCO:='(OH,!,//O,);
-MCat(0.33, 1)(<30,HOCO,!,//O,!2,COOH)
-MCat(0.66, 1)(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165)
-MCat(1, 1)(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH)
-MCat(1, 0.55)(<30,HOCO,!4,COOH,@-4,\`1,COOH)
-MCat(1, 0.05)(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH)
-MCat(0.66,0.05)(<30,HOCO,!3,//O,!,COOH)
-MCat(0.33,0.05)(<30,HOCO,!3,//O,!,"{S-CoA}")
-MCat(0, 0.05)(<30,HOCO,!3,COOH)
-MCat(0, 0.55)(<30,HOCO,!,!~dr,!,COOH)
-MCat(0, 1)(<30,HOCO,!3,COOH,3:/OH)
+MCat(0.33, 1)(<30,HOCO,!,//O,!2,COOH) % Oxaloacetate
+MCat(0.66, 1)(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165) % Citrate
+MCat(1, 1)(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH) % cis-Aconitate
+MCat(1, 0.55)(<30,HOCO,!4,COOH,@-4,\`1,COOH) % Isocitrate
+MCat(1, 0.05)(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH) % Oxalosuccinate
+MCat(0.66,0.05)(<30,HOCO,!3,//O,!,COOH) % alfa-Ketoglutarate
+MCat(0.33,0.05)(<30,HOCO,!3,//O,!,"{S-CoA}") % Succinyl-CoA
+MCat(0, 0.05)(<30,HOCO,!3,COOH) % Succinate
+MCat(0, 0.55)(<30,HOCO,!,!~dr,!,COOH) % Fumarate
+MCat(0, 1)(<30,HOCO,!3,COOH,3:/OH) % L-Malate
ext(
defaultfont:="uhvr8r";
defaultscale:=0.75;
diff --git a/graphics/mcf2graph/mcf_setup.sty b/graphics/mcf2graph/mcf_setup.sty
index 930a76e1fd..57bcca621c 100644
--- a/graphics/mcf2graph/mcf_setup.sty
+++ b/graphics/mcf2graph/mcf_setup.sty
@@ -1,6 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf_setup.sty for input aux file by Akira Yamaji 2020.04.04
+% mcf_setup.sty for input aux file by Akira Yamaji 2021.05.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%------------------------------------
\edef\@J{J} \edef\Job{}% 1
\edef\@C{C} \edef\Char{}% 2
%------------------------------------
@@ -72,6 +73,8 @@
}%
%-----------------------------------------------------------------------------
\def\z@num#1{\ifnum#1<10 00\the#1\else\ifnum#1<100 0\the#1\else \the#1\fi\fi}%
+%-----------------------------------------------------------------------------
+\def\infotovar#1{\@sfor#1{\tag@var\@list}}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sfor : modified latex2e kernel program control
% @for => @sfor delimiter ',' => ';'
diff --git a/help/wp-conv/GPL.txt b/help/wp-conv/GPL.txt
deleted file mode 100644
index 694ca98495..0000000000
--- a/help/wp-conv/GPL.txt
+++ /dev/null
@@ -1,341 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- <http://www.gnu.org>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/help/wp-conv/bin/license.txt b/help/wp-conv/bin/license.txt
deleted file mode 100644
index 694ca98495..0000000000
--- a/help/wp-conv/bin/license.txt
+++ /dev/null
@@ -1,341 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- <http://www.gnu.org>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/help/wp-conv/html2LaTeX.txt b/help/wp-conv/html2LaTeX.txt
deleted file mode 100644
index c0f2df7ca9..0000000000
--- a/help/wp-conv/html2LaTeX.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Filename: html2latex.zip
-
-Function: Creates LateX 2.09 files from html-files.
-
-Comments: Compiled from Unix sources version 0.9c with emx 0.9c fix 2.
- Runs on DOS, Windows (3.x, 9x, NT), OS/2 Warp
-
-Recompiled by Roland Reimers (reimers@muffin.physik.uni-bremen.de)
diff --git a/help/wp-conv/html2latex.html b/help/wp-conv/html2latex.html
deleted file mode 100644
index f40d6c35bd..0000000000
--- a/help/wp-conv/html2latex.html
+++ /dev/null
@@ -1,147 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <title>html2latex(1)</title>
-</head>
-
-<body>
-
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-
-Up to <a href="textopc.html">Converters from LaTeX to PC
-Textprocessors - Overview</a></p>
-
-<h1>NAME</h1>
-
-<p>html2latex -- convert HTML markup to LaTeX markup </p>
-
-<p>The original author, Nathan Torrington, wrote:<br>
-
-"The source is available
-<a href="http://www.vuw.ac.nz/non-local/software/html2latex-0.9c.tar.Z">here (external link)</a>",
-<br>
-but this is obviously no longer the case. <br>
-Instead, I (W.Hennings) put it <a href="bin/html2ltx.zip">here</a>.
-This zip-file includes an msdos executable. <br>
-There is another compiled version on CTAN which I also put
-<a href="bin/html2LaTeX.zip">here</a> (see <a href="html2LaTeX.txt">description</a>), but both
-result from the same source. </p>
-
-<p></p>
-
-<h1>SYNOPSIS</h1>
-
-<p><tt>html2latex <i>[opt ...] [file ...]</i></tt>
-</p>
-
-<h1>DESCRIPTION</h1>
-
-<p>For each file argument, <i>html2latex</i>
-converts the text as HTML markup to LaTeX markup. If no files are
-specified, a usage message is given.
-Input will be taken from standard input for files named <em>-</em>.
-Output will to a similarly named file with a <b>.tex</b>
-extension (<i>html2latex</i> recognises
-<b>.html</b> extensions). </p>
-
-<p>Options modify the action of <i>html2latex</i>.
-The options are: </p>
-
-<dl>
-
- <dt>-n</dt>
-
- <dd>Number sections. </dd>
-
- <dt>-p</dt>
-
- <dd>Place page breaks after the title page (if present) and the
-table of
-contents (if present). </dd>
-
- <dt>-c</dt>
-
- <dd>Generate a table of contents. </dd>
-
- <dt>-s</dt>
-
- <dd>Create no files -- LaTeX is output to stdout. </dd>
-
- <dt>-t Title</dt>
-
- <dd>Generate a title page, with the title 'Title'. </dd>
-
- <dt>-a Author</dt>
-
- <dd>Generate a title page, with the author 'Author'. </dd>
-
-</dl>
-
-<h1>EXAMPLES</h1>
-
-<p>An example of use is html2latex -n - &lt; file.html | less
-This converts <b>file.html</b> to LaTeX and pages through the output.
-The sections (corresponding to heading tags in the HTML source) will
-be numbered. </p>
-
-<p>Another example is html2latex -t 'Introduction to HTML' -a
-gnat -p -c html-intro This takes input from the file <b>html-intro</b>,
-writing to <b>html-intro.tex</b>, and adds a title page
-(with title <i>Introduction to HTML</i> and
-author <i>gnat</i>) and table of contents with page-breaks after
-both. The sections of the document are not numbered. </p>
-
-<h1>BUGS</h1>
-
-<p>Current the only HTML tags supported are: <b>TITLE, H1,
-H2, H3, H4, H5, H6,
-UL, OL, DL, DT, DD, LI, B, I, U, EM, STRONG, CODE, SAMP, KBD, VAR, DFN,
-CITE, LISTING</b>. The only recognised SGML escapes are <b>&amp;amp,
-&amp;lt,
-&amp;gt</b>. <b>ADDRESS</b> tags are handled
-badly. </p>
-
-<p>The <b>COMPACT</b> attribute to a <b>DL</b>
-tag is not recognised.
-<b>MENU</b> and <b>DIR</b> styles are not handled well.
-<b>TITLE</b> text are ignored. </p>
-
-<p>Currently <b>PRE</b> tags are not handled at all.
-</p>
-
-<p>The entire file is read into memory. For long HTML documents
-on machines with little memory, this may cause problems. </p>
-
-<h1>CREDITS</h1>
-
-<p>Nathan Torkington adapted the HTML parser from NCSA's Xmosaic
-package
-(<b>file://ncsa.uiuc.edu/Web/xmosaic</b>) and wrote the
-conversion code. The HTML parser code is subject to the NCSA
-restrictions. The conversion code is subject to the VUW restrictions.
-Enquiries should be sent via e-mail to
-<tt>Nathan.Torkington "at" vuw.ac.nz</tt>. </p>
-
-<p></p>
-
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-
-<ul>
-
- <li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format)
-is granted as long as the contents are unchanged. </li>
-
- <li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-
-</ul>
-
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-
-</body>
-</html>
diff --git a/help/wp-conv/index.html b/help/wp-conv/index.html
index cf3b3bd59f..34bbd4d469 100644
--- a/help/wp-conv/index.html
+++ b/help/wp-conv/index.html
@@ -1,94 +1,29 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html lang="en-us"><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta name="description" content="Converters between LaTeX and PC Textprocessors" lang="en">
-<meta name="keywords" content="FAQ, converter, LaTeX, winword, word perfect, textprocessor" lang="en"><title>Converters between LaTeX and PC Textprocessors</title>
-
-</head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage
-(external link)</a></p>
-<h1>Converters between LaTeX and PC Textprocessors</h1>
-<p>Author: Wilfried Hennings (texconvfaq "at" gmx.de).<br>
-last update of this page or any of its subpages: April 24, 2021<br>
-The url of this page is <a href="http://tug.org/utilities/texconv/index.html">
-http://tug.org/utilities/texconv/index.html</a></p>
-<p><strong>I am experiencing that I have practically no
-time to keep these pages up to date so I'd like to retreat from this. <br>
-I would be glad if someone else would take over this task.
-I would then transfer the copyright to her/him.</strong><br>
-(The copyright only serves two objectives:<br>
-&#8211; to prevent anyone from claiming the copyright for himself
-and thus
-preventing the original author from continuing her/his work,<br>
-&#8211; to achieve that the author is been informed about any
-incorrect or missing information.)</p>
-<p><strong>The main list is divided into two parts:</strong></p>
-<p><strong>Converters <a href="textopc.html">from
-LaTeX to PC textprocessors</a></strong></p>
-<p><strong>Converters <a href="pctotex.html">from
-PC textprocessors to LaTeX</a></strong></p>
-<p>Please also read the <a href="#copyright">copyright</a>
-and the <a href="#disclaimer">disclaimer</a></p>
-<p>You can also <strong>download the whole set of www pages</strong>
-in a <strong><a href="wp-conv.zip">zip file</a></strong>.
-It is also available from <a href="#ctan">CTAN</a>
-(directory .../help/wp-conv/).</p>
-<h2>Related external www pages</h2>
-<p><a href="https://www.texfaq.org/FAQ-fmtconv" target="_blank">TeX-FAQ (English), Other conversions to and
-from (La)TeX</a></p>
-<p><a href="http://projekte.dante.de/DanteFAQ/DokumentKonverter" target="_blank">
-TeX-FAQ (auf Deutsch), Dokument-Konverter von bzw. in das
-(La)TeX-Markup-Format (externer Link)</a>
-</p>
-<h3><a name="ctan">CTAN</a></h3>
-<p>CTAN is "The Comprehensive TeX Archive Network". It consists
-of a primary host and many mirrors.</p>
-<p>The primary CTAN host &#8211; which also allows uploading &#8211; is the
-German:<br>
-<a href="http://www.dante.de/" target="_blank">Der deutsche CTAN Server
-(The German CTAN server - external link)</a><br>
-</p>
-<p>It is also possible to order CD-ROM(s) from CTAN with the CTAN contents &#8211; <br>
-description in German: <a href="http://projekte.dante.de/DanteFAQ/Bezugsquellen" target="_blank">
-http://projekte.dante.de/DanteFAQ/Bezugsquellen (external link)</a>,<br>
-description in English: <a href="http://www.tug.org/store/#software" target="_blank">
-http://www.tug.org/store/#software (external link)</a>.</p>
-<hr>
-<p>This HTML page is part of the texconv pages.</p>
-<p><big><strong><a name="copyright">Copyright</a></strong></big>
- 1998 &#8230; 2021 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>It must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation
-format) is granted as long as the contents are unchanged.</li>
-<li>You may NOT ask money for it except a reasonable cost for
-media and distribution.</li>
-</ul>
-<h2><a name="disclaimer">Disclaimer</a></h2>
-<p>1. Because the information is licensed free of charge, there
-is no warranty for the information, to the extent permitted by
-applicable law.
-Except when otherwise stated in writing the copyright holders and/or
-other parties provide the information "as is" without warranty of any
-kind, either expressed or implied, including, but not limited to, the
-implied warranties of merchantability and fitness for a particular
-purpose. The entire risk as to the quality and performance of the
-information is with you. Should the information prove defective, you
-assume the cost of all necessary servicing, repair or correction.</p>
-<p>2. At the time of putting a link in one of my pages, I found
-the linked content appropriate and probably helpful for readers of my
-pages. However in most cases I did not test whether the information on
-external pages is correct or conforms to legal requirements so I take
-no responsibility for its correctness nor for its legal conformity.
-Moreover, external contents may be changed without my knowledge and an
-URL may be taken over by a different party without my knowledge. I
-therefore also take no responsibility for changes of external contents
-after adding a link to one of my webpages.
-If a link seems inappropriate, please inform me. (In this context,
-"external contents" means contents of webpages of which I am not the
-author. In my pages they are marked by the clause "external link".)</p>
-<p>3. All opinions mentioned are my own.</p>
+<html lang="en-us"><head>
+
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+
+
+ <meta name="description" content="Converters between LaTeX and PC Textprocessors" lang="en">
+
+
+ <meta name="keywords" content="FAQ, converter, LaTeX, winword, word perfect, textprocessor" lang="en">
+ <title>Converters between LaTeX and PC Textprocessors</title>
+
+
+</head><body>
+<p>Up to the <a href="http://tug.org">TUG homepage</a></p>
+
+<h1>Converters between LaTeX and PC Textprocessors</h1>
+
+<p>As of May 2021, these pages are no longer maintained. <br>
+</p>
+
+<p>The information was updated and merged into <a href="http://www.texfaq.org/FAQ-fmtconv">http://www.texfaq.org/FAQ-fmtconv</a>.
+<br>
+</p>
+
+<br>
+
+<br>
</body></html> \ No newline at end of file
diff --git a/help/wp-conv/ktbugs.html b/help/wp-conv/ktbugs.html
deleted file mode 100644
index a4de6e6b35..0000000000
--- a/help/wp-conv/ktbugs.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <title>Why K-Talk's software doesn't work for me</title>
-
-</head>
-
-<body>
-
-<h1>Why K-Talk's software doesn't work for me</h1>
-
-<p>last substantial update: May 25, 1998<br>
-editorial update: Oct. 10, 2008</p>
-
-<h3>Distinguish two groups of causes why K-Talk's software
-doesn't work for me:
-</h3>
-
-<h3>A. General Problems</h3>
-
-<p>1. K-Talk's software uses their own formula editor "MathEdit",
-which is incompatible with Microsoft's equation editor. Therefore if I
-convert a LaTeX file to word, only users having K-Talk's MathEdit are
-able to use the converted file.</p>
-
-<p>2. On the PC wordprocessor side, K-Talk's software primarily
-uses the WordPerfect 5.1 format. MS Word users must install extra
-macros for conversion to a "tagged document file". <br>
-
-These macros however are written for Word6 and need some dlls belonging
-to word6 which I don't have because I have word7(95). So I could not
-get them running.</p>
-
-<p>3. Capacity: on converting the "LaTeX2e Kurzbeschreibung"
-(from CTAN, "l2kurz.tex" plus include-files) I get the error message
-"file l2k2.tex too large to include".<br>
-
-As LaTeX is intended for large documents, a professional converter
-should be able to convert large documents!</p>
-
-<h3>B. Localization Problems</h3>
-
-<p>1. In addition to being not compatible with MS word versions
-later than word6, the word macros need to be localized if one doesn't
-have the English version of Word.</p>
-
-<p>2. TexPort doesn't recognize German umlauts used in german.sty
-- see the converted example "l2kurz"</p>
-
-<h3>Sample of Converted Files (LaTeX -&gt; WP)</h3>
-
-<p><a href="bin/essent.zip">essent.zip</a>
-containing the files:<br>
-essential.tex, hndout.sty=LaTeX source<br>
-essent.wp5=wp5.1 file converted by TexPort </p>
-
-<p><a href="bin/l2kurz.zip">l2kurz.zip</a>
-containing the files:<br>
-l2kurz.tex, l2k1.tex, l2k2.tex, l2k3.tex, l2k4.tex, l2ksym.tex, a4.sty,
-german.sty=LaTeX source<br>
-l2kurz.wp5=wp5.1 file converted by TexPort</p>
-
-<p>where essential.tex and l2kurz.tex are originals from CTAN.<br>
-(Meanwhile these files got updated on CTAN.
-If you want to use these files for other purpose than reproducing my
-conclusion, get the current versions from CTAN.)</p>
-
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-
-<ul>
-
- <li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-
- <li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-
-</ul>
-
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-
-</body>
-</html>
diff --git a/help/wp-conv/la2mml.html b/help/wp-conv/la2mml.html
deleted file mode 100644
index f3e61f8357..0000000000
--- a/help/wp-conv/la2mml.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>la2mml: LaTeX to FrameMaker</title></head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="textopc.html">Converters from LaTeX to PC
-Textprocessors - Overview</a></p>
-<h1>la2mml</h1>
-<p>last update: Jan. 22, 2008</p>
-<p>Converts LaTeX documents to MML (Maker Markup Language), a
-format used by Adobe FrameMaker, a page layout program available for
-Unix, Windows, and Mac. </p>
-<p>USA site:
-<a href="http://vasc.ri.cmu.edu/old_help/Document/Latex2fm/latex2fm.html">http://vasc.ri.cmu.edu/old_help/Document/Latex2fm/latex2fm.html
-(external link)</a>
-</p>
-<p>The site <a href="http://www.cs.stir.ac.uk/%7Ekjt/software/framemaker/">
-http://www.cs.stir.ac.uk/~kjt/software/framemaker/ (external link)</a>
-contains templates which make conversion from Framemaker to LaTeX more
-easy. It also supplies converters from Framemaker to LaTeX and from
-LaTeX to
-Framemaker.</p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
diff --git a/help/wp-conv/laola.html b/help/wp-conv/laola.html
deleted file mode 100644
index 0b509318b8..0000000000
--- a/help/wp-conv/laola.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>LAOLA</title>
-
-</head>
-
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX - Overview</a></p>
-<h1>LAOLA</h1>
-<p>last update: Jan. 22, 2008</p>
-<p>LAOLA can read Word6- and Word7-documents under Unix and
-extract the text. </p>
-<p>Excerpt from the WWW page: "LAOLA is a collection of
-documentations and perl programs dealing with binary file formats of
-Windows program documents. LAOLA is giving access to the raw document
-streams of any program using
-"structured storage" technology to save its documents. ELSER is
-dealing especially with these streams as they are present in Word 6 and
-Word 7 documents." </p>
-<p>See <a href="http://user.cs.tu-berlin.de/%7Eschwartz/pmh/">
-http://user.cs.tu-berlin.de/~schwartz/pmh/ (external link)</a>
-</p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
diff --git a/help/wp-conv/latex2rtf.html b/help/wp-conv/latex2rtf.html
deleted file mode 100644
index 8ba5ec132a..0000000000
--- a/help/wp-conv/latex2rtf.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>latex2rtf converter</title></head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage
-(external link)</a><br>
-Up to <a href="textopc.html">Converters from LaTeX to PC
-Textprocessors -
-Overview</a></p>
-<h1>latex2rtf converter </h1>
-<p>this page last updated on Jan. 10, 2011</p>
-<p>latex2rtf, written in C. </p>
-<p>Converts most standard LaTeX markup and some more, but only
-those
-markup and packages which are hard-coded in latex2rtf's program code.
-</p>
-<p>LaTeX equations are converted either to Word's formula fields
-(EQ fields) or images.
-(Anyone who wants and is able to implement conversion to equation
-editor objects please contact me (texconvfaq "at" gmx.de).)<br>
-The default is conversion to formula fields. These generally display
-the equations in a reasonable quality. If in Word you double-click on a
-formula field, it will be converted to an equation editor object, but
-often with really bad result (depending on which constructs are
-contained in the equation). <br>
-Conversion of equations to images requires a TeX installation,
-ImageMagick, and Ghostscript.
-</p>
-<p>References are converted to field functions which must be
-updated after loading the resulting rtf file into Word (mark complete
-document and press F9).
-</p>
-<p>Still there are drawbacks in the conversion. In fact, don't
-expect any LaTeX-file to be converted like you want, don't expect it to
-be converted without errors or warnings, and: don't even expect it to
-be converted at all, since LaTeX2rtf is at most at a very experimental
-stage. LaTeX2rtf is known to have a lot of bugs. In fact we could state
-that there are some special cases, where a LaTeX-file can be translated
-to RTF satisfactorily by LaTeX2rtf. <br>
--- This was sort of disclaimer, ok? Ok! </p>
-<p>C-source and makefiles (compiles on Unix and Macintosh OSX
-with gcc;
-Linux with gcc; MS-DOS/Windows with gcc (djgpp or cygwin); and
-Macintosh OS9 with the DropUnix environment) as well as executables for
-MS-DOS (compatible with win95, win98, winME, nt4.0, win2000, winXP, and
-Vista) and Macintosh are available from <a href="http://sourceforge.net/projects/latex2rtf/">
-http://sourceforge.net/projects/latex2rtf/ (external link)</a>. </p>
-<p>A stable but not always the most recent release is also
-available from <a href="index.html#ctan">CTAN</a>,
-directory .../support/latex2rtf <br>
-(the ... stands for a host specific base directory, which often is
-either "/pub/tex" or "/tex-archive"). </p>
-<p>We still seek for people joining us as maintainer or
-developer. If you are interested, contact me (texconvfaq "at" gmx.de).</p>
-<h3>Program Copyright:</h3>
-<p>This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as
-published by the
-Free Software Foundation; either version 2 of the License, or (at your
-option) any later version. <br>
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANT-ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a href="GPL.txt">GNU General Public License</a>
-for more details. </p>
-<p>Note that this Copyright note only applies to the changes made
-to get the actual version. The older versions have their own Copyright
-policy stated in their distribution. </p>
-<h3>History:</h3>
-<p> In 1994 the first Version of LaTeX2rtf was written by a group
-of students of the Viena University supervised by Ralf Schlatterbeck.
-They took up a LaTeX parser and added most of the functionality to the
-program. In 1995 work continued with a second group of students. The
-result was LaTeX2rtf Version 1.5. </p>
-<p>Unfortunately, two different persons started further
-development of that program, not knowing of each other:</p>
-<ul>
-<li>In 1997, Daniel Taupin started updating this converter. He
-added e.g. the feature to convert equations to bitmaps by invoking the
-TeX engine. However this required the emTeX distribution (for DOS)
-which is no longer supported. </li>
-<li> In 1998, Georg Lehner found the reference to the original
-LaTeX2rtf on this webpage and added some functionality. His work
-resulted in version 1.8aa. Unfortunately he did not know about Daniel's
-developments.</li>
-</ul>
-<p>In 2001, Scott Prahl started to make some significant
-enhancements, also including many of Daniel's additions. He is still
-working on it. Latest stable release is 2.1.1 b5 and includes all of
-the features of Daniel's version.</p>
-<p>Temporarily I (Wilfried Hennings) feel responsible for
-coordinating the exchange of development information. But <em>we
-are still seeking for a person who can act as coordinator of future
-development, and we also need a person to take over the development.
-</em> Anyone feeling able to do that
-please contact me by email to texconvfaq "at" gmx.de. </p>
-<p>The project is now hosted at sourceforge.net which aids in
-further development. Visit its homepage at <a href="http://latex2rtf.sourceforge.net/">
-http://latex2rtf.sourceforge.net/ (external link)</a> or its
-project page at <a href="http://sourceforge.net/projects/latex2rtf/">
-http://sourceforge.net/projects/latex2rtf/ (external link)</a>. </p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998 &#8230; 2011 Wilfried
-Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/ltx2word.html b/help/wp-conv/ltx2word.html
deleted file mode 100644
index 8df71c27d5..0000000000
--- a/help/wp-conv/ltx2word.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head>
- <title>ltx2word macros</title></head>
-
-<body>
-
-
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-
-Up to <a href="textopc.html">Converters from LaTeX to PC Textprocessors -
-Overview</a></p>
-
-<h1>ltx2word macros</h1>
-
-<p>last update: July 24, 2001</p>
-
-<p>LaTeX to WinWord 6, WinWord 7(95) and WinWord 97 converter, written as Word
-macros. </p>
-
-<p>Author: W. Hennings (myself) (texconvfaq "at" gmx.de)</p>
-
-<p>Caution! Quick-and-dirty "pre-alpha" version! <br>
-
-The author grants no warranty of any kind, especially neither for functionality
-nor for any damage caused by use of the program, but suggestions for
-enhancement are welcome. </p>
-
-<p>New version June 11, 1997: More tags implemented, e.g. now also converts
-\begin{tabular} ... \end{tabular} to a table and \begin{center} ...
-\end{center} to centered text. Still no formulae!!</p>
-
-<p>Download: <a href="bin/ltx2word.zip">ltx2word.zip</a>. This zipfile
-contains: </p>
-
-<dl>
-
- <dt>ltx2w95.dot:</dt>
-
- <dd>Template for GERMAN WinWord 7, probably also WinWord 6. <br>
-
-NOT designed for, but adaptable to non-German versions. </dd>
-
- <dt>ltx2w97.doc:</dt>
-
- <dd>Converted to Word97 by Carsten Schwartz &lt;smike "at" vip.cybercity.dk&gt;</dd>
-
- <dt>license.txt:</dt>
-
- <dd>The GNU Public License</dd>
-
-</dl>
-
-<p>Note: This macro set is free software; you can redistribute it and/or modify
-it under the terms of the <a href="http://www.gnu.org/copyleft/gpl.html">GNU
-General Public License</a> as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version. </p>
-
-<hr>
-
-<p>This HTML page is part of the texconv pages.<br>
-
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-
-You may copy and redistribute it under the following conditions:</p>
-
-<ul>
-
- <li>it must remain intact and the contents unchanged; if you'd like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting (e.g.
-from HTML to some other presentation format) is granted as long as the contents
-are unchanged. </li>
-
- <li>you may NOT ask money for it except a reasonable cost for media and
-distribution</li>
-
-</ul>
-
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-
-</body></html>
-pyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting
-(e.g.
-from HTML to some other presentation format) is granted as long as the
-contents
-are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and
-distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
->
diff --git a/help/wp-conv/mathtype.html b/help/wp-conv/mathtype.html
deleted file mode 100644
index 03aa9a61b2..0000000000
--- a/help/wp-conv/mathtype.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head>
- <title>MathType equation editor</title></head>
-
-<body>
-
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC Textprocessors to LaTeX -
-Overview</a></p>
-
-<h1>MathType equation editor</h1>
-
-<p>last update: Sep. 21, 2007</p>
-
-<p>MathType, the full scale, commercial version of the equation editor
-which comes with Microsoft Word, is capable of converting its equations
-to TeX format. Plain Tex, LaTeX, AMS-TeX, AMS-LaTeX and several flavors
-of MathML are available in the current release 6. <br>
-MathType comes with a Word macro which will convert all the equations in a Word
-document into TeX.<br>
-One can also type or paste an equation coded in TeX into MathType 6.</p>
-<p>A special version of MathType, called TeXaide, is now available to be
-downloaded for free from the <a href="http://www.mathtype.com/mathtype/">mathtype homepage (external link)</a>.
-With TeXaide you can compose equations and output them in Plain TeX, AMS TeX,
-LaTeX, and AMS LaTeX. You can also select and copy a Word equation
-(with or without opening the equation editor), paste it into TeXaide
-and then output it in TeX format, one equation at a time. It runs on
-Windows 95, 98, 2000 and NT 4.0 and newer. </p>
-
-<p>I personally have MathType 3.1 and 4.0, too, and these are able to
-convert from their own format as well as from WinWord's EquationEditor
-format TO TeX. The backward direction (TeX to MathType) is ONLY possible
-for TeX code which was produced by MathType (containing a TeX comment
-which allows MathType to see how it was generated).
-<br>However MathType 6 now allows typing or pasting TeX code which thereby
-is converted to a MathType object.
-<br>Back-conversion from MathType to EquationEditor is only possible
-from MathType 3.1 and 4, not from the later versions. </p>
-
-<hr>
-
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2002, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-
-<ul>
- <li>it must remain intact and the contents unchanged; if you'd like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting (e.g.
-from HTML to some other presentation format) is granted as long as the contents
-are unchanged. </li>
- <li>you may NOT ask money for it except a reasonable cost for media and
-distribution</li>
-</ul>
-
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/pc2txtbl.html b/help/wp-conv/pc2txtbl.html
deleted file mode 100644
index 10437c6849..0000000000
--- a/help/wp-conv/pc2txtbl.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html lang="en-us"><head><title>PC -&gt; LaTeX Converter Quick Comparison List</title></head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX -
-Overview</a></p>
-<h1>PC -&gt; LaTeX Converter Quick Comparison List</h1>
-<p><strong>Switch conversion direction: <a href="tx2pctbl.html">From LaTeX to
-PC</a></strong></p>
-<p>Author: Wilfried Hennings (texconvfaq "at" gmx.de), last
-update: March 3, 2011</p>
-<p>NOTE: This table is still under construction. I only had time
-to include the most recent converters.</p>
-<table border="1" width="100%">
-<tbody>
-<tr>
-<th width="18%">Program<br>
-Author(s)<br>
-referred version</th>
-<th width="40%">Features</th>
-<th width="20%">supported Systems</th>
-<th width="190">where to get<br>
-(external links!)</th>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">rtf2latex2e
-<br>
-by Ujwal Sathyam and Scott Prahl (free)<br>2-0-1 (Feb. 1, 2011)</td>
-<td align="left" valign="top" width="40%">convert
-from RTF
-<ul>
-<li> detects text style: bold, italic, color, big,
-small,... </li>
-<li> reads embedded figures: PICT, EMF, GIF, TIFF, WMF, PNG, JPEG </li>
-<li> reads tables: simple to semi-complex </li>
-<li>reads Equation Editor or MathType equations</li>
-<li>converts most greek and math symbols </li>
-<li> reads footnotes</li>
-<li>converted latex file uses utf8<br></li><li>supports codepages 1250, 1251, 1252, 1254, mac, NeXt </li>
-<li> translates hyperlinks using the hyperref package </li>
-</ul>
-</td>
-<td align="left" valign="top" width="20%">all
-kinds of Unix <br>
-DOS, MS Windows</td>
-<td align="left" valign="top" width="190">CTAN:<br>
-.../support/rtf2latex2e <br>
-for most recent version see <br>
-<a href="http://sourceforge.net/projects/rtf2latex2e/">sourceforge.net/
-projects/rtf2latex2e/</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">wsW2LTXGUI<br>
-by Ingo H. de Boer<br>
-1.1.0.0 (May 25, 2006)</td>
-<td align="left" valign="top" width="40%">The
-wsW2LTXGUI program is a graphical user interface to the wsW2LTX library
-which handles all the methods described in the wsW2LTX API reference.<br>
-The wsW2LTX library is an application programming interface (API)
-designed to translate a MS Word document to LaTeX. The library is based
-on libwv and on several other (mostly Unix based) libraries. </td>
-<td align="left" valign="top" width="20%">MS
-Windows</td>
-<td align="left" valign="top" width="190">CTAN:<br>
-.../support/word2latex<br>
-homepage: <a href="http://www.winshell.de/modules/w2ltx_download/">www.winshell.de/
-modules/w2ltx_download/</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">wp2latex
-<br>
-by J. Fojtik (free)<br>
-3.53 (Sep. 19, 2010)</td>
-<td align="left" valign="top" width="40%">convert
-from WordPerfect 3.x, 4.x, 5.x, and 6/7/8.x document files <br>
-converts (among others):
-<ul>
-<li>Equations</li>
-<li>Tables </li>
-<li>Footnotes, Endnotes, Cross-references</li>
-<li>Superscript, Subscript</li>
-<li>Extended characters (foreign language/accented, math,
-Greek - not linedrawing)</li>
-</ul>
-</td>
-<td align="left" valign="top" width="20%">Linux<br>
-DOS, MS Windows</td>
-<td align="left" valign="top" width="190">CTAN:<br>
-.../support/wp2latex
-(older version 3.38)<br>
-for most recent version see <a href="http://www.penguin.cz/%7Efojtik/wp2latex/wp2latex.htm">www.penguin.cz/
-~fojtik/wp2latex/ wp2latex.htm</a> </td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">Word2TeX<br>
-Chikrii Softlab. shareware, 99$ (45$ academic)<br>
-version 5.01 (Feb. 2010)</td>
-<td align="left" valign="top" width="40%">save
-as LaTeX from within Word<br>
-converts:
-<ul>
-<li>Equation Editor 2.x-3.x, Design Science MathType 1.x,
-2.x, 3.x, 3.5, 4.0 embedded objects (*)</li>
-<li>figures (to EPS or PDF)(*)</li>
-<li>tables (even very complicated) (*)</li>
-<li>footnotes</li>
-<li>endnotes (to bibliography)</li>
-<li>index</li>
-<li>cross-references</li>
-<li>paragraph styles (heading1 to heading4, custom styles)</li>
-<li>character attributes</li>
-<li>Greek-charset</li>
-<li>multibyte character encodings (Unicode)</li>
-<li>and many more (see <a href="http://www.word2tex.com/">homepage</a>)</li>
-</ul>
-(*) some restrictions will apply in unregistered Word2TeX</td>
-<td align="left" valign="top" width="20%">MS
-Windows 98 + Word for Windows&nbsp;95, or newer required</td>
-<td align="left" valign="top" width="190">homepage:<br>
-<a href="http://www.word2tex.com/">www.word2tex.com</a></td>
-</tr>
-<tr>
-<td align="left" valign="top">Word-to-LaTeX<br>
-Michal Kebrt (Shareware, 79&nbsp;$)<br>version 2.0 (Jan 2011)</td>
-<td align="left" valign="top">save as LaTeX
-from within Word<br>
-converts:
-<ul>
-<li>equations (conversion to TeX code requires MathType,
-otherwise they are converted to png or eps)</li>
-<li>raster images</li>
-<li>tables</li>
-<li>lists</li>
-<li>footnotes and endnotes</li>
-<li>bookmarks</li>
-<li>and more (see <a href="http://www.wordtolatex.com/">homepage</a>)</li>
-</ul>
-</td>
-<td align="left" valign="top">MS Windows +
-Word for Windows 2002 (XP) or newer required, plus MS .NET Framework 2.0</td>
-<td align="left" valign="top">Homepage: <br>
-<a href="http://www.wordtolatex.com/">www.wordtolatex.com</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">Writer2LaTeX<br>
-converts OpenOffice.org / StarOfficeWriter documents into LaTeX2e
-(free).<br>1.0.0 (Sept. 21, 2009)</td>
-<td align="left" valign="top" width="40%">The
-current version deals with plain text and formulas. <br>
-It is included as export filter in OpenOffice 2.04 and later<br>
-</td>
-<td align="left" valign="top" width="20%">all
-OS supporting Java </td>
-<td align="left" valign="top" width="190">homepage:<br>
-<a href="http://writer2latex.sourceforge.net/">writer2latex.sourceforge.net/</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">Calc2LaTeX<br>
-converts OpenOffice.org spreadsheet tables into LaTeX2e (free)<br>0.2.4 (Oct. 29, 2005)</td>
-<td align="left" valign="top" width="40%">Calc2LaTeX
-is an OpenOffice.org Calc (Spreadsheet) macro for converting tables.</td>
-<td align="left" valign="top" width="20%">Linux
-or MS Windows plus Open Office 1.03, 1.1 or 2.0</td>
-<td align="left" valign="top" width="190">homepage:<br>
-<a href="http://calc2latex.sourceforge.net/">calc2latex.sourceforge.net/</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">Excel2LaTeX<br>
-converts Excel spreadsheet to LaTeX<br>2.1 (Sept. 18, 2008)</td>
-<td align="left" valign="top" width="40%">Excel-macro
-to convert Excel to LaTeX. The generated LaTeX code uses the tabular
-environment.</td>
-<td align="left" valign="top" width="20%">MS
-Windows plus MS Excel</td>
-<td align="left" valign="top" width="190">CTAN:<br><a href="http://www.ctan.org/tex-archive/support/excel2latex/">www.ctan.org/tex-archive/ support/excel2latex/</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">Gnumeric
-can import Excel data and export to LaTeX</td>
-<td align="left" valign="top" width="40%">Gnumeric
-is an open source
-spreadsheet application which can import Excel data and export to LaTeX</td>
-<td align="left" valign="top" width="20%">Linux
-or MS Windows</td>
-<td align="left" valign="top" width="190">homepage:<br>
-<a href="http://www.gnome.org/projects/gnumeric/">www.gnome.org/
-projects/gnumeric/</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">Publishing
-Companion<br>
-KTalk Communications (commercial, 399 US$)<br>
-v. 2.21</td>
-<td align="left" valign="top" width="40%">converts
-(among others):
-<ul>
-<li>Automatic Indexes</li>
-<li>Footnotes, Endnotes</li>
-<li>Foreign Characters</li>
-<li>Running Headers &amp; Footers</li>
-<li>Superscripts &amp; Subscripts</li>
-<li>MathEdit Math Equations</li>
-<li>MS Word 6.0 Math Equations</li>
-<li>WordPerfect Math Equations</li>
-</ul>
-</td>
-<td align="left" valign="top" width="20%">DOS
-/ MS Windows</td>
-<td align="left" valign="top" width="190">homepage:<br>
-<a href="http://www.ktalk.com/pubcomp.html">
-www.ktalk.com/
-pubcomp.html</a></td>
-</tr>
-</tbody>
-</table>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998 ... 2011
-Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/pctotex.html b/help/wp-conv/pctotex.html
deleted file mode 100644
index 1be2094c86..0000000000
--- a/help/wp-conv/pctotex.html
+++ /dev/null
@@ -1,511 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html lang="en-us"><head><title>Converters from PC Textprocessors to LaTeX - Overview</title></head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage
-(external link)</a><br>
-Up to <a href="index.html">Converters between LaTeX and
-PC Textprocessors homepage</a></p>
-<h1>Converters from PC Textprocessors to LaTeX - Overview</h1>
-<p><strong>Switch conversion direction: <a href="textopc.html">From LaTeX to
-PC</a></strong></p>
-<p>Author: Wilfried Hennings (texconvfaq "at" gmx.de), last
-update (including subpages): March 3, 2011<br>
-The url of this page is <a href="http://tug.org/utilities/texconv/pctotex.html">
-http://tug.org/utilities/texconv/pctotex.html</a> </p>
-<p>I maintain these pages because I need converters between LaTeX
-and PC Textprocessors for my work and I want to share the information
-with others who need it. Because I maintain them in my spare time (uh,
-what is spare time?), I can not answer individual questions.</p>
-<p><strong>This list is as good or as bad as its support,
-and I need YOUR support to update and supplement this list.</strong>
-Please supplement if you know more and/or better ones. There are some
-more converters on the CTAN sites, but the following seem to be most
-promising for conversion to and from the
-current versions of wordprocessors. </p>
-<p>Neither correctness nor completeness is guaranteed. <br>
-All opinions mentioned (if any) are my own, not my employer's. Please
-send corrections, enhancements and supplements (auch in deutscher
-Sprache) to the following address: <br>
-texconvfaq "at" gmx.de</p>
-<p>Note that this FAQ list contains information about converters
-<strong>ONLY</strong> between PC word processors and LaTeX.
-Converters to and from <strong>other formats may have own FAQ
-lists</strong> &#8211; e.g. see the link for converters to
-and from
-HTML.</p>
-<hr>
-<p>For the impatient, here is a <a href="pc2txtbl.html">table
-with overview of features</a> of the most recent converters.</p>
-<hr>
-<h2>General Remarks</h2>
-<p>Before looking for a converter, stop and think about a
-principal question: </p>
-<h3>What do you want to be converted in which way?</h3>
-<p>Do you want to convert the <strong>document structure</strong>,
-i.e. a heading should remain a heading, a list should remain a list
-etc., no matter how it will look like in the target format?<br>
-Or do you want to convert the <strong>appearance</strong>,
-i.e. how it looks like, no matter how it is represented in the target
-format?<br>
-Or do you want a mixture of both?<br>
-For using SGML as an intermediate format, you would have to specify the
-translation rules yourself (as far as I understood). This makes sense,
-and explains why different people have very different opinions about
-which converter best fits their needs: They simply have different
-demands and expectations on what should be converted and how. <br>
-So, not only practically there is no converter which is good for
-everyone and every purpose, but this is even principally impossible
-because there are no well-defined requirements which a converter should
-meet. </p>
-<p>So keep this in mind when looking through the following list
-of converters, try yourself and decide what you need.</p>
-<h3>Principal problems of wordprocessor to LaTeX conversion</h3>
-<p>One advantage of LaTeX is that it forces to structure a
-document, whereas wordprocessors like Word/WordPerfect allow
-unstructured documents. It is hardly possible to automatically
-structure a document where there was no structure before. </p>
-<p>However it is nevertheless possible to write a structured
-document with a wordprocessor by consistently using styles. Therefore,
-wordprocessor documents using styles can be converted to a LaTeX with
-an equivalent (but not necessarily identical) structure. </p>
-<h3>There are several ways to convert</h3>
-<ul>
-<li>use a Wordprocessor macro: search for formats, special
-characters and equations, tag them with LaTeX markup, then save as
-plain text <br>
-<br>
-</li>
-<li>use a Wordprocessor export filter<br>
-<br>
-</li>
-<li>use an external converter: </li>
-</ul>
-<ol>
-<li>Word binary format -&gt; LaTeX</li>
-<li>RTF (Word ASCII format, use Word's own RTF export)
--&gt; LaTeX</li>
-<li>Open Office format -&gt; LaTeX</li>
-<li>WordPerfect 5.1 format -&gt; LaTeX</li>
-<li>HTML (use Wordprocessor's built-in or add-on html
-converter) -&gt; LaTeX </li>
-<li>maybe other external format(s)</li>
-</ol>
-<p>The converters being most complete, undergoing further
-development and
-having support are:</p>
-<p><a href="#rtf2latex2e">rtf2latex2e</a> -
-free standalone rtf to LaTeX converter for Mac, PC, and Unix</p>
-<p><a href="#word2tex">word2tex</a> -
-shareware, MS Word export filter for PC</p>
-<p><a href="#GrindEQ">GrindEQ</a> - shareware,
-MS Word export filter for PC </p>
-<p><a href="#wordtolatex">word-to-latex</a> - shareware,
-MS Word export filter for PC </p>
-<p><a href="#writer2latex">Writer2LaTeX</a> -
-free export filter and standalone Open Office converter</p>
-<p><a href="#wp2latex">WP2LaTeX</a> - free
-standalone Word Perfect converter for PC</p>
-<hr>
-<h2>Using a Word macro</h2>
-<h3>Free:</h3>
-<p><b>winw2ltx</b>: A set
-of macros, originally for WinWord 2, adapted to WinWord 6 and
-7 (95) and now (Aug. 2008) to WinWord 97 (and up)
-<br>
-See <a href="winw2ltx.html">more detailed page</a>
-</p>
-<h3>Commercial:</h3>
-<p><b>MathType</b>: PC equation editor with export to
-LaTeX. <br>
-See <a href="mathtype.html">more detailed page</a>.<br>
-<a href="http://www.mathtype.com/">
-MathType home page (external link)</a> </p>
-<hr>
-<h2>Using a Word export filter</h2>
-<h3>Shareware:<br>
-</h3>
-<p><a name="wordtolatex"></a><b>Word-To-LaTeX</b>:
-This converter can convert documents
-from Word2002(XP) or later to LaTeX.<br>The
-conversion can be run from the command-line (can be used for
-batch-processing), through the graphic interface, or directly from Word.<br>Besides Word2002(XP) or later it also needs MS .NET
-Framework <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;displaylang=en">2.0
-(external link)</a><br>
-Converts:
-</p>
-<ul>
-<li>Equation Editor objects and MathType objects, if one has
-MathType installed.</li>
-<li>Images and embedded objects like Excel graphs to
-Encapsulated PostScript (EPS) format or to bitmaps (PNG format).</li>
-<li>Paragraphs marked as headings using the Word built-in
-styles to sections (the default mappings can be changed).</li>
-<li>Ordered and unordered lists (even nested), and complex
-tables with merged rows and columns.</li>
-<li>Footnotes and endnotes. Bibliography
-items can be optionally created from endnotes.</li>
-<li>Table and figure titles, index, table of contents,
-multicolumn sections, hyperlinks.</li>
-<li>Special and national characters (e.g. Greek, Russian or
-Hebrew), even those from the Symbol font. (Remark: To make LaTeX
-recognize some converted special characters, one should add the line
-"\usepackage[T1]{fontenc}" to the preamble. If the text is not in
-English, LaTeX also needs the line "\usepackage[language]{babel}".)</li>
-</ul>
-<p>For a complete list of features, visit its
-<a href="http://www.wordtolatex.com/">homepage
-(external link)</a>.</p>
-<p>The package can be downloaded from the <a href="http://www.wordtolatex.com/">homepage
-(external link)</a>. Limited to 15 days of trial.</p>
-
-<p><a name="word2tex"></a><b>Word2TeX</b>:
-This converter can save documents
-from&nbsp;Word95 or later as LaTeX, <b>including equation
-editor (!)</b>
-objects, MathType objects and Word 2007-2010 equations. <br>
-Current version: 5.01, Feb. 2011.<br>Converts:</p>
-<ul>
-<li>all versions of Equation Editor and Design Science
-MathType embedded objects (*)</li>
-<li>figures (to EPS or PDF)(*)</li>
-<li>tables (even very complicated) (*)</li>
-<li>footnotes </li>
-<li>endnotes (to bibliography)</li>
-<li>index</li>
-<li>cross-references</li>
-<li>paragraph styles (heading1 to heading4, custom styles) --
-customizable</li>
-<li>character attributes (bold, italic etc.) -- customizable</li>
-<li>Greek-charset</li>
-<li>multibyte character encodings (Unicode)</li>
-<li>and many more (see <a href="http://www.word2tex.com/">homepage
-(external link)</a>)</li>
-</ul>
-<p>(*) restrictions will apply in unregistered Word2TeX: only 7
-first equations will be translated, only 1 first table will be
-translated, only 1 first figure will be translated. Limited to 30 days
-of trial.</p>
-<p>For a complete list of features, visit its
-<a href="http://www.word2tex.com/">homepage (external link)</a>.</p>
-<p><a name="GrindEQ"></a><b>GrindEQ
-Word-to-Latex</b>: Shareware, 99EUR (49EUR academic)<br>
-converts Microsoft Word documents to LaTeX, AMS-LaTeX, Plain TeX, or
-AMS-TeX format. <br>
-Microsoft Equation 2007, Microsoft Equation 3.x, and
-MathType are supported. <br>
-Works with Microsoft Word 97/2000/XP/2003/2007
-and Microsoft Windows 98/Me/NT/2000/XP/2003/x64/Vista. <br>
-Evaluation version is restricted to 10 launches.<br>
-See <a href="http://www.grindeq.com/">homepage (external
-link)</a>
-</p>
-<h2>Converting from Word binary format</h2>
-<p>This means the .doc format which is used by Word 95, 97, 2000,
-XP and 2003 and in which also Word 2007 can save its documents if
-you tell it to do so. The new XML format which is by default used by
-Word 2007 is (afaik) not yet supported.</p>
-<h3>Free:</h3>
-<p>The free (LGPL) office suite <b>Open
-Office</b> can import Word format and export to
-LaTeX format.
-Open Office runs on MacOSX, several Linux/Unix's and also
-Windows95/98/NT/XP/2003 and Vista and stores documents as XML.<br>
-My (and other's) experiences with OO&nbsp;3.1 are quite good, given
-the following prerequisites. <br>
-- You need to install the <a href="pctotex.html#writer2latex">Writer2LaTeX</a>
-extension.<br>
-- You need to check
-"Extras-Options-Load/Save-Microsoft Office-Load-MathType to OpenOffice
-Math".<br>
-See <a href="http://www.openoffice.org/">
-homepage (external link)</a> </p>
-<p><b>LAOLA</b> can
-read Word6/Word7(=95) documents under Unix and extract the text.<br>
-See <a href="laola.html">more detailed page</a><br>
-<a href="http://user.cs.tu-berlin.de/%7Eschwartz/pmh/">LAOLA
-homepage (external link)</a></p>
-<p><b>word2x</b>: Converts
-Word6/Word7(=95) documents to LaTeX or plain text. <br>
-See <a href="word2x.html">more detailed page</a><br>
-<a href="http://sourceforge.net/projects/word2x/">word2x
-homepage (external link)</a></p>
-<p><b>antiword</b>: A free MS Word reader for Linux,
-BeOS and RISC OS. It converts the binary files from Word 6, 7, 97 and
-2000 to text and Postscript.
-<br>
-See <a href="http://www.winfield.demon.nl/index.html">antiword
-homepage (external link)</a>. <br>
-A user's comment: "It is still a
-bit incomplete, but I found it to be rather useful. Moreover, it is
-available for a wider-than-usual range of platforms."</p>
-<p><b>wvWare</b> is a library that can read the
-Word6/Word7(=95), Word8(=97) and Word9(=2000) binary file format. It
-works under most Unix systems.<br>
-See <a href="http://wvware.sourceforge.net/">wvWare
-homepage (external link)</a>.<br>
-The wvWare library is used as import library in the wordprocessor
-AbiWord (see below). <br>
-Its predecessor MSWordView could only read Word8(=97) and convert word
-into html, which can then be read with a browser. </p>
-<p>For the wvware library an API "wsW2LTX" and a GUI shell
-"wsW2LTXGUI" (for MS Windows) is available at
-<a href="http://www.winshell.de/modules/w2ltx_download/">http://www.winshell.de/modules/w2ltx_download/
-(external link)</a>
-</p>
-<p>The free (GPL) wordprocessor <b>AbiWord</b>
-can import Word format (by using the aforementioned wvWare) and export
-to LaTeX format. AbiWord runs on BeOS, several Unix's and also
-Windows95/98/NT and stores documents as XML.<br>
-<a href="http://www.abisource.com/">AbiWord homepage
-(external link)</a>
-</p>
-<hr>
-<h2>Converting from RTF</h2>
-<p>To use an RTF converter, the wordprocessor document must first
-be "saved as" Rich Text Format. However each new version of MS Word
-came with a new level of the RTF language. Most of the available
-converters cannot understand the current RTF version</p>
-<h3>Free:</h3>
-<p><a name="rtf2latex2e"></a><b>rtf2latex2e</b> 2-0-1 version (2011). <br>
-download from <a href="http://sourceforge.net/projects/rtf2latex2e/">
-sourceforge (external link)</a>.<br>
-See <a href="rtf2latex2e.html">more detailed page</a><br>
-If you are interested in the history of this converter, see <a href="rtf2latex.html">this page.</a></p>
-<p><b>RTF2LaTeX</b>, a patch for WP2LaTeX that allows
-it to convert also RTF documents. Experimental Release 0.4 (works, but
-it knows only a small group of commands). See its
-<a href="http://www.penguin.cz/%7Efojtik/wp2latex/rtf2latex.htm">homepage
-(external link)</a>.</p>
-<p><b>GNU unRTF</b> is a command-line program written
-in C which
-converts documents in Rich Text Format (.rtf) to several formats
-including LaTeX. <br>
-See its <a href="http://www.gnu.org/software/unrtf/unrtf.html">
-homepage (external link)</a>.
-The latest version 0.21.10 (Jan.17, 2010) is only available as source
-code. <br>
-A precompiled binary for Windows, however an older version (0.19.3,
-Feb.12, 2005), is
-available from <a href="http://gnuwin32.sourceforge.net/packages/unrtf.htm">sourceforge
-(external link)</a>.</p>
-<p>The free (GPL) wordprocessor <b>AbiWord</b>
-can import rtf and also MS Word doc format and export to LaTeX format.
-AbiWord runs on BeOS,
-several Unix's and also Windows95b or higher (up to XP) and stores
-documents as XML.<br>
-<a href="http://www.abisource.com/">AbiWord homepage
-(external link)</a></p>
-<h3>Commercial:</h3>
-<p><b>Scientific Word</b>: Win95/98/2000/NT4 based
-TeX/LaTeX system with graphical editor and rtf import capability
-including MS's equation editor equations. The rtf import converter is
-basically the same as rtf2latex2e. <br>
-See <a href="sciword.html">more detailed page</a><br>
-<a href="http://www.mackichan.com/">Scientific Word home
-page (external link)</a></p>
-<hr>
-<h2>Converting from Open Office format</h2>
-<p><a name="writer2latex"></a><b>Writer2LaTeX</b>
-is a commandline utility written in java. It converts
-OpenOffice.org/StarOffice Writer documents into LaTeX2e.</p>
-<p>If you have OpenOffice or StarOffice installed, get the Writer2LaTeX extension from
-<a href="http://extensions.services.openoffice.org/project/writer2latex">
-http://extensions.services.openoffice.org/project/writer2latex</a>.</p>
-<p>If you need Writer2LaTeX as a standalone converter, see its <a href="http://writer2latex.sourceforge.net/">
-homepage (external link)</a>
-<br>
-<br>
-Supported operating systems: All on which Java is supported.
-Requires java runtime environment (JRE), version 1.4 or higher, to run
-Writer2LaTeX. JRE is included in OpenOffice, and also can
-be downloaded from <a href="http://java.sun.com/javase/downloads/index.jsp">java.sun.com
-(external link)</a> (scroll down to "Java Runtime
-Environment (JRE)").</p>
-<hr>
-<h2>Converting from WordPerfect format</h2>
-<h3>Free:</h3>
-<p><a name="wp2latex"></a><b>WP2LaTeX</b>
-converts
-WordPerfect 1.x / 2.x / 3.x / 4.x / 5.x / 6-8.x, including
-equations, to LaTeX.<br>
-See <a href="wp2latex.html">more detailed page</a><br>
-<a href="http://www.penguin.cz/%7Efojtik/wp2latex/wp2latex.htm">homepage
-(external link)</a></p>
-<p><a href="texperf.html">TeXPerfect</a>:
-WordPerfect 5.1 for DOS -&gt; LaTeX Translater</p>
-<h3>Commercial:</h3>
-<p><a name="pubcomp"></a><b>Publishing
-Companion</b>:
-converts Word/WordPerfect, including equations, to LaTeX. Comes with
-own equation editor. <br>
-See <a href="pubcomp.html">more
-detailed page</a><br>
-<a href="http://www.ktalk.com/">KTALK's
-home page (external link)</a> </p>
-<hr>
-<h2>HTML as intermediate format</h2>
-<h3>Wordprocessor to HTML</h3>
-<p>There are free HTML converters for Word 6 and 7(95) for
-Windows available from Microsoft: <br>
-Download... <a href="ftp://ftp.microsoft.com/Softlib/MSLFILES/WORDIA.EXE">IA
-for Word 6 (external link)</a> /
-<a href="ftp://ftp.microsoft.com/Softlib/MSLFILES/WDIA204Z.EXE">IA
-for Word 7 (95) (external link)</a> / <a href="ftp://ftp.microsoft.com/Softlib/MSLFILES/MACIA20Z.HQX">IA
-for Word for Mac (external link)</a> <br>
-Word&nbsp;97 contains an html converter by default, but in contrary
-to
-the previous versions it only recognizes heading styles if they are
-first converted into the corresponding html styles. Also, it sometimes
-inserts unnecessary tags. <br>
-Word&nbsp;2000 contains the html converter by default, but you
-should not use this default: It actually creates sort of XML with many
-Word-specific elements. Instead, for saving as "clean" html, download
-and install the <a href="http://office.microsoft.com/downloads/2000/Msohtmf2.aspx">add-on
-converter from Microsoft (external link)</a>.<br>
-For Word&nbsp;XP (2002) and above the "clean" html export
-can be installed with Word's setup. It is recommended to "save
-as" "html filtered". However this isn't "clean" enough, you should
-manually edit the saved html before feeding it to the html-to-LaTeX
-converter. </p>
-<p>WordPerfect 7 and up have an integrated InternetPublisher. <br>
-For WordPerfect 6.1 for Windows, the InternetPublisher is available
-separately:
-<br>
-Download...
-<a href="ftp://ftp.corel.com/pub/WordPerfect/wpwin/61/internetpublisher.exe">InternetPublisher
-for WPWin 6.1 (external link)</a> </p>
-<p>There also is a tool for Unix which is intended to convert
-word6, word7(95) and word8(97) binary files to html. See
-<a href="http://www.su.shuttle.de/turbo/michael/projekte/software/word2html.c.gz">http://www.su.shuttle.de/turbo/michael/projekte/software/word2html.c.gz
-(external link)</a>
-</p>
-<p>Also see www.w3.org for a
-<a href="http://www.w3.org/pub/WWW/Tools/Word_proc_filters.html">list
-of converters between word processors and HTML (external link)</a>
-- now outdated (last change March 1999).
-</p>
-<h3>HTML to LaTeX</h3>
-<p>Because HTML is a structured format, the conversion between
-HTML and LaTeX is rather straightforward. However there remain the
-limitations of HTML compared to LaTeX, i.e. there are many elements in
-LaTeX which can not (yet?) be represented in HTML. </p>
-<p>There are several HTML-to-LaTeX converters available. Without
-giving recommendations:</p>
-<p>Frans Faase's <b>html2tex</b> (C source)
-<br>
-See <a href="http://home.wxs.nl/%7Efaase009/html2tex.html">
-homepage (external link)</a>
-</p>
-<p>Peter Thatcher's <b>html2latex</b> (Perl script)<br>
-See <a href="http://html2latex.sourceforge.net/">
-homepage at sourceforge.net (external link)</a>
-</p>
-<p>Jeffrey Schaefer's
-<b>html2latex</b> (Perl script)<br>
-See <a href="http://www.geom.umn.edu/software/html2latex/welcome.html">
-homepage at www.geom.umn.edu (external link)</a>
-</p>
-<p>Michal Kebrt's <b>htmltolatex</b> (Java Program)<br>
-See <a href="http://htmltolatex.sourceforge.net/">homepage
-at sourceforge.net (external link)</a></p>
-<p>Some converters are available from
-<a href="http://www.tex.ac.uk/tex-archive/CTAN.sites">CTAN
-(external link)</a>
-("Comprehensive TeX Archive Network"), e.g. in
-.../support/html2latex. However, what you can find in CTAN under
-.../support/html2latex/ is Nathan Torkington's converter of 1993 --
-rather outdated.<br>
-(The ... stands for a host specific base directory, which often is
-either "/pub/tex" or "/tex-archive") </p>
-<hr>
-<h2>Other intermediate formats</h2>
-<p>There are ways to use <b>SGML</b> as intermediate
-format, and others have used it successfully. Having had a quick look
-at it, I found it rather complicated, especially it seems that you have
-to define the translation rules yourself. So I did not put more effort
-in trying to use it. If anyone can give me a ready-to-use cookbook
-solution, I will include it here. </p>
-<p>Another intermediate format is <b>TeXML</b>. It
-was designed to make conversion to (La)TeX as easy as possible,
-especially XSLT-conversion from XML format. A converter from TeXML to
-(La)TeX is available, see
-<a href="http://getfo.sourceforge.net/texml/">http://getfo.sourceforge.net/texml/
-(external link)</a>.
-However I yet don't know of any converter from a texprocessor format to
-TeXML. </p>
-<hr>
-<h2>Converting from PageMaker</h2>
-<p>Pmtolatex, a perl script to convert PageMaker files to LaTeX.
-See
-<a href="http://www.lightandmatter.com/pmtolatex/pmtolatex.html">homepage
-(external link)</a>.
-</p>
-<hr>
-<h2>Converting from FrameMaker</h2>
-<p><a href="http://www.cs.stir.ac.uk/%7Ekjt/software/framemaker/">FrameMaker
-Utilities (external link)</a>: Contains converters for both
-directions
-(LaTeX &lt;-&gt; FrameMaker) as well as templates which make
-conversion from Framemaker to LaTeX more easy</p>
-<hr>
-<h2>Converting from NotaBene</h2>
-<p>NB4LATEX converts files from NotaBene4 for DOS (which is an
-old
-version for DOS) to LaTeX2e format. You find it on <a href="index.html#ctan">CTAN</a>
-in directory .../systems/msdos/nb4latex
-</p>
-<hr>
-<h2>Converting from ChiWriter</h2>
-<p>There are two converters on CTAN, but I don't know how good
-they are and whether they still work (they are DOS programs from 1993
-and 1994). You find them on <a href="index.html#ctan">CTAN</a>
-in directory .../support/chi2ltx/
-and in directory .../support/chi2tex/</p>
-<hr>
-<h2>Converting from Excel</h2>
-<p>There are two possibilities to do that:</p>
-<p>1. <span style="font-weight: bold;">Excel2LaTeX</span>:
-Excel-macro to convert Excel to LaTeX.
-The generated LaTeX code uses the tabular environment.<br>
-On CTAN in .../support/excel2latex/, i.e. <a href="http://www.dante.de/CTAN//help/Catalogue/entries/excel2latex.html">here</a><br>
-</p>
-<p>&lt;citation from
-<a href="http://www.latex-community.org/forum/viewtopic.php?f=5&amp;p=28364">http://www.latex-community.org/forum/viewtopic.php?f=5&amp;p=28364</a>&gt;<br>
-"when I use Excel2Latex, it&nbsp;says "Can't find project or
-library" after pressing on the conversion button. ..."<br>
-"This problem may be caused by a broken reference to REFEDIT.DLL.
-Excel2LaTeX.xla contains a reference to folder OFFICE12 (Office 2007).
-If you use the macro with Office 2003 (OFFICE11) you must fix the
-reference. REFEDIT.DLL is in c:\Program Files\Microsoft
-Office\OFFICE11\. In Excel go to Tools&gt;Macros&gt;Visual
-Basic Editor, select VBAProject (Excel2LaTeX.xla) in Project Explorer,
-then go to Tools&gt;References and uncheck MISSING:Ref Edit
-Control,
-click Browse and Open REFEDIT.DLL, then use the priority button to
-raise the new Ref Edit Control entry to where the MISSING entry was
-(click the up arrow button once and then hold Space to raise)."
-&lt;/citation
-end&gt;. </p>
-<p>2. Importing Excel file into <a href="http://www.gnome.org/projects/gnumeric/">Gnumeric
-(external link)</a>,
-then exporting to LaTeX. But I have no further info on the resulting
-LaTeX markup.</p>
-<h2>Converting from OpenOffice spreadsheet</h2>
-<p>OO macro to convert from OO to LaTeX:
-<a href="http://calc2latex.sourceforge.net/">http://calc2latex.sourceforge.net/
-(external link)</a>.
-</p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998 ... 2011 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/pubcomp.html b/help/wp-conv/pubcomp.html
deleted file mode 100644
index 30afbe9cd7..0000000000
--- a/help/wp-conv/pubcomp.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>Publishing Companion</title>
-
-</head>
-
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC Textprocessors to LaTeX -
-Overview</a></p>
-<h1>Publishing Companion</h1>
-<p>last update: July 24, 2001</p>
-<p>Note: I tried an older version of this product, but it turned
-out not to be
-useful for me. Reasons: <a href="ktbugs.html">see here</a>.
-Maybe the current
-version does much better, but it's too expensive for me.</p>
-<p>citation from
-<a href="http://www.ktalk.com/pubcomp.html">http://www.ktalk.com/pubcomp.html
-(external link)</a>
-- citation begin&gt;&gt;</p>
-<table align="center" border="3" bordercolor="#000080" cellpadding="5">
-<tbody>
-<tr>
-<th colspan="2" bgcolor="#d9c8a6"><font color="Maroon">Publishing Companion
-translates the following to plain TeX or LaTeX:</font></th>
-</tr>
-<tr>
-<td>Automatic Indexes</td>
-<td>Newspaper-style Columns</td>
-</tr>
-<tr>
-<td>Boxes</td>
-<td>Non-break Hyphens &amp; Spaces</td>
-</tr>
-<tr>
-<td>Centering</td>
-<td>Outlines</td>
-</tr>
-<tr>
-<td>Endnotes</td>
-<td>Page Numbering</td>
-</tr>
-<tr>
-<td>Flush Right</td>
-<td>Paragraphs</td>
-</tr>
-<tr>
-<td>Footnotes</td>
-<td>Parallel Columns</td>
-</tr>
-<tr>
-<td>Foreign Characters</td>
-<td>Point Sizes</td>
-</tr>
-<tr>
-<td>Full Fonts</td>
-<td>Redlining</td>
-</tr>
-<tr>
-<td>Horizontal Lines</td>
-<td>Running Headers &amp; Footers</td>
-</tr>
-<tr>
-<td>Indents</td>
-<td>Soft Hyphens</td>
-</tr>
-<tr>
-<td>Justification</td>
-<td>Strikeout</td>
-</tr>
-<tr>
-<td>Mail Merge</td>
-<td>Superscripts &amp; Subscripts</td>
-</tr>
-<tr>
-<td>MathEdit Math Equations</td>
-<td>Table of Contents</td>
-</tr>
-<tr>
-<td>MS Word 6.0 Math Equations</td>
-<td>Type Styles (bold, italic)</td>
-</tr>
-<tr>
-<td>WordPerfect Math Equations</td>
-<td>Widows &amp; Orphans on/off</td>
-</tr>
-</tbody>
-</table>
-<p> &lt;&lt;citation end</p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting
-(e.g.
-from HTML to some other presentation format) is granted as long as the
-contents
-are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and
-distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
-ary and mirror) hosts is available at
diff --git a/help/wp-conv/readme.txt b/help/wp-conv/readme.txt
deleted file mode 100644
index 95f0fbaaf0..0000000000
--- a/help/wp-conv/readme.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-The html files in this directory (=folder) or zipfile
-contain my FAQ list of
-converters between LaTeX and PC Textprocessors in HTML format.
-
-Because all html links between these pages are relative links,
-the files can be put into any directory of your choice ("base dir");
-but be sure to keep the directory structure,
-i.e. there should be a subdir "bin" in the base dir.
-
-Then start with the page "index.html".
-
-
diff --git a/help/wp-conv/rtf2latex.html b/help/wp-conv/rtf2latex.html
deleted file mode 100644
index a402aa49c7..0000000000
--- a/help/wp-conv/rtf2latex.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>rtf2TeX and rtf2LaTeX converters</title></head>
-<body>
-<p> Up to the <a href="http://tug.org">TUG homepage
-(external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX - Overview</a></p>
-<h1>rtf2TeX and rtf2LaTeX</h1>
-<p>last update: Feb 14, 2011</p>
-<p>The information provided here is for those who are interested
-in the history.
-</p>
-<p>First, Paul Dubois &lt;dubois "at"
-primate.wisc.edu&gt; wrote an RTF reader and
-converter to plain text or troff. The version is dated April 1991. <br>
-See <a href="http://www.snake.net/software/RTF/">RTF
-utilities homepage (external link)</a>.
-</p>
-<p>a) Based on this reader, Robert Lupton &lt;rhl "at"
-astro.princeton.edu&gt; wrote
-the <strong>rtf2TeX</strong> converter. Last revision
-date: May 1992 </p>
-<p>He comments on this as follows (README-file): <br>
-citation begin&gt;&gt; <br>
-This is a first attempt at an RTF to TeX converter. The parts that
-handle fonts and such like seem to work pretty well, although they
-could be improved, but the table handling is a problem. I had a good
-deal of trouble trying to figure out what particular rtf control codes
-were supposed to do; this makes it hard
-to convert them into TeX. I have tried to produce good TeX, but this is
-not easy due to the sloppy way that many RTF writers generate redundant
-font and other changes. <br>
-Many things are not handled at all, more due to my lacking motivation
-than to their intrinsic difficulty. For example, I don't support double
-columns, but it would be easy enough to do (I'd generate a control
-sequence to do it, and add the TeX code required to the TeX_defs file.
-I even have the TeX somewhere...).
-<br>
-&lt;&lt;citation end</p>
-<p>So far the beginning of the README file. Later he commented: <br>
-citation begin&gt;&gt; <br>
-Most (all?) RTF is hopelessly unstructured <br>
-(the equivalent of \bf \it Hello \rm World \bf He \it \rm said. ) <br>
-and the code that I wrote tries valiantly to convert this to something
-sensible, in this case <br>
-{\it Hello\/} World {\bf He} said. <br>
-It is this attempt to make the output TeX usable that makes the code
-complicated... <br>
-I did not try to convert equations or tables as I could find no
-adaquate description of either; I don't think that it would be very
-hard. <br>
-&lt;&lt;citation end</p>
-<p>Available on CTAN sites, dir .../support/rtf2tex </p>
-<p>b) Based on these two, Erwin Wechtl wrote the rtf2LaTeX
-converter. <br>
-Last revision date: Aug. 1993 </p>
-<p>He comments on this as follows (README-file): <br>
-citation begin&gt;&gt; <br>
-<strong>rtf2LaTeX</strong> is a filter built on Paul
-DuBois' RTF reader that converts RTF (Microsoft's Rich Text Format)
-into LaTeX. rtf2LaTeX expends a good deal of effort in an attempt to
-make the resulting LaTeX maintainable and modifiable. <br>
-&lt;&lt;citation end</p>
-<p>At the moment converts text elements, but no formulas and no
-graphics. <br>
-C-source and an executable for MSDOS are available on CTAN sites,
-dir .../support/rtf2latex </p>
-<p>c) In 1999, Ujwal Sathyam took Paul Dubois' rtf reader source
-and adapted it to handle later versions of rtf.
-To distinguish this branch from the others, it was named
-<strong>rtf2latex2e</strong>.<br>
-In 2000, Steve Swanson from Mackichan Software
-(http://www.mackichan.com, makers of Scientific Word and Workplace)
-added the capability to convert Equation Editor and MathType objects.<br>
-In the further course of development, many more features were added,
-e.g. the capability to convert several types of embedded graphics.<br>
-Release 1.0fc2 was finished in May 2001 and remained as such until 2010.</p>
-<p>In Dec. 2010, Scott Prahl resumed development on rtf2latex2e,
-resulting in a first 2.0 release in Jan 2011.</p>
-<p>Available on CTAN sites, dir .../support/rtf2latex2e </p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2007, 2008, 2009, 2011 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
diff --git a/help/wp-conv/rtf2latex2e.html b/help/wp-conv/rtf2latex2e.html
deleted file mode 100644
index fb76d423fd..0000000000
--- a/help/wp-conv/rtf2latex2e.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>rtf2latex2e</title>
-
-</head>
-
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage
-(external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX -
-Overview</a></p>
-<h1>rtf2latex2e</h1>
-<p>rtf2latex2e is a utility to convert RTF files from popular
-word processors
-to the LaTeX2e format.
-<br>
-rtf2latex2e uses the <a href="http://www.snake.net/software/RTF/">RTF
-reader (external link)</a> package by Paul DuBois to parse the
-RTF code and generates an
-appropriate <a href="http://www.tug.org/">LaTeX (external
-link)</a> file. </p>
-<p>rtf2latex2e was developed on under Mac OS X but should compile
-under any Unix variant.<br>
-Windows users should compile under something like MinGW or use
-the precompiled binary in the ...-Win package. <br>
-rtf2latex2e is distributed along with the source code
-under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU
-General Public
-License (external link)</a>. </p>
-<p>The main features of rtf2latex2e are:</p>
-<ul>
-</ul>
-<p>&nbsp;1. detects text style: bold, italic, color, big,
-small,...<br>
-&nbsp;2. reads embedded figures: PICT, EMF, GIF, TIFF, WMF, PNG,
-JPEG<br>
-&nbsp;3. reads tables: simple to semi-complex<br>
-&nbsp;4. equations: converts embedded MathType equations<br>
-&nbsp;5. symbols: converts most greek and math symbols<br>
-&nbsp;6. reads footnotes (not in tables yet)<br>
-&nbsp;7. translates hyperlinks using the hyperref package<br>
-&nbsp;8. converted latex file uses utf8<br>
-&nbsp;9. supports codepages 1250, 1251, 1252, 1254, mac, NeXt<br>
-10. converts RTFD (rtf directories)<br>
-11. extended preferences<br>
-12. internal document page references<br>
-13. save all converted files in a separate directory<br>
-<br>
-The latest version of rtf2latex2e can be found
-<a href="http://sourceforge.net/projects/rtf2latex2e/">here (external link)</a>.</p>
-<p>(c) Ujwal Sathyam 1999, Scott Prahl 2011 </p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/sciword.html b/help/wp-conv/sciword.html
deleted file mode 100644
index 522664bd2b..0000000000
--- a/help/wp-conv/sciword.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>Scientific Word and Scientific WorkPlace</title>
-
-</head>
-
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX -
-Overview</a></p>
-<h1>Scientific Word and Scientific WorkPlace</h1>
-<p>last update: July 24, 2001</p>
-<p>citation begin&gt;&gt;</p>
-<p><a href="http://www.mackichan.com/">MacKichan
-Software (external link)</a> publishes
-Scientific Word and Scientific WorkPlace. Included with these products
-is a
-conversion program that will input RTF and output LaTeX. This
-conversion will
-correctly convert Microsoft Word Equation Editor or MathType equations
-in the
-RTF file to LaTeX. The conversion program is not available separately,
-but it
-is based on the free <a href="rtf2latex2e.html">rtf2latex2e</a>.
-</p>
-<p>&lt;&lt;citation end</p>
-<p>There is a "light" (and cheaper) version available called
-<a href="http://www.scinotebook.com/">Scientific Notebook (external link)</a>,
-which is also
-capable of importing RTF and exporting (sort of) LaTeX. They also
-provide a
-free 30 day evaluation version.</p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting
-(e.g.
-from HTML to some other presentation format) is granted as long as the
-contents
-are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and
-distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
-mpatible with win95, win98, winME, nt4.0, win2000, winXP) and
-Macintosh are available from <a href="http://sourceforge.net/projects/latex2rtf/">
-http://sourceforge.net/projects/latex2rtf/ (external link)</a>. </p>
-<p>A stable but not always the most recent release is also
-available from
-<a href="index.html#ctan">CTAN</a>,
-directory .../support/latex2rtf <br>
-(the ... stands for a host specific base directory, which often is
-either "/pub/tex" or "/tex-archive"). </p>
-<p>We still seek for people joining us as maintainer or
-developer. If you are interested, contact me (texconvfaq "at" gmx.de).</p>
-<h3> Program Copyright:</h3>
-<p>This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as
-published by the
-Free Software Foundation; either version 2 of the License, or (at your
-option) any later version. <br>
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANT-ABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the <a href="GPL.txt">GNU
-General Public License</a>
-for more details. </p>
-<p>Note that this Copyright note only applies to the changes made
-to get the actual version. The older versions have their own Copyright
-policy
-stated in their distribution. </p>
-<h3>History:</h3>
-<p> In 1994 the first Version of LaTeX2rtf was written by a group
-of students of the Viena University supervised by Ralf Schlatterbeck.
-They took up
-a LaTeX parser and added most of the functionality to the program. In
-1995 work
-continued with a second group of students. The result was LaTeX2rtf
-Version 1.5. </p>
-<p>Unfortunately, two different persons started further
-development of that program, not knowing of each other:</p>
-<ul>
-<li>In 1997, Daniel Taupin started updating this converter. He
-added e.g. the feature to convert equations to bitmaps by invoking the
-TeX engine. However this required the emTeX distribution (for DOS)
-which is no longer supported. </li>
-<li> In 1998, Georg Lehner found the reference to the original
-LaTeX2rtf on this webpage and added some functionality. His work
-resulted in version 1.8aa. Unfortunately he did not know about Daniel's
-developments.</li>
-</ul>
-<p>In 2001, Scott Prahl started to make some significant
-enhancements, also including many of Daniel's additions. He is still
-working on it. So <b>this page is about Georg's and Scott's
-version</b>. Latest stable
-release is 1.9.19 and includes all of the features of Daniel's version.</p>
-<p>Temporarily I (Wilfried Hennings) feel responsible for
-coordinating the exchange of development information. But <em>we
-are still seeking for a person who can act as coordinator of future
-development, and we also need a person to take over the development.</em>
-Anyone feeling able to do that
-please contact me by email to texconvfaq "at" gmx.de. </p>
-<p>We got a project initiated at sourceforge.net which aids in
-further development. Visit its homepage at <a href="http://latex2rtf.sourceforge.net/">
-http://latex2rtf.sourceforge.net/ (external link)</a> or its
-project page at <a href="http://sourceforge.net/projects/latex2rtf/">
-http://sourceforge.net/projects/latex2rtf/ (external link)</a>. </p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2008 Wilfried
-Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
- <i><b>my </b></i> with personal installation when
diff --git a/help/wp-conv/texperf.html b/help/wp-conv/texperf.html
deleted file mode 100644
index de8212d671..0000000000
--- a/help/wp-conv/texperf.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <title>TeXPerfect</title>
-</head>
-
-<body>
-
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC Textprocessors to LaTeX -
-Overview</a></p>
-
-<h1>TeXPerfect</h1>
-
-<p>last update: July 28, 1998</p>
-
-<p>citation begin&gt;&gt;</p>
-
-<p>From: John Forkosh &lt;forkosh "at" panix.com&gt; <br>
-Subject: New WordPerfect -&gt; LaTeX Translater <br>
-Date: Thu, 22 Aug 1996 09:16:36 -0400 (EDT) <br>
-I recently uploaded my WordPerfect -&gt; LaTeX translater, called TeXPerfect,
-to CTAN. It's available in the support directory under texperf
-(.../support/texperf). <br>
-(The ... stands for a host specific base directory, which often is either
-"/pub/tex" or "/tex-archive") <br>
-Full C source is provided, as are executables for both DOS and Linux. The
-00README file in the directory provides more details. John (forkosh "at" panix.com)
-<br>
-&lt;&lt;citation end</p>
-
-<p>following extracted from the 00README file: </p>
-
-<p>citation begin&gt;&gt;</p>
-
-<p>Conversion functionality </p>
-
-<p>Some of the LaTeX conversions performed by TeXPerfect are: <br>
-Suppose your input contains a greek alpha from the WordPerfect character set 8.
-The output will contain $\alpha$ instead. Most of the other special character
-sets provided by WordPerfect are similarly converted. (This conversion is
-table-driven by the data in wpchrset.h, and can be easily augmented or
-modified.) <br>
-Superscripts, subscripts, bold, italics, etc, are all properly interpreted and
-handled. <br>
-"Hard" returns in WordPerfect <strong>should</strong> generate an
-extra blank line, so that LaTeX will see them as paragraphs. That functionality
-is mostly programmed, but a last-minute difficulty prevented me from completing
-it. Also, no attempt is made to generate section/subsection/etc commands. <br>
-If your running text contains an expression like f(x), TeXPerfect will
-recognize it and surround it with $'s. A variety of other ad hoc
-"rules" are hand-coded into the program to decide when to enter/exit
-math mode. Needless to say, the decision isn't always right. You'll need to
-correct tp's mistakes in Step 2 above. <br>
-Equations written with WordPerfect's equation editor will be reproduced
-"verbatim" by TeXPerfect, surrounded by \[ and \]. The only
-correction applied is that 1 over 2 becomes 1 \over 2, and similarly for
-various other keywords. But no serious attempt to interpret and translate your
-equation is made. Matrices, etc, will require considerable hand-tweaking on
-your part. But at least you'll have what you originally wrote right in front of
-your eyes. <br>
-A little LaTeX preamble, etc, is provided, primarily for "cosmetic"
-purposes. WordPerfect's margin settings, etc, are <strong>not</strong>
-interpreted to construct this preamble. You'll have to modify that information
-yourself. </p>
-
-<p>Warnings </p>
-
-<p>TeXPerfect was written to interpret files formatted by WordPerfect 5.1 for
-DOS. When run against 5.1 files, TeXPerfect is pretty robust. But, for this
-release, I commented out the lines that check the version number. If you're
-using WP/Win, it can prepare output in 5.1 format. I'd recommend you do that
-before using TeXPerfect. <br>
-&lt;&lt;citation end</p>
-
-<hr>
-
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-
-<ul>
- <li>it must remain intact and the contents unchanged; if you'd like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting (e.g.
-from HTML to some other presentation format) is granted as long as the contents
-are unchanged. </li>
- <li>you may NOT ask money for it except a reasonable cost for media and
-distribution</li>
-</ul>
-
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body>
-</html>
diff --git a/help/wp-conv/texport.html b/help/wp-conv/texport.html
deleted file mode 100644
index f464df4739..0000000000
--- a/help/wp-conv/texport.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title></title>
-
-</head>
-
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="textopc.html">Converters from LaTeX to PC
-Textprocessors -
-Overview</a></p>
-<h1>TexPort</h1>
-<p>last update: July 24, 2001</p>
-<p>Note: I tried an older version of this product, but it turned
-out not to be
-useful for me. Reasons: <a href="ktbugs.html">see here</a>.
-Maybe the current
-version does much better, but it's too expensive for me.</p>
-<p>citation from <a href="http://www.ktalk.com/texport.html">
-http://www.ktalk.com/texport.html (external link)</a> - citation
-begin&gt;&gt; </p>
-<p><b>TexPort converts your TeX and LaTeX files to
-WordPerfect or Microsoft
-Word documents. </b></p>
-<table align="center" border="3" bordercolor="#000080" cellpadding="2" cellspacing="2">
-<tbody>
-<tr>
-<td colspan="2" bgcolor="#d9c8a6">
-<p align="center"><b><font color="#800000">TexPort
-converts the following:</font></b></p>
-</td>
-</tr>
-<tr>
-<td>Equations</td>
-<td>Itemize and enumerate</td>
-</tr>
-<tr>
-<td>Greek characters</td>
-<td>Framebox, fbox, makebox and mbox <br>
-commands</td>
-</tr>
-<tr>
-<td>Math/Scientific characters</td>
-<td>Indexes</td>
-</tr>
-<tr>
-<td>Bold and Italic styles</td>
-<td>Simple tables</td>
-</tr>
-<tr>
-<td>Footnotes</td>
-<td>European accent characters</td>
-</tr>
-<tr>
-<td>Verbatim and verb commands</td>
-<td>\def and \newcommand</td>
-</tr>
-<tr>
-<td>Itemize and Bib Item </td>
-<td><a href="http://www.ktalk.com/faq.html">Itemize,
-Bib Item, <br>
-Cite Item.</a> <br>
-Want to know how to convert Itemize, <br>
-Bib Item, Cite Item for TexPort 2.00 E <br>
-<a href="http://www.ktalk.com/faq.html">Click here</a></td>
-</tr>
-</tbody>
-</table>
-<p>&lt;&lt;citation end</p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting
-(e.g.
-from HTML to some other presentation format) is granted as long as the
-contents
-are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and
-distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
-" gmx.de).</p>
-<h3> Program Copyright:</h3>
-<p>This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as
-published by the
-Free Software Foundation; either version 2 of the License, or (at your
-option) any later version. <br>
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANT-ABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the <a href="GPL.txt">GNU
-General Public License</a>
-for more details. </p>
-<p>Note that this Copyright note only applies to the changes made
-to get the actual version. The older versions have their own Copyright
-policy
-stated in their distribution. </p>
-<h3>History:</h3>
-<p> In 1994 the first Version of LaTeX2rtf was written by a group
-of students of the Viena University supervised by Ralf Schlatterbeck.
-They took up
-a LaTeX parser and added most of the functionality to the program. In
-1995 work
-continued with a second group of students. The result was LaTeX2rtf
-Version 1.5. </p>
-<p>Unfortunately, two different persons started further
-development of that program, not knowing of each other:</p>
-<ul>
-<li>In 1997, Daniel Taupin started updating this converter. He
-added e.g. the feature to convert equations to bitmaps by invoking the
-TeX engine. However this required the emTeX distribution (for DOS)
-which is no longer supported. </li>
-<li> In 1998, Georg Lehner found the reference to the original
-LaTeX2rtf on this webpage and added some functionality. His work
-resulted in version 1.8aa. Unfortunately he did not know about Daniel's
-developments.</li>
-</ul>
-<p>In 2001, Scott Prahl started to make some significant
-enhancements, also including many of Daniel's additions. He is still
-working on it. So <b>this page is about Georg's and Scott's
-version</b>. Latest stable
-release is 1.9.19 and includes all of the features of Daniel's version.</p>
-<p>Temporarily I (Wilfried Hennings) feel responsible for
-coordinating the exchange of development information. But <em>we
-are still seeking for a person who can act as coordinator of future
-development, and we also need a person to take over the development.</em>
-Anyone feeling able to do that
-please contact me by email to texconvfaq "at" gmx.de. </p>
-<p>We got a project initiated at sourceforge.net which aids in
-further development. Visit its homepage at <a href="http://latex2rtf.sourceforge.net/">
-http://latex2rtf.sourceforge.net/ (external link)</a> or its
-project page at <a href="http://sourceforge.net/projects/latex2rtf/">
-http://sourceforge.net/projects/latex2rtf/ (external link)</a>. </p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2008 Wilfried
-Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html>
- <i><b>my </b></i> with personal installation when
diff --git a/help/wp-conv/textopc.html b/help/wp-conv/textopc.html
deleted file mode 100644
index 6a4a283e4a..0000000000
--- a/help/wp-conv/textopc.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html lang="en-us"><head><title>Converters from LaTeX to PC Textprocessors - Overview</title>
-
-
-
-<meta name="author" content="Wilfried Hennings">
-<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"></head><body>
-<p>Up to the <a href="http://tug.org">TUG homepage
-(external link)</a><br>
-Up to <a href="index.html">Converters between LaTeX and
-PC Textprocessors homepage</a></p>
-<h1>Converters from LaTeX to PC Textprocessors - Overview</h1>
-<p><strong>Switch conversion direction: <a href="pctotex.html">From PC to LaTeX</a></strong></p>
-<p>Author: Wilfried Hennings (texconvfaq "at" gmx.de), this page
-last updated on April 24, 2021<br>
-The url of this page is <a href="http://tug.org/utilities/texconv/textopc.html">
-http://tug.org/utilities/texconv/textopc.html</a> </p>
-<p>I maintain these pages because I need converters between LaTeX
-and PC Textprocessors for my work and I want to share the information
-with others who need it. Because I maintain them in my spare time (uh,
-what is spare time?), I
-can not answer individual questions.</p>
-<p><strong>This list is as good or as bad as its support,
-and it needs YOUR support to update and supplement this list.</strong>
-Please supplement if you know more and/or better ones. There are some
-more converters on the CTAN sites, but the following seem to be most
-promising for conversion to and from the current versions of
-wordprocessors. </p>
-<p>Neither correctness nor completeness is guaranteed. <br>
-All opinions mentioned (if any) are my own. Please
-send corrections, enhancements and supplements (auch in deutscher
-Sprache) to the following address: <br>
-texconvfaq "at" gmx.de</p>
-<p>Note that this FAQ list contains information about converters
-<strong>ONLY</strong> between LaTeX and PC word processors.
-Converters to and from <strong>other formats may have own FAQ
-lists</strong>
-- e.g. see the link for converters to and from HTML.</p>
-<hr>
-<p>For the impatient, here is a <a href="tx2pctbl.html">table
-with overview of features</a> of the most recent converters.</p>
-<hr>
-<h2>General Remarks</h2>
-<p>Before looking for a converter, stop and think about a
-principal question: </p>
-<h3>What do you want to be converted in which way?</h3>
-<p>Do you want to convert the <strong>document structure</strong>,
-i.e. a heading should remain a heading, a list should remain a list
-etc., no matter how it will look like in the target format?<br>
-Or do you want to convert the <strong>appearance</strong>,
-i.e. how it looks like, no matter how it is represented in the target
-format?<br>
-Or do you want a mixture of both?<br>So, not only practically there is no converter which is good for
-everyone and every purpose, but this is even principally impossible
-because there are no well-defined requirements which a converter should
-meet. </p>
-<p>An additional problem is that TeX/LaTeX can be extended by an
-unlimited number of macros. Unless the converter contains a full-scale
-TeX system, it can at best support the publicly available macro
-commands, not the ones privately written by individual users.
-Practically you can expect that it supports the standard LaTeX commands
-and perhaps a few more widely used packages. The only converter which
-uses a full-scale TeX system is TeX4ht. </p>
-<p>So keep this in mind when looking through the following list
-of converters, try yourself and decide what you need.</p>
-<h3>There are several ways to convert. </h3>
-<p>To illustrate these, let me restrict it to the Microsoft Word
-case:</p>
-<ul>
-<li>directly type or paste LaTeX code into Word <br>
-<br>
-</li>
-<li>use a Word import filter <br>
-<br>
-</li>
-<li>use a Word macro: load LaTeX file as plain text, then
-search for LaTeX markup and replace the markup by formatting, special
-characters and equations. <br>
-<br>
-</li>
-<li>use an external converter: </li>
-</ul>
-<ol>
-<li>LaTeX -&gt; RTF, then use Word's
-own RTF import,</li>
-<li>LaTeX -&gt; HTML, then use Word's internet assistant or
-built-in html converter,</li>
- <li>LaTeX -&gt; OpenOffice (or LibreOffice) writer, then save as Word docx<br>
- </li>
-
-<li>maybe other external format(s).</li>
-</ol>
-<p>The converters being most complete and currently maintained /
-supported are: </p>
-<p><a href="#tex2word">TeX2Word</a> - a
-shareware LaTeX import filter for MS Word</p>
-<p><a href="#GrindEQ">GrindEQ</a> - a commercial LaTeX import filter for MS Word</p>
-<p><a href="#latex2rtf">latex2rtf</a> - a free
-standalone LaTeX -&gt; RTF
-converter for PC, Macintosh and Unix, </p>
-<p><a href="#TeX4ht">TeX4ht</a> - a free LaTeX
-to html or XML converter for PC and Unix produces html which is good
-for loading into Word. TeX4ht relies on other software, it needs at
-least a full TeX system.</p>
-<p>There are also converters to Powerpoint and to FrameMaker (see
-further below).</p>
-<hr>
-<h2>Directly type or paste LaTeX code into Word</h2>
-All of these only allow typing or pasting LaTeX coded <span style="font-style: italic;">equations</span> in Word,
-not LaTeX coded text elements.<br>
-<p><b>"LaTeX in Word"</b>:
-See <a href="http://latexinword.sourceforge.net/">homepage
-(external link)</a>
-(Freeware, GPL). <br>
-It allows to enter LaTeX equations in word
-processors such as MS Word in LaTeX markup, and the
-formatted equation is inserted in the Wordprocessor as a png
-bitmap. It needs a server which performs the conversion. Server
-installation files are available from the <a href="http://sourceforge.net/project/showfiles.php?group_id=186573">download
-page (external link)</a>.</p>
-<p><a href="https://www.dessci.com/en/products/mathtype/"><b>MathType</b>
-(external link)</a> allows typing and pasting equations in LaTeX
-markup and also direct conversion of an equation in LaTeX markup which
-is part of the Word document text.</p>
-<p><b>OpenOffice (or LibreOfiice)</b>
-allows typing equations in LaTeX-like markup. </p>
-<hr>
-<h2>Use a Word import filter</h2>
-<p><a name="tex2word"></a><b>TeX2Word:</b>
-Shareware, 99$ (45$ academic). <br>
-Current version: 3.0, Feb 2011.<br>
-Support for more document styles and packages will be available with
-future versions. You can also supply support for document styles,
-packages and user defined macros by yourself (needs TeX programming
-knowledge).<br>
-Needs:<br></p>
-<p>
-Word &gt;97, also <a href="https://www.dessci.com/en/products/mathtype/">MathType
-(external
-link)</a>
-4
-or later is needed (full version of the Equation Editor which comes
-with MS Word). Note that without registration and payment it will
-revert to the free version which is sufficient for this purpose.<br></p>
-
-See <a href="http://www.tex2word.com/">homepage
-(external link)</a>
-<p><a name="GrindEQ"></a><b>GrindEQ
-LaTeX-to-Word:</b> Shareware, 99EUR (49EUR academic).<br>
-converts LaTeX, AMS-LaTeX, Plain TeX, or AMS-TeX documents to Microsoft
-Word format.<br>
-You can choose the following formats for TeX/LaTeX equations: Microsoft
-Equation 2007, Microsoft Equation 3.x, or MathType. <br>
-Works with Microsoft Word 2003 and up and Microsoft Windows Vista and up.<br>
-Evaluation version is restricted to 10 launches.<br>
-See <a href="http://www.grindeq.com/">homepage
-(external link)</a></p>
-<hr>
-<h2>Convert to RTF</h2>
-<h3>Free:</h3>
-<p><a name="latex2rtf"></a><b>latex2rtf</b>:
-LaTeX-to-RTF-converter. See the <a href="latex2rtf.html">more
-detailed page</a>. </p>
-<hr><h2>Use a Word macro</h2>
-<h3>Free:</h3>
-
-<p><b>ltx2word</b>,
-by myself: LaTeX to WinWord 6, WinWord 7(95) and WinWord 97 converter,
-written as Word macros. No tables. Not compatible with Word 2000 and
-up, no further development.<br>
-See <a href="ltx2word.html">more detailed page</a>.</p>
-<hr>
-<h2>Use a Word add-in</h2>
-<p>The following are no full converters but only allow
-typing or pasting LaTeX code into Word:</p>
-
-<p><b>"LaTeX in Word"</b>: It allows to enter
-equations in word processors such as MS Word in LaTeX markup, and the
-formatted equation is inserted in the Wordprocessor as a png
-bitmap. It needs a server which performs the conversion. <br>
-See <a href="http://latexinword.sourceforge.net/">homepage
-(external link)</a> (Freeware, GPL)<br>
-Server installation files are available from the <a href="http://sourceforge.net/project/showfiles.php?group_id=186573">download
-page (external link)</a>.</p><hr>
-<h2>HTML as intermediate format</h2>
-<h3>LaTeX to HTML</h3>
-<p>cost free unless otherwise stated</p>
-<p>Because HTML is a structured format, the conversion between
-HTML and LaTeX is rather straightforward. However there remain the
-limitations of HTML compared to LaTeX, i.e. there are many elements in
-LaTeX which can not (yet?) be represented in HTML. Converters from
-LaTeX to HTML are:</p>
-<p><a name="TeX4ht"></a><strong>Recommended</strong>
-if you have TeX installed or don't mind to install it: <a href="http://tug.org/applications/tex4ht/mn.html">
-<b>TeX4ht</b> (external link)</a>
-is a highly configurable TeX-based converter to hypertext. It comes
-with a built-in default setting for plain TeX, LaTeX and TeXinfo, and
-it generates html with accompanying css stylesheet, xhtml, or xml. The
-converter needs a full TeX installation, but this gives the advantage
-that TeX's full support for macros and styles is available (with only
-few exceptions).<br>
-Equations are converted to either bitmaps or MathML. There are some
-different MathML flavors around which can be chosen by an option.
-(Following description is partially copied from the TeX4ht web site.)<br>
-The special command <br>
-<tt>oolatex</tt> <br>
-is available for producing xml compatible with OpenOffice and LibreOffice. The output of the command <tt>oolatex
-&lt;filename&gt;</tt> is a zipped file with same name and
-a ".odt" extension (containing the document in xml format which does
-not suffer the limitations of html). <br>
-The resulting .odt file can directly be opened in OpenOffice or
-LibreOffice, converted equations are editable in OpenOffice's or
-LibreOffice's own equation editor. OpenOffice and LibreOffice
-can save the document in MS Word 97/2000/XP (.doc) and Word 2003-2010 (.docx) format, but
-some equations may not be converted correctly to Word. <br>
-A command of the form <br>
-<tt>htlatex filename "html,word"&nbsp;"symbol/!"</tt><br>
-asks for HTML output tuned toward Microsoft Word. Such a format,
-however, relies on bitmaps for mathematical formulas.<br>
-Conversion to bitmaps additionally needs Ghostscript and ImageMagic or
-netpbm. <br>
-For more information see
-<a href="http://tug.org/applications/tex4ht/mn.html">http://tug.org/applications/tex4ht/mn.html
-(external link)</a>.
-</p>
-<p><a href="http://hutchinson.belmont.ma.us/tth/"><b>TTH</b>
-(external link)</a>:
-LaTeX-to-HTML converter which translates LaTeX into HTML 4.0 markup.
-Formulae are also translated into standard html markup. (Free for
-non-commercial applications.) <br>
-A sister of tth, <a href="http://hutchinson.belmont.ma.us/tth/mml/">TtM
-(external link)</a>,
-converts formulae to MathML (Linux version for free, Windows version
-must be paid).</p>
-<p><a href="http://www.ctan.org/tex-archive/support/ltoh"><b>ltoh</b>
-(external
-link)</a>:
-LaTeX-to-HTML converter which is highly customizable, i.e. you can
-define how the LaTeX macros which are used in your document are to be
-translated. Requires that the input file conforms to LaTeX2e (see
-documentation). It was last updated 1997, and it seems
-that the homepage is no longer available, so look on
-CTAN in .../support/ltoh/ .</p>
-<p><a href="http://para.inria.fr/%7Emaranget/hevea/"><b>HEVEA</b>
-(external link)</a>:
-LaTeX-to-HTML converter which translates LaTeX into HTML5 markup.
-Formulae are also translated into standard html markup (not yet using
-MathML).</p>
-<p><a href="http://hyperlatex.sourceforge.net/"><b>Hyperlatex</b>
-(external link)</a>
-allows the use of a subset of LaTeX to produce documents in HTML .</p>
-
-<h3>HTML to Wordprocessor</h3>
-<p>Word 8 (97) and up contain the html converter by default (but
-its installation may have to be explicitly chosen during the Word setup
-in user-defined mode). <br>
-</p>
-<p></p><p>OpenOffice and LibreOffice can also import html, but much better is using
-tex4ht for lossless conversion to native OO format.</p>
-<hr>
-<h2>Other intermediate formats</h2>
-
-<p>An upcoming format is <b>XML</b>, a subset of
-which can be exported and imported by Microsoft Office 2000 and up,
-OpenOffice uses it as its native format, and the browser programmers
-are working on implementing XML. It actually is an instance of SGML. As
-it is more powerful than HTML,
-conversion from LaTeX to XML would lose much less information than
-conversion from LaTeX to HTML. There are good chances that it could be
-used as a general exchange format in the future. <a href="#TeX4ht">TeX4ht</a>
-already has scripts for converting to XML (TEI or DOCBOOK). MS Word
-2000 and earlier can not import XML, for these target systems convert
-to html+css using the xwtex and xwlatex scripts. MS Word 2003 can
-export and import XML, but I haven't yet tested whether it can import
-the TEI or DOCBOOK files produced by TeX4ht. <br>
-The most successful path is using <a href="textopc.html#TeX4ht">TeX4ht</a>
-to convert to the OpenOffice format (.sxw, which actually is a zip
-compressed archive containing the document and vector graphics as XML
-and the bitmap graphics as bitmap files) and open this in OpenOffice.
-One could stop there, as OpenOffice is publicly available, or go on and
-save from OpenOffice as a "MS Word 97/2000/XP"
-file.</p>
-<p>Most astonishing, one could also use <b>PDF</b>
-as intermediate format.
-Generating PDF from LaTeX is straightforward if you have a full TeX
-implementation installed. If you have the full commercial version of
-Adobe Acrobat or pdf exchange editor, you can open the pdf and "save as" e.g. Word doc, or plain
-text. Or you can use other commercial software to convert PDF to Word,
-just do a www search for "pdf to word" to get several hits. In this
-path of conversion however the document strucure and probably some
-formatting will be lost. </p>
-<p>Finally, you can use OCR software to convert any printed
-document to word or plain text. To avoid the inaccuracy introduced by
-printing to paper and scanning, you can convert the TeX output to ps or
-pdf, convert this to a bitmap (using ghostscript), and feed this bitmap
-into the ocr software.</p><hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998 &#8230; 2021 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation
-format) is granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/tx2pctbl.html b/help/wp-conv/tx2pctbl.html
deleted file mode 100644
index bc21d364b3..0000000000
--- a/help/wp-conv/tx2pctbl.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>LaTeX -&gt; PC Converter Quick Comparison List</title></head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="textopc.html">Converters from LaTeX to PC Textprocessors - Overview</a></p>
-<h1>LaTeX -&gt; PC Converter Quick Comparison List</h1>
-<p><strong>Switch conversion direction: <a href="pc2txtbl.html">From PC to LaTeX</a></strong></p>
-<p>Author: Wilfried Hennings (texconvfaq "at" gmx.de), last
-update of this page on March 3, 2011</p>
-<p>NOTE: This table is still under construction. I only had time
-to include the most recent converters.</p>
-<table border="1" width="100%">
-<tbody>
-<tr>
-<th width="18%">Program<br>
-Author(s)<br>
-referred version</th>
-<th width="37%">Features</th>
-<th width="18%">supported Systems</th>
-<th width="229">where to get<br>(external links!)</th>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">TeX2Word<br>
-Chikrii Softlab. shareware, 99$ (45$ academic)<br>3.0, Feb. 2011 </td>
-<td align="left" valign="top" width="37%">load
-TeX file from within Word. Needs Word97 or later. With Word 97 to 2003, also MathType is needed. </td>
-<td align="left" valign="top" width="18%">Windows 2000, XP or later</td>
-<td align="left" valign="top" width="229"><a href="http://www.tex2word.com/">www.tex2word.com</a></td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">TeX4ht
-(free)</td>
-<td align="left" valign="top" width="37%">invokes
-TeX to convert to
-html+stylesheet which can be loaded into Word; converts equations to
-either bitmaps or MathML</td>
-<td align="left" valign="top" width="18%">DOS,
-MS Windows, all kinds of Unix</td>
-<td align="left" valign="top" width="229">
-<a href="http://www.cse.ohio-state.edu/%7Egurari/TeX4ht/mn.html">www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html</a>
-</td>
-</tr>
-<tr>
-<td align="left" valign="top" width="18%">latex2rtf
-(free)<br>
-Scott Prahl<br>
-v. 2.1.1 b7, Feb. 2011</td>
-<td align="left" valign="top" width="37%">LaTeX-to-RTF-converter.
-<br>
-conversion of most equation elements to EQ fields (or images, which
-requires a TeX installation, ImageMagick, and Ghostscript) </td>
-<td align="left" valign="top" width="18%">DOS,
-MS Windows 95 / 98 / ME / NT4 / 2000 / XP, Macintosh, all kinds of Unix</td>
-<td align="left" valign="top" width="229">CTAN:
-directory .../support/latex2rtf;<br>
-for most recent versions and development see the
-<a href="http://sourceforge.net/projects/latex2rtf/">project on
-sourceforge.net</a></td>
-</tr>
-</tbody>
-</table>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998 ... 2011
-Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have something changed, contact me (texconvfaq "at" gmx.de).
-Reformatting (e.g. from HTML to some other presentation format) is
-granted as long as the contents are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/w2latex.html b/help/wp-conv/w2latex.html
deleted file mode 100644
index 337f8acaf0..0000000000
--- a/help/wp-conv/w2latex.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <title>w2latex converter</title>
-</head>
-
-<body>
-
-<p>Up to the <a href="http://tug.org">TUG homepage (external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC Textprocessors to LaTeX -
-Overview</a></p>
-
-<h1>w2latex</h1>
-
-<p>last update: July 28, 1998</p>
-
-<p>written in C. (C compiler necessary.) Actually converts RTF to LaTeX. <br>
-The Word document must first be saved to disk in RTF format. </p>
-
-<p>Advantages: <br>
-Converts text elements and formula fields. <br>
-Converts nearly all special characters of the basic TrueType fonts (Arial,
-Courier New, Times New Roman) I personally made some changes to additionally
-support German left quotes and a few other special characters. </p>
-
-<p>Disadvantages: <br>
-Does not convert the document structure (i.e. headings are not recognised as
-such). <br>
-Does not handle other fields, equation editor objects, graphics. Table handling
-is rudimentary (conversion of table cells to minipages, but problems with
-borders). <br>
-It only handles RTF versions up to WinWord 2, not yet WinWord 6. </p>
-
-<p>Can be found on all CTAN sites, dir .../support/w2latex <br>
-German version is in dir .../support/w2latex/german <br>
-(The ... stands for a host specific base directory, which often is either
-"/pub/tex" or "/tex-archive") </p>
-
-<hr>
-
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2001, 2007, 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-
-<ul>
- <li>it must remain intact and the contents unchanged; if you'd like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting (e.g.
-from HTML to some other presentation format) is granted as long as the contents
-are unchanged. </li>
- <li>you may NOT ask money for it except a reasonable cost for media and
-distribution</li>
-</ul>
-
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body>
-</html>
diff --git a/help/wp-conv/winw2ltx.html b/help/wp-conv/winw2ltx.html
deleted file mode 100644
index 0dbf535784..0000000000
--- a/help/wp-conv/winw2ltx.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>WINW2LTX macros</title>
-
-</head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage
-(external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX -
-Overview</a></p>
-<h1>WINW2LTX</h1>
-<p>last update: Aug 12, 2008</p>
-<p>A set of macros for WinWord 2, now also available for WinWord
-6 and 7 (95)
-<br>
-by Allin Cottrell &lt;cottrell "at" wfu.edu&gt;<br>
-Adapted to German WinWord versions by Wilfried Hennings in
-1998.<br>
-Heavily extended and adapted to WinWord97 (and up) by Vincent Belache
-in 2008.</p>
-Advantages:<br>
-Converts the document structure, i.e. headings level 1 and 2 (and level
-3 in later version), bulleted lists and numbered lists, and some of
-the
-special characters.<br>
-<br>
-------------------------------------------------------------------
-<br>
-<br>
-<b>English / French Word97 version Aug. 2008:</b><br>
-<br>
-Heavily extended and adapted to WinWord97 (and up) by Vincent Belache.
-<br>
-Now also converts EQ fields.<br>
-<br>
-<b>Download</b> <a href="bin/w97toltx.zip">w97toltx.zip</a>. This package contains a word doc with the macros and further descriptions.<br>
-<br>
-Caution: <br>
-1) Before using, the macros have to be localized.<br>
-2) I (Wilfried Hennings) did not test them and give no support.<br>
-<br>
-------------------------------------------------------------------<br>
-<br>
-<b>German Word 95 Version Feb. 1998:</b> <br>
-<p>Supported: <br>
-Heading levels 1 to 5 <br>
-most special characters from the standard font and the symbol font.<br>
-Formulas can not be converted by this macro, but after its completion
-they can
-be converted by MathType, the full version of the equation editor.<br>
-<b>Download</b> latest German version <a href="bin/w95toltx.zip">w95toltx.zip</a>. This zipfile
-contains: </p>
-<dl>
-<dt>w95toltx.dot:</dt>
-<dd>Template for GERMAN WinWord 7, probably also WinWord 6. <br>
-NOT designed for, but adaptable to non-German versions. </dd>
-<dt>license.txt:</dt>
-<dd>The GNU Public License</dd>
-</dl>
-<p>Note: This macro set is free software; you can redistribute it
-and/or modify
-it under the terms of the <a href="http://www.gnu.org/copyleft/gpl.html">GNU
-General Public License (external link)</a> as published by the
-Free Software
-Foundation; either
-version 2 of the License, or (at your option) any later version. </p>
-<br>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998 ... 2008 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting
-(e.g.
-from HTML to some other presentation format) is granted as long as the
-contents
-are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and
-distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/word2x.html b/help/wp-conv/word2x.html
deleted file mode 100644
index 3319bee520..0000000000
--- a/help/wp-conv/word2x.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>word2x</title>
-
-</head>
-<body>
-<p>Up to the <a href="http://tug.org">TUG homepage
-(external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX -
-Overview</a></p>
-<h1>word2x</h1>
-<p>last update of this page: Feb. 9, 2009</p>
-<p>&copy; D.P.Simpson 2000 (word2x "at" duncan.telstar.net)</p>
-<p>Converts MS Word for Windows 6.0 / 7.0(=95) documents
-(binary!) to LaTeX, plain text or html,
-without the necessity to have Word available, also on many non-PC
-systems.</p>
-<p>Latest version of this converter is of 2000.
-</p>
-<p>See <a href="http://sourceforge.net/projects/word2x/">http://word2x.sourceforge.net/
-(external link)</a></p>
-<p>Written in C++</p>
-<p>Environments reported to work include</p>
-<ul>
-<li>RS6000 running AIX (Unix)</li>
-<li>cygwin32 (win 32 Microsoft platforms)</li>
-<li>DEC Alpha AXP under OSF/1 (Unix)</li>
-<li>IBM SP2 (Unix)</li>
-<li><a href="http://www.linux.org/index.html">Linux
-(external link)</a>
-(Unix)</li>
-<li>SunOS (Unix)&lt; /LI&gt; </li>
-<li>gcc on solaris (unix)</li>
-<li>FreeBSD (Unix)</li>
-<li>SGI (Unix, some hacking reuqired)</li>
-<li>OS/2 and EMX with <a href="http://mars.aclcom.co.uk/download/word2x_os2.zip">this
-patch (external link)</a> from Oleg V.Cat. Another port by Joerg
-Klemenz has a
-<a href="http://www.d3.net/joerg/word2x.html">web page
-(external link)</a>.</li>
-</ul>
-<p>Environments reported <b>not</b> to work include</p>
-<ul>
-<li>acc on Solaris (source ANSI violations, fixes wanted)</li>
-<li>Microsoft Visual C++ (lots of problems, includng lack of
-alloca and incapable make clone)</li>
-<li>Borland C++</li>
-</ul>
-<p>Further development in progress. </p>
-<p>On CTAN sites, directory <br>
-.../tools/word2x <br>
-(The ... stands for a host specific base directory, which often is
-either
-"/pub/tex" or "/tex-archive") </p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright &copy; 1998 &hellip; 2009 Wilfried Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting
-(e.g.
-from HTML to some other presentation format) is granted as long as the
-contents
-are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and
-distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/help/wp-conv/wp2latex.html b/help/wp-conv/wp2latex.html
deleted file mode 100644
index 1ef07f247f..0000000000
--- a/help/wp-conv/wp2latex.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>WP2LaTeX</title>
-
-</head>
-<body>
-<p>Up to the <a href="http://tug.org/">TUG homepage
-(external link)</a><br>
-Up to <a href="pctotex.html">Converters from PC
-Textprocessors to LaTeX -
-Overview</a></p>
-<h1>WP2LaTeX</h1>
-<p>last update: Feb 9, 2011</p>
-<p>written in C. Current version converts Macintosh WordPerfect
-1.x, 2.x, 3.x, 4.x, PC WordPerfect 4.x, 5.x and 6/7/8.x
-to LaTeX.</p>
-<p> Latest version is 3.53 (Sep. 19, 2010). Download
-from
-<a href="http://www.penguin.cz/%7Efojtik/wp2latex/wp2latex.htm">http://www.penguin.cz/~fojtik/wp2latex/wp2latex.htm
-(external link)</a> <br>
-WP2LaTeX is also on CTAN sites, dir .../support/wp2latex , but this
-contains an older version (3.38).<br>
-Executables are available for MSDOS, MSWIN and LINUX. </p>
-<p>converts (e.g.)</p>
-<ul>
-<li>Equations</li>
-<li>Tables, Tabs (only WP5.x and up)</li>
-<li>Footnotes, Endnotes</li>
-<li>Cross-References (only WP5.x and up)</li>
-<li>Superscript, Subscript</li>
-<li>Extended characters (foreign language/accented, math, Greek
-- not linedrawing)</li>
-<li>Newspaper-style columns (using multicol.sty) (only WP5.x
-and up)</li>
-</ul>
-<p>For more info on features, see homepage -&gt;
-<a href="http://www.penguin.cz/%7Efojtik/wp2latex/wp2l_features.htm">features
-(external link)</a>
-</p>
-<hr>
-<p>This HTML page is part of the texconv pages.<br>
-Copyright 1998, 1999, 2000, 2002, 2003, 2007, 2008, 2011 Wilfried
-Hennings<br>
-You may copy and redistribute it under the following conditions:</p>
-<ul>
-<li>it must remain intact and the contents unchanged; if you'd
-like to have
-something changed, contact me (texconvfaq "at" gmx.de). Reformatting
-(e.g.
-from HTML to some other presentation format) is granted as long as the
-contents
-are unchanged. </li>
-<li>you may NOT ask money for it except a reasonable cost for
-media and
-distribution</li>
-</ul>
-<p>Please also note the <a href="index.html#disclaimer">disclaimer</a>.</p>
-</body></html> \ No newline at end of file
diff --git a/info/tlmgr-intro-zh-cn/body/actions.tex b/info/tlmgr-intro-zh-cn/body/actions.tex
index 122a67a558..8751a94120 100644
--- a/info/tlmgr-intro-zh-cn/body/actions.tex
+++ b/info/tlmgr-intro-zh-cn/body/actions.tex
@@ -1,7 +1,7 @@
% !TeX root = ../tlmgr-intro-zh-cn.tex
-\section{操作 (ACTIONS)}
+\section[操作]{操作 (ACTIONS)}
-\subsection{\mdseries\ac{info}}
+\subsection{\mdseries\ac{info}}\label{subsec:info}
\paragraph{使用方法:}
diff --git a/info/tlmgr-intro-zh-cn/body/options.tex b/info/tlmgr-intro-zh-cn/body/options.tex
index 68f73d6785..e002dd476e 100644
--- a/info/tlmgr-intro-zh-cn/body/options.tex
+++ b/info/tlmgr-intro-zh-cn/body/options.tex
@@ -1,5 +1,5 @@
% !TeX root = ../tlmgr-intro-zh-cn.tex
-\section{全局选项 (GLOBAL OPTIONS)}
+\section[全局选项]{全局选项 (GLOBAL OPTIONS)}
\begin{description}
\item \op{-help}, \op{-h}, \op{-?}\par
这些选项可以显示任何一个操作的参考文档.
diff --git a/info/tlmgr-intro-zh-cn/body/schemes_and_collections.tex b/info/tlmgr-intro-zh-cn/body/schemes_and_collections.tex
new file mode 100644
index 0000000000..3280444584
--- /dev/null
+++ b/info/tlmgr-intro-zh-cn/body/schemes_and_collections.tex
@@ -0,0 +1,71 @@
+% !TeX root = ../tlmgr-intro-zh-cn.tex
+\section[安装方案与集合]{安装方案 (Schemes) 与集合 (Collections)}
+
+在 \tlmgr{} \ac{install} (\op{-reinstall}) 的时候对于某些宏包我们可以知道它的名字, 如果要(重新)安装某些安装方案或集合, 在操作 \nameref{subsec:info} 中提到可以使用
+\begin{quote}
+ \tlmgr{} \ac{info} \texttt{collections}
+\end{quote}
+来获得所有集合的名称和信息, 用
+\begin{quote}
+ \tlmgr{} \ac{info} \texttt{schemes}
+\end{quote}
+来获得所有安装方案的名称和信息, 前面带 \texttt{i} 的为已经安装过的安装方案和集合. 下面给出输出结果以便查阅
+
+\begin{lstlisting}
+ $ tlmgr info collections
+
+ i collection-basic: Essential programs and files
+ i collection-bibtexextra: BibTeX additional styles
+ i collection-binextra: TeX auxiliary programs
+ i collection-context: ConTeXt and packages
+ i collection-fontsextra: Additional fonts
+ i collection-fontsrecommended: Recommended fonts
+ i collection-fontutils: Graphics and font utilities
+ i collection-formatsextra: Additional formats
+ i collection-games: Games typesetting
+ i collection-humanities: Humanities packages
+ i collection-langarabic: Arabic
+ i collection-langchinese: Chinese
+ i collection-langcjk: Chinese/Japanese/Korean (base)
+ i collection-langcyrillic: Cyrillic
+ i collection-langczechslovak: Czech/Slovak
+ i collection-langenglish: US and UK English
+ i collection-langeuropean: Other European languages
+ i collection-langfrench: French
+ i collection-langgerman: German
+ i collection-langgreek: Greek
+ i collection-langitalian: Italian
+ i collection-langjapanese: Japanese
+ i collection-langkorean: Korean
+ i collection-langother: Other languages
+ i collection-langpolish: Polish
+ i collection-langportuguese: Portuguese
+ i collection-langspanish: Spanish
+ i collection-latex: LaTeX fundamental packages
+ i collection-latexextra: LaTeX additional packages
+ i collection-latexrecommended: LaTeX recommended packages
+ i collection-luatex: LuaTeX packages
+ i collection-mathscience: Mathematics, natural sciences, computer science packages
+ i collection-metapost: MetaPost and Metafont packages
+ i collection-music: Music packages
+ i collection-pictures: Graphics, pictures, diagrams
+ i collection-plaingeneric: Plain (La)TeX packages
+ i collection-pstricks: PSTricks
+ i collection-publishers: Publisher styles, theses, etc.
+ i collection-texworks: TeXworks editor; TL includes only the Windows binary
+ i collection-wintools: Windows-only support programs
+ i collection-xetex: XeTeX and packages
+\end{lstlisting}
+\begin{lstlisting}
+ $ tlmgr info schemes
+
+ i scheme-basic: basic scheme (plain and latex)
+ i scheme-context: ConTeXt scheme
+ i scheme-full: full scheme (everything)
+ i scheme-gust: GUST TeX Live scheme
+ i scheme-infraonly: infrastructure-only scheme (no TeX at all)
+ i scheme-medium: medium scheme (small + more packages and languages)
+ i scheme-minimal: minimal scheme (plain only)
+ i scheme-small: small scheme (basic + xetex, metapost, a few languages)
+ i scheme-tetex: teTeX scheme (more than medium, but nowhere near full)
+\end{lstlisting} \ No newline at end of file
diff --git a/info/tlmgr-intro-zh-cn/latexmkrc b/info/tlmgr-intro-zh-cn/latexmkrc
index da26b8509c..3643a21590 100644
--- a/info/tlmgr-intro-zh-cn/latexmkrc
+++ b/info/tlmgr-intro-zh-cn/latexmkrc
@@ -14,7 +14,7 @@ $pdf_mode = 1;
$clean_ext = "synctex.gz acn acr alg aux bbl bcf blg brf fdb_latexmk glg glo gls idx ilg ind lof log lot out run.xml toc pdf thm toe ist idx";
# Preview mode & Auto complie after save.
-$preview_continuous_mode = 0;
+$preview_continuous_mode = 1;
# Set XeLaTeX option.
$pdflatex = "xelatex -halt-on-error -interaction=nonstopmode -synctex=1 %O %S";
diff --git a/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf b/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf
index 7b5dbfa347..04e641e2bd 100644
--- a/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf
+++ b/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf
Binary files differ
diff --git a/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty b/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty
index c3dffa45dd..0a27f3586f 100644
--- a/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty
+++ b/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tlmgr-intro-zh-cn}[2021/04/20 Package for tlmgr-intro-zh-cn]
+\ProvidesPackage{tlmgr-intro-zh-cn}[2021/05/05 Package for tlmgr-intro-zh-cn]
% 版式设计
\RequirePackage[margin=2.4cm]{geometry}
@@ -17,6 +17,8 @@
\RequirePackage{listings}
\RequirePackage[shortlabels]{enumitem}
+\RequirePackage{tocbibind}
+
% 浮动体
\RequirePackage{tabularx}
\RequirePackage{booktabs}
@@ -25,13 +27,14 @@
\graphicspath{{./fig/}}
\lstset{
- basicstyle = {\ttfamily},
+ basicstyle = {\small\ttfamily},
keywordstyle = \color{blue}\bfseries,
commentstyle = \color{gray},
stringstyle = \color{brown},
breaklines = true,
gobble = 2,
- escapechar = +,
+ % escapechar = +,
+ frame = single
}
\ctexset{
diff --git a/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex b/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex
index 00068522b5..50b122acbf 100644
--- a/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex
+++ b/info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex
@@ -6,7 +6,7 @@
\author{Zhonghao Sun\thanks{\href{mailto:syvshc@foxmail.com}%
{\ttfamily syvshc@foxmail.com}}%
}
-\date{2020.4.20}
+\date{2021.05.05}
\begin{document}
\maketitle
@@ -19,4 +19,5 @@
\include{./body/actions}
\appendix
\include{./body/mirrors}
+ \include{./body/schemes_and_collections}
\end{document}
diff --git a/macros/generic/polexpr/README.md b/macros/generic/polexpr/README.md
index 1ea68b2df7..936520a622 100644
--- a/macros/generic/polexpr/README.md
+++ b/macros/generic/polexpr/README.md
@@ -85,8 +85,10 @@ Releases
and enhancement of xintexpr 1.4.
- 0.8.1 (2021/04/12)
Bugfix: a typo broke the 0.8 ``diff1()`` and related functions.
+- 0.8.2 (2021/05/05)
+ Track `xintexpr` 1.4e changes
-Files of 0.8.1 release:
+Files of 0.8.2 release:
- polexpr.sty, polexprcore.tex, polexprexpr.tex, polexprsturm.tex,
- README.md,
@@ -96,7 +98,7 @@ Acknowledgments
---------------
Thanks to Jürgen Gilg whose question about
-[xintexpr](http://www.ctan.org/pkg/xintexpr) usage for differentiating
+[xintexpr](http://www.ctan.org/pkg/xint) usage for differentiating
polynomials was the initial trigger leading to this package, and to
Jürgen Gilg and Thomas Söll for testing it on some concrete problems.
diff --git a/macros/generic/polexpr/polexpr.html b/macros/generic/polexpr/polexpr.html
index 6b9881daef..25b4fa170c 100644
--- a/macros/generic/polexpr/polexpr.html
+++ b/macros/generic/polexpr/polexpr.html
@@ -598,7 +598,7 @@ a { text-decoration: none; }
<body>
<div class="document" id="package-polexpr-documentation">
<h1 class="title">Package polexpr documentation</h1>
-<p class="subtitle" id="id1">0.8.1 (2021/04/12)</p>
+<p class="subtitle" id="id1">0.8.2 (2021/05/05)</p>
<div class="contents topic" id="contents">
<p class="topic-title">Contents</p>
@@ -1209,22 +1209,6 @@ declared from <span class="docutils literal">\poldef</span> as variables.</p>
Only in case of a scalar denominator is it to be considered stable.
Please use rather <span class="docutils literal">quo()</span>.</p>
</blockquote>
-<div class="admonition warning">
-<p class="admonition-title">Warning</p>
-<p>The <span class="docutils literal">pow(x,a)</span> function of <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> for <span class="docutils literal">x^a</span> with fractional
-<span class="docutils literal">a</span> will not (with current <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> <span class="docutils literal">1.4d</span>) accept a polynomial
-as first variable even if the second argument is an integer.</p>
-<p>It is possible (via <span class="docutils literal">\poormanloghack</span>) to instruct <span class="docutils literal">\xintexpr</span> to
-let <span class="docutils literal"><span class="pre">x**a</span></span> or <span class="docutils literal">x^a</span> be as <span class="docutils literal">pow(x,a)</span>. If this is done <span class="docutils literal">**</span>
-(resp. <span class="docutils literal">^</span>) will become unusable with polynomials (i.e. will create
-a low-level TeX error).</p>
-<p>And vice versa if polexpr gets loaded after the <span class="docutils literal">\poormanloghack</span>
-was used, <span class="docutils literal">**</span> and <span class="docutils literal">^</span> in <span class="docutils literal"><span class="pre">\xintexpr/\xinteval</span></span> will again only
-accept integer powers.</p>
-<p>Thus employ <span class="docutils literal">\poormanloghack</span> for at most one of <span class="docutils literal">**</span> or <span class="docutils literal">^</span>
-in order to keep one of them available for polynomials and integer
-powers.</p>
-</div>
</div>
<div class="section" id="experimental-infix-operators">
<h2><a class="toc-backref" href="#id42">Experimental infix operators <span class="docutils literal">//, /:</span></a></h2>
@@ -3239,20 +3223,9 @@ especially coefficients equal to plus or minus one.</p>
<span id="poltofloatexprcmd"></span><h3><a class="toc-backref" href="#id152"><span class="docutils literal"><span class="pre">\PolToFloatExprCmd{&lt;raw_coeff&gt;}</span></span></a></h3>
<blockquote>
<p>The one-argument macro used by <span class="docutils literal">\PolToFloatExprOneTerm</span>.
-It defaults to <span class="docutils literal"><span class="pre">\xintFloat{#1}</span></span>.</p>
-<div class="admonition caution">
-<p class="admonition-title">Caution!</p>
-<p>Currently <span class="docutils literal">\xintFloat{0}</span> outputs <span class="docutils literal">0.e0</span>
-which is perfectly acceptable input for Python, but not for
-Maple. Thus, one should better leave the <span class="docutils literal">\\ifpoltoexprall</span> TeX
-Boolean to its default <a class="reference internal" href="#poltoexprallfalse">\poltoexprallfalse</a>, if one intends to use
-the output in a Maple worksheet.</p>
-<p>But even then the zero polynomial will cause a problem. Workaround:</p>
-<pre class="literal-block">\renewcommand\PolToFloatExprCmd[1]{\xintiiifZero{#1}{0.0}{\xintFloat{#1}}}</pre>
-<p>Usage of <span class="docutils literal">\xintiiifZero</span> and not <span class="docutils literal">\xintifZero</span> is only for
-optimization (I can't help it) because <span class="docutils literal">#1</span> is known to be
-in <span class="docutils literal">xintfrac</span> raw format.</p>
-</div>
+It defaults to <span class="docutils literal"><span class="pre">\xintPFloat{#1}</span></span>, which trims trailing
+zeroes.</p>
+<p><em>changed at 0.8.2</em> Formerly it was using <span class="docutils literal">\xintFloat</span>.</p>
</blockquote>
</div>
</div>
@@ -4176,13 +4149,13 @@ description</a>.</p>
</li>
<li><p>bugfix:</p>
<ul>
-<li><p>sadly, <span class="docutils literal">diff1()</span>, <span class="docutils literal">diff2()</span>, <span class="docutils literal">diffn()</span> were broken
+<li><p>Sadly, <span class="docutils literal">diff1()</span>, <span class="docutils literal">diff2()</span>, <span class="docutils literal">diffn()</span> were broken
for polynomials of degrees 8 or more, due to a typo and
insufficient testing.</p></li>
-<li><p>the package should have (as documented) required <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> 1.4d
+<li><p>The package should have (as documented) required <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> 1.4d
but in practice it accepted to work with <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> 1.4c, whose
<span class="docutils literal">\xinteval</span> does not know how to &quot;output&quot; a polynomial.</p></li>
-<li><p>the definition of one of the two variants of <a class="reference internal" href="#polsturmnbofrootsof">\PolSturmNbOfRootsOf</a> was broken by an end-of-line space, left-over
+<li><p>The definition of one of the two variants of <a class="reference internal" href="#polsturmnbofrootsof">\PolSturmNbOfRootsOf</a> was broken by an end-of-line space, left-over
from mass conversion from LaTeX to TeX syntax.</p></li>
</ul>
</li>
@@ -4194,6 +4167,32 @@ from mass conversion from LaTeX to TeX syntax.</p></li>
</li>
</ul>
</li>
+<li><p>v0.8.2 (2021/05/05)</p>
+<ul class="simple">
+<li><p>breaking change:</p>
+<ul>
+<li><p>usage of <span class="docutils literal">\xintPFloat</span> in place of <span class="docutils literal">\xintFloat</span> for
+<a class="reference internal" href="#poltofloatexprcmd">\PolToFloatExprCmd</a>.</p></li>
+</ul>
+</li>
+<li><p>improved:</p>
+<ul>
+<li><p>Some <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> functions such as <span class="docutils literal">rseq()</span> use the semi-colon,
+and it was mentioned in the documentation that <a class="reference internal" href="#poldef">\poldef</a>
+will be confused by this and that inner semi-colons could be
+set within braces <span class="docutils literal">{;}</span> as a work-around. It was not clear from
+this documentation that also <a class="reference internal" href="#id8">\PolDef</a> required
+this work-around. With this relase only <a class="reference internal" href="#poldef">\poldef</a> but
+not <a class="reference internal" href="#id8">\PolDef</a> needs the work-around.</p></li>
+</ul>
+</li>
+</ul>
+<blockquote>
+<ul class="simple">
+<li><p>track <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> <span class="docutils literal">1.4e</span> changes relative to powers.</p></li>
+</ul>
+</blockquote>
+</li>
</ul>
</div>
<div class="section" id="acknowledgments">
diff --git a/macros/generic/polexpr/polexpr.sty b/macros/generic/polexpr/polexpr.sty
index 420f469cf1..90b47050cf 100644
--- a/macros/generic/polexpr/polexpr.sty
+++ b/macros/generic/polexpr/polexpr.sty
@@ -2,7 +2,7 @@
% License: LPPL 1.3c (author-maintained)
% Usage: \input polexpr.sty (Plain or other macro formats)
% or \usepackage{polexpr} (LaTeX macro format)
-% Release 0.8.1 (2021/04/12) of polexpr.sty. This file inputs
+% Release 0.8.2 (2021/05/05) of polexpr.sty. This file inputs
% polexprcore.tex
% polexprexpr.tex
% polexprsturm.tex
@@ -54,11 +54,11 @@
\XINTsetupcatcodes% (does \endlinechar13 in particular)
\XINT_providespackage
\ProvidesPackage{polexpr}%
- [2021/04/12 v0.8.1 Polynomial expressions with rational coefficients (JFB)]%
+ [2021/05/05 v0.8.2 Polynomial expressions with rational coefficients (JFB)]%
\begingroup
\def\x#1/#2/#3 #4\xint:{#1#2#3}%
\ifnum\expandafter\x\expanded{\csname ver@xintexpr.sty\endcsname}\xint:
- <20210329 %
+ <20210505 %
\immediate\write128{! Package polexpr error: xintexpr too old, aborting input}%
\else\expandafter\xint_gobble_i
\fi
@@ -200,7 +200,7 @@
%% \poldef
%%
\def\PolDef{\POL@chkopt\POL@oPolDef[x]}%
-\def\POL@oPolDef[#1]#2#3{\poldef #2(#1):=#3;}%
+\def\POL@oPolDef[#1]#2#3{\poldef #2(#1):={#3};}%
\def\poldef{\edef\POL@restoresemicolon{\catcode59=\the\catcode59\relax}%
\catcode59 12 \POL@defpol}%
\def\POL@defpol #1(#2)#3=#4;{%
@@ -919,7 +919,7 @@
\def\PolIContent#1{\xintGCDof{\PolToList{#1}}}%
%
\def\PolToExprCmd#1{\xintPRaw{\xintRawWithZeros{#1}}}%
-\def\PolToFloatExprCmd#1{\xintFloat{#1}}%
+\def\PolToFloatExprCmd#1{\xintPFloat{#1}}% CHANGED AT 0.8.2! was \xintFloat
% \def\PolTypesetCmdPrefix#1{\xintiiifSgn{#1}{}{+}{+}}%
\let\PolToExprTermPrefix\PolTypesetCmdPrefix
\def\PolToExprOneTermStyleA#1#2{%
@@ -1055,4 +1055,4 @@
\if\relax#4\expandafter\xint_gob_til_dot\fi
#1{#4}#2{#3}\the\numexpr\@ne+#3.%
}%
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
diff --git a/macros/generic/polexpr/polexprcore.tex b/macros/generic/polexpr/polexprcore.tex
index a5c93f0f46..66d8512379 100644
--- a/macros/generic/polexpr/polexprcore.tex
+++ b/macros/generic/polexpr/polexprcore.tex
@@ -1,4 +1,4 @@
-%% This file polexprcore.tex is part of the polexpr package (0.8.1, 2021/04/12)
+%% This file polexprcore.tex is part of the polexpr package (0.8.2, 2021/05/05)
%% Core routines to match infix operators +, -, *, //, /:, ^, ** and some
%% functions
%% The atoms representing polynomials inside \xintexpr are
@@ -383,17 +383,17 @@
\def\POL_pow_in #1\xint:#2%
{%
{%
- \expandafter\POL_pow_fork\the\numexpr \xintNum{#2}.#1\empty
+ \expandafter\POL_pow_fork\romannumeral0\xintraw{#2}.#1\empty
}%
}%
-\def\POL_pow_fork #1#2.%
+\def\POL_pow_fork #1%#2.%
{%
\xint_UDzerominusfork
#1-\POL_pow_zero
0#1\POL_pow_neg
0-\POL_pow_pos
\krof
- #1#2.%
+ #1%#2.%
}%
\def\POL_pow_zero #1\empty{1/1[0]}%
\def\POL_pow_neg #1.#2%
@@ -402,7 +402,7 @@
}%
\def\POL_pow_pos #1.#2%
{%
- \POL_Pfork #2{\POL_pow_a}P{\POL_pow_scalar}\krof #1.#2%
+ \POL_Pfork #2{\POL_pow_aa}P{\POL_pow_scalar}\krof #1.#2%
}%
\def\POL_pow_scalar #1.#2\empty
{%
@@ -413,6 +413,7 @@
\romannumeral0\XINT_signalcondition{InvalidOperation}%
{Not supported: polynomial to negative power #1}{}{1/1[0]}%
}%
+\def\POL_pow_aa #1.{\expandafter\POL_pow_a\the\numexpr\xintNum{#1}.}%
\def\POL_pow_a #1.%
{%
% trailing \empty will disappear in expanded context (old comment)
diff --git a/macros/generic/polexpr/polexprexpr.tex b/macros/generic/polexpr/polexprexpr.tex
index adb228a48b..3df136f9f8 100644
--- a/macros/generic/polexpr/polexprexpr.tex
+++ b/macros/generic/polexpr/polexprexpr.tex
@@ -1,4 +1,4 @@
-%% This file polexprexpr.tex is part of the polexpr package (0.8.1, 2021/04/12)
+%% This file polexprexpr.tex is part of the polexpr package (0.8.2, 2021/05/05)
%% Extending \xintexpr syntax:
%%
%% 1. Authorize ' in variable and function names
diff --git a/macros/generic/polexpr/polexprsturm.tex b/macros/generic/polexpr/polexprsturm.tex
index c21980830c..115a27d550 100644
--- a/macros/generic/polexpr/polexprsturm.tex
+++ b/macros/generic/polexpr/polexprsturm.tex
@@ -1,4 +1,4 @@
-%% This file polexprsturm.tex is part of the polexpr package (0.8.1, 2021/04/12)
+%% This file polexprsturm.tex is part of the polexpr package (0.8.2, 2021/05/05)
%% Sturm Algorithm (polexpr 0.4)
%% 0.5 uses primitive polynomials for faster evaluations afterwards
%% 0.6 corrects misuse of \@ifstar! (mumble). \PolToSturm* was broken.
diff --git a/macros/generic/xint/CHANGES.html b/macros/generic/xint/CHANGES.html
index 20b940dad7..ca88de7236 100644
--- a/macros/generic/xint/CHANGES.html
+++ b/macros/generic/xint/CHANGES.html
@@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
- <meta name="author" content="xint 1.4d" />
+ <meta name="author" content="xint 1.4e" />
<title>CHANGE LOG</title>
<style type="text/css">
code{white-space: pre-wrap;}
@@ -25,51 +25,56 @@
<body>
<header>
<h1 class="title">CHANGE LOG</h1>
-<p class="author">xint 1.4d</p>
-<p class="date">2021/03/29</p>
+<p class="author">xint 1.4e</p>
+<p class="date">2021/05/05</p>
</header>
<nav id="TOC">
<ul>
-<li><a href="#d-20210329"><code>1.4d (2021/03/29)</code></a><ul>
+<li><a href="#e-20210505"><code>1.4e (2021/05/05)</code></a><ul>
<li><a href="#breaking-changes">Breaking changes</a></li>
+<li><a href="#new-features">New features</a></li>
<li><a href="#bug-fixes">Bug fixes</a></li>
</ul></li>
-<li><a href="#c-20210220"><code>1.4c (2021/02/20)</code></a><ul>
+<li><a href="#d-20210329"><code>1.4d (2021/03/29)</code></a><ul>
+<li><a href="#breaking-changes-1">Breaking changes</a></li>
<li><a href="#bug-fixes-1">Bug fixes</a></li>
</ul></li>
-<li><a href="#b-20200225"><code>1.4b (2020/02/25)</code></a><ul>
-<li><a href="#future">Future</a></li>
-<li><a href="#new-features">New features</a></li>
+<li><a href="#c-20210220"><code>1.4c (2021/02/20)</code></a><ul>
<li><a href="#bug-fixes-2">Bug fixes</a></li>
</ul></li>
-<li><a href="#a-20200219"><code>1.4a (2020/02/19)</code></a><ul>
-<li><a href="#breaking-changes-1">Breaking changes</a></li>
+<li><a href="#b-20200225"><code>1.4b (2020/02/25)</code></a><ul>
+<li><a href="#future">Future</a></li>
<li><a href="#new-features-1">New features</a></li>
<li><a href="#bug-fixes-3">Bug fixes</a></li>
</ul></li>
-<li><a href="#section"><code>1.4 (2020/01/31)</code></a><ul>
+<li><a href="#a-20200219"><code>1.4a (2020/02/19)</code></a><ul>
<li><a href="#breaking-changes-2">Breaking changes</a></li>
-<li><a href="#improvements-and-new-features">Improvements and new features</a></li>
+<li><a href="#new-features-2">New features</a></li>
<li><a href="#bug-fixes-4">Bug fixes</a></li>
+</ul></li>
+<li><a href="#section"><code>1.4 (2020/01/31)</code></a><ul>
+<li><a href="#breaking-changes-3">Breaking changes</a></li>
+<li><a href="#improvements-and-new-features">Improvements and new features</a></li>
+<li><a href="#bug-fixes-5">Bug fixes</a></li>
<li><a href="#todo">TODO</a></li>
</ul></li>
<li><a href="#f-20190910"><code>1.3f (2019/09/10)</code></a><ul>
<li><a href="#improvements-and-new-features-1">Improvements and new features</a></li>
-<li><a href="#bug-fixes-5">Bug fixes</a></li>
+<li><a href="#bug-fixes-6">Bug fixes</a></li>
</ul></li>
<li><a href="#e-20190405"><code>1.3e (2019/04/05)</code></a><ul>
-<li><a href="#breaking-changes-3">Breaking changes</a></li>
+<li><a href="#breaking-changes-4">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-2">Improvements and new features</a></li>
-<li><a href="#bug-fixes-6">Bug fixes</a></li>
+<li><a href="#bug-fixes-7">Bug fixes</a></li>
</ul></li>
<li><a href="#d-20190106"><code>1.3d (2019/01/06)</code></a><ul>
-<li><a href="#breaking-changes-4">Breaking changes</a></li>
+<li><a href="#breaking-changes-5">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-3">Improvements and new features</a></li>
-<li><a href="#bug-fixes-7">Bug fixes</a></li>
+<li><a href="#bug-fixes-8">Bug fixes</a></li>
</ul></li>
<li><a href="#c-20180617"><code>1.3c (2018/06/17)</code></a><ul>
<li><a href="#improvements-and-new-features-4">Improvements and new features</a></li>
-<li><a href="#bug-fixes-8">Bug fixes</a></li>
+<li><a href="#bug-fixes-9">Bug fixes</a></li>
</ul></li>
<li><a href="#b-20180518"><code>1.3b (2018/05/18)</code></a><ul>
<li><a href="#improvements-and-new-features-5">Improvements and new features</a></li>
@@ -77,85 +82,85 @@
<li><a href="#a-20180307"><code>1.3a (2018/03/07)</code></a><ul>
<li><a href="#removed">Removed</a></li>
<li><a href="#improvements-and-new-features-6">Improvements and new features</a></li>
-<li><a href="#bug-fixes-9">Bug fixes</a></li>
+<li><a href="#bug-fixes-10">Bug fixes</a></li>
</ul></li>
<li><a href="#section-1"><code>1.3 (2018/03/01)</code></a><ul>
-<li><a href="#breaking-changes-5">Breaking changes</a></li>
+<li><a href="#breaking-changes-6">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-7">Improvements and new features</a></li>
</ul></li>
<li><a href="#q-20180206"><code>1.2q (2018/02/06)</code></a><ul>
<li><a href="#improvements-and-new-features-8">Improvements and new features</a></li>
-<li><a href="#bug-fixes-10">Bug fixes</a></li>
+<li><a href="#bug-fixes-11">Bug fixes</a></li>
</ul></li>
<li><a href="#p-20171205"><code>1.2p (2017/12/05)</code></a><ul>
-<li><a href="#breaking-changes-6">Breaking changes</a></li>
+<li><a href="#breaking-changes-7">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-9">Improvements and new features</a></li>
-<li><a href="#bug-fixes-11">Bug fixes</a></li>
+<li><a href="#bug-fixes-12">Bug fixes</a></li>
</ul></li>
<li><a href="#o-20170829"><code>1.2o (2017/08/29)</code></a><ul>
-<li><a href="#breaking-changes-7">Breaking changes</a></li>
+<li><a href="#breaking-changes-8">Breaking changes</a></li>
<li><a href="#deprecated">Deprecated</a></li>
</ul></li>
<li><a href="#n-20170806"><code>1.2n (2017/08/06)</code></a><ul>
-<li><a href="#breaking-changes-8">Breaking changes</a></li>
+<li><a href="#breaking-changes-9">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-10">Improvements and new features</a></li>
</ul></li>
<li><a href="#m-20170731"><code>1.2m (2017/07/31)</code></a><ul>
-<li><a href="#breaking-changes-9">Breaking changes</a></li>
+<li><a href="#breaking-changes-10">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-11">Improvements and new features</a></li>
-<li><a href="#bug-fixes-12">Bug fixes</a></li>
+<li><a href="#bug-fixes-13">Bug fixes</a></li>
</ul></li>
<li><a href="#l-20170726"><code>1.2l (2017/07/26)</code></a><ul>
<li><a href="#removed-1">Removed</a></li>
<li><a href="#improvements-and-new-features-12">Improvements and new features</a></li>
-<li><a href="#bug-fixes-13">Bug fixes</a></li>
+<li><a href="#bug-fixes-14">Bug fixes</a></li>
</ul></li>
<li><a href="#k-20170106"><code>1.2k (2017/01/06)</code></a><ul>
-<li><a href="#breaking-changes-10">Breaking changes</a></li>
+<li><a href="#breaking-changes-11">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-13">Improvements and new features</a></li>
-<li><a href="#bug-fixes-14">Bug fixes</a></li>
+<li><a href="#bug-fixes-15">Bug fixes</a></li>
</ul></li>
<li><a href="#j-20161222"><code>1.2j (2016/12/22)</code></a><ul>
<li><a href="#improvements-and-new-features-14">Improvements and new features</a></li>
-<li><a href="#bug-fixes-15">Bug fixes</a></li>
+<li><a href="#bug-fixes-16">Bug fixes</a></li>
</ul></li>
<li><a href="#i-20161213"><code>1.2i (2016/12/13)</code></a><ul>
-<li><a href="#breaking-changes-11">Breaking changes</a></li>
+<li><a href="#breaking-changes-12">Breaking changes</a></li>
<li><a href="#removed-2">Removed</a></li>
<li><a href="#improvements-and-new-features-15">Improvements and new features</a></li>
-<li><a href="#bug-fixes-16">Bug fixes</a></li>
+<li><a href="#bug-fixes-17">Bug fixes</a></li>
</ul></li>
<li><a href="#h-20161120"><code>1.2h (2016/11/20)</code></a><ul>
<li><a href="#improvements-and-new-features-16">Improvements and new features</a></li>
-<li><a href="#bug-fixes-17">Bug fixes</a></li>
+<li><a href="#bug-fixes-18">Bug fixes</a></li>
</ul></li>
<li><a href="#g-20160319"><code>1.2g (2016/03/19)</code></a><ul>
-<li><a href="#breaking-changes-12">Breaking changes</a></li>
+<li><a href="#breaking-changes-13">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-17">Improvements and new features</a></li>
</ul></li>
<li><a href="#f-20160312"><code>1.2f (2016/03/12)</code></a><ul>
-<li><a href="#breaking-changes-13">Breaking changes</a></li>
+<li><a href="#breaking-changes-14">Breaking changes</a></li>
<li><a href="#improvements-and-new-features-18">Improvements and new features</a></li>
-<li><a href="#bug-fixes-18">Bug fixes</a></li>
+<li><a href="#bug-fixes-19">Bug fixes</a></li>
</ul></li>
<li><a href="#e-20151122"><code>1.2e (2015/11/22)</code></a><ul>
<li><a href="#improvements-and-new-features-19">Improvements and new features</a></li>
-<li><a href="#bug-fixes-19">Bug fixes</a></li>
+<li><a href="#bug-fixes-20">Bug fixes</a></li>
</ul></li>
<li><a href="#d-20151118"><code>1.2d (2015/11/18)</code></a><ul>
<li><a href="#improvements-and-new-features-20">Improvements and new features</a></li>
-<li><a href="#bug-fixes-20">Bug fixes</a></li>
+<li><a href="#bug-fixes-21">Bug fixes</a></li>
</ul></li>
<li><a href="#c-20151116"><code>1.2c (2015/11/16)</code></a><ul>
<li><a href="#improvements-and-new-features-21">Improvements and new features</a></li>
-<li><a href="#bug-fixes-21">Bug fixes</a></li>
+<li><a href="#bug-fixes-22">Bug fixes</a></li>
</ul></li>
<li><a href="#b-20151029"><code>1.2b (2015/10/29)</code></a><ul>
-<li><a href="#bug-fixes-22">Bug fixes</a></li>
+<li><a href="#bug-fixes-23">Bug fixes</a></li>
</ul></li>
<li><a href="#a-20151019"><code>1.2a (2015/10/19)</code></a><ul>
<li><a href="#improvements-and-new-features-22">Improvements and new features</a></li>
-<li><a href="#bug-fixes-23">Bug fixes</a></li>
+<li><a href="#bug-fixes-24">Bug fixes</a></li>
</ul></li>
<li><a href="#section-2"><code>1.2 (2015/10/10)</code></a><ul>
<li><a href="#removed-3">Removed</a></li>
@@ -165,11 +170,11 @@
<li><a href="#b-20150831"><code>1.1b (2015/08/31)</code></a></li>
<li><a href="#a-20141107"><code>1.1a (2014/11/07)</code></a></li>
<li><a href="#section-3"><code>1.1 (2014/10/28)</code></a><ul>
-<li><a href="#breaking-changes-14">Breaking changes</a></li>
+<li><a href="#breaking-changes-15">Breaking changes</a></li>
<li><a href="#removed-4">Removed</a></li>
<li><a href="#deprecated-1">Deprecated</a></li>
<li><a href="#improvements-and-new-features-24">Improvements and new features</a></li>
-<li><a href="#bug-fixes-24">Bug fixes</a></li>
+<li><a href="#bug-fixes-25">Bug fixes</a></li>
</ul></li>
<li><a href="#n-20140401"><code>1.09n (2014/04/01)</code></a></li>
<li><a href="#m-20140226"><code>1.09m (2014/02/26)</code></a></li>
@@ -197,25 +202,53 @@
<li><a href="#section-10"><code>1.0 (2013/03/28)</code></a></li>
</ul>
</nav>
-<pre><code>Source: xint.dtx 1.4d 2021/03/29 (doc 2021/03/29)
+<pre><code>Source: xint.dtx 1.4e 2021/05/05 (doc 2021/05/05)
Author: Jean-Francois Burnol
Info: Expandable operations on big integers, decimals, fractions
License: LPPL 1.3c</code></pre>
-<h2 id="d-20210329"><code>1.4d (2021/03/29)</code></h2>
+<h2 id="e-20210505"><code>1.4e (2021/05/05)</code></h2>
+<p>This section might be incomplete at time of release, it will be extended if need be after the author gets some rest.</p>
<h3 id="breaking-changes">Breaking changes</h3>
<ul>
-<li><p><code>quo()</code> and <code>rem()</code> in <code>\xintiiexpr/\xintiieval</code> renamed to <code>iquo()</code> and <code>irem()</code>.</p></li>
-<li><p>the output of <code>gcd()</code> and <code>lcm()</code> as applied to fractions is now always in lowest terms.</p></li>
+<li><p><strong>xintlog</strong>: <code>\poormanloghack</code> now a no-op.</p></li>
+<li><p><strong>xinttrig</strong>: loading the package does not define left-over variables holding the values of the inverse factorials used in the sine and cosine series.</p></li>
+<li><p><strong>xintexpr</strong>: the output format of <code>\xinteval</code>, which uses <code>\xintFracToSci,</code> has changed. In particular, if the number has a power of ten part, it is not output with an integer mantissa, but with a scientific mantissa <code>d.d...</code> with always at least one digit after the decimal mark (possibly <code>0</code>) and trailing zeros are trimmed out. This is the same output format as used for <code>\xintfloateval</code>, apart of course from the fact that the mantissa lengths are not limited.</p></li>
+<li><p><strong>xintexpr</strong>: the output format of <code>\xintfloateval</code>, which uses <code>\xintPFloat</code>, changed. The <code>\xintfloatexprPrintOne</code> macro now expects to be used with either one or two arguments, the first one being within brackets not braces. It defaults to <code>\xintPFloat</code>.</p></li>
+<li><p><strong>xintexpr</strong>: when using <code>\xintieval{[D]...}</code> optional <code>[D]</code> with a negative <code>D</code>, which triggers quantization to a positive power of ten, the output (if not the zero value) will be an integer with <code>N=abs(D)</code> explicit trailing zeros, not an integer mantissa followed by <code>eN</code>.</p></li>
+<li><p><strong>xintexpr</strong>: <code>\xinteval</code> will not compute powers <code>a^N</code> exactly if <code>N</code> in absolute value is at least the (rounded) quotient of <code>10000</code> by the number of digits of <code>a</code>; it will then use the logarithm/exponential (in base 10) approach, according to the prevailing Digits setting.</p></li>
+<li><p><strong>xintexpr</strong>: <code>\xintdeffloatvar</code> now always rounds the assigned value to the target precision. Formerly, inputs actually involving no float operations, such as for example <code>\xintexpr1/20!\relax</code> (in contrast to <code>1/20!</code>), or an explicit single number having more digits than the precision, got stored “as is” in the defined variable, without pre-rounding to the Digits precision.</p></li>
+<li><p><strong>xintfrac</strong>:<code>\xintPFloat</code> and <code>\xintFracToSci</code> behave differently. The macro <code>\xintFracToSciE</code> does not exist anymore, as <code>\xintFracToSci</code> in the case of scientific exponents hands over the process to <code>\xintPFloat</code> (without the rounding to Digits, of course).</p></li>
+<li><p><strong>xintexpr</strong>: messages sent under <code>\xintverbosetrue</code> regime to the log file do not enclose the variable names in straight double quotes <code>&quot;...&quot;</code> anymore.</p></li>
+</ul>
+<h3 id="new-features">New features</h3>
+<ul>
+<li><p><strong>xintlog</strong>: now working up to <code>62</code> digits. The legacy faster <code>poormanlog</code>-based macros are kept for computations with Digits up to <code>8</code>. Fractional powers are now available both in <code>xinteval</code> and <code>xintfloateval</code>, per default.</p></li>
+<li><p><strong>xinttrig</strong>: now working up to <code>62</code> digits and with increased accuracy. Special faster mode at <code>8</code> digits or less.</p></li>
+<li><p><strong>xintexpr</strong>: the constraints on the <code>\xintexprPrintOne</code> replacement macro, which defaults to <code>\xintFracToSci</code>, have been much simplified.</p></li>
+<li><p><strong>xintexpr</strong>: <code>\xintiexprPrintOne</code> (defaults to <code>\xintDecToString</code>)</p></li>
+<li><p><strong>xintfrac</strong>: <code>\xintPFloatE</code> may be redefined as a macro which fetches the scientific exponent as a mandatory argument delimited with a dot, and outputs a suitable formatted result (f-expandably), also delimited with a dot which will be removed by internal processing. The default however simply expands to the letter <code>e</code>.</p></li>
+<li><p><strong>xintfrac</strong>: <code>\xintDecToStringREZ</code></p></li>
</ul>
<h3 id="bug-fixes">Bug fixes</h3>
<ul>
+<li><strong>xintfrac</strong>, <strong>xintexpr</strong>: it was not possible to use <code>\xinttheDigits</code> in the right hand side of an <code>\xintDigits</code> assignment. For example: <code>\xintDigits*:=\numexpr\xinttheDigits+4;</code>. This is now allowed, and the same applies to the macro interface, for example <code>\xintSetDigits*{\xinttheDigits+4}</code>.</li>
+</ul>
+<h2 id="d-20210329"><code>1.4d (2021/03/29)</code></h2>
+<h3 id="breaking-changes-1">Breaking changes</h3>
+<ul>
+<li><p><code>quo()</code> and <code>rem()</code> in <code>\xintiiexpr/\xintiieval</code> renamed to <code>iquo()</code> and <code>irem()</code>.</p></li>
+<li><p>The output of <code>gcd()</code> and <code>lcm()</code> as applied to fractions is now always in lowest terms.</p></li>
+<li><p>The log message to report a variable creation (if <code>\xintverbosetrue</code>) does not use (double) quotes anymore around the name. By the way, quotes were never used for function names.</p></li>
+</ul>
+<h3 id="bug-fixes-1">Bug fixes</h3>
+<ul>
<li><p>Ever since <code>1.3</code> the <code>quo()</code> and <code>rem()</code> functions in <code>\xintexpr</code> (not the ones in <code>\xintiiexpr</code>) were broken as their (officially deprecated) support macros had been removed! They had somewhat useless definitions anyway. They have now been officially removed from the syntax. Their siblings in <code>\xintiieval</code> were renamed to <code>iquo()</code> and <code>irem()</code>.</p></li>
<li><p>Sadly, <code>gcd()</code> was broken in <code>\xintexpr</code> since <code>1.4</code>, if the first argument vanished. And <code>gcd()</code> was broken in <code>\xintiiexpr</code> since <code>1.3d</code> if <em>any</em> argument vanished. I did have a unit test! (which obviously was too limited …)</p>
<p>Further, the <code>\xintGCDof</code> and <code>\xintLCMof</code> <strong>xintfrac</strong> macros were added at <code>1.4</code> but did not behave like other <strong>xintfrac</strong> macros with respect to parsing their arguments: e.g. <code>\xintGCDof{2}{03}</code> gave an unexpected non-numeric result.</p></li>
<li><p>The <code>first()</code> and <code>last()</code> functions, if used as arguments to numerical functions such as <code>sqr()</code> inside an <code>\xintdeffunc</code> caused the defined function to be broken.</p></li>
</ul>
<h2 id="c-20210220"><code>1.4c (2021/02/20)</code></h2>
-<h3 id="bug-fixes-1">Bug fixes</h3>
+<h3 id="bug-fixes-2">Bug fixes</h3>
<ul>
<li>Fix <code>1.4</code> regression which broke syntax <code>varname(...)</code> which supposedly is allowed and inserts a tacit multiplication.</li>
</ul>
@@ -227,36 +260,36 @@ License: LPPL 1.3c</code></pre>
<li><p>At next major release the power operators <code>**</code> and <code>^</code> will turn from left to right associative. I.e. <code>2**2**3</code> will give <code>256</code>, not <code>64</code>. This is to match with Python and l3fp.</p></li>
<li><p><code>\thexintexpr</code> et al. (introduced at <code>1.2h</code> but not documented anymore for some time) will be removed at next major release. The original <code>\xinttheexpr</code> et al. have always been so much better names. Besides, since <code>1.4</code>, <code>\xintexpr</code> can be used directly in typesetting flow.</p></li>
</ul>
-<h3 id="new-features">New features</h3>
+<h3 id="new-features-1">New features</h3>
<ul>
<li><p>Function <code>zip()</code> is modeled on Python’s function of the same name.</p></li>
<li><p>Function <code>flat()</code> removes all nesting to produce a “one-dimensional” list having the exact same leaves (some possibly empty) as the original (in the same order).</p></li>
<li><p>Chaining of comparison operators (e.g. <code>x&lt;y&lt;z</code>) as in Python (but all comparisons are done even if one is found false) and l3fp.</p></li>
<li><p>It was possible since <code>1.4</code>’s <code>\xintFracToSciE</code> to configure the separator between mantissas and exponents in the output of <code>\xinteval</code> but strangely there was no way to customize the output of <code>\xintfloateval</code>. The added <code>\xintPFloatE</code> fixes this.</p></li>
</ul>
-<h3 id="bug-fixes-2">Bug fixes</h3>
+<h3 id="bug-fixes-3">Bug fixes</h3>
<ul>
<li><code>\xintieval{[D]...}</code> with a negative <code>D</code> (a feature added at <code>1.4a</code>) used erroneously a catcode 12 <code>e</code> in output, which moreover remained immuned to the <code>\xintFracToSciE</code> setting.</li>
</ul>
<h2 id="a-20200219"><code>1.4a (2020/02/19)</code></h2>
<p>All changes regard the <strong>xintexpr</strong> module.</p>
-<h3 id="breaking-changes-1">Breaking changes</h3>
+<h3 id="breaking-changes-2">Breaking changes</h3>
<ul>
<li>The macros implementing customization of <code>\xintthealign</code> have modified meanings and names.</li>
</ul>
-<h3 id="new-features-1">New features</h3>
+<h3 id="new-features-2">New features</h3>
<ul>
<li><p><code>\xintthespaceseparated</code> (serves to provide suitable input to PS-Tricks <code>\listplot</code>).</p></li>
<li><p>The optional argument <code>[D]</code> to <code>\xintieval/\xintiexpr</code> can be negative, with the same meaning as the non-negative case, i.e. rounding to an integer multiple of <code>10^(-D)</code>.</p>
<p>The same applies to the functions <code>trunc()</code> and <code>round()</code>. And to the <code>\xintTrunc</code>, <code>\xintRound</code>, <code>\xintiTrunc</code>, and <code>\xintiRound</code> macros of <strong>xintfrac</strong>.</p></li>
</ul>
-<h3 id="bug-fixes-3">Bug fixes</h3>
+<h3 id="bug-fixes-4">Bug fixes</h3>
<ul>
<li><p>Usage of <code>round()</code> and <code>trunc()</code> within <code>\xintdeffunc</code> got broken at <code>1.4</code>.</p></li>
<li><p><code>add()</code> and <code>mul()</code> were supposedly accepting the <code>omit</code>, <code>abort</code> and <code>break()</code> keywords since <code>1.4</code> but this was broken.</p></li>
</ul>
<h2 id="section"><code>1.4 (2020/01/31)</code></h2>
-<h3 id="breaking-changes-2">Breaking changes</h3>
+<h3 id="breaking-changes-3">Breaking changes</h3>
<p>Please note that this list may still be incomplete. If not otherly specified all items regard the <strong>xintexpr</strong> module.</p>
<ul>
<li><p>The <code>\expanded</code> primitive (TeXLive 2019) is <strong>required</strong>. This does not affect the macro layer <strong>xintcore</strong>, <strong>xint</strong>, <strong>xintfrac</strong>, <strong>xinttools</strong> (yet).</p></li>
@@ -302,7 +335,7 @@ License: LPPL 1.3c</code></pre>
<li><p>Function declarations are able to parse a much wider part of the syntax, but some severe limitations remain. Refer to the user manual for related information.</p></li>
<li><p>We have made an effort on some error messages, and when working interactively in a shell it may even be sometimes possible to insert for example a correct variable or function name in place of the not recognized one. But don’t expect miracles when trying to intervene in the midst of a purely expandable expansion…</p></li>
</ul>
-<h3 id="bug-fixes-4">Bug fixes</h3>
+<h3 id="bug-fixes-5">Bug fixes</h3>
<p>Bugs? Those identified in <code>1.3f</code> were almost features. As per <code>1.4</code> the code base of <strong>xintexpr</strong> received multiple successive core refactorings and added numerous new features, and our test suite although significantly enlarged is not yet extensive enough. Please report bugs by mail.</p>
<h3 id="todo">TODO</h3>
<ul>
@@ -318,13 +351,13 @@ License: LPPL 1.3c</code></pre>
<li><p><strong>xintexpr</strong>: add starred variants <code>\xintDigits*</code> and <code>\xintSetDigits*</code> which execute <code>\xintreloadxinttrig</code>.</p>
<p>Revert 1.3e ban on usage of <code>\xinteval</code> et al. inside expressions by <code>\xintdeffunc</code>. And make them usable also inside macro definitions via <code>\xintNewExpr</code>.</p></li>
</ul>
-<h3 id="bug-fixes-5">Bug fixes</h3>
+<h3 id="bug-fixes-6">Bug fixes</h3>
<ul>
<li><p><strong>xintexpr</strong>: fix bug preventing usage of <code>\xintdefefunc</code> to define a function without variables.</p>
<p>Fix some issue with <code>\xintfloatexpr[D]..\relax</code> if used inside an expression parsed by <code>\xintdeffunc</code> et al.</p></li>
</ul>
<h2 id="e-20190405"><code>1.3e (2019/04/05)</code></h2>
-<h3 id="breaking-changes-3">Breaking changes</h3>
+<h3 id="breaking-changes-4">Breaking changes</h3>
<ul>
<li>(<em>reverted at 1.3f</em>) When defining functions, sub-expressions can only use the <code>\xint(float)expr...\relax</code> syntax. One can not use there the <code>\xint(float)eval</code> wrappers.</li>
</ul>
@@ -338,12 +371,12 @@ License: LPPL 1.3c</code></pre>
<li><p><strong>xintexpr</strong>: <code>\xintensuredummy</code>, <code>\xintrestorelettervar</code>.</p></li>
<li><p>The optional argument of <code>\xintfloatexpr</code> or <code>\xintfloateval</code> (it must be at start of braced argument) can be negative; it then means to trim (and round) from the output at float precision that many least significant digits.</p></li>
</ul>
-<h3 id="bug-fixes-6">Bug fixes</h3>
+<h3 id="bug-fixes-7">Bug fixes</h3>
<ul>
<li>Some bugfixes related to user functions with no variables at all; they were dysfunctional.</li>
</ul>
<h2 id="d-20190106"><code>1.3d (2019/01/06)</code></h2>
-<h3 id="breaking-changes-4">Breaking changes</h3>
+<h3 id="breaking-changes-5">Breaking changes</h3>
<ul>
<li><p><strong>xintexpr</strong>: the <code>gcd()</code> and <code>lcm()</code> functions formerly converted their arguments to integers via <code>\xintNum</code>. They now handle general input with no such modification.</p></li>
<li><p><strong>xintexpr</strong>: former <code>\xinteval</code>, <code>\xintieval</code>, <code>\xintiieval</code>, and <code>\xintfloateval</code> renamed to <code>\xintexpro</code>, <code>\xintiexpro</code>, <code>\xintiiexpro</code>, and <code>\xintfloatexpro</code>.</p></li>
@@ -357,7 +390,7 @@ License: LPPL 1.3c</code></pre>
<li><p><strong>xintexpr</strong>: functions <code>isone()</code> and <code>isint()</code>.</p></li>
<li><p><strong>xintexpr</strong>: <code>\xinteval</code>, <code>\xintieval</code>, <code>\xintiieval</code>, and <code>\xintfloateval</code> as synonyms to <code>\xinttheexpr...\relax</code> etc…, but with the (comma-separated) expression as a usual braced macro argument.</p></li>
</ul>
-<h3 id="bug-fixes-7">Bug fixes</h3>
+<h3 id="bug-fixes-8">Bug fixes</h3>
<ul>
<li><strong>xintcore</strong>, <strong>xintexpr</strong> : division in <code>\xintiiexpr</code> was broken for a zero dividend and a one-digit divisor (e.g. <code>0//7</code>) since <code>1.2p</code> due to a bug in <code>\xintiiDivMod</code> for such arguments. The bug was signaled (thanks to Kpym for report) and fixed shortly after <code>1.3c</code> release but I then completely forgot to upload a bugfix release to CTAN at that time, apologies for that.</li>
</ul>
@@ -370,7 +403,7 @@ License: LPPL 1.3c</code></pre>
<li><p><strong>xintexpr</strong>: <code>\xintdefvar</code>, <code>\xintdeffunc</code> and their variants try to set the catcode of the semi-colon which delimits their arguments; of course this will not work if that catcode is already frozen.</p></li>
<li><p><code>\xintUniformDeviate</code> is better documented and <code>sourcexint.pdf</code> is better hyperlinked and includes indices for the macros defined by each package.</p></li>
</ul>
-<h3 id="bug-fixes-8">Bug fixes</h3>
+<h3 id="bug-fixes-9">Bug fixes</h3>
<ul>
<li><strong>xintfrac</strong>: since <code>1.3</code> release, it loaded <strong>xintgcd</strong> in contradiction to what the documentation says (hence also <strong>xintexpr</strong> loaded <strong>xintgcd</strong> automatically). There is no actual dependency so the loading is removed for now.</li>
</ul>
@@ -396,12 +429,12 @@ License: LPPL 1.3c</code></pre>
<li><p><strong>xintfrac</strong>: <code>\xintREZ</code> is faster on inputs having one hundred digits or more.</p></li>
<li><p>Added to the user manual mention of macros such as <code>\xintDivFloor</code>, <code>\xintMod</code>, <code>\xintModTrunc</code>, which had been left out so far.</p></li>
</ul>
-<h3 id="bug-fixes-9">Bug fixes</h3>
+<h3 id="bug-fixes-10">Bug fixes</h3>
<ul>
<li><strong>xintexpr</strong>: the mechanism for adjunction to the expression parsers of user defined functions was refactored and improved at previous release <code>1.3</code>: in particular recursive definitions became possible. But an oversight made these recursive functions quite inefficient (to remain polite.) This release fixes the problem.</li>
</ul>
<h2 id="section-1"><code>1.3 (2018/03/01)</code></h2>
-<h3 id="breaking-changes-5">Breaking changes</h3>
+<h3 id="breaking-changes-6">Breaking changes</h3>
<ul>
<li><p><strong>xintcore</strong>, <strong>xint</strong>, <strong>xintfrac</strong>: all macros deprecated at <code>1.2o</code> got removed.</p></li>
<li><p><strong>xintfrac</strong>: addition and subtraction of <code>a/b</code> and <code>c/d</code> now use the l.c.m. of the denominators. Similarly the macro supporting the modulo operator <code>/:</code> uses a l.c.m. for the denominator of the result.</p></li>
@@ -419,12 +452,12 @@ License: LPPL 1.3c</code></pre>
<ul>
<li><strong>xintexpr</strong>: tacit multiplication extended to cases such as <code>3!4!5!</code> or <code>(1+2)3</code>.</li>
</ul>
-<h3 id="bug-fixes-10">Bug fixes</h3>
+<h3 id="bug-fixes-11">Bug fixes</h3>
<ul>
<li><strong>xintcore</strong>: sadly, refactoring at <code>1.2l</code> of subtraction left an extra character in an inner macro causing breakage in some rare circumstances. This should not have escaped our test suite!</li>
</ul>
<h2 id="p-20171205"><code>1.2p (2017/12/05)</code></h2>
-<h3 id="breaking-changes-6">Breaking changes</h3>
+<h3 id="breaking-changes-7">Breaking changes</h3>
<ul>
<li><p><strong>xintgcd</strong>: <code>\xintBezout{a}{b}</code>’s output consists of <code>{u}{v}{d}</code> with <code>u*a+v*b==d</code>, with <code>d</code> the GCD. Formerly it was <code>{a}{b}{u}{v}{d}</code>, and with <code>u*a-v*b==d</code>.</p></li>
<li><p><strong>xintgcd</strong>: <code>\xintBezout{0}{0}</code> expands to <code>{0}{0}{0}</code>. Formerly (since <code>1.2l</code>) it raised <code>InvalidOperation</code>.</p></li>
@@ -438,7 +471,7 @@ License: LPPL 1.3c</code></pre>
<li><p><strong>xintexpr</strong>: <code>\xintdefvar</code>’s syntax is extended to allow simultaneous assignments. Examples: <code>\xintdefvar x1, x2, x3 := 1, 3**10, 3**20;</code> or <code>\xintdefiivar A, B := B, A 'mod' B;</code> for already defined variables <code>A</code> and <code>B</code>.</p></li>
<li><p><strong>xintexpr</strong>: added <code>divmod()</code> to the built-in functions. It is associated with floored division, like the Python language <code>divmod()</code>. Related support macros added to <strong>xintcore</strong>, and <strong>xintfrac</strong>.</p></li>
</ul>
-<h3 id="bug-fixes-11">Bug fixes</h3>
+<h3 id="bug-fixes-12">Bug fixes</h3>
<ul>
<li><p><strong>xintgcd</strong>: <code>\xintBezout{6}{3}</code> (for example) expanded to <code>{6}{3}{-0}{-1}{3}</code>, but the <code>-0</code> should have been <code>0</code>.</p></li>
<li><p><strong>xintgcd</strong>: it still used macro <code>\xintiAbs</code> although the latter had been deprecated from <strong>xintcore</strong>.</p></li>
@@ -446,7 +479,7 @@ License: LPPL 1.3c</code></pre>
<li><p>various documentation fixes; in particular, the partial dependency of <strong>xintcfrac</strong> on <strong>xinttools</strong> had not been mentioned.</p></li>
</ul>
<h2 id="o-20170829"><code>1.2o (2017/08/29)</code></h2>
-<h3 id="breaking-changes-7">Breaking changes</h3>
+<h3 id="breaking-changes-8">Breaking changes</h3>
<ul>
<li><strong>xint</strong>: <code>\xintAND</code>, <code>\xintOR</code>, … and similar Boolean logic macros do not apply anymore <code>\xintNum</code> (or <code>\xintRaw</code> if <strong>xintfrac</strong> is loaded), to their arguments (often, from internal usage of <code>\xintSgn</code>), but only f-expand them (using e.g. <code>\xintiiSgn</code>). This is kept un-modified even if loading <strong>xintfrac</strong>.</li>
</ul>
@@ -462,7 +495,7 @@ License: LPPL 1.3c</code></pre>
<li><p><strong>xint</strong>: <code>\xintNot</code> was renamed to <code>\xintNOT</code>, former denomination is deprecated. See also item about Boolean logic macros in the <em>Incompatible Changes</em> section.</p></li>
</ul>
<h2 id="n-20170806"><code>1.2n (2017/08/06)</code></h2>
-<h3 id="breaking-changes-8">Breaking changes</h3>
+<h3 id="breaking-changes-9">Breaking changes</h3>
<ul>
<li><strong>xintbinhex</strong> does not load package <strong>xintcore</strong> anymore, but only <strong>xintkernel</strong>.</li>
</ul>
@@ -472,7 +505,7 @@ License: LPPL 1.3c</code></pre>
<li><p>Macros of <strong>xintbinhex</strong> have been improved for speed and increased maximal sizes of allowable inputs.</p></li>
</ul>
<h2 id="m-20170731"><code>1.2m (2017/07/31)</code></h2>
-<h3 id="breaking-changes-9">Breaking changes</h3>
+<h3 id="breaking-changes-10">Breaking changes</h3>
<ul>
<li><p><strong>xintbinhex</strong>: the length of the input is now limited. The maximum size depends on the macro and ranges from about <code>4000</code> to about <code>19900</code> digits.</p></li>
<li><p><strong>xintbinhex</strong>: <code>\xintCHexToBin</code> is now the variant of <code>\xintHexToBin</code> which does not remove leading binary zeroes: <code>N</code> hex-digits give on output exactly <code>4N</code> binary digits.</p></li>
@@ -481,7 +514,7 @@ License: LPPL 1.3c</code></pre>
<ul>
<li><strong>xintbinhex</strong>: all macros have been rewritten using techniques from the 1.2 release (they had remained unmodified since <code>1.08</code> of <code>2013/06/07</code>.) The new macros are faster but limited to a few thousand digits. The <code>1.08</code> routines could handle tens of thousands of digits, but not in a reasonable time.</li>
</ul>
-<h3 id="bug-fixes-12">Bug fixes</h3>
+<h3 id="bug-fixes-13">Bug fixes</h3>
<ul>
<li><p>user manual: the <code>Changes</code> section wrongly stated at <code>1.2l</code> that the macros of <strong>xintbinhex</strong> had been made robust against non terminated input such as <code>\number\mathcode`\-</code>. Unfortunately the author fell into the trap of believing his own documentation and he forgot to actually implement the change. Now done.</p></li>
<li><p>user manual: the PDF bookmarks were messed up.</p></li>
@@ -502,14 +535,14 @@ License: LPPL 1.3c</code></pre>
<p>The situation with expressions is unchanged: syntax such as <code>\xintexpr \numexpr1+2\relax</code> is illegal as the ending <code>\relax</code> token will get swallowed by the <code>\numexpr</code>; but it is needed by the <code>xintexpr</code>-ession parser, hence the parser will expand forward and presumably end with in an “illegal token” error, or provoke some low-level TeX error (N.B.: a closing brace <code>}</code> for example can not terminate an <code>xintexpr</code>-ession, the parser must find a <code>\relax</code> token at some point). Thus there must be in this example a second <code>\relax</code>.</p></li>
<li><p>experimental code for error conditions; there is no complete user interface yet, it is done in preparation for next major release and is completely unstable and undocumented.</p></li>
</ul>
-<h3 id="bug-fixes-13">Bug fixes</h3>
+<h3 id="bug-fixes-14">Bug fixes</h3>
<ul>
<li><p><strong>xintbinhex</strong>: since <code>1.2 (2015/10/10)</code>, <code>\xintHexToDec</code> was broken due to an undefined macro (it was in <code>xint.sty</code>, but the module by itself is supposedly dependent only upon <code>xintcore.sty</code>).</p></li>
<li><p><strong>xintgcd</strong>: macro <code>\xintBezout</code> produced partially wrong output if one of its two arguments was zero.</p></li>
<li><p><strong>xintfrac</strong>: the manual said one could use directly <code>\numexpr</code> compatible expressions in arithmetic macros (without even a <code>\numexpr</code> encapsulation) if they were expressed with up to 8 tokens. There was a bug if these 8 tokens evaluated to zero. The bug has been fixed, and up to 9 tokens are now accepted. But it is simpler to use <code>\the\numexpr</code> prefix and not to worry about the token count… The ending <code>\relax</code> is now un-needed.</p></li>
</ul>
<h2 id="k-20170106"><code>1.2k (2017/01/06)</code></h2>
-<h3 id="breaking-changes-10">Breaking changes</h3>
+<h3 id="breaking-changes-11">Breaking changes</h3>
<ul>
<li><p>macro <code>\xintFloat</code> which rounds its input to a floating point number does <em>not</em> print anymore <code>10.0...0eN</code> to signal an upwards rounding to the next power of ten. The mantissa has in all cases except the zero input exactly one digit before the decimal mark.</p></li>
<li><p>some floating point computations may differ in the least significant digits, due to a change in the rounding algorithm applied to macro arguments expressed as fractions and to an improvement in precision regarding half-integer powers in expressions. See next.</p></li>
@@ -521,7 +554,7 @@ License: LPPL 1.3c</code></pre>
<li><p>added <code>\xintiSqrtR</code>, there was only <code>\xintiiSqrtR</code> alongside <code>\xintiSqrt</code> and <code>\xintiiSqrt</code> (<strong>xint</strong>).</p></li>
<li><p>added non public <code>\xintLastItem:f:csv</code> to <strong>xinttools</strong> for faster <code>last()</code> function, and improved <code>\xintNewExpr</code> compatibility. Also <code>\xintFirstItem:f:csv</code>.</p></li>
</ul>
-<h3 id="bug-fixes-14">Bug fixes</h3>
+<h3 id="bug-fixes-15">Bug fixes</h3>
<ul>
<li><p>the <code>1.2f</code> half-integer powers computed within <code>\xintfloatexpr</code> had a silly rounding to the target precision just <em>before</em> the final square-root extraction, thus possibly losing some precision. The <code>1.2k</code> implementation keeps guard digits for this final square root extraction. As for integer exponents, it is guaranteed that the computed value differs from the exact one by less than <code>0.52 ulp</code> (for inputs having at most <code>\xinttheDigits</code> digits.)</p></li>
<li><p>more regressions from <code>1.2i</code> were fixed: <code>\xintLen</code> (<strong>xint</strong>, <strong>xintfrac</strong>) and <code>\xintDouble</code> (<strong>xintcore</strong>) had forgotten that their argument was allowed to be negative. A regression test suite is now in place and is being slowly expanded to cover more macros.</p></li>
@@ -537,12 +570,12 @@ License: LPPL 1.3c</code></pre>
</ol></li>
<li><p>significant documentations tweaks (inclusive of suppressing things!), and among them two beautiful hyperlinked tables with both horizontal and vertical rules which bring the documentation of the <strong>xintexpr</strong> syntax to a kind of awe-inspiring perfection… except that implementation of some math functions is still lacking.</p></li>
</ul>
-<h3 id="bug-fixes-15">Bug fixes</h3>
+<h3 id="bug-fixes-16">Bug fixes</h3>
<ul>
<li>fix two <code>1.2i</code> regressions caused by undefined macros (<code>\xintNthElt</code> in certain branches and <code>[list][N]</code> item extraction in certain cases.) The test files existed but were not executed prior to release. Automation in progress.</li>
</ul>
<h2 id="i-20161213"><code>1.2i (2016/12/13)</code></h2>
-<h3 id="breaking-changes-11">Breaking changes</h3>
+<h3 id="breaking-changes-12">Breaking changes</h3>
<ul>
<li><code>\xintDecSplit</code> second argument must have no sign (former code replaced it with its absolute value, a sign now may cause an error.)</li>
</ul>
@@ -569,7 +602,7 @@ License: LPPL 1.3c</code></pre>
<li><p>the documentation has again been (slightly) re-organized; it has a new sub-section on the Miller-Rabin primality test, to illustrate some use of <code>\xintNewFunction</code> for recursive definitions.</p></li>
<li><p>the documentation has dropped the LaTeX “command” terminology (which had been used initially in 2013 for some forgotten reasons and should have been removed long ago) and uses only the more apt “macro”, as after all, all of <strong>xint</strong> is about expansion of macros (plus the use of <code>\numexpr</code>).</p></li>
</ul>
-<h3 id="bug-fixes-16">Bug fixes</h3>
+<h3 id="bug-fixes-17">Bug fixes</h3>
<ul>
<li><code>\xintDecSplitL</code> and <code>\xintDecSplitR</code> from <strong>xint</strong> produced their output in a spurious brace pair (bug introduced in <code>1.2f</code>).</li>
</ul>
@@ -579,7 +612,7 @@ License: LPPL 1.3c</code></pre>
<li><p>new macro <code>\xintNewFunction</code> in <strong>xintexpr</strong> which allows to extend the parser syntax with functions in situations where <code>\xintdeffunc</code> is not usable (typically, because dummy variables are used over a not yet determined range of values because it depends on the variables).</p></li>
<li><p>after three years of strict obedience to <code>xint</code> prefix, now <code>\thexintexpr</code>, <code>\thexintiexpr</code>, <code>\thexintfloatexpr</code>, and <code>\thexintiiexpr</code> are provided as synonyms to <code>\xinttheexpr</code>, etc…</p></li>
</ul>
-<h3 id="bug-fixes-17">Bug fixes</h3>
+<h3 id="bug-fixes-18">Bug fixes</h3>
<ul>
<li><p>the <code>(cond)?{foo}{bar}</code> operator from <strong>xintexpr</strong> mis-behaved in certain circumstances (such as an empty <code>foo</code>).</p></li>
<li><p>the <strong>xintexpr</strong> <code>1.2f</code> <code>binomial</code> function (which uses <code>\xintiiBinomial</code> from <strong>xint.sty</strong> or <code>\xintFloatBinomial</code> from <strong>xintfrac.sty</strong>) deliberately raised an error for <code>binomial(x,y)</code> with <code>y&lt;0</code> or <code>x&lt;y</code>. This was unfortunate, and it now simply evaluates to zero in such cases.</p></li>
@@ -587,7 +620,7 @@ License: LPPL 1.3c</code></pre>
<li><p>the <code>add</code> and <code>mul</code> from <strong>xintexpr</strong>, which work with dummy variables since <code>1.1</code>, raised an error since <code>1.2c 2015/11/16</code> when the dummy variable was given an empty range (or list) of values, rather than producing respectively <code>0</code> and <code>1</code> as formerly.</p></li>
</ul>
<h2 id="g-20160319"><code>1.2g (2016/03/19)</code></h2>
-<h3 id="breaking-changes-12">Breaking changes</h3>
+<h3 id="breaking-changes-13">Breaking changes</h3>
<ul>
<li><p>inside expressions, list item selector <code>[L][n]</code> counts starting at zero, not at one. This is more coherent with <code>[L][a:b]</code> which was already exactly like in Python since its introduction. A function len(L) replaces earlier <code>[L][0]</code>.</p></li>
<li><p>former <code>iter</code> keyword now called <code>iterr</code>. Indeed it matched with <code>rrseq</code>, the new <code>iter</code> (which was somehow missing from <code>1.1</code>) is the one matching <code>rseq</code>. Allows to iterate more easily with a “list” variable.</p></li>
@@ -601,7 +634,7 @@ License: LPPL 1.3c</code></pre>
<li><p>the syntax of expressions is described in a devoted chapter of the documentation; an example shows how to implement (expandably) the Brent-Salamin algorithm for computation of Pi using <code>iter</code> in a float expression.</p></li>
</ul>
<h2 id="f-20160312"><code>1.2f (2016/03/12)</code></h2>
-<h3 id="breaking-changes-13">Breaking changes</h3>
+<h3 id="breaking-changes-14">Breaking changes</h3>
<ul>
<li>no more <code>\xintFac</code> macro but <code>\xintiFac/\xintiiFac/\xintFloatFac</code>.</li>
</ul>
@@ -619,7 +652,7 @@ License: LPPL 1.3c</code></pre>
<li><p>(TeXperts only) the macros defined (internally) from <code>\xintdeffunc</code> et al. constructs do not incorporate an initial <code>\romannumeral</code> anymore.</p></li>
<li><p>renewed desperate efforts at improving the documentation by random shuffling of sections and well thought additions; cuts were considered and even performed.</p></li>
</ul>
-<h3 id="bug-fixes-18">Bug fixes</h3>
+<h3 id="bug-fixes-19">Bug fixes</h3>
<ul>
<li><p>squaring macro <code>\xintSqr</code> from <strong>xintfrac.sty</strong> was broken due to a misspelled sub-macro name. Dates back to <code>1.1</code> release of <code>2014/10/28</code> <code>:-((</code>.</p></li>
<li><p><code>1.2c</code>’s fix to the subtraction bug from <code>1.2</code> introduced another bug, which in some cases could create leading zeroes in the output, or even worse. This could invalidate other routines using subtractions, like <code>\xintiiSquareRoot</code>.</p></li>
@@ -633,7 +666,7 @@ License: LPPL 1.3c</code></pre>
<li><p>a space in <code>\xintdeffunc f(x)&lt;space&gt;:= expression ;</code> is now accepted.</p></li>
<li><p>documentation enhancements: the <em>Quick Sort</em> section with its included code samples has been entirely re-written; the <em>Commands of the xintexpr package</em> section has been extended and reviewed entirely.</p></li>
</ul>
-<h3 id="bug-fixes-19">Bug fixes</h3>
+<h3 id="bug-fixes-20">Bug fixes</h3>
<ul>
<li><p>in <strong>xintfrac</strong>: the <code>\xintFloatFac</code> from release <code>1.2</code> parsed its argument only through <code>\numexpr</code> but it should have used <code>\xintNum</code>.</p></li>
<li><p>in <strong>xintexpr</strong>: release <code>1.2d</code> had broken the recognition of sub-expressions immediately after variable names (with tacit multiplication).</p></li>
@@ -646,7 +679,7 @@ License: LPPL 1.3c</code></pre>
<li><p>tacit multiplication applies to more cases, for example (x+y)z, and always ties more than standard * infix operator, e.g. x/2y is like x/(2*y).</p></li>
<li><p>some documentation enhancements, particularly in the chapter on xintexpr.sty, and also in the code source comments.</p></li>
</ul>
-<h3 id="bug-fixes-20">Bug fixes</h3>
+<h3 id="bug-fixes-21">Bug fixes</h3>
<ul>
<li>in <strong>xintcore</strong>: release <code>1.2c</code> had inadvertently broken the <code>\xintiiDivRound</code> macro.</li>
</ul>
@@ -656,12 +689,12 @@ License: LPPL 1.3c</code></pre>
<li><p>macros <code>\xintdeffunc</code>, <code>\xintdefiifunc</code>, <code>\xintdeffloatfunc</code> and boolean <code>\ifxintverbose</code>.</p></li>
<li><p>on-going code improvements and documentation enhancements, but stopped in order to issue this bugfix release.</p></li>
</ul>
-<h3 id="bug-fixes-21">Bug fixes</h3>
+<h3 id="bug-fixes-22">Bug fixes</h3>
<ul>
<li>in <strong>xintcore</strong>: recent release <code>1.2</code> introduced a bug in the subtraction (happened when 00000001 was found under certain circumstances at certain mod 8 locations).</li>
</ul>
<h2 id="b-20151029"><code>1.2b (2015/10/29)</code></h2>
-<h3 id="bug-fixes-22">Bug fixes</h3>
+<h3 id="bug-fixes-23">Bug fixes</h3>
<ul>
<li>in <strong>xintcore</strong>: recent release <code>1.2</code> introduced a bug in the division macros, causing a crash when the divisor started with 99999999 (it was attempted to use with 1+99999999 a subroutine expecting only 8-digits numbers).</li>
</ul>
@@ -672,7 +705,7 @@ License: LPPL 1.3c</code></pre>
<li><p>added <code>\xintiiMaxof/\xintiiMinof</code> (<strong>xint</strong>).</p></li>
<li><p>TeX hackers only: replaced all code uses of <code>\romannumeral-`0</code> by the quicker <code>\romannumeral`&amp;&amp;@</code> (<code>^</code> being used as letter, had to find another character usable with catcode 7).</p></li>
</ul>
-<h3 id="bug-fixes-23">Bug fixes</h3>
+<h3 id="bug-fixes-24">Bug fixes</h3>
<ul>
<li>in <strong>xintexpr</strong>: recent release <code>1.2</code> introduced a bad bug in the parsing of decimal numbers and as a result <code>\xinttheexpr 0.01\relax</code> expanded to <code>0</code> ! (sigh…)</li>
</ul>
@@ -715,7 +748,7 @@ License: LPPL 1.3c</code></pre>
<li><p>various typographical fixes throughout the documentation, and a bit of clean up of the code comments. Improved <code>\Factors</code> example of nested <code>subs</code>, <code>rseq</code>, <code>iter</code> in <code>\xintiiexpr</code>.</p></li>
</ul>
<h2 id="section-3"><code>1.1 (2014/10/28)</code></h2>
-<h3 id="breaking-changes-14">Breaking changes</h3>
+<h3 id="breaking-changes-15">Breaking changes</h3>
<ul>
<li><p>in <code>\xintiiexpr</code>, <code>/</code> does <em>rounded</em> division, rather than the Euclidean division (for positive arguments, this is truncated division). The <code>//</code> operator does truncated division,</p></li>
<li><p>the <code>:</code> operator for three-way branching is gone, replaced with <code>??</code>,</p></li>
@@ -773,7 +806,7 @@ License: LPPL 1.3c</code></pre>
<li><p><code>\xintthecoords</code> converts a comma separated list of an even number of items to the format expected by the <code>TikZ</code> <code>coordinates</code> syntax,</p></li>
<li><p>completely new version <code>\xintNewExpr</code>, <code>protect</code> function to handle external macros. The dollar sign <code>$</code> for place holders is not accepted anymore, only the standard macro parameter <code>#</code>. Not all constructs are compatible with <code>\xintNewExpr</code>.</p></li>
</ul>
-<h3 id="bug-fixes-24">Bug fixes</h3>
+<h3 id="bug-fixes-25">Bug fixes</h3>
<ul>
<li><p><code>\xintZapFirstSpaces</code> hence also <code>\xintZapSpaces</code> from package <strong>xinttools</strong> were buggy when used with an argument either empty or containing only space tokens.</p></li>
<li><p><code>\xintiiexpr</code> did not strip leading zeroes, hence <code>\xinttheiiexpr 001+1\relax</code> did not obtain the expected result …</p></li>
diff --git a/macros/generic/xint/README.md b/macros/generic/xint/README.md
index a9dcafa44a..306213047c 100644
--- a/macros/generic/xint/README.md
+++ b/macros/generic/xint/README.md
@@ -1,14 +1,15 @@
% README
-% xint 1.4d
-% 2021/03/29
+% xint 1.4e
+% 2021/05/05
- Source: xint.dtx 1.4d 2021/03/29 (doc 2021/03/29)
+ Source: xint.dtx 1.4e 2021/05/05 (doc 2021/05/05)
Author: Jean-Francois Burnol
Info: Expandable operations on big integers, decimals, fractions
License: LPPL 1.3c
-Aim and usage
-=============
+
+Description
+===========
It is possible to use the package both with Plain (`\input xintexpr.sty`)
or with the LaTeX macro format (`\usepackage{xintexpr}`).
@@ -16,45 +17,39 @@ or with the LaTeX macro format (`\usepackage{xintexpr}`).
The basic aim is provide *expandable* computations on (arbitrarily big)
integers, fractions, and floating point numbers (at a user chosen
precision). The four operations and the square-root extraction achieve
-so-called *correct rounding* for the given arbitrary precision.
-
-The syntax knows dummy variables, as in this example:
-
- \xinteval{reduce(add(x/(x+7), x = 1000..1010))}
-
-which expands to:
-
- 108959959329292321880648657/9974444716475301992902544
-
-Trigonometrical functions are available:
-
- \xintDigits*:=48\relax
-
- \xintfloateval{[-2] sind(37)}
-
-expands to:
-
- 0.6018150231520482799179770004414898414256377098
-
-The [-2] at start of the `\xintfloateval` argument means to round the
-result to 2 digits less than the float precision.
-
-Release `1.4` adds support for nested structures. For example:
-
- \xintthealign\xintexpr ndseq(1/(i+j), i=1..5; j=1..5)\relax
-
-will print on the page (this is customizable, e.g. to use a `pmatrix`
-environment):
-
- [[ 1/2, 1/3, 1/4, 1/5, 1/6 ],
- [ 1/3, 1/4, 1/5, 1/6, 1/7 ],
- [ 1/4, 1/5, 1/6, 1/7, 1/8 ],
- [ 1/5, 1/6, 1/7, 1/8, 1/9 ],
- [ 1/6, 1/7, 1/8, 1/9, 1/10 ]]
-
-It is possible to declare "universal functions" (à la NumPy) which will
-act itemwise on all leaves of such "arrays". More features are planned
-such as providing an interface to algebra of matrices in this framework.
+the *correct rounding* for the given arbitrary precision. Exponential
+(natural and to the base ten), logarithm (also to the base 10),
+fractional powers, direct and inverse trigonometrical functions are
+available up to 62 digits of precision. The syntax supports dummy
+variables (to generate sequences of values) and nested structures.
+Support for user-declared functions and variables is implemented.
+
+Usage on the command line
+=========================
+
+One can use `xintexpr` as an interactive calculator on the command line.
+See the [xintsession](http://ctan.org/pkg/xintsession) package.
+
+ *2^100;
+ (@_1) 1267650600228229401496703205376
+ *cos(1);
+ (@_2) 0.5403023058681397
+ *&fp32
+ (./xintlog.sty) (./xinttrig.sty) fp32 mode (log and trig reloaded)
+ *cos(1);
+ (@_3) 0.54030230586813971740093660744298
+ *3^1000;
+ (@_4) 1.3220708194808066368904552597521e477
+ *&exact
+ exact mode (floating point evaluations use 32 digits)
+ *3^1000;
+ (@_5) 1322070819480806636890455259752144365965422032752148167664920368226828
+ 5973467048995407783138506080619639097776968725823559509545821006189118653427252
+ 5795367402762022519832080387801477422896484127439040011758861804112894781562309
+ 4438061566173054086674490506178125480344405547054397038895817465368254916136220
+ 8302685637785822902284163983078878969185564040848989376093732421718463599386955
+ 1676501894058810906042608967143886410281435038564874716583201061436613217310276
+ 8902855220001
Installation
============
diff --git a/macros/generic/xint/sourcexint.pdf b/macros/generic/xint/sourcexint.pdf
index 0e99479d7c..8837d72774 100644
--- a/macros/generic/xint/sourcexint.pdf
+++ b/macros/generic/xint/sourcexint.pdf
Binary files differ
diff --git a/macros/generic/xint/xint.dtx b/macros/generic/xint/xint.dtx
index 6b5ff7588c..72b1fb1c00 100644
--- a/macros/generic/xint/xint.dtx
+++ b/macros/generic/xint/xint.dtx
@@ -3,27 +3,27 @@
% Extract all files via "etex xint.dtx" and do "make help"
% or follow instructions from extracted README.md.
%<*dtx>
-\def\xintdtxtimestamp {Time-stamp: <29-03-2021 at 11:06:25 CEST>}
+\def\xintdtxtimestamp {Time-stamp: <05-05-2021 at 15:26:12 CEST>}
%</dtx>
%<*drv>
%% ---------------------------------------------------------------
-\def\xintdocdate {2021/03/29}
-\def\xintbndldate{2021/03/29}
-\def\xintbndlversion {1.4d}
+\def\xintdocdate {2021/05/05}
+\def\xintbndldate{2021/05/05}
+\def\xintbndlversion {1.4e}
%</drv>
%<readme>% README
%<changes>% CHANGE LOG
-%<readme|changes>% xint 1.4d
-%<readme|changes>% 2021/03/29
+%<readme|changes>% xint 1.4e
+%<readme|changes>% 2021/05/05
%<readme|changes>
-%<readme|changes> Source: xint.dtx 1.4d 2021/03/29 (doc 2021/03/29)
+%<readme|changes> Source: xint.dtx 1.4e 2021/05/05 (doc 2021/05/05)
%<readme|changes> Author: Jean-Francois Burnol
%<readme|changes> Info: Expandable operations on big integers, decimals, fractions
%<readme|changes> License: LPPL 1.3c
%<readme|changes>
%<*!readme&!changes&!dohtmlsh&!makefile>
%% ---------------------------------------------------------------
-%% The xint bundle 1.4d 2021/03/29
+%% The xint bundle 1.4e 2021/05/05
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%<xintkernel>%% xintkernel: Paraphernalia for the xint packages
%<xinttools>%% xinttools: Expandable and non-expandable utilities
@@ -43,8 +43,9 @@
\bgroup\catcode2 0 \catcode`\\ 12 ^^Biffalse
%</dtx>
%<*readme>--------------------------------------------------------
-Aim and usage
-=============
+
+Description
+===========
It is possible to use the package both with Plain (`\input xintexpr.sty`)
or with the LaTeX macro format (`\usepackage{xintexpr}`).
@@ -52,45 +53,39 @@ or with the LaTeX macro format (`\usepackage{xintexpr}`).
The basic aim is provide *expandable* computations on (arbitrarily big)
integers, fractions, and floating point numbers (at a user chosen
precision). The four operations and the square-root extraction achieve
-so-called *correct rounding* for the given arbitrary precision.
-
-The syntax knows dummy variables, as in this example:
-
- \xinteval{reduce(add(x/(x+7), x = 1000..1010))}
-
-which expands to:
-
- 108959959329292321880648657/9974444716475301992902544
-
-Trigonometrical functions are available:
-
- \xintDigits*:=48\relax
-
- \xintfloateval{[-2] sind(37)}
-
-expands to:
-
- 0.6018150231520482799179770004414898414256377098
-
-The [-2] at start of the `\xintfloateval` argument means to round the
-result to 2 digits less than the float precision.
-
-Release `1.4` adds support for nested structures. For example:
-
- \xintthealign\xintexpr ndseq(1/(i+j), i=1..5; j=1..5)\relax
-
-will print on the page (this is customizable, e.g. to use a `pmatrix`
-environment):
-
- [[ 1/2, 1/3, 1/4, 1/5, 1/6 ],
- [ 1/3, 1/4, 1/5, 1/6, 1/7 ],
- [ 1/4, 1/5, 1/6, 1/7, 1/8 ],
- [ 1/5, 1/6, 1/7, 1/8, 1/9 ],
- [ 1/6, 1/7, 1/8, 1/9, 1/10 ]]
-
-It is possible to declare "universal functions" (à la NumPy) which will
-act itemwise on all leaves of such "arrays". More features are planned
-such as providing an interface to algebra of matrices in this framework.
+the *correct rounding* for the given arbitrary precision. Exponential
+(natural and to the base ten), logarithm (also to the base 10),
+fractional powers, direct and inverse trigonometrical functions are
+available up to 62 digits of precision. The syntax supports dummy
+variables (to generate sequences of values) and nested structures.
+Support for user-declared functions and variables is implemented.
+
+Usage on the command line
+=========================
+
+One can use `xintexpr` as an interactive calculator on the command line.
+See the [xintsession](http://ctan.org/pkg/xintsession) package.
+
+ *2^100;
+ (@_1) 1267650600228229401496703205376
+ *cos(1);
+ (@_2) 0.5403023058681397
+ *&fp32
+ (./xintlog.sty) (./xinttrig.sty) fp32 mode (log and trig reloaded)
+ *cos(1);
+ (@_3) 0.54030230586813971740093660744298
+ *3^1000;
+ (@_4) 1.3220708194808066368904552597521e477
+ *&exact
+ exact mode (floating point evaluations use 32 digits)
+ *3^1000;
+ (@_5) 1322070819480806636890455259752144365965422032752148167664920368226828
+ 5973467048995407783138506080619639097776968725823559509545821006189118653427252
+ 5795367402762022519832080387801477422896484127439040011758861804112894781562309
+ 4438061566173054086674490506178125480344405547054397038895817465368254916136220
+ 8302685637785822902284163983078878969185564040848989376093732421718463599386955
+ 1676501894058810906042608967143886410281435038564874716583201061436613217310276
+ 8902855220001
Installation
============
@@ -161,6 +156,93 @@ See `xint.pdf` for contact information.
%</readme>--------------------------------------------------------
%<*changes>-------------------------------------------------------
+`1.4e (2021/05/05)`
+----
+
+This section might be incomplete at time of release, it will be
+extended if need be after the author gets some rest.
+
+### Breaking changes
+
+ - **xintlog**: `\poormanloghack` now a no-op.
+
+ - **xinttrig**: loading the package does not define left-over variables
+ holding the values of the inverse factorials used in the sine and
+ cosine series.
+
+ - **xintexpr**: the output format of `\xinteval`, which uses
+ `\xintFracToSci,` has changed. In particular, if the number has a
+ power of ten part, it is not output with an integer mantissa, but
+ with a scientific mantissa `d.d...` with always at least one digit
+ after the decimal mark (possibly `0`) and trailing zeros are trimmed
+ out. This is the same output format as used for `\xintfloateval`,
+ apart of course from the fact that the mantissa lengths are not
+ limited.
+
+ - **xintexpr**: the output format of `\xintfloateval`, which uses
+ `\xintPFloat`, changed. The `\xintfloatexprPrintOne` macro now
+ expects to be used with either one or two arguments, the first one
+ being within brackets not braces. It defaults to `\xintPFloat`.
+
+ - **xintexpr**: when using `\xintieval{[D]...}` optional `[D]` with a
+ negative `D`, which triggers quantization to a positive power of ten,
+ the output (if not the zero value) will be an integer with `N=abs(D)`
+ explicit trailing zeros, not an integer mantissa followed by `eN`.
+
+ - **xintexpr**: `\xinteval` will not compute powers `a^N` exactly if
+ `N` in absolute value is at least the (rounded) quotient of `10000`
+ by the number of digits of `a`; it will then use the
+ logarithm/exponential (in base 10) approach, according to the
+ prevailing Digits setting.
+
+ - **xintexpr**: `\xintdeffloatvar` now always rounds the assigned value
+ to the target precision. Formerly, inputs actually involving no
+ float operations, such as for example `\xintexpr1/20!\relax` (in
+ contrast to `1/20!`), or an explicit single number having more digits
+ than the precision, got stored "as is" in the defined variable,
+ without pre-rounding to the Digits precision.
+
+ - **xintfrac**:`\xintPFloat` and `\xintFracToSci` behave
+ differently. The macro `\xintFracToSciE` does not exist anymore, as
+ `\xintFracToSci` in the case of scientific exponents hands over the
+ process to `\xintPFloat` (without the rounding to Digits, of course).
+
+ - **xintexpr**: messages sent under `\xintverbosetrue` regime to the
+ log file do not enclose the variable names in straight double quotes
+ `"..."` anymore.
+
+### New features
+
+ - **xintlog**: now working up to `62` digits. The legacy faster
+ `poormanlog`-based macros are kept for computations with Digits up to
+ `8`. Fractional powers are now available both in `xinteval` and
+ `xintfloateval`, per default.
+
+ - **xinttrig**: now working up to `62` digits and with increased
+ accuracy. Special faster mode at `8` digits or less.
+
+ - **xintexpr**: the constraints on the `\xintexprPrintOne` replacement
+ macro, which defaults to `\xintFracToSci`, have been much simplified.
+
+ - **xintexpr**: `\xintiexprPrintOne` (defaults to `\xintDecToString`)
+
+ - **xintfrac**: `\xintPFloatE` may be redefined as a macro which
+ fetches the scientific exponent as a mandatory argument delimited
+ with a dot, and outputs a suitable formatted result (f-expandably),
+ also delimited with a dot which will be removed by internal
+ processing. The default however simply expands to the letter `e`.
+
+ - **xintfrac**: `\xintDecToStringREZ`
+
+### Bug fixes
+
+ - **xintfrac**, **xintexpr**: it was not possible to use
+ `\xinttheDigits` in the right hand side of an `\xintDigits`
+ assignment. For example: `\xintDigits*:=\numexpr\xinttheDigits+4;`.
+ This is now allowed, and the same applies to the macro interface,
+ for example `\xintSetDigits*{\xinttheDigits+4}`.
+
+
`1.4d (2021/03/29)`
----
@@ -169,9 +251,13 @@ See `xint.pdf` for contact information.
- `quo()` and `rem()` in `\xintiiexpr/\xintiieval` renamed to
`iquo()` and `irem()`.
- - the output of `gcd()` and `lcm()` as applied to fractions is now
+ - The output of `gcd()` and `lcm()` as applied to fractions is now
always in lowest terms.
+ - The log message to report a variable creation (if `\xintverbosetrue`)
+ does not use (double) quotes anymore around the name. By the way,
+ quotes were never used for function names.
+
### Bug fixes
- Ever since `1.3` the `quo()` and `rem()` functions in `\xintexpr`
@@ -2660,6 +2746,7 @@ pandoc -o CHANGES.html -s --toc -V highlighting-css=' body{margin-left : 10%;
\DeclareUnicodeCharacter{03B4}{\ensuremath{\delta}}%δ
\DeclareUnicodeCharacter{03BE}{\ensuremath{\xi}}%ξ
\DeclareUnicodeCharacter{03C0}{\ensuremath{\pi}}%π
+ \DeclareUnicodeCharacter{2260}{\ensuremath{\neq}}%≠
\fi
\usepackage{multicol}
@@ -3848,6 +3935,7 @@ pdfpagemode=UseNone,%
\node [block, below of=xint] (frac) {\xintfracname};
\node [block, below of=frac, yshift=-.5cm] (expr) {\xintexprname};
\node [block, below right of=expr, yshift=-.5cm, xshift=2.25cm] (polexpr) {\ctanpackage{polexpr}};
+ \node [block, below of=polexpr] (session) {rlwrap etex \ctanpackage{xintsession}};
\node [block, below of=expr, yshift=-.5cm] (trig) {\xinttrigname};
\node [block, left of=trig] (log) {\xintlogname};
\node [block, left of=log, xshift=-1cm] (poormanlog) {\ctanpackage{poormanlog}};
@@ -3868,6 +3956,10 @@ pdfpagemode=UseNone,%
\path [line,{Stealth[length=5mm]}-{Stealth[length=5mm]}] (expr) -- (log);
\path [line,-{Stealth[length=5mm]}] (poormanlog) -- (log);
\path [line,-{Stealth[length=5mm]}] (expr) -- (polexpr);
+ \path [line,-{Stealth[length=5mm]}] (expr) -- (session);
+ \path [line,-{Stealth[length=5mm]}] (polexpr) -- (session);
+ \path [line,-{Stealth[length=5mm]}] (trig.south) to [out=-90,in=180] (session.west);
+ \path [line,-{Stealth[length=5mm]}] (log.south) to [out=-90,in=180] (session.west);
\path [line,-{Stealth[length=5mm]}] (frac) to [out=0,in=90] (series.north);
\path [line,-{Stealth[length=5mm]}] (frac) to [out=0,in=90] (cfrac.north);
\path [line,dashed,-{Stealth[length=5mm]}] (binhex.south) -- (expr);
@@ -3921,14 +4013,18 @@ pdfpagemode=UseNone,%
\etocsetnexttocdepth{section}
\localtableofcontents
-\section {Start here}
+\section {Usage}
\begin{itemize}
\item To use with |etex|, |pdftex|, ..., i.e. with \TeX{} engines activating
the e\TeX{} extensions:
\begin{everbatim}
\input xintexpr.sty
-\xinteval{sqrt(13, 60)}% get it with 60 digits (correctly rounded)
+\xintfloateval{sqrt(13), cos(1), exp(13.3)}% uses 16 digits per default
+\xintDigits*:=32;% reload log and trig libraries
+\xintfloateval{sqrt(13), cos(1), exp(13.3)}% now with 32 digits
+\xinteval{2^1000}% exact computations
+\xinteval{reduce(add(1/i, i=1..50))}% dummy variables
\end{everbatim}
\item To use with the \LaTeX{} macro layer (|latex|, |pdflatex|, ...):
\begin{everbatim}
@@ -3940,34 +4036,58 @@ pdfpagemode=UseNone,%
\end{itemize}
\xintexprname is a package to do expandable computations, either exactly
-(i.e.\@ with fractions) or in
-the sense of floating point numbers at an arbitrary (reasonable%
-%
-\footnote{Trigonometrical functions are currently supported only up to about
- \dtt{58} decimal digits, and generally speaking expansion starts taking
- really too much time at about \dtt{500} digits. It looks as if \dtt{100}
- digits is a reasonable upper limit for floating point (this is already a lot
- to fit on one single line of text) and future development of the package
- will not attempt to support floating point calculations efficiently beyond
- that limit.}%
-) precision. It supports user definition of variables and functions. Its
-interface allows multiple comma separated expressions and nested structures:
-\begin{everbatim*}
-\xinteval{1, 2, [3, [4, 5]], 6}
-\end{everbatim*}is impressive. No?
-
-
+(i.e.\@ with fractions) with arbitrarily big inputs, or in the sense of
+floating point numbers (logarithm, exponential, sine, cosine, ...) up to 62
+digits.
-\medskip
-I am thinking about providing a console interface (using |rlwrap etex| as
-sadly the e-\TeX{} binaries are not linked with the |readline| library) which
-would mimick sessions with Maple or Python.
+The syntax to modify the precision used for floating point evaluations is
+\begin{everbatim}
+\xintDigits*:= <Number>;
+\end{everbatim}
+Use the |*|, else the scientific libraries will not be reloaded. See
+\csbxint{Digits}. The current precision is available as \csbxint{theDigits},
+but in this documentation I might be using simply |Digits| to refer to it.
-\medskip
-For a quick impression of the package abilities, check (not yet, else you will
-never come back here) the tables of its built-in
-\hyperref[tab:precedences]{operators} and \hyperref[tab:functions]{functions}.
+The tables of the built-in
+\hyperref[tab:precedences]{operators} and \hyperref[tab:functions]{functions}
+will give a quick overview of the available syntax.
+The simplest way to test it is to\footnote{I am assuming here Mac OS or Linux,
+adapt to your environment} work interactively on the command line
+(this feature is available since April 2021):
+\begin{everbatim}
+rlwrap etex xintsession
+[...hit RET once...]
+ Magic words: `&pause' (or `;'), `&help', `&bye', and toggles
+ `&exact', `&fp', `&fp16', `&fp24', `&fp32', `&int', `&pol'.
+ Starting in exact mode (floating point evaluations use 16 digits)
+(Please type a command or say `\end')
+*2^100;
+(@_1) 1267650600228229401496703205376
+*cos(1);
+(@_2) 0.5403023058681397
+*&fp32
+(./xintlog.sty) (./xinttrig.sty) fp32 mode (log and trig reloaded)
+*cos(1);
+(@_3) 0.54030230586813971740093660744298
+*3^1000;
+(@_4) 1.3220708194808066368904552597521e477
+*&exact
+exact mode (floating point evaluations use 32 digits)
+*3^1000;
+(@_5) 1322070819480806636890455259752144365965422032752148167664920368226828
+5973467048995407783138506080619639097776968725823559509545821006189118653427252
+5795367402762022519832080387801477422896484127439040011758861804112894781562309
+4438061566173054086674490506178125480344405547054397038895817465368254916136220
+8302685637785822902284163983078878969185564040848989376093732421718463599386955
+1676501894058810906042608967143886410281435038564874716583201061436613217310276
+8902855220001
+*&bye
+Did I say something wrong?
+Session transcript written on xintsession-210505_11h05.tex
+No pages of output.
+Transcript written on xintsession.log.
+\end{everbatim}
\medskip
@@ -3985,54 +4105,107 @@ quality of the document). Reports welcome.%
\footnote{Thanks to Jürgen Gilg for keeping the author motivated and
helping proof-read the documentation.}
-\subsection{Known bugs/features at \texttt{1.4d}}
+\subsection{Improved support for logarithm, exponential, sine, etc... at
+ the \texttt{1.4e} release of \texttt{2021/05/05}}
-\begin{description}
-\item[if(100>0,(100,125),(100,128)) breaks my code:]
-%
- This is a feature. This is a syntax error, as the comma serves to contatenate
- "oples" (see \autoref{oples}), so it is parsed to behave as
-\begin{everbatim}
- if(100>0,100,125,100,128)
-\end{everbatim}
- which is an error as \func{if} requires exactly three arguments, not
- five. Use:
-\begin{everbatim}
- if(100>0,[100,125],[100,128])
-\end{everbatim}
- which will expand to the "tuple" |[100,125]|.
-\item[{\detokenize{\xintdeffunc foo(x):= gcd((x>0)?{[x,125]}{[x,128]});}
- creates a broken function:}]
-%
- Bug. Normally \func{gcd} (and other
- multi-arguments functions) work both with open lists of arguments or
- bracketed lists ("nutples") and the above syntax would work perfectly fine
- in numerical context. But the presence of the \oper{?} breaks in
- \csbxint{deffunc} context the flexibility of \func{gcd}.
+They are now supported up to \dtt{62} digits and achieve correct rounding at least
+in \dtt{99\%} of cases (better than that, in fact, it depends a bit on the
+setting of Digits), when Digits is at least \dtt{9}.
+See \xintlogname and \xinttrigname.
- Currently working alternatives:
+For Digits up to \dtt{8}, a special more approximate implementation is used,
+and the functions achieve the ``correct rounding'' (particularly at |Digits=8
+or 7|) less often, but are significantly faster than working with \dtt{9}
+digits or more. The precision is largely
+enough for plots:
\begin{everbatim}
-\xintdeffunc foo(x) := gcd(if(x>0, [x,125], [x,128]));
-\xintdeffunc foo(x) := if(x>0, gcd(x,125), gcd(x,128));
-\xintdeffunc foo(x) := if(x>0, gcd([x,125]), gcd([x,128]));
-\xintdeffunc foo(x) := gcd((x>0)?{x,125}{x,128});
-\xintdeffunc foo(x) := (x>0)?{gcd(x,125)}{gcd(x,128)};
-\xintdeffunc foo(x) := (x>0)?{gcd([x,125])}{gcd([x,128])};
+\xintDigits*:=8;% do floating point computations at only 8 digits of precision
\end{everbatim}
- The same problem will arise with an \oper{??} nested inside \func{gcd} or
- similar functions, in an \csbxint{deffunc}.
-\end{description}
+For some more information on the limitations at Digits set to \dtt{8} or less
+relative to the logarithm and exponential in particular, refer to the comments
+in |sourcexint.pdf| at the start of the \xintlogname chapter.
-If the list stops here, it is probably only because I have not tested enough
-yet. But it is already mentioned in the \csbxint{deffunc} documentation that
-it can not parse currently the entirety of the available purely numerical
-syntax, some documented limitations apply.
+
+\subsection{Breaking changes at the \texttt{1.4e} release}
+
+In principle, I try for breaking changes regarding output to happen only at
+major releases. But it is not as if I had a gigantic user base, and sometimes
+it is needed to move forward; and as the \TeX\ world does not have a
+``pinning'' mechanism like Python's world, the distinction between minor and
+major releases is a bit rhetorical. So |1.4e| behaves like a major release.
+It is not one because a complete rework of the foundations of floating point
+support is needed...
+
+|1.4e| changes the output format used by \csbxint{eval}, \csbxint{ieval}, and
+\csbxint{floateval} (in short all is modified!).
+
+\begin{itemize}
+\item \csbxint{floateval} output macro \csbxint{PFloat} has been modified. In
+ particular mantissas are trimmed of trailing zeros. Integers are printed
+ with a zero after the decimal mark.
+\item \csbxint{eval} output macro \csbxint{FracToSci} has been modified,
+ regarding the handling of numbers involving a decimal exponent; rather than
+ printing out an integer mantissa, it now uses the same conventions as
+ \csbxint{PFloat} (of course without pre-rounding to the |Digits| precision).
+ The \csa{xintFracToSciE} was removed because \csbxint{PFloatE} is used.
+
+ Notice though that fractions are still not automatically reduced to lowest
+ terms even on output. I hesitated about this, but when for example the
+ computation is a large power of an already known to be irreducible fraction,
+ it would be a very costly operation to apply \csbxint{Irr} or \csbxint{PIrr}
+ to it.
+\item \csbxint{ieval} was modified to use on output
+ \csbxint{DecToString} and not anymore \csbxint{FracToSci}.
+
+ This means than in case of usage of the |[D]| optional argument with a
+ negative |D| (i.e.\@ rounding the output to a multiple of a positive power
+ of ten) the output does not use scientific notation but is an integer ending
+ with explicit zeros.
+
+ Nothing was changed to output for the case of a positive |[D]| (i.e.\@
+ rounding to |D| figures after decimal point). One now only needs to
+ configure the new \csbxint{iexprPrintOne} to be \csbxint{DecToStringREZ} in
+ order for trailing zeros in decimal expansions to get trimmed rather than
+ there being always exactly |D| figures after decimal point.
+\item Fractional powers are now allowed in \csbxint{eval}; powers with integer
+ exponents are still computed exactly of course, except that if the integer
+ exponent is \dtt{10000} or more, or if it is is
+ evaluated that the output will contain more than (about) \dtt{10000} digits
+ (separately for the numerator and denominator),
+ then the floating-point branch is taken forcedly. More details on fractional
+ powers are available in \xintlogname.
+\item \csa{poormanloghack} is now a no-op; to use the logarithm,
+ exponential, and powers based on \ctanpackage{poormanlog}, set Digits to at
+ most \dtt{8}. Don't forget the |*| in the |\xintDigits*:=8;| syntax.
+ \item The \csbxint{floatexprPrintOne} macro interface has changed, it is now
+ to be used with (an expandable) macro either allowing or requiring the
+ rounding precision to be present as |[P]|, not |{P}|. Its default
+ is the user level \csbxint{PFloat} whose behaviour has changed.
+\end{itemize}
+
+\begin{framed}
+ STARTING FROM HERE THE DOCUMENTATION MAY NOT BE UP-TO-DATE AT |1.4e|
+ RELEASE, IT MAY CONTAIN OBSOLETE INFORMATION
+\end{framed}
\subsection{Features added since the \texttt{1.4} release}
For bugfixes and possibly more details check |CHANGES.html|:
\centeredline{|texdoc --list xint|}
\begin{itemize}
+ \item The most important feature is at |1.4e| the extended range and accuracy
+ of the scientific functions, up to \dtt{62} digits.\NewWith{1.4e}
+
+ \item The constraints for the replacement macro to be used for
+ \csbxint{exprPrintOne} have been much simplified. See the
+ documentation of \csbxint{FracToSci} which is the package default.
+ %\NewWith{1.4e}
+
+ \item \csbxint{iexprPrintOne} was added, with default
+ \csbxint{DecToString}.\NewWith{1.4e}
+
+ \item \csbxint{DecToStringREZ} was added.%\NewWith{1.4e}
+
\item The function \func{zip}.
\item The function \func{flat}.
@@ -4040,7 +4213,8 @@ For bugfixes and possibly more details check |CHANGES.html|:
\item Chaining of \hyperlink{\detokenize{prec-10}}{comparison operators} à la
Python (no short-circuit, though) and |l3fp|.
- \item \csbxint{PFloatE} to specify like \csbxint{FracToSciE} does for
+ \item \csbxint{PFloatE} to specify like \csbxint{FracToSciE} (now defunct at
+ |1.4e|) does for
\csbxint{eval} since |1.4| the separator to use between mantissa and
exponent in the output of \csbxint{floateval} output.
@@ -4053,10 +4227,6 @@ For bugfixes and possibly more details check |CHANGES.html|:
the output uses fixed point notation with decimal digits and with |D=0| the
output is an integer with no decimal separator; with |D<0| scientific
notation is used%
-%
-\footnote{This was introduced at |1.4a| but due to a bug the |e| was by error of
- catcode 12, and \csbxint{FracToSciE} had no effect on it. Fixed at \texttt{1.4b}}%
-%
).
\item The same applies to the functions \func{trunc} and \func{round}. And
@@ -4066,7 +4236,6 @@ For bugfixes and possibly more details check |CHANGES.html|:
\item Support by \func{add} and \func{mul} for \keyword{omit}, \keyword{abort}
and \func{break}.%
%
-\footnote{Feature supposedly added at |1.4| but broken there.}
\end{itemize}
@@ -4117,6 +4286,49 @@ author a few decades to finish absorbing Python/NumPy.
\end{itemize}
\end{framed}
+\subsection{Known bugs/features (last updated at \texttt{1.4d})}
+
+\begin{description}
+\item[if(100>0,(100,125),(100,128)) breaks my code:]
+%
+ This is a feature. This is a syntax error, as the comma serves to contatenate
+ "oples" (see \autoref{oples}), so it is parsed to behave as
+\begin{everbatim}
+ if(100>0,100,125,100,128)
+\end{everbatim}
+ which is an error as \func{if} requires exactly three arguments, not
+ five. Use:
+\begin{everbatim}
+ if(100>0,[100,125],[100,128])
+\end{everbatim}
+ which will expand to the "tuple" |[100,125]|.
+\item[{\detokenize{\xintdeffunc foo(x):= gcd((x>0)?{[x,125]}{[x,128]});}
+ creates a broken function:}]
+%
+ Bug. Normally \func{gcd} (and other
+ multi-arguments functions) work both with open lists of arguments or
+ bracketed lists ("nutples") and the above syntax would work perfectly fine
+ in numerical context. But the presence of the \oper{?} breaks in
+ \csbxint{deffunc} context the flexibility of \func{gcd}.
+
+ Currently working alternatives:
+\begin{everbatim}
+\xintdeffunc foo(x) := gcd(if(x>0, [x,125], [x,128]));
+\xintdeffunc foo(x) := if(x>0, gcd(x,125), gcd(x,128));
+\xintdeffunc foo(x) := if(x>0, gcd([x,125]), gcd([x,128]));
+\xintdeffunc foo(x) := gcd((x>0)?{x,125}{x,128});
+\xintdeffunc foo(x) := (x>0)?{gcd(x,125)}{gcd(x,128)};
+\xintdeffunc foo(x) := (x>0)?{gcd([x,125])}{gcd([x,128])};
+\end{everbatim}
+ The same problem will arise with an \oper{??} nested inside \func{gcd} or
+ similar functions, in an \csbxint{deffunc}.
+\end{description}
+
+If the list stops here, it is probably only because I have not tested enough
+yet. But it is already mentioned in the \csbxint{deffunc} documentation that
+it can not parse currently the entirety of the available purely numerical
+syntax, some documented limitations apply.
+
\subsection{License and installation instructions}
\label{ssec:install}
@@ -4462,20 +4674,6 @@ the output be formatted with such separators.
Formatting of numeric output is apart from some minimal facilities such as
\csbxint{Frac}, \csbxint{DecToString}, \csbxint{PRaw}, \csbxint{FracToSci} or \csbxint{PFloat} left
to user macros or third-party packages%
-%
-\footnote{For example I hesitated whether to let \csbxint{FracToSciE} be
- actually a macro with one mandatory argument as this would give a hook to
- customize formatting the scientific exponent. But then, why not also wrap
- the mantissa or the denominator in hook macros? and should the |/| or the
- decimal separator also be customizable? It was reasonable to provide a way
- to use |E| in place of |e| for the scientific part, as |E| is accepted input
- in \csbxint{eval} or \csbxint{floateval}.
- % It is already possible for the no-argument macro \csbxint{FracToSciE} to
- % probe the sign of the exponent and for example insert a |+| if desired,
- % although there is no way (the exponent having no known delimiter) for it to
- % act globally on the exponent.
- It looked however better to leave additional
- formatting to external utilities.}.
\begin{everbatim*}
\xinteval{123_456_789_012^5}
\end{everbatim*}
@@ -4744,19 +4942,22 @@ l.c.m.=\xintthealign\xintiiexpr ndmap(lcm, 1..12; 1..10)\relax
\subsection{Customization of typesetting of individual items}
\label{xintexprEmptyItem}
\label{xintexprPrintOne}
+\label{xintiexprPrintOne}
\label{xintiiexprPrintOne}
\label{xintfloatexprPrintOne}
\label{xintboolexprPrintOne}
The way individual items are formatted (whether or not using
-\csa{xintthealign}) is also customizable:\kern-2pt
+\csa{xintthealign}) is also customizable. Here are the default package
+definitions:
+%\kern-2pt
% the \kern is to fix some extra white line from first line being a bit overfull
\begin{everbatim}
\def\xintexprEmptyItem{[]}
\let\xintexprPrintOne\xintFracToSci
-\def\xintFracToSciE{e}
+\let\xintiexprPrintOne\xintDecToString
\def\xintiiexprPrintOne #1{#1}
-\def\xintfloatexprPrintOne#1#2{\xintPFloat[#1]{#2}}
+\let\xintfloatexprPrintOne\xintPFloat
\def\xintPFloatE{e}
\def\xintboolexprPrintOne#1{\xintiiifNotZero{#1}{True}{False}}
\end{everbatim}
@@ -4766,15 +4967,23 @@ if the internal data format changes, which may happen at each release. Of course
the default for |\xintexprPrintOne| etc... will be adjusted accordingly, but
user custom definitions may break.
+The interface for \csbxint{floatexprPrintOne} was changed.\CHANGED{1.4e}
+It must now be the same as \csbxint{PFloat}, i.e. the target precision is |[P]| not a
+braced argument. It will always be used with this |[P|] present so does not
+have to consider it to be optional. It still must be expandable.
+
+The \csbxint{PFloatE} is now allowed to a be macro with an argument delimited
+by a dot, this argument will be the exponent.\NewWith{1.4e} The output must be produced
+\fexpan dably and again be delimited by a dot. The default does not grab the
+exponent and simply inserts the letter |e|.
+
Currently, this means that the macros used in place of \csbxint{FracToSci} and
-\csbxint{PFloat} must understand both the raw \xintfracname format |A/B[N]|
-and the decimal format |A.ddddd..dd|.%
+\csbxint{PFloat} should understand the raw \xintfracname format |A/B[N]|, with
+the |/B| and |[N]| parts being optional.%
%
-\footnote{Furthermore \csbxint{ieval}|{[D]...}| with a \emph{negative} |D|
- (feature added at |1.4a|) relies on the \csbxint{exprPrintOne} ability to
- react to a catcode 12 |e| (it is always used with detokenized
- input). \csbxint{FracToSci} has this ability and uses catcode 11 |e| in
- output (or rather whatever \csbxint{FracToSciE} expands to).}
+\footnote{The constraints on any replacement to \csbxint{FracToSci} are much
+ simplified at |1.4e|. Previously it had to be able to accept also input in
+ fixed point notation, and in scientific notation with a catcode 12 |e|.}
%
The typesetter for
\csa{xintiiexpr} simply prints ``as is'', but this may change in future.
@@ -5101,7 +5310,6 @@ precedence, use parentheses for disambiguation.
\xintifboolexpr{1<=2!=3<4>1}{true}{\error}, \xintifboolexpr{1<=2>=3<4>1}{\error}{false}
\end{everbatim*}
-
\precdesc{8}
\begin{description}
\operdesc{\Ampersand\Ampersand} logical conjunction. Evaluates to \dtt{1} if
@@ -5226,7 +5434,7 @@ atan2, atan2d,
binomial, bool,
ceil, cos, cosd, cot, cotd, cotg, csc, cscd,
divmod, even, exp,
-factorial, first, flat, float, float\string_, floor, frac, gcd,
+factorial, first, flat, float, float\string_dgt, floor, frac, gcd,
if, ifint, ifone, ifsgn, ilog10, iquo, irem, isint, isone, iter, iterr, inv,
last, lcm, len, log, log10, max, min, mod, mul,
ndmap, ndseq, ndfillraw,
@@ -5510,11 +5718,13 @@ $\xintthefloatexpr subs(((x-1)/x, x/x, (x+1)/x), x=2**30)\relax
length equal to the float precision). For example |qfloat(2[20])| would
keep internally the input format.
- \funcdesc{float\string_} is like \func{float} but does not accept the latter
- second optional argument.\NewWith{1.4} This is provided as a utility to
- speed-up things in some contexts, particularly when converting function
- definitions done via \csbxint{deffunc} (see explanations there) to
- functions usable in \csbxint{floateval}.
+ \funcdesc{float\string_dgt} is like \func{float} and avoids \func{float}'s
+ check whether it used with its second optional argument. This is useful
+ in the context of converting function definitions done via
+ \csbxint{deffunc} (see explanations there) to functions usable in
+ \csbxint{floateval}.\NewWith{1.4}
+
+ Breaking change at |1.4e|: formerly the name was |float_()|.\CHANGED{1.4e}
\funcdesc{nuple} is currently same as |[...]|.\DNU{(1.4)} Reserved for
possible alternative meaning in future.
@@ -5724,7 +5934,6 @@ $\xintthefloatexpr subs(((x-1)/x, x/x, (x+1)/x), x=2**30)\relax
a random integer |A <= x < B|. As in Python it is an «empty range» error
in first case if |A| is zero or negative and in second case if |B <= A|.
-
Attention that the arguments are first converted to integers using
\csbxint{Num} (i.e. truncated towards zero).
@@ -5808,7 +6017,8 @@ mod(11/7,1/13)- (11/7)/:(1/13), (11/7)//(1/13)\relax\newline
precision. The quotient is like in the other parsers an exact integer. It
will be rounded as soon as it is used in further operations, or via the global
output routine of |\xintfloatexpr|. \emph{Those examples behave as in |1.3f|
- because assignments to multiple variables tacitly unpack if this is necessary.}
+ because assignments to multiple variables tacitly unpack if this is
+ necessary.}
\begin{everbatim*}
\xintdefvar Q, R := divmod(3.7, 1.2);%
\xinttheexpr Q, R, 1.2Q + R\relax\newline
@@ -5820,7 +6030,6 @@ mod(11/7,1/13)- (11/7)/:(1/13), (11/7)//(1/13)\relax\newline
\xinttheiiexpr Q\relax\ (we see it has more than 16 digits)\par
\xintunassignvar{Q}\xintunassignvar{R}%
\end{everbatim*}
-
Again: |f//g| or the first item output by |divmod(f, g)| is an integer |q|
which when computed inside |\xintfloatexpr..\relax| is not yet rounded to
the prevailing float precision; the second item |f-q*g| is the rounding to
@@ -6755,21 +6964,40 @@ freely either with \csa{xintexpr} or \csa{xintfloatexpr} but not with
\csa{xintiiexpr}, and variables defined via \csa{xintdefiivar} can be used in
all parsers.
-When defining a variable with \csa{xintdeffloatvar}, it is important to know
-that the rounding to \csbxint{theDigits} digits of precision happens inside
-\csa{xintfloatexpr} only if an operation is executed. Thus, for a declaration
-using no operations (and \emph{only} for them), the value is recorded with all
-its digits preserved. If \csbxint{theDigits} changes afterwards, the variable
-will be rounded to that precision only at time of use.
+When defining a variable with \csa{xintdeffloatvar}\CHANGED{1.4e} it (or
+generally speaking its numerical leaves) is rounded to \csbxint{theDigits}
+precision. So the variable holds the same value as would be printed via
+\csbxint{floateval} for the same computation.
+
+Prior to |1.4e|, this was the case only if the variable definition actually
+involved some computation.
+
+The \csbxint{floatexpr}|..\relax| wrapper by itself induces no rounding. If
+it is encountered in the typesetting flow, the print-out will be rounded to
+\csbxint{theDigits} precision, but this is an effet of behaving like
+\csbxint{floateval} in this context. But in itself, rounding happens only if
+the expression involves operations; it will then be to the extended precision
+decided by the extra guard digits (default: 2).\NewWith{1.4e}
\begin{everbatim*}
+% Since 1.4e, \xintdeffloatvar always rounds (to \xinttheDigits)
\xintdeffloatvar e:=2.7182818284590452353602874713526624977572470936999595749669676;%
-\xintexpr e\relax\newline % shows the recorded value
-\xintfloatexpr e\relax\newline % typesetter rounds on output
-\xintexpr \xintfloatexpr e\relax\relax\newline % here we see all digits again
-\xintexpr \xintfloatexpr [16]e\relax\relax\newline % this forces rounding
-\xintexpr \xintfloatexpr 0+e\relax\relax\newline % rounding here done by addition
-\xintexpr float(e)\relax\newline % one more way to force rounding
-\xintifboolfloatexpr{e == e+0}{\error}{Different! Comparisons do not pre-round.}\par
+1) \xintexpr e\relax\newline % shows the recorded value: it is rounded
+\xintunassignvar{e}
+2) \xintfloatexpr % when used in typesetting flow, acts like \xintfloateval:
+ 2.7182818284590452353602874713526624977572470936999595749669676
+\relax\newline % the print-out is rounded.
+3) \xintexpr
+ \xintfloatexpr
+ 2.7182818284590452353602874713526624977572470936999595749669676
+ \relax
+\relax\newline % but we can see via the \xintexpr wrapper all the digits were there
+% rounding can be forced using an extra 0+, the float() function, or the [D] option.
+% tidbit: comparison operators do not pre-round, so 1.2345678 is not same as (1.2345678+0)
+% in low precision.
+\begingroup\xintDigits:=4;% with 2 guard digits, this makes 4+2=6 digits from "0+" rounding
+4) \xintifboolfloatexpr{1.2345678 == 1.2345678+0}
+ {\error}{Different! Comparisons do not pre-round.}\par
+\endgroup
\end{everbatim*}
% not so exciting example
@@ -6789,29 +7017,33 @@ will be rounded to that precision only at time of use.
% \xintthefloatexpr e, e^1000, e^1000000\relax (e rounded to 16 digits first)\par
% \end{everbatim*}
-With \csbxint{verbosetrue} the values of the assigned variables will be written
-to the log. For example like this (the line numbers here are artificial):
+After issuing \csbxint{verbosetrue} the values of defined variables are
+written out to the log (and terminal). As in this example:
\begin{everbatim}
Package xintexpr Info: (on line 1)
- Variable "myPi" defined with value {3141592653589793238462643[-24]}.
+ Variable myPi defined with value {3141592653589793238462643[-24]}.
Package xintexpr Info: (on line 2)
- Variable "x_1" defined with value {10}.
+ Variable x_1 defined with value {10}.
Package xintexpr Info: (on line 2)
- Variable "x_2" defined with value {20}.
+ Variable x_2 defined with value {20}.
Package xintexpr Info: (on line 2)
- Variable "x_3" defined with value {30}.
+ Variable x_3 defined with value {30}.
Package xintexpr Info: (on line 3)
- Variable "List" defined with value {0}{1}{3}{6}{10}{15}{21}{28}{36}{45}{55}
+ Variable List defined with value {0}{1}{3}{6}{10}{15}{21}{28}{36}{45}{55}
.
Package xintexpr Info: (on line 4)
- Variable "Nuple" defined with value {{0}{1}{9}{36}{100}{225}{441}{784}{1296
+ Variable Nuple defined with value {{0}{1}{9}{36}{100}{225}{441}{784}{1296
}{2025}{3025}}.
Package xintexpr Info: (on line 5)
- Variable "FourthPowers" defined with value {{0}{1}{81}{1296}{10000}{50625}{
+ Variable FourthPowers defined with value {{0}{1}{81}{1296}{10000}{50625}{
194481}{614656}{1679616}{4100625}{9150625}}.
\end{everbatim}
-Prior to |1.4| individual (scalar) values would not have been printed to the
-log with the braces.
+Prior to |1.4e| variable names\CHANGED{1.4e} were printed within straight
+double quotes to the log. But this was not the case for function definitions,
+so now quotes have been removed.
+
+The braces one can see around the numerical values date back to the |1.4|
+release.
\subsubsection{\csh{xintunassignvar}}
@@ -6826,7 +7058,7 @@ different,\IMPORTANT{} as it is synonymous with
\csbxint{newdummy}\marg{letter}: the (catcode 11) \meta{letter} recovers or
acquires meaning as a dummy variable in the current scope.
\begin{everbatim*}
-\xintFor #1 in {e_1, e_2, e_3, e_4, e} \do {\xintunassignvar {#1}}
+\xintunassignvar{e}%
% overwriting a dummy letter
\xintdefvar i := 3;%
\xinttheiiexpr add(i, i = 1..10)\relax\ ("i" has the fixed value 3)\newline
@@ -6959,14 +7191,15 @@ have gained experience in using this interface...):
if one wants the expansion to execute in a parser independent way, one can
transfer a function with scalar values like this:
\begin{everbatim}
-\xintdeffloatfunc foo(x) := float_(\xintexpr foo(x)\relax);
+\xintdeffloatfunc foo(x) := float_dgt(\xintexpr foo(x)\relax);
\end{everbatim}
- The \func{float\string_} wrapper\NewWith{1.4} is in order for the float
- variant to produce an already-rounded value, possibly speeding-up usage if
- used as input for other functions. Notice the final underscore in the name;
- it is not mandatory but \func{float} here would mean adding a check for
- optional argument hence silly overhead, as this check can only be done at
- time of use (as |\xintexpr...\relax| may a priori produce an |ople|).
+ The \func{float\string_dgt} wrapper\NewWith{1.4} (which was renamed at
+ |1.4e|) is in order for the float variant to produce an already-rounded
+ value, possibly speeding-up usage if used as input for other
+ functions. Using \func{float} here would work the same but the produced
+ function would incorporate a routine to check (at time of use, because at
+ time of definition it is impossible to tell what will be the case) if it is
+ applied to one or two arguments.
\item And in the reverse direction one can do:
\begin{everbatim}
@@ -6979,7 +7212,7 @@ have gained experience in using this interface...):
operators to the macros doing the exact operations, not the floating point
ones.
- The \func{float} above is not mandatory but recommended. The macro
+ The inner \func{float} above is not mandatory but recommended: the macro
associated to the user float function |bar(x)| may use many times its
argument |x| and does not worry about rounding it, because its expectation
is that it is already rounded; but in \csbxint{expr} that value could very
@@ -6990,10 +7223,15 @@ have gained experience in using this interface...):
can also use \func{sfloat}, this would serve to nothing for the |19/13| case
but would possibly for a short integer input involved in multiplications.
- Here it is not needed to use \func{float\string_}, because it will be
+ Here it is not needed to use \func{float\string_dgt}, because it will be
identified at time of definition that \func{float} is used without optional
argument.
+ An external \func{float\string_dgt} could be added but is not a priori
+ necessary, except perhaps if the |bar()| function has been defined at a low
+ level using support macros producing output with garbage extra digits, which
+ usually would be rounded out in input to other float functions.
+
\end{itemize}
@@ -7479,57 +7717,58 @@ The sole macro is \csbxint{reloadxinttrig}.
This package was first included in release |1.3e| (|2019/04/05|) of
\xintexprname. It is automatically loaded by \xintexprname.
+At |1.4e| (|2021/05/05|) the accuracy was significantly increased:\CHANGED{1.4e} formerly
+the high-level user interface used to define the functions did not allow
+operating with guard digits, so the last two digits were most of the time off
+(at least the last digit). Now, some internal changes have fixed this problem
+and the accuracy is high. Also it was extended up to \dtt{62} digits.\NewWith{1.4e}
+
+At \dtt{8} digits a special, faster, mode is used, which is less accurate. But faster.
+
\textbf{Acknowledgements:} I finally decided to release some such functions
under friendly pressure of Jürgen \textsc{Gilg} and Thomas \textsc{Söll}, let
them both be thanked here.
\subsection{\csh{xintreloadxinttrig}}\label{xintreloadxinttrig}
-The library is loaded automatically by \xintexprname, thus with the default
-value of \csbxint{theDigits} which is \dtt{16}. But it can handle a precision
-of up to about \fbox{\dtt{60}} digits (make this \dtt{59} at most for the
-inverse functions). For this, execute for example \csbxint{SetDigits*}|{48}|.
+The library is loaded automatically by \xintexprname at start-up. It is then
+configured for \dtt{16} digits. To work for example with \dtt{48} digits,
+execute \csbxint{SetDigits*}|{48}| or \csbxint{Digits*}|:=48;| or
+\csbxint{Digits}|:=48;| followed by \csbxint{reloadxinttrig} (but in the latter
+case the logarithm, exponential, and power functions will not be updated).
-\begin{framed}
- Since |1.3f|, the starred variants \csbxint{Digits*}|:=P;| and
- \csbxint{SetDigits*}\marg{num. expression} execute \csbxint{reloadxinttrig}
- to let the package re-configure itself.
+The |*| is mandatory to reload the library, don't forget it.\IMPORTANTf{}
- The non-starred variants do not execute \csbxint{reloadxinttrig} (to avoid
- adding artificial overhead to existing documents).\IMPORTANTf{}
-\end{framed}
-Absence of guard digits (whether in the used hard-coded constants or in
-passing over values from one auxiliary function to the next) due to high level
-(user) interface used for the programming means that the produced values are
-definitely expected to be wrong in the last digit or last two digits. I should
-actually give some estimate of the actual maximal error in |ulps| unit, but I
-have not done the complete analysis for lack of time.
-
-Final computation results should thus probably be printed via
-\csbxint{floateval}|{[-2]....}| in order to strip off (with rounding) the last
-two digits, if one does not like seeing those non-meaningful figures in the
-last one or two positions (I don't say those last two figures are
-\emph{systematically} off). For example, to achieve \dtt{16} digits of
-precision one should work with a precision of 18 digits (being careful to have
-issued \csbxint{reloadxinttrig}) and round results using
-\csbxint{floateval}|{[-2]....}|.
-
-Another approach is to use \csbxint{ieval}|{[D]...}| for conversion to
-a fixed point format.
-
-In future, lower level coding will probably replace the high-level interface,
-or at least the macros produced by the high-level interface will be hacked
-into to tell the float macros to work at a somewhat elevated precision.
+% Absence of guard digits (whether in the used hard-coded constants or in
+% passing over values from one auxiliary function to the next) due to high level
+% (user) interface used for the programming means that the produced values are
+% definitely expected to be wrong in the last digit or last two digits. I should
+% actually give some estimate of the actual maximal error in |ulps| unit, but I
+% have not done the complete analysis for lack of time.
+
+% Final computation results should thus probably be printed via
+% \csbxint{floateval}|{[-2]....}| in order to strip off (with rounding) the last
+% two digits, if one does not like seeing those non-meaningful figures in the
+% last one or two positions (I don't say those last two figures are
+% \emph{systematically} off). For example, to achieve \dtt{16} digits of
+% precision one should work with a precision of 18 digits (being careful to have
+% issued \csbxint{reloadxinttrig}) and round results using
+% \csbxint{floateval}|{[-2]....}|.
+
+% Another approach is to use \csbxint{ieval}|{[D]...}| for conversion to
+% a fixed point format.
+
+% In future, lower level coding will probably replace the high-level interface,
+% or at least the macros produced by the high-level interface will be hacked
+% into to tell the float macros to work at a somewhat elevated precision.
\subsection{Constants}
-They are the correct rounding to \csbxint{theDigits} precision of the
-mathematically exact ones. Their values get incorporated into the
-trigonometrical functions at the time of their definitions during loading or
-reloading of the package. They are left free to use, or modified, or
-\csbxint{unassignvar}'d, as this will have no impact whatsoever on the
-functions.
+Their values (with more digits) get incorporated into the trigonometrical
+functions at the time of their definitions during loading or reloading of the
+package. They are left free to use, or modified, or \csbxint{unassignvar}'d,
+as this will have no impact whatsoever on the functions.
\begin{description}
\vardesc{twoPi} what could that be?
@@ -7538,21 +7777,10 @@ functions.
\vardesc{Piover2}
\vardesc{oneRadian} this is one radian in degrees: $180/\pi$
\vardesc{oneDegree} this is one degree in radian: $\pi/180$
-\vardesc{invfact2} this is $1/2!$
-\vardesc{invfact3} this is $1/3!$
-\item[\dots]
-\vardesc{invfact44} this is $1/44!$
\end{description}
-For a (very) slight optimization of usage, it is recommended to convert them
-to macro form, for example:
-\begin{everbatim*}
-\edef\oneDegree{\xintfloatexpr oneDegree\relax}
-\xintfloateval{sin(37\oneDegree)}\newline
-\xintfloateval{sind(37)}\newline
-\end{everbatim*}
-By the way, the above value differs by |1ulp| from correct rounding of exact
-one (which looks \dtt{...520482}79917...), see \autoref{ssec:trignotes}.
+Breaking change at |1.4e|:\CHANGED{1.4e} formerly some variables were
+defined to hold the inverse factorials. Not anymore.
\subsection{Functions}
@@ -7631,42 +7859,18 @@ not really needed. It is a oneliner to add them:
\begin{everbatim}
\xintdeffloatfunc radians(x) := x * oneDegree;
\xintdeffloatfunc degrees(x) := x * oneRadian;
-\xintdefefunc radians(x) := float_(x * oneDegree);
-\xintdefefunc degrees(x) := float_(x * oneRadian);
+\xintdeffunc radians(x) := float_dgt(x * oneDegree);
+\xintdeffunc degrees(x) := float_dgt(x * oneRadian);
\end{everbatim}
-The \csbxint{expr}-variants above do an exact multiplication. The
-\func{float\string_} explicit rounding is a bit superfluous as anyhow trigonometrical
-functions do this initial rounding of their arguments.
-
-The conversion factors above are without guard digits. Probably better to work
-overall with an elevated precision and print final results at a lower
-precision.
+The \func{float\string_dgt} does a float rounding to \csbxint{theDigits}
+precision (recall that |*| is mapped to exact multiplication in
+\csbxint{deffunc}).
\subsection{Important implementation notes}
\label{ssec:trignotes}
\begin{itemize}
-\item The package is almost entirely implemented using the high level user
- interface of \xintexprname, using
- \csbxint{deffloatefunc} (merged with \csbxint{deffloatfunc} at |1.4|) (and \csbxint{deffloatvar}), the main two exceptions
- being for:
- \begin{enumerate}[nolistsep]
- \item the range reduction for the |sind()| and |cosd()| functions which
- required for optimized efficiency the coding at some more core level.
- \item some changes at core level added at |1.3e| to
- facilitate the transfer of the defined functions from the float parser to
- the exact parser.
- \end{enumerate}
- Also, to avoid problems if the package is reloaded at a time the user has
- used some letter variables as assigned variables, |1.3e| added
- \csbxint{ensuredummy} and \csbxint{restorevariable}.
-\item It is not possible from this interface to (easily) let the computation
- proceed with a temporarily elevated precision (``guard digits''). Expect
- thus some errors in the last places; basically one should use the optional
- rounding argument of either \csbxint{floateval} or \csbxint{ieval} to reduce
- the number of digits of printed values by about two digits, if one
- hopes to get correct rounding (most of the time).
\item Currently, \xintname is lacking some dedicated internal representation
of floats which means that most operations re-parse the digit tokens of their
arguments to count them\dots\ this does not contribute to efficiency (you
@@ -7674,73 +7878,72 @@ precision.
macros look like and get an idea of how many times some rather silly
re-counting of mantissa lengths will get done!)
\item One should not overwrite some function names which are employed as
- auxiliaries: |sin_aux|, |cos_aux|, |sin_|, |cos_|, |sind_|, |cosd_|,
- |asin_l|\dots others\dots |asin_a|, |asind_a|, |atan_a|, |atand_a|,
- |atan_b|, |atand_b|. If you redefine any one of them, you break the
- whole thing.
+ auxiliaries; refer to |sourcexint.pdf|.
\item Floats with large exponents are integers and are multiple of \dtt{1000};
hence modulo \dtt{360} all such ``angles'' are multiple of \dtt{40} degrees.
Needless to say that considering usage of the |sind()| and |cosd()| functions
with such large float numbers is meaningless.
-\item Regarding |sin()| and |cos()|, \xinttrigname converts their argument to
- degrees by multiplication by (pre-rounded) $180/\pi$, then does range
- reduction modulo $360$ and finally goes back to radians in the appropriate
- octants to use usual Taylor series (roughly said). For large floats, the
- output value will thus be one of |sind(40n)|, |cosd(40n)|, |n=0..8|. If the
- unit in the last place of original variable was for example \dtt{1e9} the
- final result means nothing at all: the unit in the last place interval
- extends above possibly astronomical numbers of intervals of length $2\pi$.
-
- This intrinsic problem is not a by-product of conversion problems to and
- from degrees, it is an in-built inadequacy of the concept of floating point
- numbers to provide meaning to evaluating trigonometrical functions. The
- argument should be treated as a uniformly distributed random variable modulo
- $2\pi$, and the sine and cosine values should be random variables realizing
- the value distribution of these mathematical functions. Clearly this adds
- some (rather severe) implementation complications such as deciding how to
- make the transition to randomness. Too lazy for that.
-
- Opting for a random value also raises the question of how to deal with
- multiple such evaluations at the same argument in a single expression. I
- would argue again that as it is evil to consider meaningless quantities, it
- is not a problem if new compilations give different results, or even single
- compilation gives different results in various parts of the same formula,
- that's the whole point of randomness! As said already, I got too lazy to
- consider seriously implementing such a non-standard philosophy, despite its
- compelling soundness.
-\item Did I say the implementation was done at very high level (for the most
- part), hence has ample room for optimization? This is particularly the case
- for the handling of small inputs by functions such as sine or arcsine.
+\item See |sourcexint.pdf| for some comments on limitations of the range
+ reduction implementation.
+% \item Regarding |sin()| and |cos()|, \xinttrigname converts their argument to
+% degrees by multiplication by (pre-rounded) $180/\pi$, then does range
+% reduction modulo $360$ and finally goes back to radians in the appropriate
+% octants to use usual Taylor series (roughly said). For large floats, the
+% output value will thus be one of |sind(40n)|, |cosd(40n)|, |n=0..8|. If the
+% unit in the last place of original variable was for example \dtt{1e9} the
+% final result means nothing at all: the unit in the last place interval
+% extends above possibly astronomical numbers of intervals of length $2\pi$.
+
+% This intrinsic problem is not a by-product of conversion problems to and
+% from degrees, it is an in-built inadequacy of the concept of floating point
+% numbers to provide meaning to evaluating trigonometrical functions. The
+% argument should be treated as a uniformly distributed random variable modulo
+% $2\pi$, and the sine and cosine values should be random variables realizing
+% the value distribution of these mathematical functions. Clearly this adds
+% some (rather severe) implementation complications such as deciding how to
+% make the transition to randomness. Too lazy for that.
+
+% Opting for a random value also raises the question of how to deal with
+% multiple such evaluations at the same argument in a single expression. I
+% would argue again that as it is evil to consider meaningless quantities, it
+% is not a problem if new compilations give different results, or even single
+% compilation gives different results in various parts of the same formula,
+% that's the whole point of randomness! As said already, I got too lazy to
+% consider seriously implementing such a non-standard philosophy, despite its
+% compelling soundness.
+% \item Did I say the implementation was done at very high level (for the most
+% part), hence has ample room for optimization? This is particularly the case
+% for the handling of small inputs by functions such as sine or arcsine.
\end{itemize}
\subsection{Some example evaluations}
\noindent
\begin{everbatim*}
-\xintDigits* := 50\relax % target 48 digits via 2 guard digits
-$sind(17)\approx\xintfloateval{[-2] sind(17)}$\newline
-$cosd(17)\approx\xintfloateval{[-2] cosd(17)}$\newline
-$tand(17)\approx\xintfloateval{[-2] tand(17)}$\newline
-$sind(43)\approx\xintfloateval{[-2] sind(43)}$\newline
-$cosd(43)\approx\xintfloateval{[-2] cosd(43)}$\newline
-$tand(43)\approx\xintfloateval{[-2] tand(43)}$\newline
-$asind(0.3)\approx\xintfloateval{[-2] asind(0.3)}$\newline
-$acosd(0.3)\approx\xintfloateval{[-2] acosd(0.3)}$\newline
-$atand(3)\approx\xintfloateval{[-2] atand(3)}$\newline
-$tan(atan(7))\approx\xintfloateval{[-2] tan(atan(7))}$\newline
-$asind(sind(25))\approx\xintfloateval{[-2] asind(sind(25))}$\par\medskip
-\noindent\xintDigits* := 26\relax % target 24 digits via 2 guard digits
-$sind(17)\approx\xintfloateval{[-2] sind(17)}$\newline
-$cosd(17)\approx\xintfloateval{[-2] cosd(17)}$\newline
-$tand(17)\approx\xintfloateval{[-2] tand(17)}$\newline
-$sind(43)\approx\xintfloateval{[-2] sind(43)}$\newline
-$cosd(43)\approx\xintfloateval{[-2] cosd(43)}$\newline
-$tand(43)\approx\xintfloateval{[-2] tand(43)}$\newline
-$asind(0.3)\approx\xintfloateval{[-2] asind(0.3)}$\newline
-$acosd(0.3)\approx\xintfloateval{[-2] acosd(0.3)}$\newline
-$atand(3)\approx\xintfloateval{[-2] atand(3)}$\newline
-$tan(atan(7))\approx\xintfloateval{[-2] tan(atan(7))}$\newline
-$asind(sind(25))\approx\xintfloateval{[-2] asind(sind(25))}$\par
+\xintDigits* := 48\relax
+$sind(17)\approx\xintfloateval{sind(17)}$\newline
+$cosd(17)\approx\xintfloateval{cosd(17)}$\newline
+$tand(17)\approx\xintfloateval{tand(17)}$\newline
+$sind(43)\approx\xintfloateval{sind(43)}$\newline
+$cosd(43)\approx\xintfloateval{cosd(43)}$\newline
+$tand(43)\approx\xintfloateval{tand(43)}$\newline
+$asind(0.3)\approx\xintfloateval{asind(0.3)}$\newline
+$acosd(0.3)\approx\xintfloateval{acosd(0.3)}$\newline
+$atand(3)\approx\xintfloateval{atand(3)}$\newline
+$tan(atan(7))\approx\xintfloateval{tan(atan(7))}$\newline
+$asind(sind(25))\approx\xintfloateval{asind(sind(25))}$\par\medskip
+\noindent\xintDigits* := 24\relax
+$sind(17)\approx\xintfloateval{sind(17)}$\newline
+$cosd(17)\approx\xintfloateval{cosd(17)}$\newline
+$tand(17)\approx\xintfloateval{tand(17)}$\newline
+$sind(43)\approx\xintfloateval{sind(43)}$\newline
+$cosd(43)\approx\xintfloateval{cosd(43)}$\newline
+$tand(43)\approx\xintfloateval{tand(43)}$\newline
+$asind(0.3)\approx\xintfloateval{asind(0.3)}$\newline
+$acosd(0.3)\approx\xintfloateval{acosd(0.3)}$\newline
+$atand(3)\approx\xintfloateval{atand(3)}$\newline
+$tan(atan(7))\approx\xintfloateval{tan(atan(7))}$\newline
+$asind(sind(25))\approx\xintfloateval{asind(sind(25))}$\par
\xintDigits* := 16\relax
\end{everbatim*}
@@ -7760,68 +7963,137 @@ with \xintexprname.
This package was first included in release |1.3e| (|2019/04/05|) of
\xintexprname. It is automatically loaded by \xintexprname.
-Currently, the functions \func{log10}, \func{pow10}, \func{log}, \func{exp},
-and \func{pow} use at their core two fast expandable macros handling base 10
-logarithms and powers for mantissas of 9 digit tokens. They are
-defined by package \ctanpackage{poormanlog} which is
-automatically imported. The error is believed to be at most \dtt{2ulp} (see
-its |README|). The package \ctanpackage{poormanlog}
-has no dependencies and can be imported by any other \TeX\ macro file.
+At release |1.4e| (|2021/05/05|) it was substantially extended.\CHANGED{1.4e}
+Formerly, the functions \func{log10}, \func{pow10}, \func{log}, \func{exp},
+and \func{pow} used at their core \ctanpackage{poormanlog} which is
+automatically imported, this limited the precision to about \dtt{8} accurate
+digits, but was fast.
-Although the precision is thus limited to about \dtt{8} or \dtt{9} digits this
-is amply enough for plots.
+With |1.4e|, the |Digits| range is extended up to \dtt{62}
+digits. \ctanpackage{poormanlog} is still used as boot-strap for logarithms,
+it is not used at all for exponentials.
+
+At |Digits| set to \dtt{8} or less, the old faster but less accurate macros
+based on \ctanpackage{poormanlog} are used.
\localtableofcontents
-\subsection{\csh{poormanloghack}}
-\label{ssec:poormanloghack}
+\subsection{\csh{xintreloadxintlog}}\label{xintreloadxintlog}
-\begin{description}
-\item[\string\poormanloghack\string{**\string}] use it to let the |**| operator be remapped to the
- \func{pow} function.
-\item[\string\poormanloghack\string{\string^\string}] use it to let the |^| operator be remapped to the
- \func{pow} function.
-\end{description}
-If used, they obey \TeX\ scoping as usual.
+The library is loaded automatically by \xintexprname at start-up.
+It is then configured for \dtt{16} digits. To work for example with
+\dtt{48} digits, execute \csbxint{SetDigits*}|{48}| or \csbxint{Digits*}|:=48;| or
+\csbxint{Digits}|:=48;| followed by \csbxint{reloadxintlog} (but in the latter case
+the trigonometric functions will not be updated).
+
+The |*| is mandatory to reload the library, don't forget it.\IMPORTANTf{}
+
+\subsection{Powers in \texttt{\cs{xinteval}} and \texttt{\cs{xintfloateval}}}
+
+For powers |a^b| or |a**b| in \csbxint{floateval} the following rules apply:
+\begin{enumerate}[noitemsep]
+\item a check is made if exponent is integer or half-integer,
+\item if this is the case legacy \csbxint{FloatPower} (combined with
+ \csbxint{FloatSqrt} for half-integer case)
+ are used to evaluate the power (and |a| can be negative if exponent is
+ integer),
+\item else the power is computed as |pow10(b*log10(a))| (but keeping some
+ extra digits in intermediate evaluations; in particular |b| is not
+ float-rounded, but |a| is).
+\end{enumerate}
+The reason is that the log/exp approach would lose accuracy for very big
+exponents, for example as in this computation:
\begin{everbatim*}
-\begingroup
-\poormanloghack{**}\xintfloateval{[8]1.234**5.678}\newline
-\poormanloghack{^}\xintfloateval{[8]1.234^5.678}\par
-\endgroup
+\xintfloateval{1.00000001^184884258895036416}\newline
+\xintDigits:=48;%\xintreloadxintlog % not done as log10/pow10 will not be used
+\xintfloateval{1.00000001^(12^16)}\newline
+\xintDigits:=62;%\xintreloadxintlog % not done as log10/pow10 will not be used
+\xintfloateval{1.00000001^(12^16)}
+\xintDigits:=16;%
\end{everbatim*}
-Notice that in \csbxint{floateval} those (equivalent) operators already
-natively handle half-integer exponents. Once remapped to the \func{pow}
-function they will become less precise than the original ones for half-integer
-and integer exponents.
+Notes:
+\begin{itemize}[noitemsep]
+\item in first case we replaced |12^16| by its value, which has \dtt{18}
+ digits, to avoid it being produced rounded to \dtt{16} digits,
+\item as the example shows, the exponent is not pre-rounded (else the first
+ result would not match the second one at \dtt{48} digits),
+\item in second case parentheses are used because so far |^| is
+ left-associative, but it is planned to let it be right-associative at next
+ major release,
+\item computing the value via |log10()| and |pow10()| support macros would
+ lead to a less precise value, the last four or five digits in the last
+ computation would be wrong, due to immensity of exponent: roughly the
+ package is designed to maintain high accuracy with exponents up to say \dtt{1e10}
+ but see |sourcexint.pdf| for perhaps accurate comments
+ (I doubt it, as I have no time for that at this stage).
+\end{itemize}
+
+In \csbxint{eval}, this is about the same but for one difference: integer
+exponents will lead to exact computations, as long as:
+\begin{itemize}
+\item the exponent absolute value is at most \dtt{9999},
+\item it is evaluated a priori, based on the length of the input, that the
+ output will have at most \dtt{10000} digits (or only a bit more), separately
+ for numerator and denominator.
+\end{itemize}
+The check for integralness of exponent is not on its mathematical value
+but on its internal representation, for speed. So |6/3| is not recognized as
+being an integer exponent in \csbxint{eval}; but in \csbxint{floateval}, the
+|6/3| will have been computed and recognized as |2|. Also |2.00| or |200e-2|
+is recognized as an integer in both parsers. Similar remarks apply to
+half-integer case.
+
+For |Digits| at most \dtt{8}, this is different: both in \csbxint{eval} and
+\csbxint{floateval}, the logarithm/exponential path will apply always, except
+for the integer case in \csbxint{eval} which of course still proceeds via exact
+evaluations.
+
+To compute higher powers than |2^9999| or |9^9999| or |99^5000| or |999^3333|,
+etc..., use \csbxint{iieval}. See \csbxint{iiPow} for related comments if
+you don't want to melt your CPU.
+
+
+\subsubsection{\csh{poormanloghack}}
+\label{ssec:poormanloghack}
+
+It is now a no-op, and will be removed at next major release.
\subsection{Functions}
-All those functions achieve only about \dtt{8} or \dtt{9} digits of precision.
-Notice in particular that the digits beyond the ninth printed by \func{log}
-have no significance (here we suppose |1<x<10|), but I did not add the
-rounding overhead as it is expected anyhow that the final result will be
-appropriately rounded. Notice however that \func{log10} should be seen as
-going from floating point to fixed point (in the sense of the number of
-fractional digits) and \func{pow10} from fixed point to floating point.
+% All those functions achieve only about \dtt{8} or \dtt{9} digits of precision.
+% Notice in particular that the digits beyond the ninth printed by \func{log}
+% have no significance (here we suppose |1<x<10|), but I did not add the
+% rounding overhead as it is expected anyhow that the final result will be
+% appropriately rounded. Notice however that \func{log10} should be seen as
+% going from floating point to fixed point (in the sense of the number of
+% fractional digits) and \func{pow10} from fixed point to floating point.
\begin{description}
\funcdesc{log10} logarithm in base 10
+
\funcdesc{pow10} fractional powers of 10
-\funcdesc{log} natural logarithm via |log10(x)*2.3025850923| formula; only the
-first 8 or 9 digits of the output are significant...
-\funcdesc{exp} exponential function via |pow10(x*0.434294481903)| formula
-\funcdesc[x, y]{pow} computes $x^y$ via the formula |pow10(y*log10(x))|
+
+\funcdesc{log} natural logarithm
+
+\funcdesc{exp} exponential function
+
+\funcdesc[x, y]{pow} computes $x^y$ via the formula |pow10(y*log10(x))|, for
+|y| neither an integer nor an half-integer; else its uses either exact
+evaluation in \csbxint{eval} for integer exponents (see \csbxint{Pow} for
+additional information) or the old \csbxint{FloatPower} and
+\csbxint{FloatSqrt} macros in \csbxint{floateval} for integer or half-integer
+exponents.
\end{description}
\begin{everbatim*}
-\xintfloateval{[9] log(2), exp(1), pow(2,0.5)}
+\xintfloateval{log(2), exp(1), 2^(1/3)}
\end{everbatim*}
-Notice that the last digit of |log(2)| is not the correctly rounded one... I
-did say 9 \textbf{or} 8 digits or precision... The documentation of
-\ctanpackage{poormanlog} mentions an error of up
-to 2 units in the ninth digit when computing |log10(x)| for |1<x<10| and
-|10^x| for |0<x<1|.
+% Notice that the last digit of |log(2)| is not the correctly rounded one... I
+% did say 9 \textbf{or} 8 digits or precision... The documentation of
+% \ctanpackage{poormanlog} mentions an error of up
+% to 2 units in the ninth digit when computing |log10(x)| for |1<x<10| and
+% |10^x| for |0<x<1|.
\clearpage
\let\xintlognameUp\undefined
@@ -10714,59 +10986,112 @@ from removing the |[N]| part if |N=0| and removing the |B| if |B=1|.
\xintPRaw {123e10/321e10}, \xintPRaw {123e9/321e10}, \xintPRaw {\xintIrr{861/123}}
\end{everbatim*}
-\subsection{\csh{xintFracToSci}, \csh{xintFracToSciE}}\label{xintFracToSci}
-\label{xintFracToSciE}
+\subsection{\csh{xintFracToSci}}\label{xintFracToSci}
-% je ne dois pas mettre \Ff car la macro n'utilise pas \XINT_infrac
-\csa{xintFracToSci}\NewWith{1.4} is not really part of public interface. It is
-a macro used by \csbxint{expr} and \csbxint{iexpr} for output.
-
-\noindent It\xtype{} is expandable but not \fexpan dable.
+\csa{xintFracToSci}\NewWith{1.4} is for usage by \csbxint{eval} for formatting
+the output of numbers: the output routine of \csbxint{eval} uses
+\csbxint{exprPrintOne} whose current default definition is:
+\begin{everbatim}
+\let\xintexprPrintOne\xintFracToSci
+\end{everbatim}
+Any replacement should obey the following blueprint:
+\begin{itemize}[noitemsep]
+\item to\xtype{} be expandable, but not necessarily \fexpan dable,
+\item to accept on input |A|, |A/B|, |A[N]|, or |A/B[N]|, i.e. the ``raw''
+ \xintfracname format, but with optional |/B| and |[N]| parts,
+ which can be called the ``relaxed raw format''.
+\end{itemize}
+These constraints\CHANGED{1.4e} are much simplified at |1.4e| (and \csa{xintFracToSci} has
+been internally simplified to only have to obey the reduced constraints, which
+is a breaking change).
+
+At |1.4e| the handling\CHANGED{1.4e} by this macro of input with a scientific
+exponent part has changed. Rather than producing an integer mantissa it now
+does as \csbxint{PFloat} (apart from the float-rounding of course) in
+particular it trims out trailing zeros.
+
+Attention, \csa{xintFracToSci} does not behave as the other public macros from
+\xintfracname:
+\begin{itemize}[noitemsep]
+\item it is expandable, but not \fexpan dable, so it can't appear as argument
+ to other \xintfracname macros without an explicit |\expanded{...}| wrapper
+ (as they only \fexpan d their arguments).
+\item it expects input already (after \fexpan sion) in ``relaxed raw''
+ \xintfracname format.\IMPORTANT{}
+\end{itemize}
-It has specific rules regarding the input format: it expects it argument
-(after \fexpan ding it) to \emph{already} be either in raw \xintfracname
-format |A/B[N]| (with optional denominator and |[N]| parts) or in decimal
-format |A.ddd...ddd|. It does not accept scientific notation as input (or
-rather, the |e| in input must be of catcode 12).
+\noindent\csa{xintFracToSciE} has been removed at |1.4e|, see \csbxint{PFloatE}.
+
+\subsection{\csh{xintDecToStringREZ}}\label{xintDecToStringREZ}
+
+\csa{xintDecToStringREZ}\etype{\Ff} uses fixed point notation
+for the output. The argument is first parsed in the same way as for any other
+\xintfracname macros,\NewWith{1.4e} which means that it is first transformed into an
+internal format having a numerator |A|, a denominator |B| and a power of ten
+exponent |N|. The following recipe applies:
+\begin{itemize}[noitemsep]
+\item the zero value is printed as \dtt{\xintDecToStringREZ{0}} (no decimal point).
+\item trailing zeros of |A| and |B| are removed and |N| is adjusted,
+\item if the new |B| is not \dtt{1}, it will appear in the output as |/B|,
+\item fixed point notation is used for |AeN|:
+ \begin{itemize}[noitemsep]
+ \item if |N| is non-negative, the output is an integer with |N| trailing
+ zeros,
+ \item if |N| is negative a decimal point is used, and if |AeN| is less than
+ one in absolute value, output will start with \dtt{0.} (with a decimal point).
+ \end{itemize}
+\end{itemize}
+Please note the following:
+\begin{enumerate}[noitemsep]
+\item the fraction |AeN/B| or even |A/B| is not pre-reduced into lowest terms,
+\item the macro does not check if |B| contains only powers of \dtt{2} and
+ \dtt{5}, so |1/2| is printed as \dtt{\xintDecToString{1/2}}, not as \dtt{0.5}.
+\end{enumerate}
+The definitive behaviour remains to be decided regarding these two points.
-Its output uses scientific notation (dropping unit demoninator or zero
-exponent -- but not (as alas I have to tell the whole truth) in case input was
-itself in scientific notation), except for decimal numbers. The latter pass
-through ``as is''.
\begin{everbatim*}
-\xintFracToSci {\xintRaw{123e10/321e10}},
-\xintFracToSci {\xintRaw{123e9/321e10}},
-\xintFracToSci {\xintIrr{861/123}},
-\xintFracToSci {\xintTrunc{12}{1/3}}
+\xintDecToStringREZ{0}, \xintDecToStringREZ{1/2}, \xintDecToStringREZ{0.5000}\newline
+\xintDecToStringREZ{1.23456789e5}, \xintDecToStringREZ {1.23456789e-3}\newline
+\xintDecToStringREZ{12345e-1}, \xintDecToStringREZ {12345e-2}, \xintDecToStringREZ{12345e-3}\newline
+\xintDecToStringREZ{12345e-4}, \xintDecToStringREZ {12345e-5}, \xintDecToStringREZ{12345e-6}\newline
+\xintDecToStringREZ{1.234567890000e12}, \xintDecToStringREZ{1.23456000e-5/10}\newline
+\xintDecToStringREZ{70/14} % is not reduced to lowest terms
\end{everbatim*}
-Not being \fexpan dable it can not be used as argument to the other package
-macros without being wrapped in |\expanded{...}|.
-
-\noindent\csa{xintFracToSciE}\NewWith{1.4} says what to use for the scientific
-notation, its default definition is
-\begin{everbatim}
-\def\xintFracToSciE{e}
-\end{everbatim}
-
-
\subsection{\csh{xintDecToString}}\label{xintDecToString}
-This is\etype{\Ff} a macro tailored for printing decimal numbers. It does not
-trim trailing zeros, use |\xintDecToString{\xintREZ{<foo>}}| for that.
+\csa{xintDecToString}\etype{\Ff} uses fixed point notation for the output. It
+was introduced at |1.3| as experimental backport from a
+\href{http://ctan.org/pkg/polexpr}{polexpr} macro, and its behaviour remains
+somewhat undecided in particular regarding whether it should identify inputs
+which correspond to decimal numbers, \emph{after reduction to lowest terms}.
+
+It follows the same rules as \csbxint{DecToStringREZ} except that it does not
+remove trailing zeros, in fact \csbxint{DecToStringREZ}|{f}| is defined as
+\csbxint{DecToString}|{|\csbxint{REZ}|{f}}|.
\begin{everbatim*}
-\xintDecToString {123456789e5}\newline
-\xintDecToString {123456789e-5}\newline
-\xintDecToString {12345e-10}\newline
-\xintDecToString {12345e-10/123}\newline % leaves the denominator as is
-\xintDecToString {1234567890000e-6}\newline % does not trim trailing zeros
-\xintDecToString {\xintREZ{1234567890000e-6}}\par % does trim trailing zeros
+\xintDecToString{0}, \xintDecToString{1/2}, \xintDecToString{0.5000}\newline
+\xintDecToString{1.23456789e5}, \xintDecToString {1.23456789e-3}\newline
+\xintDecToString{12345e-1}, \xintDecToString {12345e-2}, \xintDecToString{12345e-3}\newline
+\xintDecToString{12345e-4}, \xintDecToString {12345e-5}, \xintDecToString{12345e-6}\newline
+\xintDecToString{1.234567890000e12}, \xintDecToString{1.23456000e-5/10}\newline
+\xintDecToString{70/14}
\end{everbatim*}
-Consider it an unstable macro, what it does exactly is yet to be decided. It
-is a backport from \href{http://ctan.org/pkg/polexpr}{polexpr}'s
-|\PolDecToString|, which has now been made an alias to it.
+
+Since |1.4e|\CHANGED{1.4e}, \csbxint{DecToString} is the default for
+\csbxint{iexprPrintOne}, which governs the \csbxint{ieval} output format (in
+this use case there is never a |/B| fractional part).
+\begin{everbatim}
+\let\xintexprPrintOne\xintDecToString
+\end{everbatim}
+
+Any replacement of \csbxint{iexprPrintOne} should obey the following blueprint:
+\begin{itemize}[noitemsep]
+\item to\xtype{} be expandable, but not necessarily \fexpan dable,
+\item to accept on input |A| or |A[N]|.
+\end{itemize}
\subsection{\csh{xintTrunc}}\label{xintTrunc}
@@ -11334,17 +11659,36 @@ Computes the square\etype{\Ff} of one fraction.
\subsection{\csh{xintPow}}\label{xintPow}
\csa{xintPow}{|{f}{x}|}:\etype{\Ff\Numf} computes |f^x| with |f| a fraction and
-|x| possibly also, but |x| will first get truncated to a (positive or negative)
-integer.
+|x| possibly also.
+
+This is the support macro for |a^b| in \csbxint{eval}.
+At |1.4e| the macro was extended to allow non-integer exponents (previously
+this was the case too, but the non-integer exponent was truncated to an
+integer...).
+\CHANGED{1.4e}
+
+A check is done whether the exponent is integer, but this check is not on the
+value but on the format. So |4/2| will not be recognized as integer; however
+|2.0| will be.
+
+If the exponent is considered an integer it is then checked if it is less than
+\dtt{10000} (in absolute value) and if the output would contain less than
+\dtt{10000} digits (separately for numerator and denominator) and only then is
+the power computed exactly.
+
+A check is also done whether the exponent is half-integer. Again this check is
+not one the value but on the format, so |2.5| is an half integer, as is
+|25e-1|, or |2.50| but |5/2| is not considered an half-integer. If the
+exponent is half-integer the power is computed by combining suitably
+\csbxint{FloatPower} with a square-root extraction.
+
+If the exponent is neither an integer nor an half-integer, the power is
+computed using logarithm and exponential based approach.
+
+For relevant details see the code comments of the \xintlogname library in
+|sourcexint.pdf|.
-The exponent |x| must obey the TeX-bound, but this limit is theoretical, as
-\TeX's memory or expansion settings get saturated quite earlier: it is
-explained in the documentation of \csbxint{iiPow} that the maximal power of
-$2$ computable by \xintname is |2^131072| which has \dtt{39457} digits.
-Actually, the pratical range is even smaller due to execution times.
-The output will always be in the form |A/B[n]| (even if the exponent
-vanishes: |\xintPow {2/3}{0}|\dtt{=\xintPow{2/3}{0}}).
Within an \csbxint{iiexpr}|..\relax| the infix operator |^| is mapped to
@@ -11619,23 +11963,42 @@ transitive in the number of kept digits.
-\subsection{\csh{xintPFloat}, \csh{xintPFloatE}}
+\subsection{\csh{xintPFloat}}
\label{xintPFloat}
\label{xintPFloatE}
|\xintPFloat [P]{f}|\etype{{\upshape[\numx]}\Ff} is like \csbxint{Float} but
-``pretty-prints'' the output. The macro applies one simple rule: |x.yz...eN|
-will drop scientific notation in favor of pure decimal notation if |-5<=N<=5|
-(last time I checked Maple® proceeded this way).
+``pretty-prints'' the output.
-Currently trailing zeros are not trimmed. And if the input vanishes the output
-will be \dtt{\xintPFloat{0}} with a decimal mark. Final decision however on
-how zero value should be printed is yet to arrive...
+This macro was added at |1.1| as a (very primitive) "prettifying printer" for
+floating point number, and was basically influenced by Maple.
-\csbxint{floateval} applies (via the default definition of
-\csbxint{floatexprPrintOne}) this macro to each non-empty leaf of the output
-ople. This is done in an |\expanded| context, but the macro is already \fexpan
-dable.
+The old rules were:
+\begin{enumerate}[nosep]
+\item The input is float-rounded to either |Digits| or the optional argument,
+\item zero is printed as \dtt{0.},
+\item \dtt{x.yz...eN} is printed ``as is'' if the exponent |N| is at least
+ \dtt{6} or at most \dtt{-6},
+\item else fixed point decimal notation is used,
+\item and there is no trimming of trailing zeroes.
+\end{enumerate}
+
+At |1.4e|, there is breaking change\CHANGED{1.4e}. The new rules are:
+\begin{enumerate}[nolistsep]
+\item The input is float-rounded to either |Digits| or the optional argument,
+\item zero is printed as \dtt{0.0},
+\item \dtt{x.yz...eN} is printed in decimal fixed point if |-4<=N<=+5|
+ else it is printed in scientific notation,
+\item Trailing zeros of the mantissa are trimmed always,
+\item In case of decimal fixed point output format, and the value is an integer, there
+ is a trailing |.0|,
+\item In case of scientific notation with a one-digit trimmed mantissa
+ there is an added |.0| too.
+\end{enumerate}
+
+The |1.4e| changes will affect all usages of \csbxint{floateval} as the latter
+applies per default (cf.\@ \csbxint{floatexprPrintOne}) \csbxint{PFloat} to
+each numerical leaf of the computed expression.
\csa{xintPFloatE}\NewWith{1.4b} was added to allow customizing the
symbol used on output for separating the significand from the exponent, if
@@ -11644,49 +12007,51 @@ this definition:
\begin{everbatim}
\def\xintPFloatE{e}
\end{everbatim}
-See in this context \csbxint{FracToSciE} which brings the analogous
-customizability to \csbxint{eval}.
+It is now possible\NewWith{1.4e} to let it grab the exponent as an argument (delimited by a
+dot) and format it (output must be delimited by a dot, which will be removed
+later on).
\begin{everbatim*}
-\begingroup\def\test #1{#1${}\to{}$\xintPFloat{#1}}%
-\string\xintDigits\ at \xinttheDigits
+\begin{multicols}2
+\def\test #1{#1${}\to{}$\xintPFloat{#1}}\string\xintDigits\ at \xinttheDigits
\begin{itemize}[nosep]
\item \test {0}
-\item \test {1.234e-7}
-\item \test {1.234e-6}
-\item \test {1.234e-5}
-\item \test {1.234e-4}
-\item \test {1.234e-3}
-\item \test {1.234e-2}
-\item \test {1.234e-1}
+\item \test {1.2340000e-7}
+\item \test {1.2340000e-6}
+\item \test {1.2340000e-5}
+\item \test {1.2340000e-4}
+\item \test {1.2340000e-3}
+\item \test {1.2340000e-2}
+\item \test {1.2340000e-1}
\end{itemize}
-\def\xintPFloatE{E}% test custom separator. Should impact \xintfloateval as well
+Change of scientific separator to |E|.\def\xintPFloatE{E}%
\begin{itemize}[nosep]
-\item \test {1.234e0}
-\item \test {1.234e1}
-\item \test {1.234e2}
-\item \test {1.234e3}
-\item \test {1.234e4}
-\item \test {1.234e5}
-\item \test {1.234e6}
-\item \test {1.234e7}
+\item \test {1.2340000e0}
+\item \test {1.2340000e1}
+\item \test {1.2340000e2}
+\item \test {1.2340000e3}
+\item \test {1.2340000e4}
+\item \test {1.2340000e5}
+\item \test {1.2340000e6}
+\item \test {1.2340000e7}
\end{itemize}
-\endgroup
+\end{multicols}
\end{everbatim*}
-\subsection{\csh{xintFloatE}}\label{xintFloatE}
+% \subsection{\csh{xintFloatE}}\label{xintFloatE}
+% %! {\small New with |1.097|.}
-|\xintFloatE [P]{f}{x}|\etype{{\upshape[\numx]}\Ff\numx} multiplies the input
-|f| by $10^x$, and
-converts it to float format according to the optional first argument or current
-value of |\xinttheDigits|.
-\begin{everbatim*}
-\xintFloatE {1.23e37}{53}
-\end{everbatim*}
+% |\xintFloatE [P]{f}{x}|\etype{{\upshape[\numx]}\Ff\numx} multiplies the input
+% |f| by $10^x$, and
+% converts it to float format according to the optional first argument or current
+% value of |\xinttheDigits|.
+% \begin{everbatim*}
+% \xintFloatE {1.23e37}{53}
+% \end{everbatim*}
-There is since |1.4b| an unfortunate proximity in name with \csbxint{PFloatE}
-despite the two things having absolutely nothing in common.
+% There is since |1.4b| an unfortunate proximity in name with \csbxint{PFloatE}
+% despite the two things having absolutely nothing in common.
\subsection{\csh{xintFloatAdd}}\label{xintFloatAdd}
@@ -11773,73 +12138,79 @@ The argument |f| is first rounded to |P| significant places to give
|f'|. The output |Z| is then such that the exact |f'^g| differs from
|Z| by an absolute error less than |0.52 ulp(Z)|.
-This is the macro which is used for the |^| (or |**|) infix operators in
-|\xintthefloatexpr...\relax|. In this context (but not directly with the
-macro,) half-integer exponents are allowed. This is handled via an integer power
-followed by a square-root extraction. The exponent is first rounded to nearest
-integer or half-integer so that the computation never raises errors (except
-naturally for negative exponent and zero |f|.) The |0.52 ulp(Z)| bound applies
-with half-integer exponents too.
+This is the support macro which is used for the |^| (or |**|) infix operators
+in \csbxint{floateval}, but \emph{ONLY for integer or half-integer
+ exponents}.\CHANGED{1.4e}
+Half-integer exponents combine this macro with a square-root extraction.
+For some related details see \xintlogname.
+The macro itself was \emph{NOT} modified at |1.4e| (contrarily to what
+happened with \csbxint{Pow}).
-Notice that this is a bound on the distance from |f'^g| to |Z|, as |f| always
-gets rounded to |P| or \csbxint{theDigits} digits. The distance from |f^g| to
-|Z| can be much worse if |g| is very large. Roughly, when |g| is negligible
-compared to |10^P|, we get an extra difference of up to about |50g ulp(Z)|
-which completely dwarfs the |0.52 ulp(Z)|. Thus, if |f| has strictly more than
-|P| digits, then the computation must be done with an elevated working
-precision |P'|. For example with |g=1000| we should use |P'=P+6| to achieve a
-total error at worst slightly bigger than |0.55 ulp(Z)| after the final
-rounding from |P'| to |P| digits to get |Z|.
-Examples:%
-%
-\footnote{|\np| is formatting macro from the \url{http://ctan.org/pkg/numprint}
- package.}
-%
-\begin{everbatim*}
-\np{\xintFloatPower [8]{3.1415}{3e9}}\newline% Notice that 3e9>2^31
-\np{\xintFloatPower [48]{1.1547}{\xintiiPow {2}{35}}}\newline
-\end{everbatim*}%
-$2^{35}=\xintiiPow {2}{35}$ exceeds \TeX's bound, but what
-counts is the exponent of the result which, while dangerously close to
-$2^{31}$ is not quite there yet.
-With expressions:
-\begin{everbatim*}
-{\xintDigits:=48\relax \np{\xintthefloatexpr 1.1547^(2^35)\relax}}
-\end{everbatim*}
+When used directly it first rounds the exponent to nearest integer or
+half-integer so that the computation never raises errors (except naturally for
+negative exponent and zero |f|.) The |0.52 ulp(Z)| bound applies with
+half-integer exponents too. Notice that this is a bound on the distance from
+|f'^g| to |Z|, as |f| always gets rounded to |P| or \csbxint{theDigits}
+digits. The distance from |f^g| to |Z| can be much worse if |g| is very
+large. Roughly, when |g| is negligible compared to |10^P|, we get an extra
+difference of up to about |50g ulp(Z)| which completely dwarfs the |0.52
+ulp(Z)|. Thus, if |f| has strictly more than |P| digits, then the computation
+must be done with an elevated working precision |P'|. For example with
+|g=1000| we should use |P'=P+6| to achieve a total error at worst slightly
+bigger than |0.55 ulp(Z)| after the final rounding from |P'| to |P| digits to
+get |Z|.
-There is a subtlety here that the |2^35| will be evaluated as a floating point
-number but fortunately it only has \dtt{11} digits, hence the final evaluation
-is done with a correct exponent. It would have been safer, and also more
-efficient to code the above rather as:
-\begin{everbatim}
-\xintthefloatexpr 1.1547^\xintiiexpr 2^35\relax\relax
-\end{everbatim}
+% Examples:%
+% %
+% \footnote{|\np| is formatting macro from the \url{http://ctan.org/pkg/numprint}
+% package.}
+% %
+% \begin{everbatim*}
+% \np{\xintFloatPower [8]{3.1415}{3e9}}\newline% Notice that 3e9>2^31
+% \np{\xintFloatPower [48]{1.1547}{\xintiiPow {2}{35}}}\newline
+% \end{everbatim*}%
+% $2^{35}=\xintiiPow {2}{35}$ exceeds \TeX's bound, but what
+% counts is the exponent of the result which, while dangerously close to
+% $2^{31}$ is not quite there yet.
+
+% With expressions:
+% \begin{everbatim*}
+% {\xintDigits:=48\relax \np{\xintthefloatexpr 1.1547^(2^35)\relax}}
+% \end{everbatim*}
-Here is an example with
-|12^16| as exponent, which has $18$ digits (\dtt{={\xintiiPow{12}{16}}}).
-\begin{everbatim*}
-{\xintDigits:=12\relax \np{\xintthefloatexpr (1+1e-8)^\xintiiexpr 12^16\relax\relax}}\newline
-\np{\xintthefloatexpr (1+1e-8)^\xintiiexpr 12^16\relax\relax}\newline
-{\xintDigits:=27\relax \np{\xintthefloatexpr (1+1e-8)^(12^16)\relax}}\newline
-{\xintDigits:=48\relax \np{\xintthefloatexpr (1+1e-8)^(12^16)\relax}}
-\end{everbatim*}
+% There is a subtlety here that the |2^35| will be evaluated as a floating point
+% number but fortunately it only has \dtt{11} digits, hence the final evaluation
+% is done with a correct exponent. It would have been safer, and also more
+% efficient to code the above rather as:
+% \begin{everbatim}
+% \xintthefloatexpr 1.1547^\xintiiexpr 2^35\relax\relax
+% \end{everbatim}
-There is an important difference between |\xintFloatPower[Q]{X}{Y}| and
-|\xintthefloatexpr[Q] X^Y\relax|: in the former case the computation is done
-with |Q| digits or precision,%
-%
-\footnote{if |X| and |Y| themselves stand for some
-floating point macros with arguments, their respective evaluations obey the
-precision |\xinttheDigits| or as set optionally in the macro calls
-themselves.}
-%
-whereas with \csbxint{thefloatexpr}|[Q]| the evaluation of the
-expression proceeds with |\xinttheDigits| digits of precision, and the final
-result is then rounded to |Q| digits: thus this makes real sense only if used
-with |Q<\xinttheDigits|.
+% Here is an example with
+% |12^16| as exponent, which has $18$ digits (\dtt{={\xintiiPow{12}{16}}}).
+% \begin{everbatim*}
+% {\xintDigits:=12\relax \np{\xintthefloatexpr (1+1e-8)^\xintiiexpr 12^16\relax\relax}}\newline
+% \np{\xintthefloatexpr (1+1e-8)^\xintiiexpr 12^16\relax\relax}\newline
+% {\xintDigits:=27\relax \np{\xintthefloatexpr (1+1e-8)^(12^16)\relax}}\newline
+% {\xintDigits:=48\relax \np{\xintthefloatexpr (1+1e-8)^(12^16)\relax}}
+% \end{everbatim*}
+
+% There is an important difference between |\xintFloatPower[Q]{X}{Y}| and
+% |\xintthefloatexpr[Q] X^Y\relax|: in the former case the computation is done
+% with |Q| digits or precision,%
+% %
+% \footnote{if |X| and |Y| themselves stand for some
+% floating point macros with arguments, their respective evaluations obey the
+% precision |\xinttheDigits| or as set optionally in the macro calls
+% themselves.}
+% %
+% whereas with \csbxint{thefloatexpr}|[Q]| the evaluation of the
+% expression proceeds with |\xinttheDigits| digits of precision, and the final
+% result is then rounded to |Q| digits: thus this makes real sense only if used
+% with |Q<\xinttheDigits|.
\subsection{\csh{xintFloatSqrt}}\label{xintFloatSqrt}
@@ -18211,6 +18582,10 @@ Please refer to |CHANGES.html| for a (very) detailed history.
\url{http://mirrors.ctan.org/macros/generic/xint/CHANGES.html}}
\begin{itemize}
+\item Release |1.4e| of |2021/05/05|: logarithms and exponentials up to 62
+ digits, trigonometry still mainly done at high level but with guard digits
+ so all digits up to the last one included can be trusted for faithful
+ rounding and high probability of correct rounding.
\item Release |1.4| of |2020/01/31|: \xintexprnameimp overhaul to use
|\expanded| based expansion control. Many new features, in particular
support for input and output of nested structures. Breaking changes, main
@@ -18301,7 +18676,7 @@ math shift catcode.
%\let<*xintkernel>\gardesinactifs
%</dtx>^^A--------------------------------------------------------
%<*xintkernel>^^A-------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintkernelnameUp\endcsname
% \section {Package \xintkernelnameimp implementation}
% \RaisedLabel{sec:kernelimp}
@@ -18368,13 +18743,15 @@ math shift catcode.
\fi
\ifx\z\relax\else\expandafter\z\fi%
% \end{macrocode}
-% \subsubsection{\csh{XINT_setcatcodes}, \csh{XINT_storecatcodes},
-% \csh{XINT_restorecatcodes_endinput}}
+% \subsubsection{\csh{XINTrestorecatcodes}, \csh{XINTsetcatcodes},
+% \csh{XINTrestorecatcodesendinput}}
+% \lverb|Renamed at 1.4e without underscores, in connexion with
+% easying up reloading process for xintlog.sty and xinttrig.sty.|
% \begin{macrocode}
\def\PrepareCatcodes
{%
\endgroup
- \def\XINT_restorecatcodes
+ \def\XINTrestorecatcodes
{% takes care of all, to allow more economical code in modules
\catcode0=\the\catcode0 %
\catcode59=\the\catcode59 % ; xintexpr
@@ -18388,7 +18765,7 @@ math shift catcode.
\catcode33=\the\catcode33 % ! xintexpr
\catcode93=\the\catcode93 % ] -, xintfrac, xintseries, xintcfrac
\catcode91=\the\catcode91 % [ -, xintfrac, xintseries, xintcfrac
- \catcode36=\the\catcode36 % $ xintgcd only
+ \catcode36=\the\catcode36 % $ xintgcd only $
\catcode94=\the\catcode94 % ^
\catcode96=\the\catcode96 % `
\catcode47=\the\catcode47 % /
@@ -18411,11 +18788,11 @@ math shift catcode.
\catcode32=\the\catcode32 %
\catcode61=\the\catcode61\relax % =
}%
- \edef\XINT_restorecatcodes_endinput
+ \edef\XINTrestorecatcodesendinput
{%
- \XINT_restorecatcodes\noexpand\endinput %
+ \XINTrestorecatcodes\noexpand\endinput %
}%
- \def\XINT_setcatcodes
+ \def\XINTsetcatcodes
{%
\catcode61=12 % =
\catcode32=10 % space
@@ -18453,18 +18830,20 @@ math shift catcode.
\catcode0=12 % for \romannumeral`&&@ trick
\catcode1=3 % for ultra-safe séparateur &&A
}%
- \XINT_setcatcodes
+ \let\XINT_setcatcodes\XINTsetcatcodes
+ \let\XINT_restorecatcodes\XINTrestorecatcodes
+ \XINTsetcatcodes
}%
\PrepareCatcodes
% \end{macrocode}
% Other modules could possibly be loaded under a different catcode regime.
% \begin{macrocode}
\def\XINTsetupcatcodes {% for use by other modules
- \edef\XINT_restorecatcodes_endinput
+ \edef\XINTrestorecatcodesendinput
{%
- \XINT_restorecatcodes\noexpand\endinput %
+ \XINTrestorecatcodes\noexpand\endinput %
}%
- \XINT_setcatcodes
+ \XINTsetcatcodes
}%
% \end{macrocode}
% \subsection{Package identification}
@@ -18486,7 +18865,7 @@ math shift catcode.
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2021/03/29 v1.4d Paraphernalia for the xint packages (JFB)]%
+ [2021/05/05 v1.4e Paraphernalia for the xint packages (JFB)]%
% \end{macrocode}
% \subsection{Constants}
% \begin{macrocode}
@@ -18611,7 +18990,7 @@ math shift catcode.
\long\def\xint_gob_til_xint:#1\xint:{}%
\long\def\xint_gob_til_^#1^{}%
\def\xint_bracedstopper{\xint:}%
-\long\def\xint_gob_til_exclam #1!{}% documenter le catcode de ! ici
+\long\def\xint_gob_til_exclam #1!{}% This ! has catcode 12
\long\def\xint_gob_til_sc #1;{}%
% \end{macrocode}
% \subsection{\csh{xint_afterfi}}
@@ -19196,7 +19575,7 @@ math shift catcode.
% \end{macrocode}
% \begin{macrocode}
\lowercase{\endgroup\XINT_expandableerror$\xint/\let\xint/\xint_undefined}% $
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintkernel}
% \cleardoublepage\let\xintkernelnameUp\undefined
@@ -19205,7 +19584,7 @@ math shift catcode.
%\let<*xinttools>\gardesinactifs
%</xintkernel>^^A-------------------------------------------------
%<*xinttools>^^A--------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xinttoolsnameUp\endcsname
% \section{Package \xinttoolsnameimp implementation}
% \RaisedLabel{sec:toolsimp}
@@ -19273,7 +19652,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2021/03/29 v1.4d Expandable and non-expandable utilities (JFB)]%
+ [2021/05/05 v1.4e Expandable and non-expandable utilities (JFB)]%
% \end{macrocode}
% \lverb|\XINT_toks is used in macros such as \xintFor. It is not used
% elsewhere in the xint bundle.|
@@ -21532,7 +21911,7 @@ math shift catcode.
\let\xintCSVFirstItem\xintFirstItem:f:csv
\let\xintCSVLastItem \xintLastItem:f:csv
\let\XINT_tmpa\relax \let\XINT_tmpb\relax \let\XINT_tmpc\relax
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xinttools}
% \cleardoublepage\let\xinttoolsnameUp\undefined
@@ -21541,7 +21920,7 @@ math shift catcode.
%\let<*xintcore>\gardesinactifs
%</xinttools>^^A--------------------------------------------------
%<*xintcore>^^A---------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintcorenameUp\endcsname
% \section{Package \xintcorenameimp implementation}
% \RaisedLabel{sec:coreimp}
@@ -21617,7 +21996,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintcore}%
- [2021/03/29 v1.4d Expandable arithmetic on big integers (JFB)]%
+ [2021/05/05 v1.4e Expandable arithmetic on big integers (JFB)]%
% \end{macrocode}
% \subsection{(WIP!) Error conditions and exceptions}
% \lverb|As per the Mike Cowlishaw/IBM's General Decimal Arithmetic Specification
@@ -24853,7 +25232,7 @@ math shift catcode.
(load xintfrac or use \@backslashchar xintii\xint_gobble_iv#1!)\MessageBreak}%
{}%
}%
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintcore}
% \cleardoublepage\let\xintcorenameUp\undefined
@@ -24862,7 +25241,7 @@ math shift catcode.
%\let<*xint>\gardesinactifs
%</xintcore>^^A---------------------------------------------------
%<*xint>^^A-------------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintnameUp\endcsname
% \section{Package \xintnameimp implementation}
% \RaisedLabel{sec:xintimp}
@@ -24926,7 +25305,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xint}%
- [2021/03/29 v1.4d Expandable operations on big integers (JFB)]%
+ [2021/05/05 v1.4e Expandable operations on big integers (JFB)]%
% \end{macrocode}
% \subsection{More token management}
% \begin{macrocode}
@@ -27418,7 +27797,7 @@ math shift catcode.
{No uniformdeviate at engine level, returning 0.} 0%
}%
\fi
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xint}
% \cleardoublepage\let\xintnameUp\undefined
@@ -27427,7 +27806,7 @@ math shift catcode.
%\let<*xintbinhex>\gardesinactifs
%</xint>^^A-------------------------------------------------------
%<*xintbinhex>^^A-------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintbinhexnameUp\endcsname
% \section{Package \xintbinhexnameimp implementation}
% \RaisedLabel{sec:binheximp}
@@ -27504,7 +27883,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2021/03/29 v1.4d Expandable binary and hexadecimal conversions (JFB)]%
+ [2021/05/05 v1.4e Expandable binary and hexadecimal conversions (JFB)]%
% \end{macrocode}
% \subsection{Constants, etc...}
% \lverb|1.2n switches to \csname-governed expansion at various places.|
@@ -28069,7 +28448,7 @@ math shift catcode.
}%
\def\XINT_chtb_N {\expandafter-\romannumeral0\XINT_chtb_main }%
\def\XINT_chtb_main {\csname space\csname\XINT_htb_loop}%
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintbinhex}
% \cleardoublepage\let\xintbinhexnameUp\undefined
@@ -28078,7 +28457,7 @@ math shift catcode.
%\let<*xintgcd>\gardesinactifs
%</xintbinhex>^^A-------------------------------------------------
%<*xintgcd>^^A----------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintgcdnameUp\endcsname
% \section{Package \xintgcdnameimp implementation}
% \RaisedLabel{sec:gcdimp}
@@ -28176,7 +28555,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2021/03/29 v1.4d Euclide algorithm with xint package (JFB)]%
+ [2021/05/05 v1.4e Euclide algorithm with xint package (JFB)]%
% \end{macrocode}
% \subsection{\csh{xintBezout}}
% \lverb|&
@@ -28701,7 +29080,7 @@ math shift catcode.
\par
\endgroup
}%
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintgcd}
% \cleardoublepage\let\xintgcdnameUp\undefined
@@ -28710,7 +29089,7 @@ math shift catcode.
%\let<*xintfrac>\gardesinactifs
%</xintgcd>^^A----------------------------------------------------
%<*xintfrac>^^A---------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintfracnameUp\endcsname
% \section{Package \xintfracnameimp implementation}
% \RaisedLabel{sec:fracimp}
@@ -28776,7 +29155,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2021/03/29 v1.4d Expandable operations on fractions (JFB)]%
+ [2021/05/05 v1.4e Expandable operations on fractions (JFB)]%
% \end{macrocode}
% \subsection{\csh{XINT_cntSgnFork}}
% \lverb|1.09i. Used internally, #1 must expand to \m@ne, \z@, or \@ne or
@@ -29271,7 +29650,7 @@ math shift catcode.
% \end{macrocode}
% \subsection{\csh{xintiLogTen}}
% \lverb|&
-% New at 1.3e
+% New at 1.3e. The exponent a, such that 10^a<= abs(x) < 10^(a+1).
% |
% \begin{macrocode}
\def\xintiLogTen {\the\numexpr\xintilogten}%
@@ -29336,18 +29715,13 @@ math shift catcode.
}%
% \end{macrocode}
% \subsection{\csh{xintSPRaw}}
-% \lverb|This private macro was for usage by \xinttheexpr. It got moved here
+% \lverb|This private macro was for internal usage by \xinttheexpr.
+% It got moved here
% at 1.4 and is not used anymore by the package.
%
-% Attention that \xintSPRaw assumed that if the number has no [N]
-% part it did not have a fraction part /B either. Indeed this was
-% the case always with 1.3f: parsing of an integer by \xintexpr
-% does not add the [0] as the code is shared with \xintiiexpr,
-% and when there was /B \xintexpr always added postfix [0]; even qfrac()
-% parses via \xintRaw; and reduce() internally used \xintIrr
-% which outputs A/B but it added [0].
+% It checks if input has a [N] part, if yes uses \xintPRaw, else
+% simply lets the input pass through as is.
% |
-%
% \begin{macrocode}
\def\xintSPRaw {\romannumeral0\xintspraw }%
\def\xintspraw #1{\expandafter\XINT_spraw\romannumeral`&&@#1[\W]}%
@@ -29355,97 +29729,94 @@ math shift catcode.
\def\XINT_spraw_a\W\XINT_spraw_p #1[\W]{ #1}%
\def\XINT_spraw_p #1[\W]{\xintpraw {#1}}%
% \end{macrocode}
-% \subsection{\csh{xintFracToSci}, \csh{xintFracToSciE}}
-% \lverb|1.4
+% \subsection{\csh{xintFracToSci}}
+% \lverb|1.4, refactored and much simplified at 1.4e.
%
-% This is the new macro used in place of \xintSPRaw (which basically was
-% \xintPRaw) by \xintexpr typesetter. Attention that it is also used by
-% \xintiexpr with inputs having being already converted to decimal form, hence
-% must understand this input form. This means it must for example not think
-% 0.123 is 0 because it starts with 0.
+% It only needs to be x-expandable, and indeed the implementation here is only
+% x-expandable.
%
-% And indeed the code here lets 0.123 go through as is. Identification of 0 as
-% first digit is done only in case of A[N], A/B, and A/B[N] formats.
+% (2021/04/13) the user documentation was really deplorable, I have
+% tried to improve it and in the process tried to remember what this macro was
+% supposed to do, and improved comments here, also lamentable.
%
-% As reduce() does not anymore append the [0] at 1.4, \xintFracToSci has
-% indeed to recognize A, A[N], A/B and A/B[N] but does not have to parse
-% multiple plus or minus signs or scientific part etc like \xintRaw does
-% (delegating to \XINT_infrac like all other xintfrac macros). It has to
-% identify say 0/5 (although I don't think that can arise) and -0 is never
-% occuring.
+% At 1.4e-dev this became provisorily basically like defunct \xintSPRaw, but
+% doing less parsing at it does not go to \xintPRaw with its \XINT_infrac
+% induced overhead. Previous 1.4b \xintFracToSci was much complicated from
+% having to allow fixed point notation on input and scientific notation with a
+% catcode 12 "e". Refactoring of \xintiexpr has removed these constraints.
+% Now:
%
-% The difference with \xintSPRaw is that it outputs AeN/B. It will not print
-% the /B if B=1 and eN if N is zero.
-%
-% If input is empty \xintFracToSci output is also empty, whereas \xintRaw
-% produces 0/1[0] out of empty. But \XINTexprprint anyhow has it own special
-% routine for empty input.
+%( Input: A, A/B, A[N], A/B[N]
+%: Output: AeN/B with special cases:
+%: 0 if input gives a zero value
+%: /B is skipped in output if B=1 in input
+%: eN is skipped in output if N=0 in input
+%)
%
-% 1.4b extends the macro to intercept scientific notation and thus allow
-% customizability of the «e» via \xintFracToSciE. Without this \xintieval with
-% a negative optional argument uses «e» in output with no possibility to
-% modify it.
+% 0[N] when N not zero is possible as input, but 0/B currently not I think,
+% and -0 for example never arises as one is guaranteed that A is in strict
+% integer format.
+%
+% (2021/05/05) Finally for 1.4e release I modify. This is breaking
+% change for all \xinteval output in case of scientific notation: it will not
+% be with an integer mantissa, but in regular scientific notation, using the
+% same rules as \xintPFloat.
+%
+% Of course there will be no float rounding applied! Also, as [0] will always
+% or almost always be present from an \xinteval, we want then to use integer
+% not scientific notation. But expression contained decimal fixed point input,
+% or uses scientific functions, then probably the N will not be zero and this
+% will trigger usage of scientific notation in output.
+%
+% Implementing these changes sort of ruin our previous efforts to minimize
+% grabbing the argument, but well. So the rules now are
+%
+%( Input: A, A/B, A[N], A/B[N]
+%: Output: A, A/B, A if N=0, A/B if N=0
+%: If N is not zero, scientific notation like \xintPFloat,&
+% i.e. behaviour like \xintfloateval apart from the rounding&
+% to Digits. In particular trailing zeros are trimmed.
+%: The zero gives 0, except in A[N] and A/B[N] cases, it may give&
+% 0.0
+%)
%
-% The expansion context from \xinttheexpr, \xinttheiexpr, \xinteval,
-% \xintieval is the scope of one \expanded.
+% As a result of these last minute 1.4e changes, the \xintFracToSciE is
+% removed.
%
-% Attention indeed that this macro is not f-expandable only x-expandable.
% |
%
% \begin{macrocode}
-\edef\xintFracToSci #1%
- {\unexpanded{\expandafter\XINT_FracToSci\romannumeral`&&@}#1\string e%
- \unexpanded{\Z/\W[\R]}}%
+\def\xintFracToSci #1{\expandafter\XINT_FracToSci\romannumeral`&&@#1/\W[\R}%
\def\XINT_FracToSci #1/#2#3[#4%
{%
- \xint_gob_til_W #2\XINT_FracToSci_no\W
- \xint_gob_til_R #4\XINT_FracToSci_yesno\R
- \XINT_FracToSci_yesyes #1/#2#3[#4%
-}%
-\def\XINT_FracToSci_no #1\XINT_FracToSci_yesyes #2[#3%
-{%
- \xint_gob_til_R #3\XINT_FracToSci_nono\R
- \XINT_FracToSci_noyes #2[#3%
+ \xint_gob_til_W #2\XINT_FracToSci_noslash\W
+ \xint_gob_til_R #4\XINT_FracToSci_slash_noN\R
+ \XINT_FracToSci_slash_N #1/#2#3[#4%
}%
-\edef\XINT_tmpa{##1\string e##2}%
-\def\XINT_tmpb{\def\XINT_FracToSci_nono\R\XINT_FracToSci_noyes}%
-\expandafter
-\XINT_tmpb\XINT_tmpa
+\def\XINT_FracToSci_noslash#1\XINT_FracToSci_slash_N #2[#3%
{%
- #1\xint_gob_til_Z #2\XINT_FracToSci_nonono\Z
- \XINT_FracToSci_nonoyes #2%
+ \xint_gob_til_R #3\XINT_FracToSci_noslash_noN\R
+ \XINT_FracToSci_noslash_N #2[#3%
}%
-\edef\XINT_tmpa{##1\string e}%
- \def\XINT_tmpb{\def\XINT_FracToSci_nonoyes}%
-\expandafter
-\XINT_tmpb\XINT_tmpa\Z/\W[\R]{\xintFracToSciE#1}%
-\def\XINT_FracToSci_nonono\Z\XINT_FracToSci_nonoyes\Z/\W[\R]{}%
-\edef\XINT_tmpa{##1##2[##3]\string e}%
- \def\XINT_tmpb{\def\XINT_FracToSci_noyes}%
-\expandafter
-\XINT_tmpb\XINT_tmpa\Z/\W[\R]%
+\def\XINT_FracToSci_noslash_noN\R\XINT_FracToSci_noslash_N #1/\W[\R{#1}%
+\def\XINT_FracToSci_noslash_N #1[#2]/\W[\R%
{%
- #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue
- #2\ifnum #3=\xint_c_\else\xintFracToSciE#3\fi\fi
+ \ifnum#2=\xint_c_ #1\else
+ \romannumeral0\expandafter\XINT_pfloat_fork\romannumeral0\xintrez{#1[#2]}%
+ \fi
}%
-\edef\XINT_tmpa{##1##2/##3\string e}%
- \def\XINT_tmpb{\def\XINT_FracToSci_yesno\R\XINT_FracToSci_yesyes}%
-\expandafter
-\XINT_tmpb\XINT_tmpa\Z/\W[\R]%
+\def\XINT_FracToSci_slash_noN\R\XINT_FracToSci_slash_N #1#2/#3/\W[\R%
{%
#1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue
#2\if\XINT_isOne{#3}1\else/#3\fi\fi
}%
-\edef\XINT_tmpa{##1##2/##3[##4]\string e}%
- \def\XINT_tmpb{\def\XINT_FracToSci_yesyes}%
-\expandafter
-\XINT_tmpb\XINT_tmpa\Z/\W[\R]%
+\def\XINT_FracToSci_slash_N #1#2/#3[#4]/\W[\R%
{%
- #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue
- #2\ifnum #4=\xint_c_\else\xintFracToSciE#4\fi
- \if\XINT_isOne{#3}1\else/#3\fi\fi
+ \ifnum#4=\xint_c_ #1#2\else
+ \romannumeral0\expandafter\XINT_pfloat_fork\romannumeral0\xintrez{#1#2[#4]}%
+ \fi
+ \if\XINT_isOne{#3}1\else\if#10\else/#3\fi\fi
}%
-\def\xintFracToSciE{e}%
% \end{macrocode}
% \subsection{\csh{xintRawWithZeros}}
% \lverb|&
@@ -29497,6 +29868,12 @@ math shift catcode.
\xint_orthat{\xintiie{#1}{#3}/#2}%
}%
% \end{macrocode}
+% \subsection{\csh{xintDecToStringREZ}}
+% \lverb|1.4e. And I took this opportunity to improve documentation in manual.|
+% \begin{macrocode}
+\def\xintDecToStringREZ{\romannumeral0\xintdectostringrez}%
+\def\xintdectostringrez#1{\expandafter\XINT_dectostr\romannumeral0\xintrez{#1}}%
+% \end{macrocode}
% \subsection{\csh{xintFloor}, \csh{xintiFloor}}
% \lverb|1.09a, 1.1 for \xintiFloor/\xintFloor. Not efficient if big negative
% decimal exponent. Also sub-efficient if big positive decimal exponent.|
@@ -30115,7 +30492,9 @@ math shift catcode.
% And the rounding is now done in 1.2 style (with much delay, sorry), like of
% the rewritten \xintInc and \xintDec.
%
-% At 1.4a, first argument can be negative. This is handled at \XINT_trunc_G.|
+% At 1.4a, first argument can be negative. This is handled at \XINT_trunc_G.
+%
+% |
% \begin{macrocode}
\def\xintRound {\romannumeral0\xintround }%
\def\xintiRound {\romannumeral0\xintiround }%
@@ -31645,19 +32024,121 @@ math shift catcode.
% cost of fetching long sequences of tokens.
% \end{framed}
%
+% \lverb|Changes at 1.4e (done 2021/04/15; undone 2021/04/29)
+%
+% Macros named \XINTinFloat<name> are not public user-level but were designed
+% a long time ago for \xintfloatexpr context as a very preliminary step
+% towards attempting to preserve some internal format, here A[N] type.
+%
+% When <name> is lowercased it means it needs a \romannumeral0 trigger
+% (\XINTinfloatS keeps an uppercase S).
+%
+% Most were coded to check for an optional argument [D], and to use
+% D=\XINTdigits in its place if absent but it turned out only \XINTinfloatpow,
+% \XINTinfloatmul, \XINTinfloatadd were actually used with an optional
+% argument and this happened only in macros from the very old xintseries.sty,
+% so I changed all of them to not check for optional argument [D] anymore,
+% keeping only some private interface for the xintseries.sty use case. Some
+% required being used with [D], some still had names ending in "digits"
+% indicating they would use \XINTdigits always.
+%
+% Indeed basically all algebra is done "exactly" and the [D] governs rules of
+% float-rounding on input and output.
+%
+% During development of 1.4e we fleetingly experimented with letting the value
+% used in place of D be \XINTdigitsx to 1.4e, i.e. \XINTdigits with guard
+% digits, a situation which was motivated by the implementation of
+% trigonometrical functions at high level, i.e. using \xintdeffloatfunc which
+% had no mechanism to make intermediate calculations with guard digits.
+%
+% Simply doing everything "as is" but with 2 guard digits proved very good
+% (surprisingly efficient, even) to the trigonometrical functions. However
+% using them systematically raises many issues (for example, the correct
+% rounding at P digits is destroyed if we obtain it a D=P+2 then round from
+% P+2 to P digits so we definitely can not do this as default, so some
+% interface is needed to define intermediate functions only using such guard
+% digits and keeping them in their output).
+%
+% Finally, an approach limited to the xinttrig.sty scope was used and I
+% removed all \XINTdigitsx related matters from 1.4e. But this left some
+% modifications of the interfaces of the "float" macros here which this list
+% tries to document, mainly for the author's benefit.
+%
+%( Macros always using \XINTdigits and now not allowing [P] option
+%: \XINTinFloatAdd
+%: \XINTinFloatSub
+%: \XINTinFloatMul
+%: \XINTinFloatSqr
+%: \XINTinFloatInv
+%: \XINTinFloatDiv
+%: \XINTinFloatPow
+%: \XINTinFloatPower
+%: \XINTinFloatPFactorial
+%: \XINTinFloatBinomial
+%:
+%: Macros which already did not allow [P] option prior to 1.4e refactoring
+%: \XINTinFloatFrac (renamed from \XINTinFloatFracdigits)
+%: \XINTinFloatE
+%: \XINTinFloatMod
+%: \XINTinFloatDivFloor
+%: \XINTinFloatDivMod
+%:
+%: Macros requiring a [P]. Some of the "_wopt" named macros are&
+% renamings of macros formerly requiring [P].
+%: \XINTinFloat
+%: \XINTinFloatS
+%: \XINTFloatiLogTen
+%: \XINTinRandomFloatS (this one has only the [P] mandatory argument)
+%: \XINTinFloatFac
+%: \XINTinFloatSqrt
+%: \XINTinFloatAdd_wopt, \XINTinfloatadd_wopt
+%: \XINTinFloatSub_wopt, \XINTinfloatsub_wopt
+%: \XINTinFloatMul_wopt, \XINTinfloatmul_wopt
+%: \XINTinFloatSqr_wopt
+%: \XINTinfloatpow_wopt (not FloatPow)
+%: \XINTinFloatDiv_wopt
+%: \XINTinFloatInv_wopt
+%:
+%: Specially named macros indicating usage of \XINTdigits
+%: \XINTinFloatdigits
+%: \XINTinFloatSdigits
+%: \XINTFloatiLogTendigits
+%: \XINTinRandomFloatSdigits
+%: \XINTinFloatFacdigits
+%: \XINTinFloatSqrtdigits
+%)
+% |
+%
% \subsection{\csh{xintDigits}, \csh{xintSetDigits}}
% \lverb|&
-% 1.3f modifies the (strange) original signature #1#2 for \xintDigits macro
-% into #1=, allowing usage
-% without colon. It also adds \xintSetDigits. Starred variants are added
-% by xintexpr.sty.
+%
+% 1.3f allows \xintDigits= in place of \xintDigits:= syntax.
+% It defines \xintDigits*[:]= which reloads xinttrig.sty. Perhaps this should
+% be default, well.
+%
+% During 1.4e development I added an interface for guard digits, but I decided
+% to drop inclusion from 1.4e release because there were pending issues both
+% in documentation and functionalities for which I did not have time left.
+%
+% 1.4e fixes the issue that \xinttheDigits could not be used in the right hand
+% side of \xintDigits[*][:]=...; or inside the argument to \xintSetDigits.
% |
% \begin{macrocode}
-\mathchardef\XINTdigits 16
-\def\xintDigits #1=%
- {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}%
-\def\xinttheDigits {\number\XINTdigits }%
-\def\xintSetDigits #1{\mathchardef\XINTdigits=\numexpr#1\relax}%
+\mathchardef\XINTdigits 16
+\chardef\XINTguarddigits 0
+\def\xinttheDigits {\number\XINTdigits}%
+%\def\xinttheGuardDigits{\number\XINTguarddigits}%
+\def\xinttheGuardDigits{0}% in case used in some of my test files
+\def\xintDigits #1={\afterassignment\xintDigits_i\mathchardef\XINT_digits=}%
+\def\xintDigits_i#1%
+{%
+ \let\XINTdigits\XINT_digits
+}%
+\def\xintSetDigits #1%
+{%
+ \mathchardef\XINT_digits=\numexpr#1\relax
+ \let\XINTdigits=\XINT_digits
+}%
% \end{macrocode}
%
% \subsection{\csh{xintFloat}}
@@ -31703,7 +32184,7 @@ math shift catcode.
% was ok, but printed 1.0...0eN with P-1 zeroes, not 10.0...0e(N-1).
%
% I decided it was not worth the effort to enhance the algorithm to detect
-% with 100$% fiability all cases of rounding up to next
+% with 100$% fiability all cases of rounding up to next &$ auctex!
% power of ten, hence 1.2k dropped this.
%
% To avoid duplication of code, and any extra burden on \XINTinFloat, which is
@@ -31760,6 +32241,8 @@ math shift catcode.
% Since 1.2f, the mantissa always has exactly P digits even in case of
% rounding up to next power of ten. This simplifies other routines.
%
+% (but the zero value must always be checked for, as it outputs 0[0])
+%
% 1.2g added a variant \XINTinFloatS which, in case of decimal input with less
% than the asked for precision P will not add extra zeros to the mantissa. For
% example it may output 2[0] even if P=500, rather than the canonical
@@ -31770,7 +32253,7 @@ math shift catcode.
% at least the length of mantissa as data.
%
% Each time \XINTinFloat is called it at least computes a length. Naturally if
-% we had some format for floats that would be dispensed of...$newline
+% we had some format for floats that would be dispensed of...$newline&$ auctex!
% something like
% <letterP><length of mantissa>.mantissa.exponent, etc... not yet.
%
@@ -31778,7 +32261,7 @@ math shift catcode.
% is a fraction with very big numerator and denominator. See the discussion of
% \xintFloat.
%
-% 1.3e adds \XINTiLogTen.
+% 1.3e adds \XINTFloatiLogTen.
% |
% \begin{macrocode}
\def\XINTinFloat {\romannumeral0\XINTinfloat }%
@@ -31812,12 +32295,14 @@ math shift catcode.
{\if #1!\xint_dothis\XINT_infloatS_clean_a\fi\xint_orthat{ }#1}%
\def\XINT_infloatS_clean_a !#1.{ }%
% \end{macrocode}
-% \lverb|1.3e ajoute \XINTiLogTen. Le comportement pour un input nul est non
-% encore finalisé. Il changera lorsque NaN, +Inf, -Inf existeront.|
+% \lverb|1.3e ajoute \XINTFloatiLogTen. Le comportement pour un input nul est non
+% encore finalisé. Il changera lorsque NaN, +Inf, -Inf existeront.
+% |
% \begin{macrocode}
\def\XINTFloatiLogTen {\the\numexpr\XINTfloatilogten}%
\def\XINTfloatilogten [#1]#2%
{\expandafter\XINT_floatilogten\romannumeral0\XINT_infloat[#1]{#2}#1.}%
+\def\XINTFloatiLogTendigits{\the\numexpr\XINTfloatilogten[\XINTdigits]}%
\def\XINT_floatilogten #1{%
\if #10\xint_dothis\XINT_floatilogten_z\fi
\if #1!\xint_dothis\XINT_floatilogten_a\fi
@@ -31849,7 +32334,7 @@ math shift catcode.
\fi #3.{#1}{#2}{#4}%
}%
% \end{macrocode}
-% \lverb|Special quick treatment of B=1 case (1.2f then again 1.2g.)$newline
+% \lverb|Special quick treatment of B=1 case (1.2f then again 1.2g.)$newline&$ auctex!
% maintenant: A.{P}{N}{1}
% Il est possible que A soit nul.
% |
@@ -31872,7 +32357,7 @@ math shift catcode.
{\if#1!\expandafter\XINT_infloat_spneg_needzeros\fi -#1}%
\def\XINT_infloat_spneg_needzeros -!#1.{!#1.-}%
% \end{macrocode}
-% \lverb|in: A.{P}{N}{1}$newline
+% \lverb|in: A.{P}{N}{1}$newline&$ auctex!
% out: P-L.A.P.N.|
% \begin{macrocode}
\def\XINT_infloat_sppos #1.#2#3#4%
@@ -31897,7 +32382,7 @@ math shift catcode.
% \begin{macrocode}
\def\XINT_infloat_sp_quick 0.#1.#2.#3.{ #1[#3]}%
% \end{macrocode}
-% \lverb|Ici #1=P-L est >0. L'exposant sera N-(P-L). #2=A. #3=P. #4=N.$newline
+% \lverb|Ici #1=P-L est >0. L'exposant sera N-(P-L). #2=A. #3=P. #4=N.$newline&$ auctex!
% 18 mars 2016. En fait dans certains contextes il est sous-optimal d'ajouter les
% zéros. Par exemple quand c'est appelé par la multiplication ou la division,
% c'est idiot de convertir 2 en 200000...00000[-499].
@@ -31906,7 +32391,7 @@ math shift catcode.
% \begin{macrocode}
\def\XINT_infloat_sp_needzeros #1.#2.#3.#4.{!#1.#2[#4]}%
% \end{macrocode}
-% \lverb|L-P=#1.A=#2#3.P=#4.N=#5.$newline
+% \lverb|L-P=#1.A=#2#3.P=#4.N=#5.$newline&$
% Ici P<L. Il va falloir arrondir. Attention si on va à la puissance de 10
% suivante. En #1 on a L-P qui est >0. L'exposant final sera N+L-P,
% sauf dans le cas spécial, il sera alors N+L-P+1. L'ajustement final
@@ -31970,7 +32455,7 @@ math shift catcode.
#2.#1.{#3}%
}%
% \end{macrocode}
-% \lverb?|A|.P+4.{A}{P}{n}{B}.$newline
+% \lverb?|A|.P+4.{A}{P}{n}{B}.$newline&$
% Here A is short. We set u = P+4-|A|, and A''=A (A' = 10^u A)
%
% output: u.A''..P+4.|A|.{A}{P}{n}{B}?
@@ -31981,7 +32466,7 @@ math shift catcode.
#3..#2.#1.{#3}%
}%
% \end{macrocode}
-% \lverb?input u.A''.junk.P+4.|A|.{A}{P}{n}{B}$newline
+% \lverb?input u.A''.junk.P+4.|A|.{A}{P}{n}{B}$newline&$
% output |B|.P+4.{B}u.A''.P.|A|.n.{A}{B}?
% \begin{macrocode}
\def\XINT_infloat_MtoN #1.#2.#3.#4.#5.#6#7#8#9%
@@ -31998,7 +32483,7 @@ math shift catcode.
\fi #1.#2.%
}%
% \end{macrocode}
-% \lverb?input |B|.P+4.{B}u.A''.P.|A|.n.{A}{B}$newline
+% \lverb?input |B|.P+4.{B}u.A''.P.|A|.n.{A}{B}$newline&$
% output v=-0.B''.junk.|B|.u.A''.P.|A|.n.{A}{B}?
% \begin{macrocode}
\def\XINT_infloat_Oa #1.#2.#3%
@@ -32063,7 +32548,7 @@ math shift catcode.
#2#3#4#5.#1.%
}%
% \end{macrocode}
-% \lverb?trailing digits.Q.P.|B|.|A|.n.{A}{B}$newline
+% \lverb?trailing digits.Q.P.|B|.|A|.n.{A}{B}$newline&$
% #1=trailing digits (they may have leading zeros.)?
% \begin{macrocode}
\def\XINT_infloat_Sa #1.%
@@ -32079,7 +32564,7 @@ math shift catcode.
\xint_orthat\XINT_infloat_X\xint_c_i
}%
% \end{macrocode}
-% \lverb?epsilon #2=Q.#3=P.#4=|B|.#5=|A|.#6=n.{A}{B}$newline
+% \lverb?epsilon #2=Q.#3=P.#4=|B|.#5=|A|.#6=n.{A}{B}$newline&$
% exposant final est n+|A|-|B|-P+epsilon?
% \begin{macrocode}
\def\XINT_infloat_SEq #1#2.#3.#4.#5.#6.#7#8%
@@ -32099,7 +32584,7 @@ math shift catcode.
\romannumeral0\xintinc{#2#3}.#2%
}%
% \end{macrocode}
-% \lverb?epsilon Q.P.|B|.|A|.n.{A}{B}$newline
+% \lverb?epsilon Q.P.|B|.|A|.n.{A}{B}$newline&$
%
% \xintDSH{-x}{U} multiplies U by 10^x. When x is negative, this means
% it truncates (i.e. it drops the last -x digits).
@@ -32139,31 +32624,62 @@ math shift catcode.
\def\XINT_infloat_ZZ #1.#2.{ 1#2[#1]}%
% \end{macrocode}
% \subsection{\csh{xintPFloat}, \csh{xintPFloatE}}
-% \lverb|1.1. This is a prettifying printing macro for floats.
+% \lverb|&
%
-% The macro applies one simple rule: x.yz...eN will drop scientific notation in
-% favor of pure decimal notation if -5<=N<=5. This is the default behaviour of
-% Maple. The N here is as produced on output by \xintFloat.
+% xint has not yet incorporated a general formatter as it was
+% not a priority during development and external solutions exist
+% (I did not check for a while but I think LaTeX3 has implemented
+% a general formatter in the printf or Python ".format" spirit)
%
-% Special case: the zero value is printed 0. (with a dot)
+% But when one starts using really the package, especially in
+% an interactive way (xintsession 2021), one needs the default
+% output to be as nice as possible.
+%
+% The \xintPFloat macro was added at 1.1 as a "prettifying printer"
+% for floats, basically influenced by Maple.
+%
+%( The rules were:
+%: 0. The input is float-rounded to either Digits or the optional argument
+%: 1. zero is printed as "0."
+%: 2. x.yz...eK is printed "as is" if K>5 or K<-5.
+%: 3. if -5<=K<=5, fixed point decimal notation is used.
+%: 4. in cases 2. and 3., no trimming of trailing zeroes.
+%)
%
-% The coding got simpler with 1.2k as its \xintFloat always produces
-% a mantissa with exactly P digits (no more 10.0...0eN annoying exception).
+% 1.4b added \xintPFloatE to customize whether to use
+% e or E.
%
-% 1.4b adds \xintPFloatE allowing to customize whether to use e or E (or
-% something else). For usage with \xintfloateval{} (anyhow only catcode 11 e
-% is recognized by xintfrac macros proper), and to match similar
-% \xintFracToSciE. For reasons commented upon in user manual (section «The
-% three parsers»), I did not make an effort to let the macro be usable as a
-% hook to grab the exponent.
%
-% Althout \xintfloateval{} will use \xintPFloat in an \expanded context
-% we have to maintain f-expandability here.
+% 1.4e, with some hesitation, decided to make a breaking change and to modify
+% the behaviour.
+%
+%( The new rules:
+%: 0. The input is float-rounded to either Digits or the optional argument
+%: 1. zero is printed as 0.0
+%: 2. x.yz...eK is printed in decimal fixed point if -4<=K<=+5&
+% (notice the change, formerly K=-5 used fixed point notation in output)&
+% else it is printed in scientific notation
+%: 3. trailing zeros of the mantissa are trimmed always
+%: 4. in case of decimal fixed point for an integer, there&
+% is a trailing ".0"
+%: 5. in case of scientific notation with a one-digit trimmed mantissa&
+% there is an added ".0" too
+%)
+%
+% Further, \xintPFloatE can now grab the scientific exponent K which is
+% presented to it as explicit tokens (digit tokens, at least one, and an
+% optional minus sign) delimited by a dot. It is thus now possible to
+% customize at will for example adding a + sign in case of positive scientific
+% exponent. The macro must be f-expandable.
%
% |
% \begin{macrocode}
-\def\xintPFloat {\romannumeral0\xintpfloat }%
+\def\xintPFloat {\romannumeral0\xintpfloat }%
\def\xintpfloat #1{\XINT_pfloat_chkopt #1\xint:}%
+\def\xintPFloat_wopt
+{%
+ \romannumeral0\expandafter\XINT_pfloat\romannumeral0\XINTinfloatS
+}%
\def\XINT_pfloat_chkopt #1%
{%
\ifx [#1\expandafter\XINT_pfloat_opt
@@ -32172,76 +32688,78 @@ math shift catcode.
}%
\def\XINT_pfloat_noopt #1\xint:%
{%
- \expandafter\XINT_pfloat_a
- \romannumeral0\xintfloat [\XINTdigits]{#1};\XINTdigits.%
+ \expandafter\XINT_pfloat\romannumeral0\XINTinfloatS[\XINTdigits]{#1}%
}%
-% \end{macrocode}
-% \lverb|&
-% |
-% \begin{macrocode}
\def\XINT_pfloat_opt [\xint:#1]%
{%
- \expandafter\XINT_pfloat_opt_a \the\numexpr #1.%
+ \expandafter\XINT_pfloat\romannumeral0\XINTinfloatS[#1]%
}%
-\def\XINT_pfloat_opt_a #1.#2%
+\def\XINT_pfloat#1]%
{%
- \expandafter\XINT_pfloat_a\romannumeral0\xintfloat [#1]{#2};#1.%
+ \expandafter\XINT_pfloat_fork\romannumeral0\xintrez{#1]}%
}%
-\def\XINT_pfloat_a #1%
+\def\XINT_pfloat_fork#1%
{%
\xint_UDzerominusfork
- #1-\XINT_pfloat_zero
- 0#1\XINT_pfloat_neg
+ #1-\XINT_pfloat_zero
+ 0#1\XINT_pfloat_neg
0-\XINT_pfloat_pos
\krof #1%
}%
+\def\XINT_pfloat_zero#1]{ 0.0}%
+\def\XINT_pfloat_neg-{\expandafter-\romannumeral0\XINT_pfloat_pos}%
+\def\XINT_pfloat_pos#1/1[#2]%
+{%
+ \expandafter\XINT_pfloat_a\the\numexpr\xintLength{#1}.%
+ #2.#1.%
+}%
+\def\XINT_pfloat_a #1.#2#3.%
+{%
+ \expandafter\XINT_pfloat_b\the\numexpr#1+#2#3-\xint_c_i.%
+ #2#1.%
+}%
+\def\XINT_pfloat_b #1.#2%
+{%
+ \ifnum #1>\xint_c_v \xint_dothis\XINT_pfloat_sci\fi
+ \ifnum #1<-\xint_c_iv \xint_dothis\XINT_pfloat_sci\fi
+ \ifnum #1<\xint_c_ \xint_dothis\XINT_pfloat_N\fi
+ \if-#2\xint_dothis\XINT_pfloat_P\fi
+ \xint_orthat\XINT_pfloat_Ps
+ #1.%
+}%
% \end{macrocode}
% \lverb|&
+% #1 is the scientific exponent, #2 is the length of trimmed mantissa.
+%
+% \xintPFloatE can be replaced by any f-expandable macro with a dot-delimited
+% argument.
% |
% \begin{macrocode}
-\def\XINT_pfloat_zero #1;#2.{ 0.}%
-\def\XINT_pfloat_neg-{\expandafter-\romannumeral0\XINT_pfloat_pos }%
-% \end{macrocode}
-% \lverb|&
-% 1.4b modifies the replacement pattern here #1{#2}{#3} in order to
-% facilitate injection of once-expanded \xintPFloatE.
-% |
-% \begin{macrocode}
-\def\XINT_pfloat_pos #1.#2e#3;#4.%
+\def\XINT_pfloat_sci #1.#2.%
{%
- \ifnum #3>\xint_c_v \xint_dothis\XINT_pfloat_no\fi
- \ifnum #3<-\xint_c_v \xint_dothis\XINT_pfloat_no\fi
- \ifnum #3<\xint_c_ \xint_dothis\XINT_pfloat_N\fi
- \ifnum #3>\numexpr #4-\xint_c_i\relax \xint_dothis\XINT_pfloat_Ps\fi
- \xint_orthat\XINT_pfloat_P #1{#2}{#3}%
+ \ifnum#2=\xint_c_i\expandafter\XINT_pfloat_sci_i\expandafter\fi
+ \expandafter\XINT_pfloat_sci_a\romannumeral`&&@\xintPFloatE #1.%
}%
-\def\XINT_pfloat_no
-{%
- \expandafter\XINT_pfloat_no_e\expandafter{\xintPFloatE}%
-}%
-\def\XINT_pfloat_no_e #1#2#3#4{ #2.#3#1#4}%
-\def\xintPFloatE{e}%
+\def\XINT_pfloat_sci_a #1.#2#3.{ #2.#3#1}%
% \end{macrocode}
-% \lverb|This is all simpler coded, now that 1.2k's \xintFloat always
-% outputs a mantissa with exactly one digits before decimal mark always.
-% |
+% \lverb|&
+% #1#2=\fi\XINT_pfloat_sci_a
+%
+% 1-digit mantissa, hesitation between d.0eK or deK|
% \begin{macrocode}
-\def\XINT_pfloat_N #1#2#3%
+\edef\XINT_pfloat_sci_i #1#2#3.#4.{#1\space#4.0#3}%
+\def\xintPFloatE{e}%
+\def\XINT_pfloat_N#1.#2.#3.%
{%
- \csname XINT_pfloat_N_\romannumeral-#3\endcsname #1#2%
+ \csname XINT_pfloat_N_\romannumeral-#1\endcsname #3%
}%
\def\XINT_pfloat_N_i { 0.}%
\def\XINT_pfloat_N_ii { 0.0}%
\def\XINT_pfloat_N_iii{ 0.00}%
\def\XINT_pfloat_N_iv { 0.000}%
-\def\XINT_pfloat_N_v { 0.0000}%
-% \end{macrocode}
-% \lverb|&
-% |
-% \begin{macrocode}
-\def\XINT_pfloat_P #1#2#3%
+\def\XINT_pfloat_P #1.#2.#3.%
{%
- \csname XINT_pfloat_P_\romannumeral#3\endcsname #1#2%
+ \csname XINT_pfloat_P_\romannumeral#1\endcsname #3%
}%
\def\XINT_pfloat_P_ #1{ #1.}%
\def\XINT_pfloat_P_i #1#2{ #1#2.}%
@@ -32249,21 +32767,18 @@ math shift catcode.
\def\XINT_pfloat_P_iii#1#2#3#4{ #1#2#3#4.}%
\def\XINT_pfloat_P_iv #1#2#3#4#5{ #1#2#3#4#5.}%
\def\XINT_pfloat_P_v #1#2#3#4#5#6{ #1#2#3#4#5#6.}%
-% \end{macrocode}
-% \lverb|&
-% |
-% \begin{macrocode}
-\def\XINT_pfloat_Ps #1#2#3%
+\def\XINT_pfloat_Ps #1.#2.#3.%
{%
- \csname XINT_pfloat_Ps\romannumeral#3\endcsname #1#200000;%
+ \csname XINT_pfloat_Ps_\romannumeral#1\endcsname #300000.%
}%
-\def\XINT_pfloat_Psi #1#2#3;{ #1#2.}%
-\def\XINT_pfloat_Psii #1#2#3#4;{ #1#2#3.}%
-\def\XINT_pfloat_Psiii#1#2#3#4#5;{ #1#2#3#4.}%
-\def\XINT_pfloat_Psiv #1#2#3#4#5#6;{ #1#2#3#4#5.}%
-\def\XINT_pfloat_Psv #1#2#3#4#5#6#7;{ #1#2#3#4#5#6.}%
+\def\XINT_pfloat_Ps_ #1#2.{ #1.0}%
+\def\XINT_pfloat_Ps_i #1#2#3.{ #1#2.0}%
+\def\XINT_pfloat_Ps_ii #1#2#3#4.{ #1#2#3.0}%
+\def\XINT_pfloat_Ps_iii#1#2#3#4#5.{ #1#2#3#4.0}%
+\def\XINT_pfloat_Ps_iv #1#2#3#4#5#6.{ #1#2#3#4#5.0}%
+\def\XINT_pfloat_Ps_v #1#2#3#4#5#6#7.{ #1#2#3#4#5#6.0}%
% \end{macrocode}
-% \subsection{\csh{XINTinFloatFracdigits}}
+% \subsection{\csh{XINTinFloatFrac}}
% \lverb|1.09i, for frac function in \xintfloatexpr. This version computes
% exactly from the input the fractional part and then only converts it
% into a float with the asked-for number of digits. I will have to think
@@ -32274,18 +32789,22 @@ math shift catcode.
%
% 1.1a renames the macro as \XINTinFloatFracdigits (from \XINTinFloatFrac) to
% be synchronous with the \XINTinFloatSqrt and \XINTinFloat habits related to
-% \xintNewExpr problems.
+% \xintNewExpr context and issues with macro names.
%
% Note to myself: I still have to rethink the whole thing about what is the best
% to do, the initial way of going through \xinttfrac was just a first
-% implementation.|
+% implementation.
+%
+% 1.4e renames it back to \XINTinFloatFrac because of all such similarly named
+% macros also using \XINTdigits forcedly.
+% |
% \begin{macrocode}
-\def\XINTinFloatFracdigits {\romannumeral0\XINTinfloatfracdigits }%
-\def\XINTinfloatfracdigits #1%
+\def\XINTinFloatFrac {\romannumeral0\XINTinfloatfrac}%
+\def\XINTinfloatfrac #1%
{%
- \expandafter\XINT_infloatfracdg_a\expandafter {\romannumeral0\xinttfrac{#1}}%
+ \expandafter\XINT_infloatfrac_a\expandafter {\romannumeral0\xinttfrac{#1}}%
}%
-\def\XINT_infloatfracdg_a {\XINTinfloat [\XINTdigits]}%
+\def\XINT_infloatfrac_a {\XINTinfloat[\XINTdigits]}%
% \end{macrocode}
% \subsection{\csh{xintFloatAdd}, \csh{XINTinFloatAdd}}
% \lverb|First included in release 1.07.
@@ -32296,13 +32815,18 @@ math shift catcode.
% Which didn't happen until 1.2f. Now, the inputs are first rounded to P
% digits, not P+2 as earlier.
%
+% See general introduction for important changes at 1.4e relative to
+% the \XINTinFloat<name> macros.
+%
%
%|
% \begin{macrocode}
-\def\xintFloatAdd {\romannumeral0\xintfloatadd }%
-\def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatAdd {\romannumeral0\XINTinfloatadd }%
-\def\XINTinfloatadd #1{\XINT_fladd_chkopt \XINTinfloatS #1\xint:}%
+\def\xintFloatAdd {\romannumeral0\xintfloatadd}%
+\def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatAdd{\romannumeral0\XINTinfloatadd }%
+\def\XINTinfloatadd{\XINT_fladd_opt_a\XINTdigits.\XINTinfloatS}%
+\def\XINTinFloatAdd_wopt{\romannumeral0\XINTinfloatadd_wopt}%
+\def\XINTinfloatadd_wopt[#1]{\expandafter\XINT_fladd_opt_a\the\numexpr#1.\XINTinfloatS}%
\def\XINT_fladd_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_fladd_opt
@@ -32362,10 +32886,12 @@ math shift catcode.
% precision P not P+2.|
%
% \begin{macrocode}
-\def\xintFloatSub {\romannumeral0\xintfloatsub }%
-\def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatSub {\romannumeral0\XINTinfloatsub }%
-\def\XINTinfloatsub #1{\XINT_flsub_chkopt \XINTinfloatS #1\xint:}%
+\def\xintFloatSub {\romannumeral0\xintfloatsub}%
+\def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatSub{\romannumeral0\XINTinfloatsub}%
+\def\XINTinfloatsub{\XINT_flsub_opt_a\XINTdigits.\XINTinfloatS}%
+\def\XINTinFloatSub_wopt{\romannumeral0\XINTinfloatsub_wopt}%
+\def\XINTinfloatsub_wopt[#1]{\expandafter\XINT_flsub_opt_a\the\numexpr#1.\XINTinfloatS}%
\def\XINT_flsub_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flsub_opt
@@ -32401,10 +32927,12 @@ math shift catcode.
% some extra un-needed processing with two calls to \XINT_infrac where
% one was amply enough).|
% \begin{macrocode}
-\def\xintFloatMul {\romannumeral0\xintfloatmul }%
-\def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatMul {\romannumeral0\XINTinfloatmul }%
-\def\XINTinfloatmul #1{\XINT_flmul_chkopt \XINTinfloatS #1\xint:}%
+\def\xintFloatMul {\romannumeral0\xintfloatmul}%
+\def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatMul{\romannumeral0\XINTinfloatmul}%
+\def\XINTinfloatmul{\XINT_flmul_opt_a\XINTdigits.\XINTinfloatS}%
+\def\XINTinFloatMul_wopt{\romannumeral0\XINTinfloatmul_wopt}%
+\def\XINTinfloatmul_wopt[#1]{\expandafter\XINT_flmul_opt_a\the\numexpr#1.\XINTinfloatS}%
\def\XINT_flmul_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flmul_opt
@@ -32435,12 +32963,52 @@ math shift catcode.
% \begin{macrocode}
\def\XINT_FL_mul_b #1[#2]#3[#4]{\xintiiMul{#3}{#1}/1[#4+#2]}%
% \end{macrocode}
+% \subsection{\csh{xintFloatSqr}, \csh{XINTinFloatSqr}}
+% \lverb|Added only at 1.4e, strangely \xintFloatSqr had never been defined so far.
+%
+% An \XINTinFloatSqr{#1} was defined in xintexpr.sty directly as
+% \XINTinFloatMul[\XINTdigits]{#1}{#1}, to support the sqr() function. The
+% {#1}{#1} causes no problem as #1 in this context is always pre-expanded so
+% we don't need to worry about this, and the \xintdeffloatfunc mechanism
+% should hopefully take care to add the needed argument pre-expansion if need
+% be.
+%
+% Anyway let's do this finally properly here.
+% |
+% \begin{macrocode}
+\def\xintFloatSqr {\romannumeral0\xintfloatsqr}%
+\def\xintfloatsqr #1{\XINT_flsqr_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatSqr{\romannumeral0\XINTinfloatsqr}%
+\def\XINTinfloatsqr{\XINT_flsqr_opt_a\XINTdigits.\XINTinfloatS}%
+\def\XINT_flsqr_chkopt #1#2%
+{%
+ \ifx [#2\expandafter\XINT_flsqr_opt
+ \else\expandafter\XINT_flsqr_noopt
+ \fi #1#2%
+}%
+\def\XINT_flsqr_noopt #1#2\xint:
+{%
+ #1[\XINTdigits]%
+ {\expandafter\XINT_FL_sqr_a\romannumeral0\XINTinfloatS[\XINTdigits]{#2}}%
+}%
+\def\XINT_flsqr_opt #1[\xint:#2]%
+{%
+ \expandafter\XINT_flsqr_opt_a\the\numexpr #2.#1%
+}%
+\def\XINT_flsqr_opt_a #1.#2#3%
+{%
+ #2[#1]{\expandafter\XINT_FL_sqr_a\romannumeral0\XINTinfloatS[#1]{#3}}%
+}%
+\def\XINT_FL_sqr_a #1[#2]{\xintiiSqr{#1}/1[#2+#2]}%
+\def\XINTinFloatSqr_wopt[#1]#2{\XINTinFloatS[#1]{\expandafter\XINT_FL_sqr_a\romannumeral0\XINTinfloatS[#1]{#2}}}%
+% \end{macrocode}
% \subsection{\csh{XINTinFloatInv}}
% \lverb|Added belatedly at 1.3e, to support inv() function. We use Short
% output, for rare inv(\xintexpr 1/3\relax) case. I need to think the whole
% thing out at some later date.|
% \begin{macrocode}
\def\XINTinFloatInv#1{\XINTinFloatS[\XINTdigits]{\xintInv{#1}}}%
+\def\XINTinFloatInv_wopt[#1]#2{\XINTinFloatS[#1]{\xintInv{#2}}}%
% \end{macrocode}
% \subsection{\csh{xintFloatDiv}, \csh{XINTinFloatDiv}}
% \lverb|1.07.
@@ -32458,10 +33026,11 @@ math shift catcode.
% multiplication: earlier code was unnecessarily high level.
% |
% \begin{macrocode}
-\def\xintFloatDiv {\romannumeral0\xintfloatdiv }%
-\def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatDiv {\romannumeral0\XINTinfloatdiv }%
-\def\XINTinfloatdiv #1{\XINT_fldiv_chkopt \XINTinfloatS #1\xint:}%
+\def\xintFloatDiv {\romannumeral0\xintfloatdiv}%
+\def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatDiv{\romannumeral0\XINTinfloatdiv}%
+\def\XINTinfloatdiv{\XINT_fldiv_opt_a\XINTdigits.\XINTinfloatS}%
+\def\XINTinFloatDiv_wopt[#1]{\romannumeral0\XINT_fldiv_opt_a#1.\XINTinfloatS}%
\def\XINT_fldiv_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_fldiv_opt
@@ -32516,10 +33085,11 @@ math shift catcode.
%
% |
% \begin{macrocode}
-\def\xintFloatPow {\romannumeral0\xintfloatpow}%
-\def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatPow {\romannumeral0\XINTinfloatpow }%
-\def\XINTinfloatpow #1{\XINT_flpow_chkopt \XINTinfloatS #1\xint:}%
+\def\xintFloatPow {\romannumeral0\xintfloatpow}%
+\def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatPow{\romannumeral0\XINTinfloatpow }%
+\def\XINTinfloatpow{\XINT_flpow_opt_a\XINTdigits.\XINTinfloatS}%
+\def\XINTinfloatpow_wopt[#1]{\expandafter\XINT_flpow_opt_a\the\numexpr#1.\XINTinfloatS}%
\def\XINT_flpow_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flpow_opt
@@ -32729,7 +33299,9 @@ math shift catcode.
% digits), and then there is the final rounding of this to the target
% precision. The total error (for positive as well as negative exponent) has
% been estimated to at worst possibly exceed slightly 0.5125 ulp(Z), and at
-% any rate it is less than 0.52 ulp(Z).|
+% any rate it is less than 0.52 ulp(Z).
+%
+% |
% \begin{macrocode}
\def\XINT_flpow_III #1.#2.#3.#4.#5%
{%
@@ -32753,78 +33325,24 @@ math shift catcode.
%
% Same modifications as in \xintFloatPow for 1.2f.
%
-% 1.2f adds a special private macro for allowing half-integral exponents for
-% use with ^ within \xintfloatexpr. The exponent will be first truncated to
-% either an integer or an half-integer. The macro is not for general use.
+% 1.2f \XINTinFloatPowerH (now moved to $xintlognameimp, and renamed). It
+% truncated the exponent to an integer of half-integer, and in the latter case
+% use Square-root extraction. At 1.2k this was improved as 1.2f stupidly
+% rounded to Digits before, not after the square root extraction, 1.2k kept 3
+% guard digits for this last step. And the initial step was
+% changed to a rounding rather than truncating.
%
-% 1.2k does anew this 1.2f handling of half-integer exponents for the
-% \xintfloatexpr parser: with 1.2f's code
-% the final square-root extraction was applied to a value already rounded to
-% the target precision, unneedlessly losing precision.
+% Until 1.4e this \XINTinFloatPowerH was the macro for a^b in expressions,
+% but of course it behaved strangely for b not an integer or an half-integer!
+% At 1.4e, the non-integer, non-half-integer exponents will be handled via
+% log10() and pow10() support macros, see $xintlognameimp. The code
+% has now been relocated there.
% |
% \begin{macrocode}
-\def\xintFloatPower {\romannumeral0\xintfloatpower}%
-\def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatPower {\romannumeral0\XINTinfloatpower }%
-\def\XINTinfloatpower #1{\XINT_flpower_chkopt \XINTinfloatS #1\xint:}%
-% \end{macrocode}
-% \lverb|First the special macro for use by the expression parser which checks
-% if one raises to an half-integer exponent. This is always with \XINTdigits
-% precision. Rewritten for 1.2k in order for the final square root to keep
-% three guard digits.
-%
-% We have to be careful that exponent #2 is not constrained by TeX bound. And
-% we must allow fractions. The 1.2k variant does a rounding to nearest integer
-% of half-integer, 1.2f did a truncation rather (this is done after truncation
-% of #2 to fixed point with one digit after mark.) We try to recognize quickly
-% the case of integer exponent, for speed, but there is overhead of going
-% through \xintiTrunc1.|
-% \begin{macrocode}
-\def\XINTinFloatPowerH {\romannumeral0\XINTinfloatpowerh }%
-% \end{macrocode}
-% \lverb|&
-% |
-% \begin{macrocode}
-\def\XINTinfloatpowerh #1#2%
-{%
- \expandafter\XINT_flpowerh_a\romannumeral0\xintitrunc1{#2};%
- \XINTdigits.{#1}{\XINTinfloatS[\XINTdigits]}%
-}%
-% \end{macrocode}
-% \lverb|&
-% |
-% \begin{macrocode}
-\def\XINT_flpowerh_a #1;%
-{%
- \if0\xintLDg{#1}\expandafter\XINT_flpowerh_int
- \else\expandafter\XINT_flpowerh_b
- \fi #1.%
-}%
-\def\XINT_flpowerh_int #1%
-{%
- \if0#1\expandafter\XINT_flpower_BisZero
- \else\expandafter\XINT_flpowerh_i
- \fi #1%
-}%
-\def\XINT_flpowerh_i #10.{\expandafter\XINT_flpower_checkB_a#1.}%
-\def\XINT_flpowerh_b #1.%
-{%
- \expandafter\XINT_flpowerh_c\romannumeral0\xintdsrr{\xintDouble{#1}}.%
-}%
-\def\XINT_flpowerh_c #1.%
-{%
- \ifodd\xintLDg{#1} %<- intentional space
- \expandafter\XINT_flpowerh_d\else\expandafter\XINT_flpowerh_e
- \fi #1.%
-}%
-\def\XINT_flpowerh_d #1.\XINTdigits.#2#3%
-{%
- \XINT_flpower_checkB_a #1.\XINTdigits.{#2}\XINT_flpowerh_finish
-}%
-\def\XINT_flpowerh_finish #1%
- {\XINTinfloatS[\XINTdigits]{\XINTinFloatSqrt[\XINTdigits+\xint_c_iii]{#1}}}%
-\def\XINT_flpowerh_e #1.%
- {\expandafter\XINT_flpower_checkB_a\romannumeral0\xinthalf{#1}.}%
+\def\xintFloatPower {\romannumeral0\xintfloatpower}%
+\def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatPower{\romannumeral0\XINTinfloatpower }%
+\def\XINTinfloatpower{\XINT_flpower_opt_a\XINTdigits.\XINTinfloatS}%
% \end{macrocode}
% \lverb|Start of macro. Check for optional argument.|
% \begin{macrocode}
@@ -32976,12 +33494,22 @@ math shift catcode.
}%
% \end{macrocode}
% \subsection{\csh{xintFloatFac}, \csh{XINTFloatFac}}
-% |Done at 1.2. At 1.3e \XINTinFloatFac outputs using \XINTinFloatS.|
+% \lverb|&1.2.
+%
+% Done at 1.2.
+%
+% At 1.3e \XINTinFloatFac uses \XINTinFloatS for output.
+%
+% 1.4e adds some overhead for individual evaluations in float context as it
+% obeys the guard digits for the default target precision. It is a waste for
+% individual evaluation of one factorial...
+% |
% \begin{macrocode}
-\def\xintFloatFac {\romannumeral0\xintfloatfac}%
-\def\xintfloatfac #1{\XINT_flfac_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatFac {\romannumeral0\XINTinfloatfac }%
-\def\XINTinfloatfac #1{\XINT_flfac_chkopt \XINTinfloatS #1\xint:}%
+\def\xintFloatFac {\romannumeral0\xintfloatfac}%
+\def\xintfloatfac #1{\XINT_flfac_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatFac{\romannumeral0\XINTinfloatfac}%
+\def\XINTinfloatfac[#1]{\expandafter\XINT_flfac_opt_a\the\numexpr#1.\XINTinfloatS}%
+\def\XINTinFloatFacdigits{\romannumeral0\XINT_flfac_opt_a\XINTdigits.\XINTinfloatS}%
\def\XINT_flfac_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flfac_opt
@@ -33264,12 +33792,15 @@ math shift catcode.
% only for non-negative integers with a<=b<10^8.
%
% 1.2h (2016/11/20) now avoids raising \xintError:OutOfRangePFac if the
-% condition 0<=a<=b<10^8 is violated. Same as for \xintiiPFactorial.|
+% condition 0<=a<=b<10^8 is violated. Same as for \xintiiPFactorial.
+%
+% 1.4e extends the precision in floating point context adding some overhead
+% but well.|
% \begin{macrocode}
-\def\xintFloatPFactorial {\romannumeral0\xintfloatpfactorial}%
-\def\xintfloatpfactorial #1{\XINT_flpfac_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatPFactorial {\romannumeral0\XINTinfloatpfactorial }%
-\def\XINTinfloatpfactorial #1{\XINT_flpfac_chkopt \XINTinfloat #1\xint:}%
+\def\xintFloatPFactorial {\romannumeral0\xintfloatpfactorial}%
+\def\xintfloatpfactorial #1{\XINT_flpfac_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatPFactorial{\romannumeral0\XINTinfloatpfactorial }%
+\def\XINTinfloatpfactorial{\XINT_flpfac_opt_a\XINTdigits.\XINTinfloatS}%
\def\XINT_flpfac_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flpfac_opt
@@ -33285,9 +33816,9 @@ math shift catcode.
}%
\def\XINT_flpfac_opt #1[\xint:#2]%
{%
- \expandafter\XINT_flpfac_opt_b\the\numexpr #2.#1%
+ \expandafter\XINT_flpfac_opt_a\the\numexpr #2.#1%
}%
-\def\XINT_flpfac_opt_b #1.#2#3#4%
+\def\XINT_flpfac_opt_a #1.#2#3#4%
{%
\expandafter\XINT_FL_pfac_fork
\the\numexpr \xintNum{#3}\expandafter.%
@@ -33471,12 +34002,17 @@ math shift catcode.
% 2016/11/19 for 1.2h. As for \xintiiBinomial, hard to understand why last
% year I coded this to raise an error if y<0 or y>x ! The question of the
% Gamma function is for another occasion, here x and y must be (small)
-% integers.|
+% integers.
+%
+% 1.4e: same remarks as for factorial and partial factorial about added
+% overhead due to extra guard digits.
+%
+%|
% \begin{macrocode}
-\def\xintFloatBinomial {\romannumeral0\xintfloatbinomial}%
-\def\xintfloatbinomial #1{\XINT_flbinom_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatBinomial {\romannumeral0\XINTinfloatbinomial }%
-\def\XINTinfloatbinomial #1{\XINT_flbinom_chkopt \XINTinfloat #1\xint:}%
+\def\xintFloatBinomial {\romannumeral0\xintfloatbinomial}%
+\def\xintfloatbinomial #1{\XINT_flbinom_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatBinomial{\romannumeral0\XINTinfloatbinomial }%
+\def\XINTinfloatbinomial{\XINT_flbinom_opt\XINTinfloatS[\xint:\XINTdigits]}%
\def\XINT_flbinom_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flbinom_opt
@@ -33562,13 +34098,26 @@ math shift catcode.
% Final note: with 1.2f the input is always first rounded to P significant
% places.
%
+% 1.4e (2021/04/15) great hesitation about what to do regarding guard digits.
+% This will spoil the guaranteed "correct-rounding" property for individual
+% calculations... but is interesting for precision as soon as the square root
+% is embedded into some larger calculation. Annoying. But there is \xintexpr
+% which I can left configured to use strictly \xintDigits in contrast to
+% \xintfloatexpr. Ah ok and there will always be sqrt(x,\xinttheDigits) syntax
+% if one wants. And finally I keep sqrt() acting the same in expr and floatexpr.
+%
+% Attention that at 1.4e \XINTinFloatSqrt is defined to be used ONLY with
+% optional argument.
+%
+%
%
% |
% \begin{macrocode}
-\def\xintFloatSqrt {\romannumeral0\xintfloatsqrt }%
-\def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\xint:}%
-\def\XINTinFloatSqrt {\romannumeral0\XINTinfloatsqrt }%
-\def\XINTinfloatsqrt #1{\XINT_flsqrt_chkopt \XINTinfloat #1\xint:}%
+\def\xintFloatSqrt {\romannumeral0\xintfloatsqrt}%
+\def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\xint:}%
+\def\XINTinFloatSqrt{\romannumeral0\XINTinfloatsqrt}%
+\def\XINTinfloatsqrt[#1]{\expandafter\XINT_flsqrt_opt_a\the\numexpr#1.\XINTinfloatS}%
+\def\XINTinFloatSqrtdigits{\romannumeral0\XINT_flsqrt_opt_a\XINTdigits.\XINTinfloatS}%
\def\XINT_flsqrt_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flsqrt_opt
@@ -33702,9 +34251,9 @@ math shift catcode.
% \xintRound.
%
% 1.2k had to rewrite this since there is no more a \XINT_float_a macro.
-% Attention about \XINTinFloatE: it is for use by xintexpr.sty, contrarily to
-% other \XINTinFloat<foo> macros it inserts itself the [\XINTdigits] thing,
-% and with value 0 it produces on output 0[N], not 0[0].
+%
+% Attention about \XINTinFloatE: it is for use by xintexpr.sty.
+% With input 0 it produces on output an 0[N], not 0[0].
% |
% \begin{macrocode}
\def\xintFloatE {\romannumeral0\xintfloate }%
@@ -33789,8 +34338,7 @@ math shift catcode.
%
% No time now at the time of completion of the big 1.4 rewrite of xintexpr
% to test whether code efficiency here can be improved to expand the second
-% item of output.
-% |
+% item of output.|
% \begin{macrocode}
\def\XINTinFloatDivMod {\romannumeral0\XINTinfloatdivmod [\XINTdigits]}%
\def\XINTinfloatdivmod [#1]#2#3%
@@ -33808,7 +34356,7 @@ math shift catcode.
% \begin{macrocode}
\def\xintifFloatInt {\romannumeral0\xintiffloatint}%
\def\xintiffloatint #1{\expandafter\XINT_iffloatint
- \romannumeral0\xintrez{\XINTinFloat[\XINTdigits]{#1}}}%
+ \romannumeral0\xintrez{\XINTinFloatS[\XINTdigits]{#1}}}%
\def\XINT_iffloatint #1#2/1[#3]%
{%
\if 0#1\xint_dothis\xint_stop_atfirstoftwo\fi
@@ -33821,25 +34369,35 @@ math shift catcode.
% \begin{macrocode}
\def\xintFloatIsInt {\romannumeral0\xintfloatisint}%
\def\xintfloatisint #1{\expandafter\XINT_iffloatint
- \romannumeral0\xintrez{\XINTinFloat[\XINTdigits]{#1}}10}%
+ \romannumeral0\xintrez{\XINTinFloatS[\XINTdigits]{#1}}10}%
% \end{macrocode}
-% \subsection{\csh{XINTinFloatdigits}, \csh{XINTinFloatSqrtdigits},
-% \csh{XINTinFloatFacdigits}, \csh{XINTiLogTendigits}}
-% \lverb|For \xintNewExpr matters, mainly.
-%
-% At 1.3e I add \XINTinFloatSdigits and use it at various places. I also modified
-% \XINTinFloatFac to use S(hort) output format.
-%
-% Also added \XINTiLogTendigits.
+% \subsection{\csh{xintFloatIntType}}
+% \lverb|1.4e for fractional powers. Expands to \xint_c_mone if argument is not an
+% integer, to \xint_c_ if it is an even integer and to \xint_c_i if it is an
+% odd integer.|
+% \begin{macrocode}
+\def\xintFloatIntType {\romannumeral`&&@\xintfloatinttype}%
+\def\xintfloatinttype #1%
+{%
+ \expandafter\XINT_floatinttype
+ \romannumeral0\xintrez{\XINTinFloatS[\XINTdigits]{#1}}%
+}%
+\def\XINT_floatinttype #1#2/1[#3]%
+{%
+ \if 0#1\xint_dothis\xint_c_\fi
+ \ifnum#3<\xint_c_\xint_dothis\xint_c_mone\fi
+ \ifnum#3>\xint_c_\xint_dothis\xint_c_\fi
+ \ifodd\xintLDg{#1#2} \xint_dothis\xint_c_i\fi
+ \xint_orthat\xint_c_
+}%
+% \end{macrocode}
+% \subsection{\csh{XINTinFloatdigits}, \csh{XINTinFloatSdigits}}
+% \lverb|For \xintNewExpr/\xintdeffloatfunc matters, mainly.
%
-% This whole stuff moved over from xintexpr.sty at 1.4
% |
% \begin{macrocode}
-\def\XINTinFloatdigits {\XINTinFloat [\XINTdigits]}%
-\def\XINTinFloatSdigits {\XINTinFloatS [\XINTdigits]}%
-\def\XINTinFloatSqrtdigits {\XINTinFloatSqrt[\XINTdigits]}%
-\def\XINTinFloatFacdigits {\XINTinFloatFac [\XINTdigits]}%
-\def\XINTFloatiLogTendigits{\XINTFloatiLogTen[\XINTdigits]}%
+\def\XINTinFloatdigits {\XINTinFloat [\XINTdigits]}%
+\def\XINTinFloatSdigits{\XINTinFloatS[\XINTdigits]}%
% \end{macrocode}
% \subsection{(WIP) \csh{XINTinRandomFloatS}, \csh{XINTinRandomFloatSdigits}}
% \lverb|1.3b. Support for random() function.
@@ -33867,6 +34425,7 @@ math shift catcode.
% in Python (which of course uses radix 2), and indeed this is what happens
% there.
%
+%
% |
% \begin{macrocode}
\def\XINTinRandomFloatS{\romannumeral0\XINTinrandomfloatS}%
@@ -33881,7 +34440,8 @@ math shift catcode.
\romannumeral0\xintrandomdigits{#1}[-#1]%
}%
% \end{macrocode}
-% \lverb|We add one macro to handle a tiny bit faster 90% of cases, after all
+% \lverb|We add one macro to handle a tiny bit faster 90$%&$
+% of cases, after all
% we also use one extra macro for the completely improbable all 0 case.|
% \begin{macrocode}
\def\XINT_inrandomfloatS_a#1%
@@ -33906,87 +34466,11 @@ math shift catcode.
\romannumeral`&&@\expandafter\XINT_eightrandomdigits
\romannumeral`&&@\XINT_eightrandomdigits[-16]%
}%
-% \end{macrocode}
-% \subsection{\csh{PoorManLogBaseTen}}
-% \lverb|1.3f. Code originally in poormanlog v0.4 got transferred here. It
-% produces the logarithm in base 10 with an error (believed to be at
-% most) about 1 unit in the 9th (i.e. last) fractional digit. Testing seems
-% to indicate error at most 2 units.|
-% \begin{macrocode}
-\def\PoorManLogBaseTen{\romannumeral0\poormanlogbaseten}%
-\def\poormanlogbaseten #1%
- {\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]{#1}}%
-\def\PML@logbaseten#1[#2]%
-{%
- \xintiiadd{\xintDSx{-9}{\the\numexpr#2+8\relax}}{\the\numexpr\PML@#1.}%
- [-9]%
-}%
-% \end{macrocode}
-% \subsection{\csh{PoorManPowerOfTen}}
-% \lverb|1.3f. Transferred from poormanlog v0.4. Produces the 10^#1 with 9
-% digits of float precision, with an error (believed to be) at most 2 units in
-% the last place. Of course for this the input must be precise enough to have
-% 9 fractional digits of **fixed point** precision.
-%
-% Attention that this breaks with low level Number too big error if
-% integral part of argument exceeds TeX bound on integers. Indeed some
-% \numexpr is used in the code to subtract 8... but anyway xintfrac
-% allows for scientific exponents only integers within TeX bounds, so
-% even if it did not break here it would quickly elsewhere.
-% |
-% \begin{macrocode}
-\def\PoorManPowerOfTen{\the\numexpr\poormanpoweroften}%
-\def\poormanpoweroften #1%
- {\expandafter\PML@powoften\romannumeral0\xintraw{#1}}%
-\def\PML@powoften#1%
-{%
- \xint_UDzerominusfork
- #1-\PML@powoften@zero
- 0#1\PML@powoften@neg
- 0-\PML@powoften@pos
- \krof #1%
-}%
-\def\PML@powoften@zero 0{1\relax}%/1[0]
-\def\PML@powoften@pos#1[#2]%
-{%
- \expandafter\PML@powoften@pos@a\romannumeral0\xintround{9}{#1[#2]}.%
-}%
-\def\PML@powoften@pos@a#1.#2.{\PML@Pa#2.\expandafter[\the\numexpr-8+#1]}%
-\def\PML@powoften@neg#1[#2]%
-{%
- \expandafter\PML@powoften@neg@a\romannumeral0\xintround{9}{#1[#2]}.%
-}%
-\def\PML@powoften@neg@a#1.#2.%
-{\ifnum#2=\xint_c_ \xint_afterfi{1\relax/1[#1]}\else
- \expandafter\expandafter\expandafter
- \PML@Pa\expandafter\xint_gobble_i\the\numexpr2000000000-#2.%
- \expandafter[\the\numexpr-9+#1\expandafter]\fi
-}%
-% \end{macrocode}
-% \subsection{\csh{PoorManPower}}
-% \lverb|1.3f. This code originally in poormanlog v0.4 transferred here. It does
-% #1 to the power #2.|
-% \begin{macrocode}
-\def\PoorManPower#1#2%
-{%
- \PoorManPowerOfTen{\xintMul{#2}{\PoorManLogBaseTen{#1}}}%
-}%
-% \end{macrocode}
-% \subsection{Support macros for natural logarithm and exponential
-% \xintexprnameimp functions}
-% \lverb|At 1.3f, the poormanlog v0.04 extension to xintfrac.sty got
-% transferred here. These macros from xintlog.sty 1.3e got transferred here
-% too.|
-% \begin{macrocode}
-\def\xintLog#1{\xintMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}%
-\def\XINTinFloatLog#1{\XINTinFloatMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}%
-\def\xintExp#1{\PoorManPowerOfTen{\xintMul{#1}{434294481903[-12]}}}%
-\def\XINTinFloatExp#1{\PoorManPowerOfTen{\XINTinFloatMul{#1}{434294481903[-12]}}}%
\let\XINTinFloatMaxof\XINT_Maxof
\let\XINTinFloatMinof\XINT_Minof
\let\XINTinFloatSum\XINT_Sum
\let\XINTinFloatPrd\XINT_Prd
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintfrac}
% \cleardoublepage\let\xintfracnameUp\undefined
@@ -33995,7 +34479,7 @@ math shift catcode.
%\let<*xintseries>\gardesinactifs
%</xintfrac>^^A---------------------------------------------------
%<*xintseries>^^A-------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintseriesnameUp\endcsname
% \section{Package \xintseriesnameimp implementation}
% \RaisedLabel{sec:seriesimp}
@@ -34061,7 +34545,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2021/03/29 v1.4d Expandable partial sums with xint package (JFB)]%
+ [2021/05/05 v1.4e Expandable partial sums with xint package (JFB)]%
% \end{macrocode}
% \subsection{\csh{xintSeries}}
% \begin{macrocode}
@@ -34369,7 +34853,12 @@ math shift catcode.
% \end{macrocode}
% \subsection{\csh{xintFloatPowerSeries}}
% \lverb|1.08a. I still have to re-visit \xintFxPtPowerSeries; temporarily I
-% just adapted the code to the case of floats.|
+% just adapted the code to the case of floats.
+%
+% Usage of new names
+% \XINTinfloatpow_wopt \XINTinfloatmul_wopt, \XINTinfloatadd_wopt to track
+% xintfrac.sty changes at 1.4e.
+% |
% \begin{macrocode}
\def\xintFloatPowerSeries {\romannumeral0\xintfloatpowerseries }%
\def\xintfloatpowerseries #1{\XINT_flpowseries_chkopt #1\xint:}%
@@ -34399,7 +34888,7 @@ math shift catcode.
\else
\xint_afterfi
{\expandafter\XINT_flpowseries_loop_pre\expandafter
- {\romannumeral0\XINTinfloatpow [#3]{#5}{#1}}%
+ {\romannumeral0\XINTinfloatpow_wopt[#3]{#5}{#1}}%
{#1}{#5}{#2}{#4}{#3}%
}%
\fi
@@ -34409,7 +34898,7 @@ math shift catcode.
\ifnum #4>#2 \else\XINT_flpowseries_dont_i \fi
\expandafter\XINT_flpowseries_loop_i\expandafter
{\the\numexpr #2+\xint_c_i\expandafter}\expandafter
- {\romannumeral0\XINTinfloatmul [#6]{#5{#2}}{#1}}%
+ {\romannumeral0\XINTinfloatmul_wopt[#6]{#5{#2}}{#1}}%
{#1}{#3}{#4}{#5}{#6}%
}%
\def\XINT_flpowseries_dont_i \fi\expandafter\XINT_flpowseries_loop_i
@@ -34419,26 +34908,28 @@ math shift catcode.
{%
\ifnum #5>#1 \else \XINT_flpowseries_exit_i \fi
\expandafter\XINT_flpowseries_loop_ii\expandafter
- {\romannumeral0\XINTinfloatmul [#7]{#3}{#4}}%
+ {\romannumeral0\XINTinfloatmul_wopt[#7]{#3}{#4}}%
{#1}{#4}{#2}{#5}{#6}{#7}%
}%
\def\XINT_flpowseries_loop_ii #1#2#3#4#5#6#7%
{%
\expandafter\XINT_flpowseries_loop_i\expandafter
{\the\numexpr #2+\xint_c_i\expandafter}\expandafter
- {\romannumeral0\XINTinfloatadd [#7]{#4}%
- {\XINTinfloatmul [#7]{#6{#2}}{#1}}}%
+ {\romannumeral0\XINTinfloatadd_wopt[#7]{#4}%
+ {\XINTinfloatmul_wopt[#7]{#6{#2}}{#1}}}%
{#1}{#3}{#5}{#6}{#7}%
}%
\def\XINT_flpowseries_exit_i\fi\expandafter\XINT_flpowseries_loop_ii
{\fi \expandafter\XINT_flpowseries_exit_ii }%
\def\XINT_flpowseries_exit_ii #1#2#3#4#5#6#7%
{%
- \xintfloatadd [#7]{#4}{\XINTinfloatmul [#7]{#6{#2}}{#1}}%
+ \xintfloatadd[#7]{#4}{\XINTinfloatmul_wopt[#7]{#6{#2}}{#1}}%
}%
% \end{macrocode}
% \subsection{\csh{xintFloatPowerSeriesX}}
-% \lverb|1.08a|
+% \lverb|1.08a
+%
+% See \xintFloatPowerSeries for 1.4e comments.|
% \begin{macrocode}
\def\xintFloatPowerSeriesX {\romannumeral0\xintfloatpowerseriesx }%
\def\xintfloatpowerseriesx #1{\XINT_flpowseriesx_chkopt #1\xint:}%
@@ -34475,10 +34966,10 @@ math shift catcode.
\def\XINT_flpowseriesx_pre #1#2#3#4#5%
{%
\expandafter\XINT_flpowseries_loop_pre\expandafter
- {\romannumeral0\XINTinfloatpow [#5]{#1}{#2}}%
+ {\romannumeral0\XINTinfloatpow_wopt[#5]{#1}{#2}}%
{#2}{#1}{#3}{#4}{#5}%
}%
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintseries}
% \cleardoublepage\let\xintseriesnameUp\undefined
@@ -34487,7 +34978,7 @@ math shift catcode.
%\let<*xintcfrac>\gardesinactifs
%</xintseries>^^A-------------------------------------------------
%<*xintcfrac>^^A--------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintcfracnameUp\endcsname
% \section{Package \xintcfracnameimp implementation}
% \RaisedLabel{sec:cfracimp}
@@ -34562,7 +35053,7 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2021/03/29 v1.4d Expandable continued fractions with xint package (JFB)]%
+ [2021/05/05 v1.4e Expandable continued fractions with xint package (JFB)]%
% \end{macrocode}
% \subsection{\csh{xintCFrac}}
% \begin{macrocode}
@@ -35666,7 +36157,7 @@ math shift catcode.
\expandafter\XINT_gctgc_end_b
}%
\def\XINT_gctgc_end_b #1#2#3{ #3{#1}}%
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintcfrac}
% \cleardoublepage\let\xintcfracnameUp\undefined
@@ -35675,7 +36166,7 @@ math shift catcode.
%\let<*xintexpr>\gardesinactifs
%</xintcfrac>^^A--------------------------------------------------
%<*xintexpr>^^A---------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintexprnameUp\endcsname
% \section{Package \xintexprnameimp implementation}
% \RaisedLabel{sec:exprimp}
@@ -35954,21 +36445,35 @@ math shift catcode.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2021/03/29 v1.4d Expandable expression parser (JFB)]%
+ [2021/05/05 v1.4e Expandable expression parser (JFB)]%
\catcode`! 11
\let\XINT_Cmp \xintiiCmp
\def\XINTfstop{\noexpand\XINTfstop}%
% \end{macrocode}
-% \subsection{\csh{xintDigits*}, \csh{xintSetDigits*}}
-% \lverb|1.3f|
+% \subsection{\csh{xintDigits*}, \csh{xintSetDigits*}, \csh{xintreloadscilibs}}
+% \lverb|1.3f. 1.4e added some \xintGuardDigits and \XINTdigitsx mechanism but
+% it was finally removed, due to pending issues of user interface,
+% functionality, and documentation (the worst part) for whose resolution
+% no time was left.
+%|
% \begin{macrocode}
-\def\xintDigits {\futurelet\XINT_token\xintDigitss}%
-\def\xintDigitss #1={\afterassignment\xintDigitsss\mathchardef\XINTdigits=}%
-\def\xintDigitsss#1{\ifx*\XINT_token\expandafter\xintreloadxinttrig\fi}%
+\def\xintreloadscilibs{\xintreloadxintlog\xintreloadxinttrig}%
+\def\xintDigits {\futurelet\XINT_token\xintDigits_i}%
+\def\xintDigits_i#1={\afterassignment\xintDigits_j\mathchardef\XINT_digits=}%
+\def\xintDigits_j#1%
+{%
+ \let\XINTdigits=\XINT_digits
+ \ifx*\XINT_token\expandafter\xintreloadscilibs\fi
+}%
\let\xintfracSetDigits\xintSetDigits
-\def\xintSetDigits#1#{\if\relax\detokenize{#1}\relax
- \else\afterassignment\xintreloadxinttrig\fi
- \xintfracSetDigits}%
+\def\xintSetDigits#1#{\if\relax\detokenize{#1}\relax\expandafter\xintfracSetDigits
+ \else\expandafter\xintSetDigits_a\fi}%
+\def\xintSetDigits_a#1%
+{%
+ \mathchardef\XINT_digits=\numexpr#1\relax
+ \let\XINTdigits\XINT_digits
+ \xintreloadscilibs
+}%
% \end{macrocode}
% \subsection{Support for output and transform of nested braced contents as
% core data type}
@@ -36130,9 +36635,9 @@ math shift catcode.
% will be allowed to transform a number into an ople, the applied macro
% is supposed to apply one level of bracing to its ouput. Thus to apply this
% with an xintfrac macro such as \xintiRound{0} one needs first to define
-% a wrapper which will expand it into braces :
+% a wrapper which will expand it inside an added brace pair:
%
-% \def\foo#1{{\xintiRound{0}{#1}}%
+% \def\foo#1{{\xintiRound{0}{#1}}}%
%
% As the things will expand inside expanded, propagating expansion is not an
% issue.
@@ -36185,9 +36690,18 @@ math shift catcode.
% ATTENTION! 1.3d renamed \xinteval to \xintexpro etc...
%
%
+% Usage of \xintiRound{0} for \xintiexpr without optional [D] means that
+% \xintiexpr ... \relax wrapper can be used to insert rounded-to-integers
+% values in \xintiiexpr context: no post-fix [0] which would break it. But
+% this does not apply to the \xintiexpr [D]...\relax form with negative D.
+%
+% 1.4a add support for the optional argument [D] for \xintiexpr being negative
+% D, with same meaning as the 1.4a modified \xintRound from xintfrac.sty.
%
-% The 1.4a version of optional argument [D] for \xintiexpr accepts a negative
-% D, with same meaning as the 1.4a \xintRound from xintfrac.sty.
+% \xintiexpr mechanism was refactored at 1.4e so that rounding due to [D]
+% optional argument uses raw format, not fixed point format on output,
+% delegating fixed point conversion to an \XINTiexprprint now separated from
+% \XINTexprprint.
% |
% \begin{macrocode}
\def\xintexpr {\romannumeral0\xintexpro }%
@@ -36209,9 +36723,9 @@ math shift catcode.
{%
\expandafter\XINT_expr_wrap
\expanded
- \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTbracediRoundzero}%
+ \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTiRoundzero_braced}%
}%
-\def\XINTbracediRoundzero#1{{\xintiRound{0}{#1}}}%
+\def\XINTiRoundzero_braced#1{{\xintiRound{0}{#1}}}%
\def\XINT_iexpr_withopt [#1]%
{%
\expandafter\XINT_iexpr_round
@@ -36225,11 +36739,11 @@ math shift catcode.
}%
\def\XINT_iexpr_round_a #1.%
{%
- \expandafter\XINT_expr_wrap
+ \expandafter\XINT_iexpr_wrap
\expanded
- \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTbracedRound{#1}}%
+ \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTiRound_braced{#1}}%
}%
-\def\XINTbracedRound#1#2{{\xintRound{#1}{#2}}}%
+\def\XINTiRound_braced#1#2{{\xintiRound{#1}{#2}[\the\numexpr-#1]}}%
\def\xintfloatexpro #1%
{%
\ifx [#1\expandafter\XINT_flexpr_withopt\else\expandafter\XINT_flexpr_noopt
@@ -36255,39 +36769,52 @@ math shift catcode.
\expandafter\XINT_flexpr_wrap
\the\numexpr#1\expandafter.%
\expanded
- \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTbracedinFloat[#1]}%
+ \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTinFloat_braced[#1]}%
}%
-\def\XINTbracedinFloat[#1]#2{{\XINTinFloat[#1]{#2}}}%
+\def\XINTinFloat_braced[#1]#2{{\XINTinFloat[#1]{#2}}}%
% \end{macrocode}
% \subsubsection{\csh{XINT_expr_wrap}, \csh{XINT_iiexpr_wrap}, \csh{XINT_flexpr_wrap}}
% \lverb|1.3e removes some leading space tokens which served nothing. There is
-% no \XINT_iexpr_wrap, because \XINT_expr_wrap is used directly.|
+% no \XINT_iexpr_wrap, because \XINT_expr_wrap is used directly.
+%
+% 1.4e has \XINT_iexpr_wrap separated from \XINT_expr_wrap, thus simplifying
+% internal matters as output printer for \xintexpr will not have to handle
+% fixed point input but only extended-raw type input (i.e. A, A/B, A[N] or A/B[N]).
+% |
% \begin{macrocode}
\def\XINT_expr_wrap {\XINTfstop\XINTexprprint.}%
+\def\XINT_iexpr_wrap {\XINTfstop\XINTiexprprint.}%
\def\XINT_iiexpr_wrap {\XINTfstop\XINTiiexprprint.}%
\def\XINT_flexpr_wrap {\XINTfstop\XINTflexprprint}%
% \end{macrocode}
-% \subsubsection{\csh{XINTexprprint}, \csh{XINTiiexprprint}, \csh{XINTflexprprint}}
+% \subsubsection{\csh{XINTexprprint}, \csh{XINTiexprprint}, \csh{XINTiiexprprint}, \csh{XINTflexprprint}}
% \lverb|
%
-% Comments currently under reconstruction.
+% Comments (still) currently under reconstruction.
+%
+% 1.4: this now requires \expanded context.
+%
+% 1.4e has a separate \XINTiexprprint and \xintiexprPrintOne.
%
-% 1.4: attention that this now requires \expanded context as the «printer»
-% macros are not f-expandable but only e-expandable.
+% 1.4e has a breaking change of \XINTflexprprint and \xintfloatexprPrintOne
+% which now requires \xintfloatexprPrintOne[D]{x} usage, with first argument
+% in brackets.
%
% |
% \begin{macrocode}
\protected\def\XINTexprprint.%
{\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintexprPrintOne}%
\let\xintexprPrintOne\xintFracToSci
+\protected\def\XINTiexprprint.%
+ {\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintiexprPrintOne}%
+\let\xintiexprPrintOne\xintDecToString
\def\xintexprEmptyItem{[]}%
\protected\def\XINTiiexprprint.%
{\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintiiexprPrintOne}%
\let\xintiiexprPrintOne\xint_firstofone
\protected\def\XINTflexprprint #1.%
- {\XINT:NEhook:x:toblist\XINT:expr:toblistwith{\xintfloatexprPrintOne{#1}}}%
-\def\xintfloatexprPrintOne#1%
- {\romannumeral0\XINT_pfloat_opt [\xint:#1]}% bad direct jump
+ {\XINT:NEhook:x:toblist\XINT:expr:toblistwith{\xintfloatexprPrintOne[#1]}}%
+\let\xintfloatexprPrintOne\xintPFloat_wopt
\protected\def\XINTboolexprprint.%
{\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintboolexprPrintOne}%
\def\xintboolexprPrintOne#1{\xintiiifNotZero{#1}{True}{False}}%
@@ -36361,11 +36888,23 @@ math shift catcode.
% \end{macrocode}
% \subsubsection{\csh{xintthebareeval}, \csh{xintthebarefloateval},
% \csh{xintthebareiieval}}
-% \lverb|For matters of \XINT_NewFunc|
+% \lverb|For matters of \XINT_NewFunc
+% |
% \begin{macrocode}
+\def\XINT_expr_unlock {\expandafter\xint_firstofone\romannumeral`&&@}%
\def\xintthebareeval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbareeval}%
-\def\xintthebarefloateval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbarefloateval}%
\def\xintthebareiieval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbareiieval}%
+\def\xintthebarefloateval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbarefloateval}%
+\def\xintthebareroundedfloateval
+{%
+ \romannumeral0\expandafter\xintthebareroundedfloateval_a\romannumeral0\xintbarefloateval
+}%
+\def\xintthebareroundedfloateval_a
+{%
+ \expandafter\xint_stop_atfirstofone
+ \expanded\XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTinFloatSdigits_braced}%
+}%
+\def\XINTinFloatSdigits_braced#1{{\XINTinFloatS[\XINTdigits]{#1}}}%
% \end{macrocode}
% \subsubsection{\csh{xinteval}, \csh{xintieval}, \csh{xintfloateval},
% \csh{xintiieval}}
@@ -36879,7 +37418,12 @@ math shift catcode.
% \end{macrocode}
% \subsubsection{Scientific notation}
% \lverb|Some pluses and minuses are allowed at the start of the scientific
-% part, however not later, and no parenthesis.|
+% part, however not later, and no parenthesis.
+%
+% ATTENTION! 1e\numexpr2+3\relax or 1e\xintiexpr i\relax, i=1..5
+% are not allowed and 1e1\numexpr2\relax does 1e1 * \numexpr2\relax.
+% Use \the\numexpr, \xinttheiexpr, etc...
+% |
% \begin{macrocode}
\def\XINT_expr_scanexp_a #1#2%
{%
@@ -36895,7 +37439,7 @@ math shift catcode.
{%
\expandafter\XINT_expr_scanexp_main_b\romannumeral`&&@#1%
}%
-\def\XINT_expr_scanexpr_hit_cs\ifnum#1\fi#2\XINT_expr_scanexp_again
+\def\XINT_expr_scanexp_hit_cs\ifnum#1\fi#2\XINT_expr_scanexp_again
{%
]\iffalse{{{\fi}}\expandafter}\romannumeral`&&@\XINT_expr_getop#2%
}%
@@ -37681,7 +38225,7 @@ math shift catcode.
\XINT_expr_defbin_b {flexpr} / {xiv}{xiv}{XINTinFloatDiv}%
\XINT_expr_defbin_b {iiexpr} / {xiv}{xiv}{xintiiDivRound}%
\XINT_expr_defbin_b {expr} ^ {xviii}{xviii}{xintPow}%
-\XINT_expr_defbin_b {flexpr} ^ {xviii}{xviii}{XINTinFloatPowerH}%
+\XINT_expr_defbin_b {flexpr} ^ {xviii}{xviii}{XINTinFloatSciPow}%
\XINT_expr_defbin_b {iiexpr} ^ {xviii}{xviii}{xintiiPow}%
\catcode`& 12
\xintFor #1 in {and,or,xor,mod} \do
@@ -38579,7 +39123,7 @@ math shift catcode.
{%
\expandafter\XINT_expr_put_op_first
\expanded{{\romannumeral`&&@\XINT:NEhook:f:one:from:one
- {\romannumeral`&&@\XINTinFloatFac#1}}\expandafter}\romannumeral`&&@\XINT_expr_getop
+ {\romannumeral`&&@\XINTinFloatFacdigits#1}}\expandafter}\romannumeral`&&@\XINT_expr_getop
}%
\def\XINT_iiexpr_op_! #1%
{%
@@ -38658,7 +39202,22 @@ math shift catcode.
% breakage elsewhere, and that the February 2020 |1.4| did not break something
% else.
%
+% \lverb|&
+% 1.4e, done 2021/04/17, modifies \xintdeffloatvar to round to the prevailing
+% precision (formerly, any operation would induce rounding, but in case of
+% things such as \xintdeffloatvar foo:=\xintexpr 1/100!\relax; there was no
+% automatic rounding. One could use 0+ syntax to trigger it, and for oples,
+% some trick like \xintfloatexpr[\XINTdigits]...\relax extra wrapper.
+%
+% Now inner computations are done with guard digits. But, with some
+% hesitation, I decided that it would be problematic if \xintfloateval{} would
+% print only a partial view of a variable, the variable having unknown hidden
+% extra digits. Also, xintsession 0.1 was done to use \xintfloateval{} to
+% display the computation result, and it would be very confusing if one could
+% not copy paste that value and expect exact same behaviour as the automatic
+% label variable.
%
+% |
%
% \begin{macrocode}
\catcode`* 11
@@ -38696,7 +39255,8 @@ math shift catcode.
\def\XINT_expr_defvar #1#2%
{%
\def\XINT_defvar_tmpa{#2}%
- \expandafter\XINT_expr_defvar_a\expandafter#1\romannumeral\XINT_expr_fetch_to_semicolon
+ \expandafter\XINT_expr_defvar_a\expanded{\unexpanded{{#1}}\expandafter}%
+ \romannumeral\XINT_expr_fetch_to_semicolon
}%
\def\XINT_expr_defvar_a #1#2%
{%
@@ -38718,11 +39278,11 @@ math shift catcode.
{Aborting: not allowed to declare variable with empty name.}%
\or
\XINT_global
- \expandafter\edef\csname XINT_expr_varvalue_\XINT_defvar_tmpa\endcsname
- {\romannumeral0#1#2\relax}%
+ \expandafter
+ \edef\csname XINT_expr_varvalue_\XINT_defvar_tmpa\endcsname{#1#2\relax}%
\XINT_expr_defvar_one_b\XINT_defvar_tmpa
\else
- \edef\XINT_defvar_tmpb{\romannumeral0#1#2\relax}%
+ \edef\XINT_defvar_tmpb{#1#2\relax}%
\edef\XINT_defvar_tmpd{\expandafter\xintLength\expandafter{\XINT_defvar_tmpb}}%
\let\XINT_defvar_tmpe\empty
\if1\XINT_defvar_tmpd
@@ -38758,14 +39318,28 @@ math shift catcode.
\catcode`: 11
% \end{macrocode}
% \lverb|This SafeCatcodes is mainly in the hope that semi-colon ending the
-% expression can still be sanitized.|
+% expression can still be sanitized.
+%
+% Pre 1.4e definition:
+%(\def\xintdeffloatvar {\xintexprSafeCatcodes\xintdeffloatvar_a}%
+%:\def\xintdeffloatvar_a #1={\XINT_expr_defvar\xintthebarefloateval{#1}}%
+%)
+% This would keep the value (or values) with extra digits, now.
+% If this is actually wanted one can use
+% \xintdefvar foo:=\xintfloatexpr...\relax;
+% syntax, but recalling that only operations trigger the rounding inside
+% \xintfloatexpr. Some tricks are needed for no operations case if multiple or
+% nested values. But for a single one, one can use simply the float()
+% function.
+%
+% |
% \begin{macrocode}
-\def\xintdefvar {\xintexprSafeCatcodes\xintdefvar_a}%
-\def\xintdefiivar {\xintexprSafeCatcodes\xintdefiivar_a}%
-\def\xintdeffloatvar {\xintexprSafeCatcodes\xintdeffloatvar_a}%
-\def\xintdefvar_a #1={\XINT_expr_defvar\xintthebareeval {#1}}%
-\def\xintdefiivar_a #1={\XINT_expr_defvar\xintthebareiieval {#1}}%
-\def\xintdeffloatvar_a #1={\XINT_expr_defvar\xintthebarefloateval {#1}}%
+\def\xintdefvar {\xintexprSafeCatcodes\xintdefvar_a}%
+\def\xintdefvar_a#1={\XINT_expr_defvar\xintthebareeval{#1}}%
+\def\xintdefiivar {\xintexprSafeCatcodes\xintdefiivar_a}%
+\def\xintdefiivar_a#1={\XINT_expr_defvar\xintthebareiieval{#1}}%
+\def\xintdeffloatvar {\xintexprSafeCatcodes\xintdeffloatvar_a}%
+\def\xintdeffloatvar_a #1={\XINT_expr_defvar\xintthebareroundedfloateval{#1}}%
% \end{macrocode}
% \subsubsection{\csh{xintunassignvar}}
% \changed{1.2e}{}
@@ -40153,7 +40727,7 @@ math shift catcode.
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one
- {\romannumeral`&&@\XINTinFloatFracdigits#3}}%
+ {\romannumeral`&&@\XINTinFloatFrac#3}}%
}%
% \end{macrocode}
% \lverb|no \XINT_iiexpr_func_frac|
@@ -40195,7 +40769,6 @@ math shift catcode.
\romannumeral`&&@\XINT:NEhook:f:one:from:one
{\romannumeral`&&@\xintSqr#3}}%
}%
-\def\XINTinFloatSqr#1{\XINTinFloatMul{#1}{#1}}%
\def\XINT_flexpr_func_sqr #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
@@ -40312,13 +40885,6 @@ math shift catcode.
}}%
}%
\let\XINT_flexpr_func_sqrt\XINT_expr_func_sqrt
-\def\XINT_expr_func_sqrt_ #1#2#3%
-{%
- \expandafter #1\expandafter #2\expandafter{%
- \romannumeral`&&@\XINT:NEhook:f:one:from:one
- {\romannumeral`&&@\XINTinFloatSqrtdigits#3}}%
-}%
-\let\XINT_flexpr_func_sqrt_\XINT_expr_func_sqrt_
\def\XINT_iiexpr_func_sqrt #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
@@ -40386,17 +40952,24 @@ math shift catcode.
}%
\let\XINT_flexpr_func_float\XINT_expr_func_float
% \end{macrocode}
-% \lverb|float_() added at 1.4. Does not check for optional argument. Useful
-% to transfer functions defined with \xintdeffunc to functions usable in
-% \xintfloateval. I hesitated briefly about notation but here we go.
-% Unfortunately I will have to document it (contrarily to sqrt_).
+% \lverb|&
+% float_() was added at 1.4, as a shortcut alias to float() skipping the check
+% for an optional second argument. This is useful to transfer function
+% definitions between \xintexpr and \xintfloatexpr contexts.
%
-% No need to do same for sfloat() currently used in xinttrig.sty to go from
-% float to expr, because sfloat(x) sees there is no optional argument.
%
-% Still I wonder if better would not be to have some function «single()» which
-% signals to outer one it is a single argument? Must think about this. Too
-% late now for 1.4.|
+% No need for a similar shortcut for sfloat() as currently used in
+% xinttrig.sty to go from float to expr: as it is used there as sfloat(x) with
+% dummy x, it sees there is no optional argument, contrarily to for example
+% float(\xintexpr...\relax) which has to allow for the inner expression to
+% expand to an ople with two items, so does not know in which branch it is at
+% time of definiion.
+%
+%
+% After some hesitation at 1.4e regarding guard digits mechanism the float_()
+% got renamed to float_dgt(), but then renamed back to float_() to avoid a
+% breaking change and having to document it. But I don't like the name.
+% |
% \begin{macrocode}
\def\XINT_expr_func_float_ #1#2#3%
{%
@@ -40405,6 +40978,7 @@ math shift catcode.
{\romannumeral`&&@\XINTinFloatdigits#3}}%
}%
\let\XINT_flexpr_func_float_\XINT_expr_func_float_
+% no \XINT_iiexpr_func_float_dgt
\def\XINT_expr_func_sfloat #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{\expandafter{%
@@ -40413,7 +40987,7 @@ math shift catcode.
}}%
}%
\let\XINT_flexpr_func_sfloat\XINT_expr_func_sfloat
-% \XINT_iiexpr_func_sfloat not defined
+% no \XINT_iiexpr_func_sfloat
\expandafter\def\csname XINT_expr_func_ilog10\endcsname #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{\expandafter{%
@@ -40421,6 +40995,11 @@ math shift catcode.
\XINT:expr:f:one:and:opt #3,!\xintiLogTen\XINTFloatiLogTen
}}%
}%
+% \end{macrocode}
+% \lverb|&
+% 1.4e does not add guard digits usage to ilog10(x)
+% |
+% \begin{macrocode}
\expandafter\def\csname XINT_flexpr_func_ilog10\endcsname #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{\expandafter{%
@@ -41945,7 +42524,7 @@ math shift catcode.
\fi}@
}@
\catcode`% 14
-\XINT_setcatcodes % clean up to avoid surprises if something changes
+\XINTsetcatcodes % clean up to avoid surprises if something changes
% \end{macrocode}
% \subsubsection{\csh{ifxintexprsafecatcodes}, \csh{xintexprSafeCatcodes}, \csh{xintexprRestoreCatcodes}}
% \changed{1.3c}{2018/06/17}
@@ -41957,6 +42536,7 @@ math shift catcode.
{%
\unless\ifxintexprsafecatcodes
\edef\xintexprRestoreCatcodes {%
+ \endlinechar=\the\endlinechar
\catcode59=\the\catcode59 % ;
\catcode34=\the\catcode34 % "
\catcode63=\the\catcode63 % ?
@@ -41985,6 +42565,7 @@ math shift catcode.
}%
\fi
\xintexprsafecatcodestrue
+ \endlinechar=13 %
\catcode59=12 % ;
\catcode34=12 % "
\catcode63=12 % ?
@@ -42018,7 +42599,7 @@ math shift catcode.
{\input xinttrig.sty
\input xintlog.sty
}%
-\XINT_restorecatcodes_endinput%
+\XINTrestorecatcodesendinput%
% \end{macrocode}
% \StoreCodelineNo {xintexpr}
% \cleardoublepage\let\xintexprnameUp\undefined
@@ -42027,7 +42608,7 @@ math shift catcode.
%\let<*xinttrig>\gardesinactifs
%</xintexpr>^^A--------------------------------------------------
%<*xinttrig>^^A---------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xinttrignameUp\endcsname
% \section{Package \xinttrignameimp implementation}
% \RaisedLabel{sec:trigimp}
@@ -42036,33 +42617,77 @@ math shift catcode.
%
% \localtableofcontents
%
-% Comments under reconstruction.
-%
-% The original was done in January 15 and 16, 2019. It provided |asin()| and
-% |acos()| based on a Newton algorithm approach. Then during March 25-31 I
-% revisited the code, adding more inverse trigonometrical functions (with a
-% modified algorithm, quintically convergent), extending the precision range
-% (so that the package reacts to the \csbxint{Digits} value at time of load,
-% or reload), and replaced high level range reduction by some optimized lower
-% level coding.
-%
-% This led me next to improve upon the innards of \csbxint{deffunc} and
-% \csbxint{NewExpr}, and to add to \xintexprnameimp the \csa{xintdefefunc}
-% macro (see user documentation).
-%
-% Finally on April 5, 2019 I pushed further the idea of the algorithm for the
-% arcsine function. The cost is at least the one of a combined |sin()/cos()|
-% evaluation, surely this is not best approach for low precision, but I like
-% the principle and its suitability to go into hundreds of digits if desired.
-%
-% Almost all of the code remains written at high level, and in particular it
-% is not easily feasible from this interface to execute computations with
-% guard digits. Expect the last one or two digits to be systematically off.
-%
-% Also, small floating-point inputs are handled quite sub-optimally both for
-% the direct and inverse functions; substantial gains are possible. I added
-% the ilog10() function too late to consider using it here with the high level
-% interface.
+% A preliminary implementation was done only late in the development of
+% \cs{xintexpr}, as an example of the high level user interface, in January
+% 2019. In March and April 2019 I improved the algorithm for the inverse
+% trigonometrical functions and included the whole as a new \csbxint{expr}
+% module. But, as the high level interface provided no way to have
+% intermediate steps executed with guard digits, the whole scheme could only
+% target say P-2 digits where P is the prevailing precision, and only with a
+% moderate requirement on what it means to have P-2 digits about correct.
+%
+% Finally in April 2021, after having at long last added exponential and
+% logarithm up to 62 digits and at a rather strong precision requirement
+% (something like, say with inputs in normal ranges: targeting at most 0.505ulp
+% distance to exact result), I revisited the code here.
+%
+% We keep most of the high level usage of \csbxint{deffloatfunc}, but hack
+% into its process in order to let it map the 4 operations and some functions
+% such as square-root to macros using 4 extra digits. This hack is enough to
+% support the used syntax here, but is not usable generally. All functions and
+% their auxiliaries defined during the time the hack applies are named with
+% |@| as first letter.
+%
+% Later the public functions, without the |@|, are defined as wrappers of the
+% |@|-named ones, which float-round to P digits on output.
+%
+% Apart from that the sine and cosine series were implemented at macro level,
+% bypassing the \csbxint{deffloatfunc} interface. This is done mainly for
+% handling Digits at high value (24 or more) as it then becomes beneficial to
+% float-round the variable to less and less digits, the deeper one goes into
+% the series.
+%
+% And regarding the arcsine I modified a bit my original idea in order to
+% execute the first step in a single \cs{numexpr}. It turns out that that for
+% 16 digits the algorithm then ``only'' needs one sine and one cosine
+% evaluation (and a square-root), and there is no need for an arcsine series
+% auxiliary then. I am aware this is by far not the ``best'' approach but the
+% problem is that I am a bit enamored into the idea of the algorithm even
+% though it is at least twice as costly than a sine evaluation! Actually, for
+% many digits, it turns out the arcsine is less costly than two random sine
+% evaluations, probably because the latter have the overhead of range
+% reduction.
+%
+% Speaking of this, the range reduction is rather naive and not extremely
+% ambitious. I wrote it initially having only |sind()| and |cosd()| in mind,
+% and in 2019 reduced degrees to radians in the most naive way possible. I
+% have only slighly improved this for this |1.4e| 2021 release, the announced
+% precision for inputs less than say |1e6|, but at |1e8| and higher, one will
+% start feeling the gradual loss of precision compared to the task of
+% computing the exact mathematical result correctly rounded. Also, I do not
+% worry here about what happens when the input is very near a big multiple of
+% $\pi$, and one computes a sine for example. Maybe I will improve in future
+% this aspect but I decided I was seriously running out of steam for the
+% |1.4e| release.
+%
+% As commented in \xintlognameimp regarding exponential and logarithms, even
+% though we have instilled here some dose of lower level coding, the whole
+% suffers from \xintfracnameimp not yet having made floating point numbers a
+% native type. Thus inefficiencies accumulate...
+%
+% At 8 digits, the gain was only about 40\% compared to 16 digits. So at the
+% last minute, on the day I was going to do the release I decided to implement
+% a poorman way for sine and cosine, for "speed". I transferred the idea from
+% the arcsine numexpr to sine and cosine. Indeed there is an interesting speed
+% again of about 4X compared to applying the same approach as for higher
+% values of Digits. Correct rounding during random testing is still obtained
+% reasonably often (at any rate more than 95\% of cases near 45 degrees and
+% always faithful rounding), although at less than the 99\% reached for the
+% main branch handling Digits up to 62. But the precision is more than enough
+% for usage in plots for example. I am keeping the guard digits, as removing
+% then would add a further speed gain of about 20\% to 40\% but the precision
+% then would drop dramatically, and this is not acceptable at the time of our
+% 2021 standards (not a period of enlightenment generally speaking, though).
%
% \subsection{Catcodes, \protect\eTeX{} and reload detection}
% \begin{macrocode}
@@ -42102,7 +42727,8 @@ math shift catcode.
\fi
\fi
\z%
-\catcode`_ 11 \XINT_setcatcodes \catcode`? 12
+\edef\XINTtrigendinput{\XINTrestorecatcodes\noexpand\endinput}\XINTsetcatcodes%
+\catcode`? 12
% \end{macrocode}
% \subsection{Library identification}
% \begin{macrocode}
@@ -42112,10 +42738,10 @@ math shift catcode.
\expandafter\xint_secondoftwo
\fi
{\immediate\write-1{Reloading xinttrig library using Digits=\xinttheDigits.}}%
-{\expandafter\gdef\csname xintlibver@trig\endcsname{2021/03/29 v1.4d}%
+{\expandafter\gdef\csname xintlibver@trig\endcsname{2021/05/05 v1.4e}%
\XINT_providespackage
\ProvidesPackage{xinttrig}%
-[2021/03/29 v1.4d Trigonometrical functions for xintexpr (JFB)]%
+[2021/05/05 v1.4e Trigonometrical functions for xintexpr (JFB)]%
}%
% \end{macrocode}
% \subsection{Ensure used letters are dummy letters}
@@ -42123,210 +42749,387 @@ math shift catcode.
\xintFor* #1 in {iDTVtuwxyzX}\do{\xintensuredummy{#1}}%
% \end{macrocode}
% \subsection{\csh{xintreloadxinttrig}}
+% \lverb|Much simplified at 1.4e, from a modified catcode regime management.|
% \begin{macrocode}
-\def\xintreloadxinttrig
- {\edef\XINT_restorecatcodes_now{\XINT_restorecatcodes}%
- \XINT_setcatcodes\catcode`? 12
- \input xinttrig.sty
- \XINT_restorecatcodes_now}%
+\def\xintreloadxinttrig{\input xinttrig.sty }%
% \end{macrocode}
-% \subsection{Auxiliary variables (only temporarily needed, but left free to re-use)}
+% \subsection{Auxiliary variables}
% \lverb|&
-% These variables don't have really private names but this does not matter
-% because only their actual values will be stored in the functions defined
-% next. Nevertheless they are not unassigned, and are left free to use as is.
+% The variables with private names have extra digits. Whether private or
+% public, the variables can all be redefined without impacting the defined
+% functions, whose meanings will contain already the variable values.
+%
+% Formerly variables holding the 1/n! were defined, but this got removed at 1.4e.
% |
-% \subsubsection{\cshn{twoPi}, \cshn{threePiover2}, \cshn{Pi}, \cshn{Piover2}}
+% \subsubsection{\cshn{@twoPi}, \cshn{@threePiover2}, \cshn{@Pi}, \cshn{@Piover2}}
% \lverb|&
-% We take them with 60 digits
-% and force conversion to \xintDigits setting via "0 + " syntax.
-% |
-% \begin{macrocode}
-\xintdeffloatvar twoPi := 0 +
- 6.28318530717958647692528676655900576839433879875021164194989;%
-\xintdeffloatvar threePiover2 := 0 +
- 4.71238898038468985769396507491925432629575409906265873146242;%
-\xintdeffloatvar Pi := 0 +
- 3.14159265358979323846264338327950288419716939937510582097494;%
-\xintdeffloatvar Piover2 := 0 +
- 1.57079632679489661923132169163975144209858469968755291048747;%
-% \end{macrocode}
-% \subsubsection{\cshn{oneDegree}, \cshn{oneRadian}}
+% At 1.4e we need more digits, also \xintdeffloatvar changed and always rounds
+% to P=Digits precision so we use another path to store values with extra digits.
+% |
+% \begin{macrocode}
+\xintdefvar @twoPi :=
+ float(
+6.2831853071795864769252867665590057683943387987502116419498891846156328125724180
+ ,\xinttheDigits+4);%
+\xintdefvar @threePiover2 :=
+ float(
+4.7123889803846898576939650749192543262957540990626587314624168884617246094293135
+ ,\xinttheDigits+4);%
+\xintdefvar @Pi :=
+ float(
+3.1415926535897932384626433832795028841971693993751058209749445923078164062862090
+ ,\xinttheDigits+4);%
+\xintdefvar @Piover2 :=
+ float(
+1.5707963267948966192313216916397514420985846996875529104874722961539082031431045
+ ,\xinttheDigits+4);%
+% \end{macrocode}
+% \subsubsection{\cshn{@oneDegree}, \cshn{@oneRadian}}
+% \lverb|&
+% Those are needed for range reduction, particularly @oneRadian. We define
+% it with 12 extra digits. But the whole process of range reduction in radians
+% is very naive one.|
+% \begin{macrocode}
+\xintdefvar @oneDegree :=
+ float(
+0.017453292519943295769236907684886127134428718885417254560971914401710091146034494
+ ,\xinttheDigits+4);%
+\xintdefvar @oneRadian :=
+ float(
+57.295779513082320876798154814105170332405472466564321549160243861202847148321553
+ ,\xinttheDigits+12);%
+% \end{macrocode}
+% \subsection{Hack \cs{xintdeffloatfunc} for inserting usage of guard digits}
+% \lverb|1.4e. This is not a general approach, but it sufficient for the
+% limited use case done here of \xintdeffloatfunc. What it does is to let
+% \xintdeffloatfunc hardcode usage of macros which will execute computations
+% with an elevated number of digits. But for example if 5/3 is encountered in
+% a float expression it will remain unevaluated so one would have to use
+% alternate input syntax for efficiency (\xintexpr
+% float(5/3,\xinttheDigits+4)\relax as a subexpression, for example).|
% \begin{macrocode}
-\xintdeffloatvar oneDegree := 0 +
- 0.0174532925199432957692369076848861271344287188854172545609719;% Pi/180
-\xintdeffloatvar oneRadian := 0 +
- 57.2957795130823208767981548141051703324054724665643215491602;% 180/Pi
+\catcode`~ 12
+\def\XINT_tmpa#1#2#3.#4.%
+{%
+ \let #1#2%
+ \def #2##1##2##3##4{##2##3{{~expanded{~unexpanded{#4[#3]}~expandafter}~expanded{##1##4}}}}%
+}%
+\expandafter\XINT_tmpa
+ \csname XINT_flexpr_exec_+_\expandafter\endcsname
+ \csname XINT_flexpr_exec_+\expandafter\endcsname
+ \the\numexpr\XINTdigits+4.~XINTinFloatAdd_wopt.%
+\expandafter\XINT_tmpa
+ \csname XINT_flexpr_exec_-_\expandafter\endcsname
+ \csname XINT_flexpr_exec_-\expandafter\endcsname
+ \the\numexpr\XINTdigits+4.~XINTinFloatSub_wopt.%
+\expandafter\XINT_tmpa
+ \csname XINT_flexpr_exec_*_\expandafter\endcsname
+ \csname XINT_flexpr_exec_*\expandafter\endcsname
+ \the\numexpr\XINTdigits+4.~XINTinFloatMul_wopt.%
+\expandafter\XINT_tmpa
+ \csname XINT_flexpr_exec_/_\expandafter\endcsname
+ \csname XINT_flexpr_exec_/\expandafter\endcsname
+ \the\numexpr\XINTdigits+4.~XINTinFloatDiv_wopt.%
+\def\XINT_tmpa#1#2#3.#4.%
+{%
+ \let #1#2%
+ \def #2##1##2##3{##1##2{{~expanded{~unexpanded{#4[#3]}~expandafter}##3}}}%
+}%
+\expandafter\XINT_tmpa
+ \csname XINT_flexpr_sqrfunc\expandafter\endcsname
+ \csname XINT_flexpr_func_sqr\expandafter\endcsname
+ \the\numexpr\XINTdigits+4.~XINTinFloatSqr_wopt.%
+\expandafter\XINT_tmpa
+ \csname XINT_flexpr_sqrtfunc\expandafter\endcsname
+ \csname XINT_flexpr_func_sqrt\expandafter\endcsname
+ \the\numexpr\XINTdigits+4.~XINTinFloatSqrt.%
+\expandafter\XINT_tmpa
+ \csname XINT_flexpr_invfunc\expandafter\endcsname
+ \csname XINT_flexpr_func_inv\expandafter\endcsname
+ \the\numexpr\XINTdigits+4.~XINTinFloatInv_wopt.%
+\catcode`~ 3
% \end{macrocode}
-% \subsubsection{Inverse factorial coefficients: \cshn{invfact2}, ..., \cshn{invfact44}}
+% \subsection{The sine and cosine series}
% \lverb|&
-% Pre-compute 1/n! for n = 2, ..., 44
+% Old pending question: should I rather use successive divisions by (2n+1)(2n), or rather
+% multiplication by their precomputed inverses, in a modified Horner scheme ?
+% The \ifnum tests are executed at time of definition.
+%
+% Update at last minute: this is actually exactly what I do if Digits is at
+% most 8.
%
+% Small values of the variable are very badly handled here because a much
+% shorter truncation of the series should be used.
%
-% We have to be careful that 1/i! in a float expression first evaluates i!
-% as a floating point number then computes the inverse. Even if i! was
-% computed exactly before being float-rounded, this process would not
-% necessarily lead to the correct rounding of the exact fraction 1/i!.
+% At 1.4e the original \xintdeffloatfunc was converted into macros, whose
+% principle can be seen also at work in xintlog.sty. We prepare the input
+% variables with shorter and shorter mantissas for usage deep in the series.
%
-% We could use \xintexpr1/i!\relax encapsulation but then the actual
-% rounding is delayed to the time when functions are used... this is bad.
+% This divided by about 3 the execution cost of the series for P about 60.
%
-% We need to get now the correct rounding of the exact 1/i!.
+% Originally, the thresholds were computed a priori with 0.79 as upper bound
+% of the variable, but then for 1.4e I developped enough test files to try to
+% adjust heuristically with a target of say
+% 99,5$% of correct rounding, and always at most
+% 1ulp error. The numerical analysis is not easy due to the complications of
+% the implementation...
%
-% 1.4 update: use \xintfloatexpr with optional argument for the rounding
-% rather than «0+x» method. And there is no need now to hide within braces
-% the inner semi-colon.
+% Also, random testing never explores the weak spots...
+%
+% The 0.79 (a bit more than Pi/4) upper bound induces a costly check of
+% variable on input, if Digits is big. Much faster would be to check if input
+% is less than 10 degrees or 1 radian as done in xfp. But using enough
+% coefficients for allowing up to 1 radian, which is without pain for
+% Digits=16 starts being annoying for higher values such as Digits=48.
+%
+% But the main reason I don't do it now is that I spend too much time
+% fine-tuning the table of thresholds... maybe in next release.
% |
-% \begin{macrocode}
-\xintdeffloatvar invfact\xintListWithSep{, invfact}{\xintSeq{2}{44}}%
- := \xintfloatexpr [\XINTdigits] % force float rounding after exact evaluations
- \xintexpr rseq(1/2; @/i, i=3..44)\relax % no need to hide this inner ;
- \relax;%
-% \end{macrocode}
-% \subsection{The sine and cosine series}
-% \subsubsection{\cshn{sin_aux()}, \cshn{cos_aux()}}
-% \lverb|&
-% Should I rather use successive divisions by (2n+1)(2n), or rather
-% multiplication by their precomputed inverses, in a modified Horner scheme ?
-% The \ifnum tests are executed at time of definition.
+% \subsubsection{Support macros for the sine and cosine series}
+%
+% \lverb|Computing the 1/n! from n! then inverting would require
+% costly divisions and significantly increase the loading time.
%
-% Criteria for truncated series using π/4, actually 0.79.
+% So a method is employed to simply divide by 2k(2k-1) or (2k+1)(2k)
+% step by step, with what we hope are enough 8 security digits, and
+% reducing the sizes of the mantissas at each step.
%
-% Small values of the variable X are very badly handled here because a much
-% shorter truncation of the sine series should be used.
+% This whole section is conditional on Digits being at least nine.
% |
+%
% \begin{macrocode}
-\xintdeffloatfunc sin_aux(X) := 1 - X(invfact3 - X(invfact5
-\ifnum\XINTdigits>4
- - X(invfact7
-\ifnum\XINTdigits>6
- - X(invfact9
\ifnum\XINTdigits>8
- - X(invfact11
-\ifnum\XINTdigits>10
- - X(invfact13
-\ifnum\XINTdigits>13
- - X(invfact15
-\ifnum\XINTdigits>15
- - X(invfact17
-\ifnum\XINTdigits>18
- - X(invfact19
-\ifnum\XINTdigits>21
- - X(invfact21
-\ifnum\XINTdigits>24
- - X(invfact23
-\ifnum\XINTdigits>27
- - X(invfact25
-\ifnum\XINTdigits>30
- - X(invfact27
-\ifnum\XINTdigits>33
- - X(invfact29
-\ifnum\XINTdigits>36
- - X(invfact31
-\ifnum\XINTdigits>39
- - X(invfact33
-\ifnum\XINTdigits>43
- - X(invfact35
-\ifnum\XINTdigits>46
- - X(invfact37
-\ifnum\XINTdigits>49
- - X(invfact39
-\ifnum\XINTdigits>53
- - X(invfact41
-\ifnum\XINTdigits>59
- - X(invfact43
- )\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi));%
-% \end{macrocode}
-% \lverb|Criteria on basis of π/4, we actually used 0.79 to choose the
-% transition values and this makes them a bit less favourable at 24, 26,
-% 29...and some more probably. Again this is very bad for small X.|
-% \begin{macrocode}
-\xintdeffloatfunc cos_aux(X) := 1 - X(invfact2 - X(invfact4
-\ifnum\XINTdigits>3
- - X(invfact6
-\ifnum\XINTdigits>5
- - X(invfact8
-\ifnum\XINTdigits>7
- - X(invfact10
-\ifnum\XINTdigits>9
- - X(invfact12
-\ifnum\XINTdigits>12
- - X(invfact14
-\ifnum\XINTdigits>14
- - X(invfact16
-\ifnum\XINTdigits>17
- - X(invfact18
-\ifnum\XINTdigits>20
- - X(invfact20
-\ifnum\XINTdigits>23
- - X(invfact22
-\ifnum\XINTdigits>25
- - X(invfact24
-\ifnum\XINTdigits>28
- - X(invfact26
-\ifnum\XINTdigits>32
- - X(invfact28
-\ifnum\XINTdigits>35
- - X(invfact30
-\ifnum\XINTdigits>38
- - X(invfact32
-\ifnum\XINTdigits>41
- - X(invfact34
-\ifnum\XINTdigits>44
- - X(invfact36
-\ifnum\XINTdigits>48
- - X(invfact38
-\ifnum\XINTdigits>51
- - X(invfact40
-\ifnum\XINTdigits>55
- - X(invfact42
-\ifnum\XINTdigits>58
- - X(invfact44
- )\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi));%
-% \end{macrocode}
-% \subsubsection{Make \cshnnolabel{sin\_aux()} and \cshnnolabel{cos\_aux()}
-% known to \cshnolabel{xintexpr}}
-% \lverb|We need them shortly for the asin() in an \xintexpr variant.
-% We short-circuit the high level interface as it will not be needed to
-% add some \xintFloat wrapper.
-% |
-% \begin{macrocode}
-\expandafter\let\csname XINT_expr_func_sin_aux\expandafter\endcsname
- \csname XINT_flexpr_func_sin_aux\endcsname
-\expandafter\let\csname XINT_expr_func_cos_aux\expandafter\endcsname
- \csname XINT_flexpr_func_cos_aux\endcsname
+\edef\XINT_tmpG % 1/3!
+ {1\xintReplicate{\XINTdigits+2}{6}7[\the\numexpr-\XINTdigits-4]}%
+\edef\XINT_tmpH % 1/5!
+ {8\xintReplicate{\XINTdigits+1}{3}[\the\numexpr-\XINTdigits-4]}%
+\edef\XINT_tmpd % 1/5!
+ {8\xintReplicate{\XINTdigits+9}{3}[\the\numexpr-\XINTdigits-12]}%
+\def\XINT_tmpe#1.#2.#3.#4.#5#6#7%
+{%
+\def#5##1\xint:
+{%
+ \expandafter#6\romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def#6##1\xint:
+{%
+ \expandafter#7\romannumeral0\xintsub{#4}{\XINTinFloat[#2]{\xintMul{#3}{##1}}}\xint:
+}%
+\def#7##1\xint:##2\xint:
+{%
+ \xintSub{1/1[0]}{\XINTinFloat[#1]{\xintMul{##1}{##2}}}%
+}%
+}%
+\expandafter\XINT_tmpe
+ \the\numexpr\XINTdigits+4\expandafter.%
+ \the\numexpr\XINTdigits+2\expandafter.\expanded{%
+ \XINT_tmpH.% 1/5!
+ \XINT_tmpG.% 1/3!
+ \expandafter}%
+ \csname XINT_SinAux_series_a_iii\expandafter\endcsname
+ \csname XINT_SinAux_series_b\expandafter\endcsname
+ \csname XINT_SinAux_series_c_i\endcsname
+\def\XINT_tmpa #1 #2 #3 #4 #5 #6 #7 #8 %
+{%
+ \def\XINT_tmpb ##1##2##3##4##5%
+ {%
+ \def\XINT_tmpc####1.####2.####3.####4.####5.%
+ {%
+ \def##1########1\xint:
+ {%
+ \expandafter##2%
+ \romannumeral0\XINTinfloatS[####1]{########1}\xint:########1\xint:
+ }%
+ \def##2########1\xint:
+ {%
+ \expandafter##3%
+ \romannumeral0\XINTinfloatS[####2]{########1}\xint:########1\xint:
+ }%
+ \def##3########1\xint:
+ {%
+ \expandafter##4%
+ \romannumeral0\xintsub{####4}{\XINTinFloat[####2]{\xintMul{####3}{########1}}}\xint:
+ }%
+ \def##4########1\xint:########2\xint:
+ {%
+ \expandafter##5%
+ \romannumeral0\xintsub{####5}{\XINTinFloat[####1]{\xintMul{########1}{########2}}}\xint:
+ }%
+ }%
+ }%
+ \expandafter\XINT_tmpb
+ \csname XINT_#8Aux_series_a_\romannumeral\numexpr#1-1\expandafter\endcsname
+ \csname XINT_#8Aux_series_a_\romannumeral\numexpr#1\expandafter\endcsname
+ \csname XINT_#8Aux_series_b\expandafter\endcsname
+ \csname XINT_#8Aux_series_c_\romannumeral\numexpr#1-2\expandafter\endcsname
+ \csname XINT_#8Aux_series_c_\romannumeral\numexpr#1-3\endcsname
+ \edef\XINT_tmpd
+ {\XINTinFloat[\XINTdigits-#2+8]{\xintDiv{\XINT_tmpd}{\the\numexpr#5*(#5-1)\relax}}}%
+ \let\XINT_tmpF\XINT_tmpG
+ \let\XINT_tmpG\XINT_tmpH
+ \edef\XINT_tmpH{\XINTinFloat[\XINTdigits-#2]{\XINT_tmpd}}%
+ \expandafter\XINT_tmpc
+ \the\numexpr\XINTdigits-#3\expandafter.%
+ \the\numexpr\XINTdigits-#2\expandafter.\expanded{%
+ \XINT_tmpH.%
+ \XINT_tmpG.%
+ \XINT_tmpF.%
+ }%
+}%
+\XINT_tmpa 4 -1 -2 -4 7 5 3 Sin %
+\ifnum\XINTdigits>3 \XINT_tmpa 5 1 -1 -2 9 7 5 Sin \fi
+\ifnum\XINTdigits>5 \XINT_tmpa 6 3 1 -1 11 9 7 Sin \fi
+\ifnum\XINTdigits>8 \XINT_tmpa 7 6 3 1 13 11 9 Sin \fi
+\ifnum\XINTdigits>11 \XINT_tmpa 8 9 6 3 15 13 11 Sin \fi
+\ifnum\XINTdigits>14 \XINT_tmpa 9 12 9 6 17 15 13 Sin \fi
+\ifnum\XINTdigits>16 \XINT_tmpa 10 14 12 9 19 17 15 Sin \fi
+\ifnum\XINTdigits>19 \XINT_tmpa 11 17 14 12 21 19 17 Sin \fi
+\ifnum\XINTdigits>22 \XINT_tmpa 12 20 17 14 23 21 19 Sin \fi
+\ifnum\XINTdigits>25 \XINT_tmpa 13 23 20 17 25 23 21 Sin \fi
+\ifnum\XINTdigits>28 \XINT_tmpa 14 26 23 20 27 25 23 Sin \fi
+\ifnum\XINTdigits>31 \XINT_tmpa 15 29 26 23 29 27 25 Sin \fi
+\ifnum\XINTdigits>34 \XINT_tmpa 16 32 29 26 31 29 27 Sin \fi
+\ifnum\XINTdigits>37 \XINT_tmpa 17 35 32 29 33 31 29 Sin \fi
+\ifnum\XINTdigits>40 \XINT_tmpa 18 38 35 32 35 33 31 Sin \fi
+\ifnum\XINTdigits>44 \XINT_tmpa 19 42 38 35 37 35 33 Sin \fi
+\ifnum\XINTdigits>47 \XINT_tmpa 20 45 42 38 39 37 35 Sin \fi
+\ifnum\XINTdigits>51 \XINT_tmpa 21 49 45 42 41 39 37 Sin \fi
+\ifnum\XINTdigits>55 \XINT_tmpa 22 53 49 45 43 41 39 Sin \fi
+\ifnum\XINTdigits>58 \XINT_tmpa 23 56 53 49 45 43 41 Sin \fi
+\edef\XINT_tmpd % 1/4!
+ {41\xintReplicate{\XINTdigits+8}{6}7[\the\numexpr-\XINTdigits-12]}%
+\edef\XINT_tmpH % 1/4!
+ {41\xintReplicate{\XINTdigits}{6}7[\the\numexpr-\XINTdigits-4]}%
+\def\XINT_tmpG{5[-1]}% 1/2!
+\expandafter\XINT_tmpe
+ \the\numexpr\XINTdigits+4\expandafter.%
+ \the\numexpr\XINTdigits+3\expandafter.\expanded{%
+ \XINT_tmpH.%
+ \XINT_tmpG.%
+ \expandafter}%
+ \csname XINT_CosAux_series_a_iii\expandafter\endcsname
+ \csname XINT_CosAux_series_b\expandafter\endcsname
+ \csname XINT_CosAux_series_c_i\endcsname
+\XINT_tmpa 4 -2 -3 -4 6 4 2 Cos %
+\ifnum\XINTdigits>2 \XINT_tmpa 5 0 -2 -3 8 6 4 Cos \fi
+\ifnum\XINTdigits>4 \XINT_tmpa 6 2 0 -2 10 8 6 Cos \fi
+\ifnum\XINTdigits>7 \XINT_tmpa 7 5 2 0 12 10 8 Cos \fi
+\ifnum\XINTdigits>9 \XINT_tmpa 8 7 5 2 14 12 10 Cos \fi
+\ifnum\XINTdigits>12 \XINT_tmpa 9 10 7 5 16 14 12 Cos \fi
+\ifnum\XINTdigits>15 \XINT_tmpa 10 13 10 7 18 16 14 Cos \fi
+\ifnum\XINTdigits>18 \XINT_tmpa 11 16 13 10 20 18 16 Cos \fi
+\ifnum\XINTdigits>20 \XINT_tmpa 12 18 16 13 22 20 18 Cos \fi
+\ifnum\XINTdigits>24 \XINT_tmpa 13 22 18 16 24 22 20 Cos \fi
+\ifnum\XINTdigits>27 \XINT_tmpa 14 25 22 18 26 24 22 Cos \fi
+\ifnum\XINTdigits>30 \XINT_tmpa 15 28 25 22 28 26 24 Cos \fi
+\ifnum\XINTdigits>33 \XINT_tmpa 16 31 28 25 30 28 26 Cos \fi
+\ifnum\XINTdigits>36 \XINT_tmpa 17 34 31 28 32 30 28 Cos \fi
+\ifnum\XINTdigits>39 \XINT_tmpa 18 37 34 31 34 32 30 Cos \fi
+\ifnum\XINTdigits>42 \XINT_tmpa 19 40 37 34 36 34 32 Cos \fi
+\ifnum\XINTdigits>45 \XINT_tmpa 20 43 40 37 38 36 34 Cos \fi
+\ifnum\XINTdigits>49 \XINT_tmpa 21 47 43 40 40 38 36 Cos \fi
+\ifnum\XINTdigits>53 \XINT_tmpa 22 51 47 43 42 40 38 Cos \fi
+\ifnum\XINTdigits>57 \XINT_tmpa 23 55 51 47 44 42 40 Cos \fi
+\ifnum\XINTdigits>60 \XINT_tmpa 24 58 55 51 46 44 42 Cos \fi
+\let\XINT_tmpH\xint_undefined\let\XINT_tmpG\xint_undefined\let\XINT_tmpF\xint_undefined
+\let\XINT_tmpd\xint_undefined\let\XINT_tmpe\xint_undefined
+\def\XINT_SinAux_series#1%
+{%
+ \expandafter\XINT_SinAux_series_a_iii
+ \romannumeral0\XINTinfloatS[\XINTdigits+4]{#1}\xint:
+}%
+\def\XINT_CosAux_series#1%
+{%
+ \expandafter\XINT_CosAux_series_a_iii
+ \romannumeral0\XINTinfloatS[\XINTdigits+4]{#1}\xint:
+}%
+\fi % end of \XINTdigits>8
+% \end{macrocode}
+% \subsubsection{The poor man approximate but speedier approach for Digits at most 8}
+% \begin{macrocode}
+\ifnum\XINTdigits<9
+\def\XINT_SinAux_series#1%
+{%
+ \the\numexpr\expandafter\XINT_SinAux_b\romannumeral0\xintiround9{#1}.[-9]%
+}%
+\def\XINT_SinAux_b#1.%
+{%
+ ((((((((((((%(\xint_c_x^ix/-210)
+ -4761905*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -156)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -110)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -72)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -42)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -20)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -6)*#1/\xint_c_x^ix+\xint_c_x^ix
+}%
+\def\XINT_CosAux_series#1%
+{%
+ \the\numexpr\expandafter\XINT_CosAux_b\romannumeral0\xintiround9{#1}.[-9]%
+}%
+\def\XINT_CosAux_b#1.%
+{%
+ ((((((((((((((%(\xint_c_x^ix/-240)
+ -4166667*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -182)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -132)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -90)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -56)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -30)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -12)*#1/\xint_c_x^ix+\xint_c_x^ix)/%
+ -2)*#1/\xint_c_x^ix+\xint_c_x^ix
+}%
+\fi
% \end{macrocode}
-% \subsubsection{\cshn{sin_()}, \cshn{cos_()}}
-% \lverb|&
-% Use this only between -pi/4 and pi/4
-% |
+% \subsubsection{Declarations of the \cshn{@sin_aux()} and \cshn{@cos_aux()} functions}
% \begin{macrocode}
-\xintdeffloatfunc sin_(x) := x * sin_aux(sqr(x));%
+\def\XINT_flexpr_func_@sin_aux#1#2#3%
+{%
+ \expandafter #1\expandafter #2\expandafter{%
+ \romannumeral`&&@\XINT:NEhook:f:one:from:one
+ {\romannumeral`&&@\XINT_SinAux_series#3}}%
+}%
+\def\XINT_flexpr_func_@cos_aux#1#2#3%
+{%
+ \expandafter #1\expandafter #2\expandafter{%
+ \romannumeral`&&@\XINT:NEhook:f:one:from:one
+ {\romannumeral`&&@\XINT_CosAux_series#3}}%
+}%
% \end{macrocode}
-% \lverb|&
-% Use this only between -pi/4 and pi/4
-% |
+% \subsubsection{\cshn{@sin_series()}, \cshn{@cos_series()}}
% \begin{macrocode}
-\xintdeffloatfunc cos_(x) := cos_aux(sqr(x));%
+\xintdeffloatfunc @sin_series(x) := x * @sin_aux(sqr(x));%
+\xintdeffloatfunc @cos_series(x) := @cos_aux(sqr(x));%
% \end{macrocode}
% \subsection{Range reduction for sine and cosine using degrees}
%
-% Notice that even when handling radians it is much better to convert to
-% degrees and then do range reduction there, because this can be done in the
-% fixed point sense. I lost 1h puzzled about some mismatch of my results with
-% those of Maple (at 16 digits) near -π. Turns out that Maple probably adds π
+% \lverb|&
+% As commented in the package introduction, Range reduction is a demanding
+% domain and we handle it semi-satisfactorily. The main problem is that in
+% January 2019 I had done only support for degrees, and when I added radians I
+% used the most naive approach. But one can find worse: in 2019 I was
+% surprised to have importent divergences with Maple's results at 16 digits
+% near -π. Turns out that Maple probably adds π
% in the floating point sense causing catastrophic loss of digits when one is
-% near -π. On the other hand my sin(x) function will first convert to degrees
-% then add 180 without any loss of floating point precision, even for a result
-% near zero, then convert back to radians and use the sine series.
+% near -π. On the other hand even though the approach here is still naive, it
+% behaves much better.
+%
+% The @sind_rr() and @cosd_rr() sine and cosine "doing range reduction" are
+% coded directly at macro level via \xintSind and \xintCosd which will
+% dispatch to usage of the sine or cosine series, depending on case.
%
-% \subsubsection{Core level macro \csh{XINT_mod_ccclx_i}}
+% Old note from 2019: attention that \xintSind and \xintCosd must be used
+% with a positive argument.
+%
+% We start with an auxiliary macro to reduce modulo 360 quickly.
+% |
+% \subsubsection{Low level modulo 360 helper macro \csh{XINT_mod_ccclx_i}}
% \lverb|&
% input: \the\numexpr\XINT_mod_ccclx_i k.N. (delimited by dots)
%
% output: (N times 10^k) modulo 360. (with a final dot)
%
-% Attention N must be non-negative (I could make it accept negative
+% Attention that N must be non-negative (I could make it accept negative
% but the fact that numexpr / is not periodical in numerator
% adds overhead).
%
@@ -42334,15 +43137,15 @@ math shift catcode.
% group generated by it modulo 360 is the set of multiples of 40.
% |
% \begin{macrocode}
-\def\XINT_mod_ccclx_i #1.% input <k>.<N>. k is a non-negative exponent
+\def\XINT_mod_ccclx_i #1.%
{%
\expandafter\XINT_mod_ccclx_e\the\numexpr
\expandafter\XINT_mod_ccclx_j\the\numexpr1\ifcase#1 \or0\or00\else000\fi.%
}%
-\def\XINT_mod_ccclx_j 1#1.#2.% #2=N is a non-negative mantissa
+\def\XINT_mod_ccclx_j 1#1.#2.%
{%
(\XINT_mod_ccclx_ja {++}#2#1\XINT_mod_ccclx_jb 0000000\relax
-}% 1 2345678
+}%
\def\XINT_mod_ccclx_ja #1#2#3#4#5#6#7#8#9%
{%
#9+#8+#7+#6+#5+#4+#3+#2\xint_firstoftwo{+\XINT_mod_ccclx_ja{+#9+#8+#7}}{#1}%
@@ -42358,47 +43161,55 @@ math shift catcode.
\def\XINT_mod_ccclx_e#1.{\expandafter\XINT_mod_ccclx_z\the\numexpr(#1+180)/360-1.#1.}%
\def\XINT_mod_ccclx_z#1.#2.{#2-360*#1.}%
% \end{macrocode}
-% \subsubsection{\cshn{sind_()}, \cshn{cosd_()}, and support macros \csh{xintSind}, \csh{xintCosd}}
-% \lverb|&
-%
-% sind_() coded directly at macro level with a macro \xintSind (ATTENTION! it
-% requires a positive argument)
-% which will suitably use \XINT_flexpr_func_sin_ defined from \xintdeffloatfunc
-% |
+% \subsubsection{\cshn{@sind_rr()} function and its support macro \csh{xintSind}}
% \begin{macrocode}
-\def\XINT_flexpr_func_sind_ #1#2#3%
+\def\XINT_flexpr_func_@sind_rr #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one{\romannumeral`&&@\xintSind#3}}%
}%
% \end{macrocode}
% \lverb|&
-% Must be f-expandable for nesting macros from \xintNewExpr
+% old comment: Must be f-expandable for nesting macros from \xintNewExpr
%
-% ATTENTION ONLY FOR POSITIVE ARGUMENTS
+% This is where the prize of using the same macros for two distinct use cases
+% has serious disadvantages. The reason of Digits+12 is only to support an
+% input which contains a multiplication by @oneRadian with its extended
+% digits.
+%
+% Then we do a somewhat strange truncation to a fixed point of fractional
+% digits, which is ok in the "Degrees" case, but causes issues of its own in
+% the "Radians" case. Please consider this whole thing as marked for future
+% improvement, when times allows.
+%
+% ATTENTION \xintSind ONLY FOR POSITIVE ARGUMENTS
% |
% \begin{macrocode}
-\def\XINT_expr_unlock{\expandafter\xint_firstofone\romannumeral`&&@}%
-\def\xintSind#1{\romannumeral`&&@\expandafter\xintsind
- \romannumeral0\XINTinfloatS[\XINTdigits]{#1}}%
+\def\XINT_tmpa #1.{%
+\def\xintSind##1%
+{%
+ \romannumeral`&&@\expandafter\xintsind\romannumeral0\XINTinfloatS[#1]{##1}}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+12.%
\def\xintsind #1[#2#3]%
{%
\xint_UDsignfork
#2\XINT_sind
-\XINT_sind_int
- \krof#2#3.#1..%<< attention extra dot
+ \krof#2#3.#1..%
}%
-\def\XINT_sind #1.#2.% NOT TO BE USED WITH VANISHING (OR NEGATIVE) #2.
+\def\XINT_tmpa #1.{%
+\def\XINT_sind ##1.##2.%
{%
\expandafter\XINT_sind_a
- \romannumeral0\xinttrunc{\XINTdigits}{#2[#1]}%
+ \romannumeral0\xinttrunc{#1}{##2[##1]}%
}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+5.%
\def\XINT_sind_a{\expandafter\XINT_sind_i\the\numexpr\XINT_mod_ccclx_i0.}%
\def\XINT_sind_int
{%
\expandafter\XINT_sind_i\the\numexpr\expandafter\XINT_mod_ccclx_i
}%
-\def\XINT_sind_i #1.% range reduction inside [0, 360[
+\def\XINT_sind_i #1.%
{%
\ifcase\numexpr#1/90\relax
\expandafter\XINT_sind_A
@@ -42409,82 +43220,58 @@ math shift catcode.
\fi#1.%
}%
% \end{macrocode}
-% \lverb|&
-% #2 will be empty in the "integer branch". Notice that a single dot "." is
-% valid as input to the xintfrac macros. During developing phase I did many
-% silly mistakes due to wanting to use too low-level interface, e.g. I would
-% use something like #2[-\XINTdigits] with #2 the fractional digits, but there
-% maybe some leading zero and then xintfrac.sty will think the whole thing is
-% zero due to the requirements of my own core format A[N]....
-%
-% Multiplication is done exactly but anyway currently float multiplication
-% goes via exact multiplication after rounding arguments ; as here integer
-% part has at most three digits, doing exact multiplication will prove
-% not only more accurate but probably faster.
-% |
% \begin{macrocode}
-\def\XINT_sind_A#1{%
+\def\XINT_tmpa #1.#2.{%
\def\XINT_sind_A##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_sind_A\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_sind_B#1{\xint_UDsignfork#1\XINT_sind_B_n-\XINT_sind_B_p\krof #1}%
-\def\XINT_tmpa#1{%
\def\XINT_sind_B_n-##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
\def\XINT_sind_B_p##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_sind_C#1{\xint_UDsignfork#1\XINT_sind_C_n-\XINT_sind_C_p\krof #1}%
-\def\XINT_tmpa#1{%
\def\XINT_sind_C_n-##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
\def\XINT_sind_C_p##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_sind_D#1{\xint_UDsignfork#1\XINT_sind_D_n-\XINT_sind_D_p\krof #1}%
-\def\XINT_tmpa#1{%
\def\XINT_sind_D_n-##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
\def\XINT_sind_D_p##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_sind_E#1{%
\def\XINT_sind_E-##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
-}\expandafter
-\XINT_sind_E\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits+4\expandafter.%
+ \romannumeral`&&@\xintbarefloateval @oneDegree\relax.%
+\def\XINT_sind_B#1{\xint_UDsignfork#1\XINT_sind_B_n-\XINT_sind_B_p\krof #1}%
+\def\XINT_sind_C#1{\xint_UDsignfork#1\XINT_sind_C_n-\XINT_sind_C_p\krof #1}%
+\def\XINT_sind_D#1{\xint_UDsignfork#1\XINT_sind_D_n-\XINT_sind_D_p\krof #1}%
% \end{macrocode}
-% \lverb|The cosd_ auxiliary function|
+% \subsubsection{\cshn{@cosd_rr()} function and its support macro \csh{xintCosd}}
% \begin{macrocode}
-\def\XINT_flexpr_func_cosd_ #1#2#3%
+\def\XINT_flexpr_func_@cosd_rr #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one{\romannumeral`&&@\xintCosd#3}}%
@@ -42494,20 +43281,25 @@ math shift catcode.
% ATTENTION ONLY FOR POSITIVE ARGUMENTS
% |
% \begin{macrocode}
-\def\xintCosd#1{\romannumeral`&&@\expandafter\xintcosd
- \romannumeral0\XINTinfloatS[\XINTdigits]{#1}}%
+\def\XINT_tmpa #1.{%
+\def\xintCosd##1%
+{%
+ \romannumeral`&&@\expandafter\xintcosd\romannumeral0\XINTinfloatS[#1]{##1}}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+12.%
\def\xintcosd #1[#2#3]%
{%
\xint_UDsignfork
#2\XINT_cosd
-\XINT_cosd_int
- \krof#2#3.#1..%<< attention extra dot
+ \krof#2#3.#1..%
}%
-\def\XINT_cosd #1.#2.% NOT TO BE USED WITH VANISHING (OR NEGATIVE) #2.
+\def\XINT_tmpa #1.{%
+\def\XINT_cosd ##1.##2.%
{%
\expandafter\XINT_cosd_a
- \romannumeral0\xinttrunc{\XINTdigits}{#2[#1]}%
+ \romannumeral0\xinttrunc{#1}{##2[##1]}%
}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+5.%
\def\XINT_cosd_a{\expandafter\XINT_cosd_i\the\numexpr\XINT_mod_ccclx_i0.}%
\def\XINT_cosd_int
{%
@@ -42529,390 +43321,433 @@ math shift catcode.
% 180, 270, or 360, and avoid abusing A[N] notation which yes speeds up
% xintfrac parsing but has its pitfalls.|
% \begin{macrocode}
-\def\XINT_cosd_A#1{%
+\def\XINT_tmpa#1.#2.{%
\def\XINT_cosd_A##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_cosd_A\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_cosd_B#1{\xint_UDsignfork#1\XINT_cosd_B_n-\XINT_cosd_B_p\krof #1}%
-\def\XINT_tmpa#1{%
\def\XINT_cosd_B_n-##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
\def\XINT_cosd_B_p##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_cosd_C#1{\xint_UDsignfork#1\XINT_cosd_C_n-\XINT_cosd_C_p\krof #1}%
-\def\XINT_tmpa#1{%
\def\XINT_cosd_C_n-##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
\def\XINT_cosd_C_p##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_cosd_D#1{\xint_UDsignfork#1\XINT_cosd_D_n-\XINT_cosd_D_p\krof #1}%
-\def\XINT_tmpa#1{%
\def\XINT_cosd_D_n-##1.##2.%
{%
- \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
\def\XINT_cosd_D_p##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}%
}%
-}\expandafter
-\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
-\def\XINT_cosd_E#1{%
\def\XINT_cosd_E-##1.##2.%
{%
- \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter
- {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}%
+ \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter
+ {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}%
}%
-}\expandafter
-\XINT_cosd_E\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits+4\expandafter.%
+ \romannumeral`&&@\xintbarefloateval @oneDegree\relax.%
+\def\XINT_cosd_B#1{\xint_UDsignfork#1\XINT_cosd_B_n-\XINT_cosd_B_p\krof #1}%
+\def\XINT_cosd_C#1{\xint_UDsignfork#1\XINT_cosd_C_n-\XINT_cosd_C_p\krof #1}%
+\def\XINT_cosd_D#1{\xint_UDsignfork#1\XINT_cosd_D_n-\XINT_cosd_D_p\krof #1}%
% \end{macrocode}
-% \subsection{\cshn{sind()}, \cshn{cosd()}}
+% \subsection{\cshn{@sind()}, \cshn{@cosd()}}
+% \lverb|&
+% The -45 is stored internally as -45/1[0] from the action of the unary minus
+% operator, which float macros then parse faster. The 45e0 is to let it become
+% 45[0] and not simply 45.
+%
+% Here and below the \ifnum\XINTdigits>8 45\else60\fi will all be resolved
+% at time of definition. This is the charm and power of expandable parsers!
+% |
% \begin{macrocode}
-\xintdeffloatfunc sind(x) := (x)??
- {(x>=-45)?
- {sin_(x*oneDegree)}
- {-sind_(-x)}
+\xintdeffloatfunc @sind(x) := (x)??
+ {(x>=-\ifnum\XINTdigits>8 45\else60\fi)?
+ {@sin_series(x*@oneDegree)}
+ {-@sind_rr(-x)}
}
- {0}
- {(x<=45)?
- {sin_(x*oneDegree)}
- {sind_(x)}
+ {0e0}
+ {(x<=\ifnum\XINTdigits>8 45\else60\fi e0)?
+ {@sin_series(x*@oneDegree)}
+ {@sind_rr(x)}
}
;%
-\xintdeffloatfunc cosd(x) := (x)??
- {(x>=-45)?
- {cos_(x*oneDegree)}
- {cosd_(-x)}
+\xintdeffloatfunc @cosd(x) := (x)??
+ {(x>=-\ifnum\XINTdigits>8 45\else60\fi)?
+ {@cos_series(x*@oneDegree)}
+ {@cosd_rr(-x)}
}
- {1}
- {(x<=45)?
- {cos_(x*oneDegree)}
- {cosd_(x)}
+ {1e0}
+ {(x<=\ifnum\XINTdigits>8 45\else60\fi e0)?
+ {@cos_series(x*@oneDegree)}
+ {@cosd_rr(x)}
}
;%
% \end{macrocode}
-% \subsection{\cshn{sin()}, \cshn{cos()}}
+% \subsection{\cshn{@sin()}, \cshn{@cos()}}
% \lverb|&
% For some reason I did not define sin() and cos() in January 2019 ??
+%
+% The sub \xintexpr x*@oneRadian\relax means that the multiplication will be
+% done exactly @oneRadian having its 12 extra digits (and x its 4 extra
+% digits), before being rounded in entrance of \xintSind, respectively
+% \xintCosd, to P+12 mantissa.
+%
+% The strange 79e-2 could be 0.79 which would give 79[-2] internally too.
% |
% \begin{macrocode}
-\xintdeffloatfunc sin(x):= (abs(x)<0.79)?
- {sin_(x)}
+\xintdeffloatfunc @sin(x):= (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi)?
+ {@sin_series(x)}
{(x)??
- {-sind_(-x*oneRadian)}
+ {-@sind_rr(-\xintexpr x*@oneRadian\relax)}
{0}
- {sind_(x*oneRadian)}
+ {@sind_rr(\xintexpr x*@oneRadian\relax)}
}
;%
-\xintdeffloatfunc cos(x):= (abs(x)<0.79)?
- {cos_(x)}
- {cosd_(abs(x*oneRadian))}
+\xintdeffloatfunc @cos(x):= (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi)?
+ {@cos_series(x)}
+ {@cosd_rr(abs(\xintexpr x*@oneRadian\relax))}
;%
% \end{macrocode}
-% \subsection{\cshn{sinc()}}
+% \subsection{\cshn{@sinc()}}
% \lverb|&
% Should I also consider adding (1-cos(x))/(x^2/2) ? it is sinc^2(x/2) but
% avoids a square.
% |
% \begin{macrocode}
-\xintdeffloatfunc sinc(x):= (abs(x)<0.79) ?
- {sin_aux(sqr(x))}
- {sind_(abs(x)*oneRadian)/abs(x)}
+\xintdeffloatfunc @sinc(x):= (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi) ?
+ {@sin_aux(sqr(x))}
+ {@sind_rr(\xintexpr abs(x)*@oneRadian\relax)/abs(x)}
;%
% \end{macrocode}
-% \subsection{\cshn{tan()}, \cshn{tand()}, \cshn{cot()}, \cshn{cotd()}}
-% \lverb|The 0 in cot(x) is a dummy place holder, 1/0 would raise an error at
+% \subsection{\cshn{@tan()}, \cshn{@tand()}, \cshn{@cot()}, \cshn{@cotd()}}
+% \lverb|The 0e0 in cot(x) is a dummy place holder, 1/0 would raise an error at
% time of definition...|
% \begin{macrocode}
-\xintdeffloatfunc tand(x):= sind(x)/cosd(x);%
-\xintdeffloatfunc cotd(x):= cosd(x)/sind(x);%
-\xintdeffloatfunc tan(x) := (x)??
- {(x>-0.79)?
- {sin(x)/cos(x)}
- {-cotd(90+x*oneRadian)
+\xintdeffloatfunc @tand(x):= @sind(x)/@cosd(x);%
+\xintdeffloatfunc @cotd(x):= @cosd(x)/@sind(x);%
+\xintdeffloatfunc @tan(x) := (x)??
+ {(x>-\ifnum\XINTdigits>8 79e-2\else1e0\fi)?
+ {@sin(x)/@cos(x)}
+ {-@cotd(\xintexpr9e1+x*@oneRadian\relax)
}
}
- {0}
- {(x<0.79)?
- {sin(x)/cos(x)}
- {cotd(90-x*oneRadian)}
+ {0e0}
+ {(x<\ifnum\XINTdigits>8 79e-2\else1e0\fi)?
+ {@sin(x)/@cos(x)}
+ {@cotd(\xintexpr9e1-x*@oneRadian\relax)}
}
;%
-\xintdeffloatfunc cot(x) := (abs(x)<0.79)?
- {cos(x)/sin(x)}
+\xintdeffloatfunc @cot(x) := (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi)?
+ {@cos(x)/@sin(x)}
{(x)??
- {-tand(90+x*oneRadian)}
- {0}
- {tand(90-x*oneRadian)}
+ {-@tand(\xintexpr9e1+x*@oneRadian\relax)}
+ {0e0}
+ {@tand(\xintexpr9e1-x*@oneRadian\relax)}
};%
% \end{macrocode}
-%
-% \subsection{\cshn{sec()}, \cshn{secd()}, \cshn{csc()}, \cshn{cscd()}}
+% \subsection{\cshn{@sec()}, \cshn{@secd()}, \cshn{@csc()}, \cshn{@cscd()}}
% \begin{macrocode}
-\xintdeffloatfunc sec(x) := inv(cos(x));%
-\xintdeffloatfunc csc(x) := inv(sin(x));%
-\xintdeffloatfunc secd(x):= inv(cosd(x));%
-\xintdeffloatfunc cscd(x):= inv(sind(x));%
+\xintdeffloatfunc @sec(x) := inv(@cos(x));%
+\xintdeffloatfunc @csc(x) := inv(@sin(x));%
+\xintdeffloatfunc @secd(x):= inv(@cosd(x));%
+\xintdeffloatfunc @cscd(x):= inv(@sind(x));%
% \end{macrocode}
% \subsection{Core routine for inverse trigonometry}
+%
% \lverb|&
-% Compute asin(x)
-%
-% The approach I shall first describe (which is only a first step towards our
-% final approach) converges quintically but requires an initial square root
-% computation. For atan(x), we do not have to do any
-% such square root extraction. See code next.
-%
-% The algorithm (for this first approach): we have 0 <= t < 0.72,
-% let t1 = t*(1+t^2/6). We also have
-% u = sqrt(1 - t^2). We seek a = Arcsin t with t = sin(a).
-%
-% Then t1 < Arcsin t and the difference (we don't know it!) δ_1 is < 0.02.
-% We compute D = t*cos(t1)-u*sin(t1). This computation is done "exactly" via
-% the \xintexpr encapsulation. In other terms we use doubled precision.
-% Anyhow, currently (1.3e) the Float macros of xintfrac.sty for multiplication
-% do go via such exact multiplication when the mantissas have the expected
-% sizes. So we can't gain but only lose due to catastrophic subtraction in
-% using float operations here.
-%
-% Thus D is sin(a-t1) = sin(δ_1). And δ_1 = Arcsin D, but D is small!
-% We then use again two terms of the Arcsin series and define
-% t2 = t1 + D * (1 + D^2/6). Let δ_2 = a - t2. Then δ_2 is of the order of
-% the neglected term 3*(δ_1)^5/40.
-%
-% ©copyright J.F. Burnol, March 30, 2019. This surely has a name.
-%
-% The algorithm is quintically convergent.
-% One can do the same to go from exp to log. Basically the idea is that we can
-% improve the Newton Method for any function f for which knowing target value
-% of f implies one also knows target value of its derivative. In fact I
-% obtained the quintic algorithm by combining the Newton formula with the one
-% from using f(x)/f'(a) and not f(x)/f'(x) in the update to cancel the two
-% quadratic errors.
-%
-% One iteration (t2) gives about 9 digits, two iterations (t3) 49 digits !
-% And if we want hepta-convergence we only need to use one more term
-% of the Arcsin series in the update of the t_n... really this is very nice.
-%
-% And actually (t2) already gives 30 digits of floating point precision for
-% input t<0.1. Let's confirm this:
-%( > Digits := 60:
-%: > t0 := 0.1; t1 := t0*(1+t0^2/6); u0 := sqrt(1-t0^2); D1 :=t0*cos(t1)-u0*sin(t1);
-%: t0 := 0.1
-%:
-%: t1 := 0.100166666666666666666666666666666666666666666666666666666667
-%:
-%: u0 := 0.994987437106619954734479821001206005178126563676806079117605
-%:
-%: -6
-%: D1 := 0.7544948931296072722324333622021201414040837652959011668 10
-%:
-%: > t2 := t1 + D1*(1+D1^2/6);
-%: t2 := 0.100167421161559796345523179452674980956388959919827205633117
-%:
-%: > a := arcsin(0.1);
-%: a := 0.100167421161559796345523179452693318568675972229629541391024
-%: > t2/a;
-%: 0.999999999999999999999999999999816930374423480281306812814173
-%)
+% I always liked very much the general algorithm whose idea I found
+% in 2019. But it costs a square root plus a sine plus a cosine all
+% at target precision. For the arctangent the square root will be
+% avoided by a trick.
%
-% Each iteration costs a computation of one cos and one sine done at the full
-% final precision. This is stupid because we should compute at an evolving
-% precision, but anyhow this is not our problem anymore as our final algorithm
-% is not a loop but it does exactly one iteration for all inputs. As
-% examplified above it remains true that we could improve its speed for small
-% inputs by using shorter auxiliary series (see below).
-%
-% In January I used a loop via an iter() construct, with some subs() to avoid
-% repeating computations. This can only be done in an \xintNewFunction. Here
-% is how it looked after some optimization for the stopping criteria, after
-% replacing generic Newton algorithm by a specific quintic one for arcsine:
-%
-%( \begingroup
-%: \edef\x{\endgroup
-%: \noexpand\xintNewFunction{asin_l}[2]{%
-%: iter(##1*(1+sqr(##1)/6);%
-%: $% FIXME : réfléchir au critère d'arrêt.
-%: $%
-%: $% Je n'utilise pas abs(D) pour un micro-gain est-ce que le risque en vaut la
-%: $% chandelle ? (avec abs(D) on pourrait utiliser la fonction avec un #1 négatif)
-%: $%
-%: $% Am I sure rounding errors could not cause neverending loop?
-%: $% Such things should be done with increased precision and rounded at end.
-%: subs((D<\ifcase\numexpr2+\XINTdigits-5*(\XINTdigits/5)\relax
-%: 3.68\or2.32\or1.47\or0.923\or0.582\fi
-%: e-\the\numexpr\XINTdigits/5\relax)%
-%: ?{break(@+D*(1+sqr(D)/6))}{@+D*(1+sqr(D)/6)},%
-%: D=\noexpand\xintexpr
-%: subs(##1*cos_aux(X) - ##2*@*sin_aux(X), X=sqr(@))%
-%: \relax
-%: ),%
-%: i=1++)% dummy iteration index, not used but needed by iter()
-%: }}\x
-%)
+% And now I like it even more as I have re-done the first step entirely
+% in a single \numexpr... Thus the inverse trigonometry got a serious
+% improvement at 1.4e...
+%
+% Here is the idea. We have 0<t<sqrt(2)/2 and we want a = Arcsin t.
+%
+% Imagine we have some very good approximation b = a - h. We know b,
+% and don't know yet h. No problem h is a-b so sin(h)=sin(a)cos(b)-
+% cos(a)sin(b). And we know everything here: sin(a) is t, cos(a) is
+% u = sqrt(1-t^2), and we can compute cos(b) and sin(b).
+%
+% I said h was small so the computation of sin(a)cos(b)-cos(a)sin(b) will
+% involve a lot of cancellation, no problem with xint, as it knows how to
+% compute exactly... and if we wanted to go very low level we could do
+% cos(a)sin(b) paying attention only on least significant digits.
+%
+% Ok, so we have sin(h), but h is small, so the series of Arcsine can be used
+% with few terms!
%
-% I don't have time to explain the final algorithm below and how the
-% transition values were chosen or why (the series below is enough up to 59
-% digits of precision). It does only one iteration, in all cases. Using it for
-% arcsine requires a preliminary square root extraction, but for arctangent
-% one arranges things to avoid having to compute a square root.
+% In fact h will be at most of the order of 1e-9, so it is no problem to
+% simply replace sin(h) with h if the target precision is 16 !
%
+% Ok, so how do we obtain b, the good approximation to Arcsin t ? Simply by
+% using its Taylor series, embedded in a single \numexpr working with nine
+% digits numbers... I like this one! Notice that it reminisces with my
+% questioning about how to best do Horner like for sine and cosine. Here in
+% \numexpr we can only manipulate whole integers and simply can't do things
+% such as ...)*x + 5/112)*x + 3/40)*x + 1/6)*x +1 .... But I found another
+% way, see the code, which uses extensively the "scaling" operations in
+% \numexpr.
+%
+% I have not proven rigorously that b-a is always less or equal in absolute
+% value than 1e-9, but it is possible for example in Python to program it and
+% go through all possible (less than) 1e9 inputs and check what happens.
+%
+% Very small inputs will give b=0 (first step is a fixe point rounding of t to
+% nine fractional digits, so this rounding gives zero for input <0.5e-9,
+% others will give b=t, because the arcsine numexpr will end up with
+% 1000000000 (last time I checked that was for t a bit less than 5e-5,
+% the latter gives 1000000001).
+% All seems to work perfectly fine, in practice...
%
-% ©copyright J.F. Burnol, April 5, 2019. This surely has a name.
%
-% Certainly I can do similar things to compute logarithms.
% |
+%
+% \lverb|First we let the @sin_aux() and @cos_aux() functions be usable in exact
+% \xintexpr context.
+%
+% The @asin_II() function will be used only for Digits>16.|
% \begin{macrocode}
-\xintdeffloatfunc asin_aux(X) := 1
-\ifnum\XINTdigits>3 % actually 4 would achieve 1ulp in place of <0.5ulp
- + X(1/6
-\ifnum\XINTdigits>9
- + X(3/40
+\expandafter\let\csname XINT_expr_func_@sin_aux\expandafter\endcsname
+ \csname XINT_flexpr_func_@sin_aux\endcsname
+\expandafter\let\csname XINT_expr_func_@cos_aux\expandafter\endcsname
+ \csname XINT_flexpr_func_@cos_aux\endcsname
\ifnum\XINTdigits>16
- + X(5/112
-\ifnum\XINTdigits>25
- + X(35/1152
-\ifnum\XINTdigits>35
- + X(63/2816
-\ifnum\XINTdigits>46
- + X(231/13312
- )\fi)\fi)\fi)\fi)\fi)\fi;%
-\xintdeffloatfunc asin_o(D, T) := T + D*asin_aux(sqr(D));%
-\xintdeffloatfunc asin_n(V, T, t, u) :=% V is square of T
- asin_o (\xintexpr t*cos_aux(V) - u*T*sin_aux(V)\relax, T);%
-\xintdeffloatfunc asin_m(T, t, u) := asin_n(sqr(T), T, t, u);%
-\xintdeffloatfunc asin_l(t, u) := asin_m(t*asin_aux(sqr(t)), t, u);%
-% \end{macrocode}
-% \subsection{\cshn{asin()}, \cshn{asind()}}
+\def\XINT_flexpr_func_@asin_II#1#2#3%
+{%
+ \expandafter #1\expandafter #2\expandafter{%
+ \romannumeral`&&@\XINT:NEhook:f:one:from:one
+ {\romannumeral`&&@\XINT_Arcsin_II_a#3}}%
+}%
+\def\XINT_tmpc#1.%
+{%
+\def\XINT_Arcsin_II_a##1%
+{%
+ \expandafter\XINT_Arcsin_II_c_i\romannumeral0\XINTinfloatS[#1]{##1}%
+}%
+\def\XINT_Arcsin_II_c_i##1[##2]%
+{%
+ \xintAdd{1/1[0]}{##1/6[##2]}%
+}%
+}%
+\expandafter\XINT_tmpc\the\numexpr\XINTdigits-14.%
+\fi
+\ifnum\XINTdigits>34
+\def\XINT_tmpc#1.#2.#3.#4.%
+{%
+\def\XINT_Arcsin_II_a##1%
+{%
+ \expandafter\XINT_Arcsin_II_a_iii\romannumeral0\XINTinfloatS[#1]{##1}\xint:
+}%
+\def\XINT_Arcsin_II_a_iii##1\xint:
+{%
+ \expandafter\XINT_Arcsin_II_b\romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_Arcsin_II_b##1\xint:
+{%
+ \expandafter\XINT_Arcsin_II_c_i\romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{#3}{##1}}}\xint:
+}%
+\def\XINT_Arcsin_II_c_i##1\xint:##2\xint:
+{%
+ \xintAdd{1/1[0]}{\XINTinFloat[#1]{\xintMul{##1}{##2}}}%
+}%
+}%
+\expandafter\XINT_tmpc
+ \the\numexpr\XINTdigits-14\expandafter.%
+ \the\numexpr\XINTdigits-32\expandafter.\expanded{%
+ \XINTinFloat[\XINTdigits-32]{3/40[0]}.%
+ \XINTinFloat[\XINTdigits-14]{1/6[0]}.%
+ }%
+\fi
+\ifnum\XINTdigits>52
+\def\XINT_tmpc#1.#2.#3.#4.#5.%
+{%
+\def\XINT_Arcsin_II_a_iii##1\xint:
+{%
+ \expandafter\XINT_Arcsin_II_a_iv\romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_Arcsin_II_a_iv##1\xint:
+{%
+ \expandafter\XINT_Arcsin_II_b\romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_Arcsin_II_b##1\xint:
+{%
+ \expandafter\XINT_Arcsin_II_c_ii
+ \romannumeral0\xintadd{#4}{\XINTinfloat[#2]{\xintMul{#3}{##1}}}\xint:
+}%
+\def\XINT_Arcsin_II_c_ii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_Arcsin_II_c_i
+ \romannumeral0\xintadd{#5}{\XINTinFloat[#1]{\xintMul{##1}{##2}}}\xint:
+}%
+}%
+\expandafter\XINT_tmpc
+ \the\numexpr\XINTdigits-32\expandafter.%
+ \the\numexpr\XINTdigits-50\expandafter.\expanded{%
+ \XINTinFloat[\XINTdigits-50]{5/112[0]}.%
+ \XINTinFloat[\XINTdigits-32]{3/40[0]}.%
+ \XINTinFloat[\XINTdigits-14]{1/6[0]}.%
+ }%
+\fi
+\def\XINT_flexpr_func_@asin_I#1#2#3%
+{%
+ \expandafter #1\expandafter #2\expandafter{%
+ \romannumeral`&&@\XINT:NEhook:f:one:from:one
+ {\romannumeral`&&@\XINT_Arcsin_I#3}}%
+}%
+\def\XINT_Arcsin_I#1{\the\numexpr\expandafter\XINT_Arcsin_Ia\romannumeral0\xintiround9{#1}.}%
+\def\XINT_Arcsin_Ia#1.%
+{%
+ (\expandafter\XINT_Arcsin_Ib\the\numexpr#1*#1/\xint_c_x^ix.)*%
+ #1/\xint_c_x^ix[-9]%
+}%
+\def\XINT_Arcsin_Ib#1.%
+{%((((((((((((((((
+ % 3481/3660)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ % 3249/3422)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ % 3025/3192)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ % 2809/2970)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ % 2601/2756)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ % 2401/2550)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ % 2209/2352)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ % 2025/2162)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+((((((((((((((((((((((((((((((((((((((((((%
+ %(\xint_c_x^ix*1849/1980)*%
+ 933838384*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 1681/1806)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 1521/1640)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 1369/1482)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 1225/1332)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 1089/1190)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 961/1056)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 841/930)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 729/812)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 625/702)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 529/600)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 441/506)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 361/420)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 289/342)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 225/272)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 169/210)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 121/156)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 81/110)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 49/72)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 25/42)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 9/20)*#1/\xint_c_x^ix+\xint_c_x^ix)*%
+ 1/6)*#1/\xint_c_x^ix+\xint_c_x^ix
+}%
+\ifnum\XINTdigits>16
+ \xintdeffloatfunc @asin_o(D, T) := T + D*@asin_II(sqr(D));%
+ \xintdeffloatfunc @asin_n(V, T, t, u) :=%
+ @asin_o(\xintexpr t*@cos_aux(V) - u*T*@sin_aux(V)\relax, T);%
+\else
+ \xintdeffloatfunc @asin_n(V, T, t, u) :=%
+ \xintexpr t*@cos_aux(V) - u*T*@sin_aux(V)\relax + T;%
+\fi
+\xintdeffloatfunc @asin_m(T, t, u) := @asin_n(sqr(T), T, t, u);%
+\xintdeffloatfunc @asin_l(t, u) := @asin_m(@asin_I(t), t, u);%
+% \end{macrocode}
+% \subsection{\cshn{@asin()}, \cshn{@asind()}}
% \lverb|&
% Only non-negative arguments t and u for asin_a(t,u), and asind_a(t,u).
-% |
-%
-% \lverb|At 1.4 usage of sqrt_() which has only one argument, whereas
-% currently sqrt() admits a second optional argument hence sub-optimality here
-% if we use sqrt(), especially since 1.4 handles more fully such functions
-% with optional argument in \xintdeffunc.
-%
-% Actually thinking of making sqrt() a one argument only function and
-% sqrt_() will be the one with two arguments. But I worked hard on the
-% \xintdeffunc hooks, thus some reticence, because why then not do that
-% for all others?|
+% |
% \begin{macrocode}
-\xintdeffloatfunc asin_a(t, u) := (t<u)?
- {asin_l(t, u)}
- {Piover2 - asin_l(u, t)}
+\xintdeffloatfunc @asin_a(t, u) := (t<u)?
+ {@asin_l(t, u)}
+ {@Piover2 - @asin_l(u, t)}
;%
-\xintdeffloatfunc asind_a(t, u):= (t<u)?
- {asin_l(t, u) * oneRadian}
- {90 - asin_l(u, t) * oneRadian}
+\xintdeffloatfunc @asind_a(t, u):= (t<u)?
+ {@asin_l(t, u) * @oneRadian}
+ {9e1 - @asin_l(u, t) * @oneRadian}
;%
-\xintdeffloatfunc asin(t) := (t)??
- {-asin_a(-t, sqrt_(1-sqr(t)))}
- {0}
- {asin_a(t, sqrt_(1-sqr(t)))}
+\xintdeffloatfunc @asin(t) := (t)??
+ {-@asin_a(-t, sqrt(1e0-sqr(t)))}
+ {0e0}
+ {@asin_a(t, sqrt(1e0-sqr(t)))}
;%
-\xintdeffloatfunc asind(t) := (t)??
- {-asind_a(-t, sqrt_(1-sqr(t)))}
- {0}
- {asind_a(t, sqrt_(1-sqr(t)))}
+\xintdeffloatfunc @asind(t) := (t)??
+ {-@asind_a(-t, sqrt(1e0-sqr(t)))}
+ {0e0}
+ {@asind_a(t, sqrt(1e0-sqr(t)))}
;%
% \end{macrocode}
-% \subsection{\cshn{acos()}, \cshn{acosd()}}
+% \subsection{\cshn{@acos()}, \cshn{@acosd()}}
% \begin{macrocode}
-\xintdeffloatfunc acos(t) := Piover2 - asin(t);%
-\xintdeffloatfunc acosd(t):= 90 - asind(t);%
+\xintdeffloatfunc @acos(t) := @Piover2 - @asin(t);%
+\xintdeffloatfunc @acosd(t):= 9e1 - @asind(t);%
% \end{macrocode}
-% \subsection{\cshn{atan()}, \cshn{atand()}}
+% \subsection{\cshn{@atan()}, \cshn{@atand()}}
% \lverb|&
-% This involves no square root!
-%
-% TeX hackers note 1:
-%
-% The subs( , x = ..) mechanism has no utility in a function definition,
-% there is no parallel mechanism at the underlying macros, so in fact
-% the substituted things will remain unevaluated if they involve
-% indeterminates, so this is exactly like not trying to make things
-% more efficient at all.
-%
-% Currently, the only way is thus to employ auxiliary functions like is done
-% next. Contrarily to TeX macros, we must define the functions one after the
-% other in the correct order, so the auxiliaries come first.
-%
-% TeX hackers note 2:
-%
-% At 1.4, the way to inject lazy conditionals in function definitions has changed.
-% Prior one used if(,,) and ifsgn(,,,) which was counter-intuitive because
-% in pure numeric context they evaluate all branches. Now one must use ? and ??
-% which the are the lazy conditionals from the numeric context.
-%
+% Uses same core routine asin_l() as for asin(), but avoiding a square-root
+% extraction in preparing its arguments (to the cost of computing an inverse,
+% rather).
%
% radians
% |
% \begin{macrocode}
-\xintdeffloatfunc atan_b(t, w, z):= 0.5 * (w< 0)?
- {Pi - asin_a(2z * t, -w*z)}
- {asin_a(2z * t, w*z)}
+\xintdeffloatfunc @atan_b(t, w, z):= 5e-1 * (w< 0)?
+ {@Pi - @asin_a(2e0*z * t, -w*z)}
+ {@asin_a(2e0*z * t, w*z)}
;%
-\xintdeffloatfunc atan_a(t, T) := atan_b(t, 1-T, inv(1+T));%
-\xintdeffloatfunc atan(t):= (t)??
- {-atan_a(-t, sqr(t))}
+\xintdeffloatfunc @atan_a(t, T) := @atan_b(t, 1e0-T, inv(1e0+T));%
+\xintdeffloatfunc @atan(t):= (t)??
+ {-@atan_a(-t, sqr(t))}
{0}
- {atan_a(t, sqr(t))}
+ {@atan_a(t, sqr(t))}
;%
% \end{macrocode}
% \lverb|&
% degrees
% |
% \begin{macrocode}
-\xintdeffloatfunc atand_b(t, w, z) := 0.5 * (w< 0)?
- {180 - asind_a(2z * t, -w*z)}
- {asind_a(2z * t, w*z)}
+\xintdeffloatfunc @atand_b(t, w, z) := 5e-1 * (w< 0)?
+ {18e1 - @asind_a(2e0*z * t, -w*z)}
+ {@asind_a(2e0*z * t, w*z)}
;%
-\xintdeffloatfunc atand_a(t, T) := atand_b(t, 1-T, inv(1+T));%
-\xintdeffloatfunc atand(t) := (t)??
- {-atand_a(-t, sqr(t))}
+\xintdeffloatfunc @atand_a(t, T) := @atand_b(t, 1e0-T, inv(1e0+T));%
+\xintdeffloatfunc @atand(t) := (t)??
+ {-@atand_a(-t, sqr(t))}
{0}
- {atand_a(t, sqr(t))}
+ {@atand_a(t, sqr(t))}
;%
% \end{macrocode}
-% \subsection{\cshn{Arg()}, \cshn{atan2()}, \cshn{Argd()}, \cshn{atan2d()}, \cshn{pArg()}, \cshn{pArgd()}}
+% \subsection{\cshn{@Arg()}, \cshn{@atan2()}, \cshn{@Argd()}, \cshn{@atan2d()}, \cshn{@pArg()}, \cshn{@pArgd()}}
% \lverb|&
% Arg(x,y) function from -π (excluded) to +π (included)
% |
% \begin{macrocode}
-\xintdeffloatfunc Arg(x, y):= (y>x)?
+\xintdeffloatfunc @Arg(x, y):= (y>x)?
{(y>-x)?
- {Piover2 - atan(x/y)}
+ {@Piover2 - @atan(x/y)}
{(y<0)?
- {-Pi + atan(y/x)}
- {Pi + atan(y/x)}
+ {-@Pi + @atan(y/x)}
+ {@Pi + @atan(y/x)}
}
}
{(y>-x)?
- {atan(y/x)}
- {-Piover2 + atan(x/-y)}
+ {@atan(y/x)}
+ {-@Piover2 + @atan(x/-y)}
}
;%
% \end{macrocode}
@@ -42921,23 +43756,23 @@ math shift catcode.
% but the convention here seems the most often encountered)
% |
% \begin{macrocode}
-\xintdeffloatfunc atan2(y,x) := Arg(x, y);%
+\xintdeffloatfunc @atan2(y,x) := @Arg(x, y);%
% \end{macrocode}
% \lverb|&
% Argd(x,y) function from -180 (excluded) to +180 (included)
% |
% \begin{macrocode}
-\xintdeffloatfunc Argd(x, y):= (y>x)?
+\xintdeffloatfunc @Argd(x, y):= (y>x)?
{(y>-x)?
- {90 - atand(x/y)}
+ {9e1 - @atand(x/y)}
{(y<0)?
- {-180 + atand(y/x)}
- {180 + atand(y/x)}
+ {-18e1 + @atand(y/x)}
+ {18e1 + @atand(y/x)}
}
}
{(y>-x)?
- {atand(y/x)}
- {-90 + atand(x/-y)}
+ {@atand(y/x)}
+ {-9e1 + @atand(x/-y)}
}
;%
% \end{macrocode}
@@ -42945,24 +43780,24 @@ math shift catcode.
% atan2d(y,x) = Argd(x,y)
% |
% \begin{macrocode}
-\xintdeffloatfunc atan2d(y,x) := Argd(x, y);%
+\xintdeffloatfunc @atan2d(y,x) := @Argd(x, y);%
% \end{macrocode}
% \lverb|&
% pArg(x,y) function from 0 (included) to 2π (excluded)
% I hesitated between pArg, Argpos, and Argplus. Opting for pArg in the end.
% |
% \begin{macrocode}
-\xintdeffloatfunc pArg(x, y):= (y>x)?
+\xintdeffloatfunc @pArg(x, y):= (y>x)?
{(y>-x)?
- {Piover2 - atan(x/y)}
- {Pi + atan(y/x)}
+ {@Piover2 - @atan(x/y)}
+ {@Pi + @atan(y/x)}
}
{(y>-x)?
{(y<0)?
- {twoPi + atan(y/x)}
- {atan(y/x)}
+ {@twoPi + @atan(y/x)}
+ {@atan(y/x)}
}
- {threePiover2 + atan(x/-y)}
+ {@threePiover2 + @atan(x/-y)}
}
;%
% \end{macrocode}
@@ -42970,54 +43805,92 @@ math shift catcode.
% pArgd(x,y) function from 0 (included) to 360 (excluded)
% |
% \begin{macrocode}
-\xintdeffloatfunc pArgd(x, y):=(y>x)?
+\xintdeffloatfunc @pArgd(x, y):=(y>x)?
{(y>-x)?
- {90 - atan(x/y)*oneRadian}
- {180 + atan(y/x)*oneRadian}
+ {9e1 - @atan(x/y)*@oneRadian}
+ {18e1 + @atan(y/x)*@oneRadian}
}
{(y>-x)?
- {(y<0)?
- {360 + atan(y/x)*oneRadian}
- {atan(y/x)*oneRadian}
+ {(y<0e0)?
+ {36e1 + @atan(y/x)*@oneRadian}
+ {@atan(y/x)*@oneRadian}
}
- {270 + atan(x/-y)*oneRadian}
+ {27e1 + @atan(x/-y)*@oneRadian}
}
;%
% \end{macrocode}
-% \subsection{Synonyms: \cshn{tg()}, \cshn{cotg()}}
-% \lverb|These are my childhood notations and I am attached to them. In
-% radians only. We skip some overhead here by using a \let at core level.|
-% \begin{macrocode}
-\expandafter\let\csname XINT_flexpr_func_tg\expandafter\endcsname
- \csname XINT_flexpr_func_tan\endcsname
-\expandafter\let\csname XINT_flexpr_func_cotg\expandafter\endcsname
- \csname XINT_flexpr_func_cot\endcsname
+% \subsection{Restore \cs{xintdeffloatfunc} to its normal state, with no extra
+% digits}
+% \begin{macrocode}
+\expandafter\let
+ \csname XINT_flexpr_exec_+\expandafter\endcsname
+ \csname XINT_flexpr_exec_+_\endcsname
+\expandafter\let
+ \csname XINT_flexpr_exec_-\expandafter\endcsname
+ \csname XINT_flexpr_exec_-_\endcsname
+\expandafter\let
+ \csname XINT_flexpr_exec_*\expandafter\endcsname
+ \csname XINT_flexpr_exec_*_\endcsname
+\expandafter\let
+ \csname XINT_flexpr_exec_/\expandafter\endcsname
+ \csname XINT_flexpr_exec_/_\endcsname
+\expandafter\let
+ \csname XINT_flexpr_func_sqr\expandafter\endcsname
+ \csname XINT_flexpr_sqrfunc\endcsname
+\expandafter\let
+ \csname XINT_flexpr_func_sqrt\expandafter\endcsname
+ \csname XINT_flexpr_sqrtfunc\endcsname
+\expandafter\let
+ \csname XINT_flexpr_func_inv\expandafter\endcsname
+ \csname XINT_flexpr_invfunc\endcsname
% \end{macrocode}
% \subsection{Let the functions be known to the \cshnolabel{xintexpr} parser}
-% \lverb|See xint.pdf for some explanations (as well as code comments in
-% xintexpr.sty). In fact it is this context which led to my addition at 1.3e of
-% \xintdefefunc to the \xintexpr syntax. |
+% \lverb|&
+% |
% \begin{macrocode}
\xintFor #1 in {sin, cos, tan, sec, csc, cot,
asin, acos, atan}\do
{%
- \xintdeffunc #1(x) := \xintfloatexpr #1(sfloat(x))\relax;%
- \xintdeffunc #1d(x):= \xintfloatexpr #1d(sfloat(x))\relax;%
+ \xintdeffloatfunc #1(x) := float_(@#1(x));%
+ \xintdeffloatfunc #1d(x) := float_(@#1d(x));%
+ \xintdeffunc #1(x) := float_(\xintfloatexpr @#1(sfloat(x))\relax);%
+ \xintdeffunc #1d(x):= float_(\xintfloatexpr @#1d(sfloat(x))\relax);%
}%
\xintFor #1 in {Arg, pArg, atan2}\do
{%
- \xintdeffunc #1(x, y) := \xintfloatexpr #1(sfloat(x), sfloat(y))\relax;%
- \xintdeffunc #1d(x, y):= \xintfloatexpr #1d(sfloat(x), sfloat(y))\relax;%
+ \xintdeffloatfunc #1(x, y) := float_(@#1(x, y));%
+ \xintdeffloatfunc #1d(x, y) := float_(@#1d(x, y));%
+ \xintdeffunc #1(x, y) := float_(\xintfloatexpr @#1(sfloat(x), sfloat(y))\relax);%
+ \xintdeffunc #1d(x, y):= float_(\xintfloatexpr @#1d(sfloat(x), sfloat(y))\relax);%
}%
-\xintdeffunc tg(x) := \xintfloatexpr tg(sfloat(x))\relax;%
-\xintdeffunc cotg(x):= \xintfloatexpr cotg(sfloat(x))\relax;%
-\xintdeffunc sinc(x):= \xintfloatexpr sinc(sfloat(x))\relax;%
+\xintdeffloatfunc sinc(x):= float_(@sinc(x));%
+\xintdeffunc sinc(x):= float_(\xintfloatexpr @sinc(sfloat(x))\relax);%
% \end{macrocode}
+% \subsection{Synonyms: \cshn{@tg()}, \cshn{@cotg()}}
+% \lverb|These are my childhood notations and I am attached to them. In
+% radians only, and for \xintfloateval only. We skip some overhead here by using a \let at core level.|
+% \begin{macrocode}
+\expandafter\let\csname XINT_flexpr_func_tg\expandafter\endcsname
+ \csname XINT_flexpr_func_tan\endcsname
+\expandafter\let\csname XINT_flexpr_func_cotg\expandafter\endcsname
+ \csname XINT_flexpr_func_cot\endcsname
+% \end{macrocode}
+% \subsection{Final clean-up}
% \lverb|Restore used dummy variables to their status prior to the package reloading.
% On first loading this is not needed naturally, because this is done
% immediately at end of xintexpr.sty.|
% \begin{macrocode}
+\xintdeffloatvar twoPi := @twoPi;%
+\xintdeffloatvar threePiover2 := @threePiover2;%
+\xintdeffloatvar Pi := @Pi;%
+\xintdeffloatvar Piover2 := @Piover2;%
+\xintdeffloatvar oneDegree := @oneDegree;%
+\xintdeffloatvar oneRadian := @oneRadian;%
+\xintunassignvar{@twoPi}\xintunassignvar{@threePiover2}%
+\xintunassignvar{@Pi}\xintunassignvar{@Piover2}%
+\xintunassignvar{@oneRadian}\xintunassignvar{@oneDegree}%
\xintFor* #1 in {iDTVtuwxyzX}\do{\xintrestorevariable{#1}}%
+\XINTtrigendinput%
% \end{macrocode}
% \StoreCodelineNo {xinttrig}
% \cleardoublepage\let\xinttrignameUp\undefined
@@ -43026,7 +43899,7 @@ math shift catcode.
%\let<*xintlog>\gardesinactifs
%</xinttrig>^^A--------------------------------------------------
%<*xintlog>^^A---------------------------------------------------
-%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; -*-
+%^^A -*- coding: utf-8; mode: doctex; fill-column: 78; sentence-end-double-space: t; -*-
% \clearpage\csname xintlognameUp\endcsname
% \section{Package \xintlognameimp implementation}
% \RaisedLabel{sec:logimp}
@@ -43037,12 +43910,101 @@ math shift catcode.
%
% \etocsettocstyle{}{}
%
-% I almost included extended precision implementation for 1.3e but
-% was a bit short on time; besides I hesitated between using poormanlog
-% at starting point or not. For up to 50 digits, it would help reduce
-% considerably the needed series for the logarithm. For more digits
-% I should rather apply my copyrighted method of the arcsine (it must
-% be in literature).
+% In 2019, at 1.3e release I almost included extended precision for log() and
+% exp() but the time I could devote to xint expired. Finally, at long last,
+% (and I had procrastinated far more than the two years since 2019) the 1.4e
+% release in April 2021 brings log10(), pow10(), log(), pow() to P=Digits
+% precision: up to 62 digits with at least (said roughly) 99\% chances of
+% correct rounding (the design is targeting less than about 0.005ulp distance
+% to mathematical value, before rounding).
+%
+% Implementation is EXPERIMENTAL.
+%
+% For up to Digits=8, it is simply based upon the poormanlog package. The
+% probability of correct rounding will be less than for Digits>8, especially
+% in the cases of Digits=8 and to a lesser extent Digits=7. And, for all
+% Digits<=8, there is a systematic loss of rounding precision in the floating
+% point sense in the case of log10(x) for inputs close to 1:
+%
+% \lverb|&
+%
+% Summary of limitations of log10() and pow10() in the case of Digits<=8:
+%( - For log10(x) with x near 1, the precision of output as floating point&
+% will be mechanically reduced from the fact that this is based on a fixed&
+% point result, for example log10(1.0011871) is produced as 5.15245e-4,&
+% which stands for 0.000515145 having indeed 9 correct fractional digits,&
+% but only 6 correct digits in the floating point sense.&
+%
+% This feature affects the entire range Digits<=8.
+%: - Even if limiting to inputs x with 1.26<x<10 (1.26 is a bit more than&
+% 10^0.1 hence its choice as lower bound), the poormanlog documentation&
+% mentions an absolute error possibly up to about 1e-9. In practice a&
+% test of 10000 random inputs 1.26<x<10 revealed 9490 correctly rounded&
+% log10(x) at 8 digits (and the 510 non-correctly rounded ones with an error&
+% of 1 in last digit compared to correct rounding). So correct rounding&
+% achieved only in about 95$% of cases here.&
+%
+% At 7 digits the same 10000 random&
+% inputs are correctly rounded in 99.4$% of cases, and at 6 digits it is&
+% 99.94$% of cases.&
+%
+% Againd with Digits=8, the log10(i) for i in 1..1000 are all correctly&
+% rounded to 8 digits with two exceptions: log10(3) and log10(297) with a&
+% 1ulp error.
+%: - Regarding the computation of 10^x, I obtained for -1<x<1 the following&
+% with 10000 random inputs: 518/10000 errors at 1ulp, 60/10000, and 8/10000,&
+% at respectively Digits = 8, 7, 6 so chances of correct rounding are&
+% respectively about 95$%, 99.4$% and more than 99.9$%.
+%)
+% |
+%
+% Despite its limitations the poormanlog based approach used for Digits up to
+% 8 has the advantage of speed (at least 8X compared to working with 16
+% digits) and is largely precise enough for plots.
+%
+% For 9 digits or more, the observed precision in some random tests appears to
+% be at least of 99.9\% chances of correct rounding, and the log10(x) with x
+% near 1 are correctly (if not really efficiently) handled in the floating
+% point sense for the output. The poormanlog approximate log10() is still used
+% to boot-strap the process, generally. The pow10() at Digits=9 or more is
+% done independently of poormanlog.
+%
+% All of this is done on top of my 2013 structures for floating point
+% computations which have always been marked as provisory and rudimentary and
+% instills intrinsic non-efficiency:
+%
+%\lverb|&
+%( - no internal data format for a ``floating point number at P digits'',
+%: - mantissa lengths are again and again computed,
+%: - digits are not pre-organized say in blocks of 4 by 4 or 8 by 8,
+%: - floating point multiplication is done via an *exact* multiplication, then&
+% rounding to P digits!
+%)
+% |
+%
+% This is legacy of the fact that the project was initially devoted to big
+% integers only, but in the weeks that followed its inception in March 2013 I
+% added more and more functionalities without a well laid out preliminary
+% plan.
+%
+% Anyway, for years I have felt a better foundation would help achieve at
+% least something such as 2X gain (perhaps the last item by itself, if
+% improved upon, would bring most of such 2X gain?)
+%
+% I did not try to optimize for the default 16 digits, the goal being more of
+% having a general scalable structure in place and there is no difficulty to
+% go up to 100 digits precision if one stores extended pre-computed constants
+% and increases the length of the ``series'' support.
+%
+% Apart from log(10) and its inverse, no other logarithms are stored or
+% pre-computed: the rest of the stored data is the same for pow10() and
+% log10() and consists of the fractional powers 10\string^±0.i,
+% 10\string^±0.0i, ..., 10\string^±0.00000i at P+5 and also at P+10 digits.
+%
+% In order to reduce the loading time of the package the inverses are not
+% computed internally (as this would require costly divisions) but simply
+% hard-coded with enough digits to cover the allowed Digits range.
+%
%
% \subsection{Catcodes, \protect\eTeX{} and reload detection}
% \begin{macrocode}
@@ -43061,7 +44023,6 @@ math shift catcode.
\def\z{\endgroup}%
\def\empty{}\def\space{ }\newlinechar10
\expandafter\let\expandafter\w\csname ver@xintexpr.sty\endcsname
- \expandafter\let\expandafter\x\csname ver@xintlog.sty\endcsname
\expandafter
\ifx\csname PackageInfo\endcsname\relax
\def\y#1#2{\immediate\write-1{Package #1 Info:^^J%
@@ -43080,224 +44041,2296 @@ math shift catcode.
\else\string\input\space xintexpr.sty \fi
rather, aborting}%
\aftergroup\endinput
- \else
- \ifx\x\relax % first loading (initiated from xintexpr.sty)
- \else
- \ifx\x\empty % LaTeX first loading, \ProvidesPackage not yet seen
- \else
- \y{xintlog}{Already loaded, aborting}%
- \aftergroup\endinput
- \fi
- \fi
\fi
\fi
\z%
+\edef\XINTendxintloginput{\XINTrestorecatcodes\noexpand\endinput}\XINTsetcatcodes%
% \end{macrocode}
-% \lverb|Attention to catcode regime when loading below poormanlog. It (v0.04)
-% uses ^ with its normal catcode but \XINT_setcatcodes would set it to letter.
+% \subsection{Library identification}
+% \begin{macrocode}
+\ifcsname xintlibver@log\endcsname
+ \expandafter\xint_firstoftwo
+\else
+ \expandafter\xint_secondoftwo
+\fi
+{\immediate\write-1{Reloading xintlog library using Digits=\xinttheDigits.}}%
+{\expandafter\gdef\csname xintlibver@log\endcsname{2021/05/05 v1.4e}%
+\XINT_providespackage
+\ProvidesPackage{xintlog}%
+[2021/05/05 v1.4e Logarithms and exponentials for xintexpr (JFB)]%
+}%
+% \end{macrocode}
+% \subsection{\csh{xintreloadxintlog}}
+% \lverb|Now needed at 1.4e.
%
-% This file can only be loaded from xintexpr.sty and it restores catcodes near
-% its end. To play it safe and be hopefully immune to whatever is done in
-% poormanlog or in xinttrig.sty which is loaded before, we will switch to
-% standard catcode regime here.
+% |
+% \begin{macrocode}
+\def\xintreloadxintlog{\input xintlog.sty }%
+% \end{macrocode}
+% \subsection{Loading the \cshn{poormanlog} package}
+% \lverb|&
+% Attention to the catcode regime when loading poormanlog.
%
% As I learned the hard way (I never use my user macros), at the worst moment
% when wrapping up the final things for 1.3e release,
% \xintexprSafeCatcodes MUST be followed by some \xintexprRestoreCatcodes
% quickly, else next time it is used (for example by \xintdefvar) the
-% \xintexprRestoreCatcodes will restore an obsolete catcode regime...|
-% \subsection{Library identification}
+% \xintexprRestoreCatcodes will restore an obsolete catcode regime...
+%
+% Also, for xintlog.sty to be multiple-times loadable, we need to avoid using
+% LaTeX's \RequirePackage twice.|
% \begin{macrocode}
\xintexprSafeCatcodes\catcode`_ 11
-\XINT_providespackage
-\ProvidesPackage{xintlog}%
-[2021/03/29 v1.4d Logarithms and exponentials for xintexpr (JFB)]%
-% \end{macrocode}
-% \subsection{Loading of \cshn{poormanlog} package}
-% \lverb|Attention to catcode regime when loading poormanlog. It matters less
-% now for 1.3f as those chunks of code from poormanlog.tex v0.04 which needed
-% specific xintexpr like catcodes got transferred here anyway.|
-% \begin{macrocode}
+\unless\ifdefined\XINTinFloatPowTen
\ifdefined\RequirePackage
\RequirePackage{poormanlog}%
\else
\input poormanlog.tex
+\fi\fi
+\xintexprRestoreCatcodes\XINTsetcatcodes
+% \end{macrocode}
+% \subsection{Macro layer on top of the poormanlog package}
+% \lverb|This was moved here with some macro renames from xintfrac on occasion
+% of 1.4e release.
+%
+% Breaking changes at 1.4e:
+%
+%( - these macros will be mapped to log10(), log(), pow10(), exp(), pow(,)&
+% and the ** and ^ (if \poormanloghack) only for Digits at most 8
+%: - \xintLog was used for \xinteval and differed slightly from its&
+% counterpart used for \xintfloateval, the latter float-rounded&
+% to P = Digits, the former did not and kept completly meaning-less&
+% digits in output. Both macros now replaced by a \PoorManLog&
+% which will always float round the output to P = Digits. Because xint&
+% does not really implement a fixed point interface anyhow.
+%: - \xintExp (used in \xinteval) and another macro (used in \xintfloateval)&
+% did not use a sufficiently long approximation to 1/log(10) to&
+% support precisely enough exp(x) if output of the order of 10^10000 for&
+% example, (last two digits wrong then)&
+% and situation became worse for very high values such as exp(1e8)&
+% which had only 4 digits correct.
+% The new \PoorManExp which replaces them is more careful... and for&
+% example exp(12345678) obtains correct rounding (Digits=8).
+%: - \XINTinFloatxintLog and \XINTinFloatxintExp were removed; they were&
+% used for log() and exp() in \xintfloateval, and differed from \xintLog&
+% and \xintExp a bit, now renamed to \PoorManLog and \PoorManExp.
+%: - \PoorManPower has simply disappeared, see \XINTinFloatSciPow and \xintPow.
+%)
+%
+% See the general xintlog introduction for some comments on the achieved
+% precision and probabilities of correct rounding.
+%
+% |
+%
+% \subsubsection{\csh{PoorManLogBaseTen}, \csh{PoorManLog}}
+% \lverb|1.3f. Code originally in poormanlog v0.04 got transferred here. It
+% produces the logarithm in base 10 with an error (believed to be at most) of
+% the order of 1 unit in the 9th (i.e. last, fixed point) fractional
+% digit. Testing seems to indicate the error is never exceeding 2 units in the
+% 9th place, in worst cases.
+%
+% These macros will still be the support macros for \xintfloatexpr log10(),
+% pow10(), etc... up to Digits=8 and the poormanlog logarithm is used as
+% starting point for higher precision if Digits is at least 9.
+%
+% Notice that \PML@999999999. expands (in \numexpr) to 1000000000 (ten
+% digits), which is the only case with the output having ten digits. But there
+% is no need here to treat this case especially, it works fine in
+% \PML@logbaseten.
+%
+% Breaking change at 1.4e: for consistency with various considerations
+% on floats, the output will be float rounded to P=Digits.
+%
+% One could envision the \xinteval variant to keep 9 fractional digits
+% (it is known the last one may very well be off by 1 unit). But this
+% creates complications of principles.
+%
+% All of this is very strange because the logarithm clearly shows the
+% deficiencies of the whole idea of floating point arithmetic, logarithm goes
+% from floating point to fixed point, and coercing it into pure floating point
+% has moral costs. Anyway, I shall obide.
+%
+% |
+% \begin{macrocode}
+\def\PoorManLogBaseTen{\romannumeral0\poormanlogbaseten}%
+\def\poormanlogbaseten #1%
+{%
+ \XINTinfloat[\XINTdigits]%
+ {\romannumeral0\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]{#1}}%
+}%
+\def\PoorManLogBaseTen_raw%#1
+{%
+ \romannumeral0\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]%{#1}%
+}%
+\def\PML@logbaseten#1[#2]%
+{%
+ \xintiiadd{\xintDSx{-9}{\the\numexpr#2+8\relax}}{\the\numexpr\PML@#1.}[-9]%
+}%
+\def\PoorManLog#1%
+{%
+ \XINTinFloat[\XINTdigits]{\xintMul{\PoorManLogBaseTen_raw{#1}}{23025850923[-10]}}%
+}%
+% \end{macrocode}
+% \subsubsection{\csh{PoorManPowerOfTen}, \csh{PoorManExp}}
+% \lverb|Originally in poormanlog v0.04, got transferred into xintfrac.sty at
+% 1.3f, then here into xintlog.sty at 1.4e.
+%
+% Produces 10^x with 9 digits of float precision, with an error (believed to
+% be) at most 2 units in the last place, when 0<x<1. Of course for this the
+% input must be precise enough to have 9 fractional digits of **fixed point**
+% precision.
+%
+% Breaking change at 1.4e: output always float-rounded at P=Digits.
+%
+% The 1.3f definition for \xintExp (now \PoorManExp) was not careful enough
+% (see comments above) for very large exponents. This has been corrected at
+% 1.4e. Formerly exp(12345678) produced shameful 6.3095734e5361659 where only
+% the first digit (and exponent...) is correct! Now, with \xintDigits*:=8;,
+% exp(12345678) will produce 6.7725836e5361659 which is correct rounding to 8
+% digits. Sorry if your rover expedition to Mars ended in failure due to using
+% my software. I was not expecting anyone to use it so I did back then in 2019
+% a bit too expeditively the \xintExp thing on top of 10^x.
+%
+% The 1.4e \PoorManExpr replaces and amends deceased \xintExp.
+%
+% Before using \xintRound we screen out the case of zero as \xintRound in this
+% case outputs no fractional digits.
+% |
+% \begin{macrocode}
+\def\PoorManPowerOfTen{\romannumeral0\poormanpoweroften}%
+\def\poormanpoweroften #1%
+{%
+ \expandafter\PML@powoften@out
+ \the\numexpr\expandafter\PML@powoften\romannumeral0\xintraw{#1}%
+}%
+\def\PML@powoften@out#1[#2]{\XINTinfloat[\XINTdigits]{#1[#2]}}%
+\def\PML@powoften#1%
+{%
+ \xint_UDzerominusfork
+ #1-\PML@powoften@zero
+ 0#1\PML@powoften@neg
+ 0-\PML@powoften@pos
+ \krof #1%
+}%
+\def\PML@powoften@zero 0/1[0]{1\relax/1[0]}%
+\def\PML@powoften@pos#1[#2]%
+{%
+ \expandafter\PML@powoften@pos@a\romannumeral0\xintround{9}{#1[#2]}.%
+}%
+\def\PML@powoften@pos@a#1.#2.{\PML@Pa#2.\expandafter[\the\numexpr-8+#1]}%
+\def\PML@powoften@neg#1[#2]%
+{%
+ \expandafter\PML@powoften@neg@a\romannumeral0\xintround{9}{#1[#2]}.%
+}%
+\def\PML@powoften@neg@a#1.#2.%
+{%
+ \ifnum#2=\xint_c_ \xint_afterfi{1\relax/1[#1]}\else
+ \expandafter\expandafter\expandafter
+ \PML@Pa\expandafter\xint_gobble_i\the\numexpr2000000000-#2.%
+ \expandafter[\the\numexpr-9+#1\expandafter]\fi
+}%
+\def\PoorManExp#1{\PoorManPowerOfTen{\xintMul{#1}{43429448190325182765[-20]}}}%
+% \end{macrocode}
+% \subsubsection{Removed: \csh{PoorManPower}, see \cshnolabel{XINTinFloatSciPow}}
+% \lverb|Originally in poormanlog v0.04, got transferred into xintfrac.sty at
+% 1.3f, then here into xintlog.sty at 1.4e. Support for powers with "about 8
+% to 9 digits" (only when output not too big). This definition
+% 10^(log10(x)*y), or e^(log(x)*y), matching the mathematical one, is common
+% in many float support software but has many problems of precision when the
+% result starts getting big (i.e. has a decimal exponent larger than 1000000
+% for example, and already 10000 will start demonstrating the loss of
+% precision); recall for example for e^y = 10^(y/log(10)) that we had to be
+% careful with log(10) precision, and this is only one instance of a general
+% phenomenon.
+%
+% When computing a^b, it would be more precise to express b as an integer n
+% plus a fractional part t, and compute a^b as a^n times a^t, where a^n is
+% evaluated for example using repeated squaring base approach, with guard
+% digits. This is precisely what \XINTinFloatPower available in xintfrac does
+% (the documentation mentions a 0.52ulp error bound in result). But let's not
+% make life complicated, and anyway this is all now for special "speedy"
+% context at most 8 digits.
+%
+% Removed at 1.4e. See \XINTinFloatSciPow.
+% |
+% \subsubsection{Made a no-op: \csh{poormanloghack}}
+% \lverb|&
+%
+%
+% Made a no-op at 1.4e.|
+% \begin{macrocode}
+\def\poormanloghack#1%
+{%
+ \xintMessage{xintexpr}{Warning}%
+ {\string\poormanloghack\space is a no-op since 1.4e and will be removed at next major release}%
+}%
+% \end{macrocode}
+% \subsection{Macro support for the expression functional syntax}
+% \lverb|As up to Digits=8 we use only poormanlog, we delay to end of package
+% the lay-out of macros used for the actual computations, so that we execute
+% an earlier \endinput if Digits<=8.
+%
+% Let us start by the support for the ** and ^ operators which will use
+% in \xintfloatexpr \XINTinFloatSciPow and in \xintexpr \xintPow. The latter
+% from $xintfracnameimp is thus modified here.
+%
+% The code is a bit complicated as we want to recycle things between the
+% floateval and eval context, and between Digits>8 and Digits<=8.
+%
+% In the end I decided to simply define everything for Digits>8, and then
+% let some macros be re-defined for the Digits<=8 case. The latter differs
+% from the former in using systematically always the log10/pow10 approach,
+% with the sole exception of integer exponents in \xintexpr context.
+% |
+%
+% \subsubsection{\csh{XINTinFloatSciPow}}
+% \lverb|&
+%
+% This is the new name and extension of \XINTinFloatPowerH which was
+% a non user-documented macro used for a^b previously, and previously
+% was located in $xintfracnameimp.
+%
+% For integer exponents up to at least 10000 (and certainly more but I have
+% not yet much tested) the old $xintfracnameimp implementation of powers is
+% faster than using logarithms and exponentials. And this is still the case
+% for half-integer exponents, which are handled via a final square-root.
+%
+% The user documentation of \xintFloatPower mentions a 0.52 ulp(Z) error where
+% Z is the computed result. Individually, \XINTinFloatLogTen and
+% \XINTinFloatPowTen have been designed for an even higher accuracy but I have
+% not really much tested what this gives in practice for powers. It is
+% possible that \xintFloatPower less often finds the correct rounding than
+% going (as below) via log10 and pow10 (in a special way described below), for
+% non too big exponents, but what is certain is that:
+%
+% - the old \xintFloatPower is more accurate when one goes into extremely high
+% exponent. For example 1.0000001^(12^16), where 12^16 is 184884258895036416
+% and has 18 digits, is computed to be at 60 Digits
+%
+% 1.87998567669494838838184407480229599674641360996864647488708e802942130
+%
+% by \xintFloatPower and this is the correct rounding. Whereas going via
+% logarithm as below would give the least 5 significant digits wrong (in fact
+% the logarithm road will start having accuracy problems if exponent is of the
+% order 1e12, something like that, although right now I say that a bit at
+% random because I don't know why I started to write these comments and I
+% rather want to finish the code).
+%
+% - also for integer exponents up to 10000 (and quite beyond, surely 100000
+% also, but I limited to 10000 when I was testing against xfp, as it doesn't
+% support higher powers of 10) the old \xintFloatPower is faster than current
+% log+exp (but I have not benchmarked much, as this takes tremendous amount of
+% time and energy). And this is even true when one adds a square root
+% extraction to cover half-integer exponents.
+%
+% We also want to do this in \xinteval for integer exponents, not only
+% \xintfloateval, with a twist: in \xinteval we will compute *exactly* for not
+% too big exponents: for A^b, we want the output to not have more than 10000
+% digits. For this we limit b depending on the length of A.
+%
+% If it is decided that the output would be too big, the computation is done
+% as in \xintfloateval, i.e. using the old \xintFloatPower float macros.
+%
+% If the exponent is half-integer the
+% computation will be done as in \xintfloateval, i.e. using FloatPower then a
+% square root.
+%
+% The check whether exponent is integer or half-integer is not on the value
+% but on the representation. Even in \xintfloatexpr, input such
+% 10^\xintexpr4/2\relax is possible, and 4/2 will not be recognized as integer
+% to avoid costly overhead. 3/2 will not be recognized as half-integer.
+% But 2.0 will be recognized as integer, 25e-1 as half-integer.
+%
+% In the computation of a^b, a will be float-rounded to Digits, but the
+% exponent b will be handled as is until last minute. Recall that the
+% \xintfloatexpr parser does not automatically float round isolated inputs,
+% this happens only once involved in computations.
+%
+% In the Digits<=8 branch the test for b integer if a is negative
+% is done after float-rounding b, but the input b is used for computation.
+% |
+% \begin{macrocode}
+\def\XINTinFloatSciPow{\romannumeral0\XINTinfloatscipow}%
+\def\XINTinfloatscipow#1#2%
+{%
+ \expandafter\XINT_scipow_a\romannumeral0\xintrez{#2}\XINT_scipow_int{#1}%
+}%
+\def\XINT_scipow_a #1%
+{%
+ \xint_gob_til_zero#1\XINT_scipow_Biszero0\XINT_scipow_b#1%
+}%
+\def\XINT_scipow_Biszero#1]#2#3{ 1[0]}%
+\def\XINT_scipow_b #1#2/#3[#4]#5%
+{%
+ \unless\if1\XINT_is_One#3XY\xint_dothis\XINT_scipow_c\fi
+ \ifnum#4<\xint_c_mone\xint_dothis\XINT_scipow_c\fi
+ \ifnum#4=\xint_c_mone
+ \if5\xintLDg{#1#2} %
+ \xint_afterfi{\xint_dothis\XINT_scipow_halfint}\else
+ \xint_afterfi{\xint_dothis\XINT_scipow_c}%
+ \fi
+ \fi
+ \xint_orthat#5#1#2/#3[#4]%
+}%
+\def\XINT_scipow_int #1/1[#2]#3%
+{%
+ \expandafter\XINT_flpower_checkB_a
+ \romannumeral0\XINT_dsx_addzeros{#2}#1;.\XINTdigits.{#3}{\XINTinfloatS[\XINTdigits]}%
+}%
+\def\XINT_scipow_halfint#1/1[#2]#3%
+{%
+ \expandafter\XINT_flpower_checkB_a
+ \romannumeral0\xintdsr{\xintDouble{#1}}.\XINTdigits.{#3}\XINT_flpowerh_finish
+}%
+\def\XINT_flpowerh_finish #1%
+ {\XINTinfloatS[\XINTdigits]{\XINTinFloatSqrt[\XINTdigits+\xint_c_iii]{#1}}}%
+\def\XINT_tmpa#1.{%
+\def\XINT_scipow_c ##1[##2]##3%
+{%
+ \expandafter\XINT_scipow_d\romannumeral0\XINTinfloatS[#1]{##3}\xint:##1[##2]\xint:
+}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits.%
+\def\XINT_scipow_d #1%
+{%
+ \xint_UDzerominusfork
+ #1-\XINT_scipow_Aiszero
+ 0#1\XINT_scipow_Aisneg
+ 0-\XINT_scipow_Aispos
+ \krof #1%
+}%
+\def\XINT_scipow_Aiszero #1\xint:#2#3\xint:
+{%
+ \if-#2\xint_dothis
+ {\XINT_signalcondition{InvalidOperation}{Zero to negative power #2#3}{}{1["7FFF8000]}}\fi
+ \xint_orthat{ 0[0]}%
+}%
+\def\XINT_scipow_Aispos #1\xint:#2\xint:
+{%
+ \XINTinfloatpowten{\xintMul{#2}{\XINTinFloatLogTen_xdgout#1}}%
+}%
+\def\XINT_scipow_Aisneg #1#2\xint:#3\xint:
+{%
+ \XINT_signalcondition{InvalidOperation}{Fractional power of negative argument}{}{0[0]}
+}%
+\ifnum\XINTdigits<9
+ \def\XINTinfloatscipow#1#2%
+ {%
+ \expandafter\XINT_scipow_a\romannumeral0\xintraw{#2}\relax{#1}%
+ }%
+ \def\XINT_scipow_b #1[#2]#3#4%
+ {%
+ \expandafter\XINT_scipow_d\romannumeral0\XINTinfloat[9]{#4}\xint:#1[#2]\xint:
+ }%
+ \def\XINT_scipow_Aispos #1\xint:#2\xint:
+ {%
+ \poormanpoweroften{\xintMul{#2}{\romannumeral0\expandafter\PML@logbaseten#1}}%
+ }%
+ \def\XINT_scipow_Aisneg #1#2\xint:#3\xint:
+ {%
+ \ifcase\xintFloatIntType{#3}%
+ \or\expandafter-\romannumeral0%
+ \else
+ \expandafter\XINT_scipow_AnegBfrac
+ \fi
+ \poormanpoweroften{\xintMul{#3}{\romannumeral0\expandafter\PML@logbaseten#2}}%
+ }%
\fi
% \end{macrocode}
-% \lverb|\XINT_setcatcodes switches to the standard catcode regime of
-% xint*.sty files. Formerly we needed here the ! of catcode 11 as in
-% xintexpr.sty, which is set by \XINT_setcatcodes but does not apply now.
+% \subsubsection{\csh{xintPow}}
+% \lverb|&
+%
+% This overloads the original $xintfracnameimp macro and uses it for integer
+% exponents, under a criterion which guarantees output (numerator and
+% denominator separately) does not exceed by much 10000 digits if at all.
%
-% See the remark above about importance of doing \xintexprRestoreCatcodes if
-% \xintexprSafeCatcodes has been used...|
+% |
% \begin{macrocode}
-\xintexprRestoreCatcodes\csname XINT_setcatcodes\endcsname
+\def\xintPow{\romannumeral0\xintpow}%
+\def\xintpow#1#2%
+{%
+ \expandafter\XINT_scipow_a\romannumeral0\xintrez{#2}\XINT_pow_int{#1}%
+}%
+\def\XINT_pow_int #1/1[#2]%#3
+{%
+ \expandafter\XINT_pow_int_a\romannumeral0\XINT_dsx_addzeros{#2}#1;.%
+}%
+\def\XINT_pow_int_a #1#2.#3%
+{%
+ \ifnum\if-#1\xintLength{#2}\else\xintLength{#1#2}\fi>\xint_c_iv
+ \expandafter\XINT_pow_tosci
+ \fi
+ \expandafter\XINT_pow_int_b\romannumeral0\xintraw{#3}\xint:#1#2\xint:
+}%
+\def\XINT_pow_int_b#1#2/#3[#4]\xint:#5\xint:
+{%
+ \if0\ifnum\numexpr\xint_c_x^iv/%
+ (\xintLength{#1#2}\if-#1-\xint_c_i\fi)<\XINT_Abs#5 %
+ 1\else
+ \ifnum\numexpr\xint_c_x^iv/\xintLength{#3}<\XINT_Abs#5 %
+ 1\else
+ 0\fi\fi
+ \expandafter\XINT_fpow_fork\else\expandafter\XINT_pow_tosci_i
+ \fi
+ #5\Z{#4}{#1#2}{#3}%
+}%
+\def\XINT_tmpa#1.{%
+\def\XINT_pow_tosci##1\xintraw%##2%\xint:##3\xint:
+{%
+ \expandafter\XINT_scipow_d\romannumeral0\XINTinfloatS[#1]%
+}%
+\def\XINT_pow_tosci_i##1\Z##2##3##4%
+{%
+ \expandafter\XINT_scipow_d\romannumeral0\expandafter\XINT_infloatS_clean
+ \romannumeral0\XINT_infloat_a#1.{##2}{##3}{##4}\xint:##1\xint:
+}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits.%
+\ifnum\XINTdigits<9
+ \def\xintpow#1#2%
+ {%
+ \expandafter\XINT_poorpow_a\romannumeral0\xintrez{#2}\relax{#1}%
+ }%
+ \def\XINT_poorpow_a #1%
+ {%
+ \xint_gob_til_zero#1\XINT_scipow_Biszero0\XINT_poorpow_b#1%
+ }%
+ \def\XINT_poorpow_b #1#2/#3[#4]#5%
+ {%
+ \unless\if1\XINT_is_One#3XY\xint_dothis\XINT_poorpow_c\fi
+ \ifnum#4<\xint_c_\xint_dothis\XINT_poorpow_c\fi
+ \xint_orthat\XINT_pow_int#1#2/#3[#4]%
+ }%
+ \def\XINT_poorpow_c #1[#2]#3%
+ {%
+ \expandafter\XINT_scipow_d\romannumeral0\XINTinfloat[9]{#3}\xint:#1[#2]\xint:
+ }%
+ \def\XINT_pow_tosci#1\xintraw%#2%\xint:#3\xint:
+ {%
+ \expandafter\XINT_scipow_d\romannumeral0\XINTinfloat[9]%
+ }%
+ \def\XINT_pow_tosci_i#1\Z#2#3#4%
+ {%
+ \expandafter\XINT_scipow_d\romannumeral0\expandafter\XINT_infloat_clean
+ \romannumeral0\XINT_infloat_a9.{#2}{#3}{#4}\xint:#1\xint:
+ }%
+\fi
% \end{macrocode}
-% \subsection{The \cshn{log10()} and \cshn{pow10()} functions}
-% \lverb|The support macros from poormanlog v0.04 \PoorManLogBaseTen,
-% \PoorManLogPowerOfTen, \PoorManPower got transferred into xintfrac.sty at
-% 1.3f.|
+% \subsubsection{\cshn{log10()} and \cshn{pow10()} functions}
+% \lverb|&
+% Up to 8 digits included we use the poormanlog based ones.
+% |
% \begin{macrocode}
+\ifnum\XINTdigits<9
\expandafter\def\csname XINT_expr_func_log10\endcsname#1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one
{\romannumeral`&&@\PoorManLogBaseTen#3}}%
}%
-\expandafter\let\csname XINT_flexpr_func_log10\expandafter\endcsname
- \csname XINT_expr_func_log10\endcsname
\expandafter\def\csname XINT_expr_func_pow10\endcsname#1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one
{\romannumeral`&&@\PoorManPowerOfTen#3}}%
}%
+\else
+\expandafter\def\csname XINT_expr_func_log10\endcsname#1#2#3%
+{%
+ \expandafter #1\expandafter #2\expandafter{%
+ \romannumeral`&&@\XINT:NEhook:f:one:from:one
+ {\romannumeral`&&@\XINTinFloatLogTen#3}}%
+}%
+\expandafter\def\csname XINT_expr_func_pow10\endcsname#1#2#3%
+{%
+ \expandafter #1\expandafter #2\expandafter{%
+ \romannumeral`&&@\XINT:NEhook:f:one:from:one
+ {\romannumeral`&&@\XINTinFloatPowTen#3}}%
+}%
+\fi
+\expandafter\let\csname XINT_flexpr_func_log10\expandafter\endcsname
+ \csname XINT_expr_func_log10\endcsname
\expandafter\let\csname XINT_flexpr_func_pow10\expandafter\endcsname
\csname XINT_expr_func_pow10\endcsname
% \end{macrocode}
-% \subsection{The \cshn{log()}, \cshn{exp()}, and \cshn{pow()} functions}
-% \lverb|The log10() and pow10() were defined by poormanlog v0.04 but have
-% been moved here at xint 1.3f. The support macros are defined in
-% xintfrac.sty.|
+% \subsubsection{\cshn{log()}, \cshn{exp()}, and \cshn{pow()} functions}
+% \lverb|The mapping of ** and ^ to \XINTinFloatPow and \xintPow respectively,
+% i.e. to be like pow(,) function is done in $xintexprnameimp.|
% \begin{macrocode}
+\ifnum\XINTdigits<9
\def\XINT_expr_func_log #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one
- {\romannumeral`&&@\xintLog#3}}%
+ {\romannumeral`&&@\PoorManLog#3}}%
}%
-\def\XINT_flexpr_func_log #1#2#3%
+\def\XINT_expr_func_exp #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one
- {\romannumeral`&&@\XINTinFloatLog#3}}%
+ {\romannumeral`&&@\PoorManExp#3}}%
}%
-\def\XINT_expr_func_exp #1#2#3%
+\let\XINT_flexpr_func_log\XINT_expr_func_log
+\let\XINT_flexpr_func_exp\XINT_expr_func_exp
+\else
+\def\XINT_expr_func_log #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one
- {\romannumeral`&&@\xintExp#3}}%
+ {\romannumeral`&&@\XINTinFloatLog#3}}%
}%
-\def\XINT_flexpr_func_exp #1#2#3%
+\def\XINT_expr_func_exp #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:one
{\romannumeral`&&@\XINTinFloatExp#3}}%
}%
+\let\XINT_flexpr_func_log\XINT_expr_func_log
+\let\XINT_flexpr_func_exp\XINT_expr_func_exp
+\fi
\def\XINT_expr_func_pow #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
\romannumeral`&&@\XINT:NEhook:f:one:from:two
- {\romannumeral`&&@\PoorManPower#3}}%
+ {\romannumeral`&&@\xintPow#3}}%
+}%
+\def\XINT_flexpr_func_pow #1#2#3%
+{%
+ \expandafter #1\expandafter #2\expandafter{%
+ \romannumeral`&&@\XINT:NEhook:f:one:from:two
+ {\romannumeral`&&@\XINTinFloatSciPow#3}}%
+}%
+% \end{macrocode}
+% \subsection{End of package loading for low Digits}
+% \begin{macrocode}
+\ifnum\XINTdigits<9 \expandafter\XINTendxintloginput\fi%
+% \end{macrocode}
+% \subsection{Stored constants}
+% \lverb|The constants were obtained from Maple at 80 digits: fractional power
+% of 10, but only one logarithm log(10).
+%
+% Currently the code whether for exponential or logarihm will not screen out 0
+% digits and even will do silly multiplication par 10^0 = 1 in that case, and
+% we need to store such silly values.
+%
+% We add the data for the 10^-0.i etc... because pre-computing them on the fly
+% significantly adds overhead to the package loading.
+% |
+% \begin{macrocode}
+\def\XINT_tmpa{1[0]}%
+\expandafter\let\csname XINT_c_1_0\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_2_0\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_3_0\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_4_0\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_5_0\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_6_0\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_1_0_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_2_0_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_3_0_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_4_0_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_5_0_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_6_0_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_1_0_inv\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_2_0_inv\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_3_0_inv\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_4_0_inv\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_5_0_inv\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_6_0_inv\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_1_0_inv_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_2_0_inv_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_3_0_inv_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_4_0_inv_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_5_0_inv_x\endcsname\XINT_tmpa
+\expandafter\let\csname XINT_c_6_0_inv_x\endcsname\XINT_tmpa
+\def\XINT_tmpa#1#2#3#4;%
+ {\expandafter\edef\csname XINT_c_#1_#2\endcsname{\XINTinFloat[\XINTdigits+5]{#3#4[-79]}}%
+ \expandafter\edef\csname XINT_c_#1_#2_x\endcsname{\XINTinFloat[\XINTdigits+10]{#3#4[-79]}}%
+ }%
+% 10^0.i
+\XINT_tmpa 1 1 12589254117941672104239541063958006060936174094669310691079230195266476157825020;%
+\XINT_tmpa 1 2 15848931924611134852021013733915070132694421338250390683162968123166568636684540;%
+\XINT_tmpa 1 3 19952623149688796013524553967395355579862743154053460992299136670049309106980490;%
+\XINT_tmpa 1 4 25118864315095801110850320677993273941585181007824754286798884209082432477235613;%
+\XINT_tmpa 1 5 31622776601683793319988935444327185337195551393252168268575048527925944386392382;%
+\XINT_tmpa 1 6 39810717055349725077025230508775204348767703729738044686528414806022485386945804;%
+\XINT_tmpa 1 7 50118723362727228500155418688494576806047198983281926392969745588901125568883069;%
+\XINT_tmpa 1 8 63095734448019324943436013662234386467294525718822872452772952883349494329768681;%
+\XINT_tmpa 1 9 79432823472428150206591828283638793258896063175548433209232392931695569719148754;%
+% 10^0.0i
+\XINT_tmpa 2 1 10232929922807541309662751748198778273411640572379813085994255856738296458625172;%
+\XINT_tmpa 2 2 10471285480508995334645020315281400790567914715039292120056525299012577641023719;%
+\XINT_tmpa 2 3 10715193052376064174083022246945087339158659633422172707894501914136771607653870;%
+\XINT_tmpa 2 4 10964781961431850131437136061411270464271158762483023169080841607885740984711300;%
+\XINT_tmpa 2 5 11220184543019634355910389464779057367223085073605529624450744481701033026862244;%
+\XINT_tmpa 2 6 11481536214968827515462246116628360182562102373996119340874991068894793593040890;%
+\XINT_tmpa 2 7 11748975549395295417220677651268442278134317971793124791953875805007912852226246;%
+\XINT_tmpa 2 8 12022644346174129058326127151935204486942664354881189151104892745683155052368222;%
+\XINT_tmpa 2 9 12302687708123815342415404364750907389955639574572144413097319170011637639124482;%
+% 10^0.00i
+\XINT_tmpa 3 1 10023052380778996719154048893281105540536684535421606464116348523047431367720401;%
+\XINT_tmpa 3 2 10046157902783951424046519858132787392010166060319618489538315083825599423438638;%
+\XINT_tmpa 3 3 10069316688518041699296607872661381368099438247964820601930206419324524707606686;%
+\XINT_tmpa 3 4 10092528860766844119155277641202580844111492027373621434478800545314309618714957;%
+\XINT_tmpa 3 5 10115794542598985244409323144543146957419235215102899054703546688078254946034250;%
+\XINT_tmpa 3 6 10139113857366794119988279023017296985954042032867436525450889437280417044987125;%
+\XINT_tmpa 3 7 10162486928706956276733661150135543062420167220622552197768982666050994284378619;%
+\XINT_tmpa 3 8 10185913880541169240797988673338257820431768224957171297560936579346433061037662;%
+\XINT_tmpa 3 9 10209394837076799554149033101487543990018213667630072574873723356334069913329713;%
+% 10^0.000i
+\XINT_tmpa 4 1 10002302850208247526835942556719413318678216124626534526963475845228205382579041;%
+\XINT_tmpa 4 2 10004606230728403216239656646745503559081482371024284871882409614422496765669196;%
+\XINT_tmpa 4 3 10006910141682589957025973521996241909035914023642264228577379693841345823180462;%
+\XINT_tmpa 4 4 10009214583192958761081718336761022426385537997384755843291864010938378093197023;%
+\XINT_tmpa 4 5 10011519555381688769842032367472488618040778885656970999331288116685029387850446;%
+\XINT_tmpa 4 6 10013825058370987260768186632475607982636715641432550952229573271596547716373358;%
+\XINT_tmpa 4 7 10016131092283089653826887255241073941084503769368844606021481400409002185558343;%
+\XINT_tmpa 4 8 10018437657240259517971072914549205297136779497498835020699531587537662833033174;%
+\XINT_tmpa 4 9 10020744753364788577622204725249622301332888222801030351604197113557132455165040;%
+% 10^0.0000i
+\XINT_tmpa 5 1 10000230261160268806710649793464495797824846841503180050673957122443571394978721;%
+\XINT_tmpa 5 2 10000460527622557806255008596155855743730116854295068547616656160734125748005947;%
+\XINT_tmpa 5 3 10000690799386989083565213461287219981856579552059660369243804541364501659468630;%
+\XINT_tmpa 5 4 10000921076453684726384543254593368743049141124080210677706489564626675960578367;%
+\XINT_tmpa 5 5 10001151358822766825267483384008265483772370538793312970508590203623535763866465;%
+\XINT_tmpa 5 6 10001381646494357473579790530833073090516914490540536234536867917078761046656260;%
+\XINT_tmpa 5 7 10001611939468578767498557382394677469502542123237272447312733350028467607076918;%
+\XINT_tmpa 5 8 10001842237745552806012277366194752842273812293689190856411757410911882303011468;%
+\XINT_tmpa 5 9 10002072541325401690920909385549403068574626162727745910217443397959031898734024;%
+% 10^0.00000i
+\XINT_tmpa 6 1 10000023025877439451356029805459000097926504781151663770980171880313737943886754;%
+\XINT_tmpa 6 2 10000046051807898005897723104514851394069452605882077809669546315010724085277647;%
+\XINT_tmpa 6 3 10000069077791375785706217087438809625967243923218032821061587553353589726808164;%
+\XINT_tmpa 6 4 10000092103827872912862930047032391734439796534302560512742030066798473305401477;%
+\XINT_tmpa 6 5 10000115129917389509449561379274639104559958866285946533811801963402821672829477;%
+\XINT_tmpa 6 6 10000138156059925697548091583969382297005329013199894805417325991907389143667949;%
+\XINT_tmpa 6 7 10000161182255481599240782265392507269793911275470978276390154932321984777772469;%
+\XINT_tmpa 6 8 10000184208504057336610176132939223090407041937631374389422968832433217547184883;%
+\XINT_tmpa 6 9 10000207234805653031739097001771331138303016031686764989867510425362339583809842;%
+\def\XINT_tmpa#1#2#3#4;%
+ {\expandafter\edef\csname XINT_c_#1_#2_inv\endcsname{\XINTinFloat[\XINTdigits+5]{#3#4[-80]}}%
+ \expandafter\edef\csname XINT_c_#1_#2_inv_x\endcsname{\XINTinFloat[\XINTdigits+10]{#3#4[-80]}}%
+ }%
+% 10^-0.i
+\XINT_tmpa 1 1 79432823472428150206591828283638793258896063175548433209232392931695569719148754;%
+\XINT_tmpa 1 2 63095734448019324943436013662234386467294525718822872452772952883349494329768681;%
+\XINT_tmpa 1 3 50118723362727228500155418688494576806047198983281926392969745588901125568883069;%
+\XINT_tmpa 1 4 39810717055349725077025230508775204348767703729738044686528414806022485386945804;%
+\XINT_tmpa 1 5 31622776601683793319988935444327185337195551393252168268575048527925944386392382;%
+\XINT_tmpa 1 6 25118864315095801110850320677993273941585181007824754286798884209082432477235613;%
+\XINT_tmpa 1 7 19952623149688796013524553967395355579862743154053460992299136670049309106980490;%
+\XINT_tmpa 1 8 15848931924611134852021013733915070132694421338250390683162968123166568636684540;%
+\XINT_tmpa 1 9 12589254117941672104239541063958006060936174094669310691079230195266476157825020;%
+% 10^-0.0i
+\XINT_tmpa 2 1 97723722095581068269707600696156123863427170069897801526639004097175507042084888;%
+\XINT_tmpa 2 2 95499258602143594972395937950148401513087269708053320302465127242741421479104601;%
+\XINT_tmpa 2 3 93325430079699104353209661168364840720225485199736026149257155811788093771138272;%
+\XINT_tmpa 2 4 91201083935590974212095940791872333509323858755696109214760361851771695487999100;%
+\XINT_tmpa 2 5 89125093813374552995310868107829696398587478293004836994794349506746891059190135;%
+\XINT_tmpa 2 6 87096358995608063751082742520877054774747128501284704090761796673224328569285177;%
+\XINT_tmpa 2 7 85113803820237646781712631859248682794521725442067093899553745086385146367436049;%
+\XINT_tmpa 2 8 83176377110267100616669140273840405263880767161887438462740286611379995442629360;%
+\XINT_tmpa 2 9 81283051616409924654127879773132980187568851100062454636602325121954484722491710;%
+% 10^-0.00i
+\XINT_tmpa 3 1 99770006382255331719442194285376231055211861394573154624878230890945476532432225;%
+\XINT_tmpa 3 2 99540541735152696244806147089510943107144177264574823668081299845609359857038344;%
+\XINT_tmpa 3 3 99311604842093377157642607688515474663519162181123336122073822476734517364853150;%
+\XINT_tmpa 3 4 99083194489276757440828314388392035249938006860819409201135652190410238171119287;%
+\XINT_tmpa 3 5 98855309465693884028524792978202683686410726723055209558576898759166522286083202;%
+\XINT_tmpa 3 6 98627948563121047157261523093421290951784086730437722805070296627452491731402556;%
+\XINT_tmpa 3 7 98401110576113374484101831088824192144756194053451911515003663381199842081528019;%
+\XINT_tmpa 3 8 98174794301998439937928161622872240632362817134775142288598128693131032909278350;%
+\XINT_tmpa 3 9 97948998540869887269961493687844910565420716785032030061251916654655049965062649;%
+% 10^-0.000i
+\XINT_tmpa 4 1 99976976799815658635141604638981297541396466984477711459083930684685186989697929;%
+\XINT_tmpa 4 2 99953958900308784552845777251512089759003230012954649234748668826546533498169555;%
+\XINT_tmpa 4 3 99930946300258992168693777702512591351888960684418033717545524043693899420866954;%
+\XINT_tmpa 4 4 99907938998446176870082987427724649318531547584410414997787083472394558389284098;%
+\XINT_tmpa 4 5 99884936993650514951538205746462968844845952521633937925370747725933629958238429;%
+\XINT_tmpa 4 6 99861940284652463550037839584112909891259691850983307437097305856727153967481065;%
+\XINT_tmpa 4 7 99838948870232760580354983175435314251655958968480344701699631967048474751069525;%
+\XINT_tmpa 4 8 99815962749172424670413384320528274471550942114263604264788586703624513163664479;%
+\XINT_tmpa 4 9 99792981920252755096658293766085025870392854106037465990011216356523334125368417;%
+% 10^-0.0000i
+\XINT_tmpa 5 1 99997697441416293040019992468837639003787989306240470048763511538639048400765328;%
+\XINT_tmpa 5 2 99995394935850346394065999228750187791584034668237852053859761641089829514536011;%
+\XINT_tmpa 5 3 99993092483300939297147020491645017932348508508297743745039515152378182676736684;%
+\XINT_tmpa 5 4 99990790083766851012380885556584619169980753943113396677545915245611923361705686;%
+\XINT_tmpa 5 5 99988487737246860830993605587529673614422529030613405900998412734419982883669223;%
+\XINT_tmpa 5 6 99986185443739748072318726405984801565268578044798475766025647187221659622450651;%
+\XINT_tmpa 5 7 99983883203244292083796681298546635825139453823571398432959235283529730820181019;%
+\XINT_tmpa 5 8 99981581015759272240974143839353881367972777961073357987943600347058023396510672;%
+\XINT_tmpa 5 9 99979278881283467947503380727439017235290006415950636109257677645557027950744160;%
+% 10^-0.00000i
+\XINT_tmpa 6 1 99999769741755795297487775997495948154386159348543852707438213487494386559762090;%
+\XINT_tmpa 6 2 99999539484041779185217876175552674518572114763104546143049036309870762496098218;%
+\XINT_tmpa 6 3 99999309226857950442387361668529812394860404492721699528707852590634886516924591;%
+\XINT_tmpa 6 4 99999078970204307848196104610199226516866442484686906173860803560254163287393673;%
+\XINT_tmpa 6 5 99998848714080850181846788127272455158309917012010320554498356105168896062430977;%
+\XINT_tmpa 6 6 99998618458487576222544906332928167145404344730731751204389698696345970645201375;%
+\XINT_tmpa 6 7 99998388203424484749498764320339633772810463403640242228131015918494067456365331;%
+\XINT_tmpa 6 8 99998157948891574541919478156202215623119146605983303201215215949834619332550929;%
+\XINT_tmpa 6 9 99997927694888844379020974874260864289829523807763942234420930258187873904191138;%
+% log(10)
+\edef\XINT_c_logten
+ {\XINTinFloat[\XINTdigits+4]
+ {23025850929940456840179914546843642076011014886287729760333279009675726096773525[-79]}}%
+\edef\XINT_c_oneoverlogten
+ {\XINTinFloat[\XINTdigits+4]
+ {43429448190325182765112891891660508229439700580366656611445378316586464920887077[-80]}}%
+\edef\XINT_c_oneoverlogten_xx
+ {\XINTinFloat[\XINTdigits+14]
+ {43429448190325182765112891891660508229439700580366656611445378316586464920887077[-80]}}%
+% \end{macrocode}
+% \subsection{April 2021: at last, \csh{XINTinFloatPowTen}, \csh{XINTinFloatExp}}
+% \lverb|Done April 2021. I have procrastinated (or did not have time to
+% devote to this) at least 5 years, even more.
+%
+% Speed improvements will have to wait to long delayed refactoring of core
+% floating point support which is still in the 2013 primitive state !
+%
+% I did not try to optimize for say 16 digits, as I was more focused on
+% reaching 60 digits in a reasonably efficient manner (trigonometric functions
+% achieved this since 2019) in the same coding framework. Finally, up to 62 digits.
+%
+% The stored constants are log(10) at P+4 digits and the powers 10^0.d,
+% 10^0.0d, etc, up to 10^0.00000d for d=1..9, as well as their inverses, at
+% P+5 and P+10 digits. The constants were obtained from Maple at 80 digits.
+%
+% Initially I constructed the exponential series exp(h) as one big unique nested
+% macro. It contained pre-rounded values of the 1/i! but would float-round h
+% to various numbers of digits, with always the full initial h as input.
+%
+% After having experimented with the logarithm, I redid exp(h) = 1 + h(1 +
+% h(1/2 + ...)) with many macros in order to have more readable code, and to
+% dynamically cut-off more and more digits from h the deeper it is used. See
+% the logarithm code for (perhaps) more comments.
+%
+% The thresholds have been obtained from considerations including an hmax
+% (a bit more than 0.5 log(10) 10^-6). Here is the table:
+%
+%( - maximal value of P: 8, 15, 21, 28, 35, 42, 48, 55, 62
+%: - last included term: /1, /2, /6, /4!, /5!, /6!, /7!, /8!, /9!
+%)
+%
+% Computations are done morally targeting P+4 fractional fixed point digits,
+% with a stopping criteria at say about 5e(-P-4), which was used for the table
+% above using only the worst case. As the used macros are a mix of exact
+% operations and floating point reductions this is in practice a bit
+% different. The h will be initially float rounded to P-1 digits. It is
+% cut-off more and more, the deeper nested it is used.
+%
+% The code for this evaluation of 10^x is very poor with x very near zero: it
+% does silly multiplication by 1, and uses more terms of exponential series
+% than would then be necessary.
+%
+% For the computation of exp(x) as 10^(c*x) with c=log(10)^-1, we need more
+% precise c the larger abs(x) is. For abs(x)<1 (or 2), the c with P+4
+% fractional digits is sufficient. But decimal exponents are more or less
+% allowed to be near the TeX maximum 2^31-1, which means that abs(x) could be
+% as big as 0.5e10, and we then need c with P+14 digits to cover that range.
+%
+% I am hesitating whether to first examine integral part of abs(x) and for
+% example to use c with either P+4, P+9 or P+14 digits, and also take this
+% opportunity to inject an error message if x is too big before TeX arithmetic
+% overflow happens later on. For time being I will use overhead of
+% oneoverlogten having ample enough digits...
+%
+% The exponent received as input is float rounded to P + 14 digits. In
+% practice the input will be already a P-digits float. The motivation here is
+% for low Digits situation: but this done so that for example with Digits=4,
+% we want exp(12345) not to be evaluated as exp(12350) which would have no
+% meaning at all. The +14 is because we have prepared 1/log(10) with that many
+% significant digits. This conundrum is due to the inadequation of the world
+% of floating point numbers with exp() and log(): clearly exp() goes from
+% fixed point to floating point and log() goes from floating point to fixed
+% point, and coercing them to work inside the sole floating point domain is
+% not mathematically natural. Although admittedly it does create interesting
+% mathematical questions! A similar situatoin applies to functions such as
+% cos() and sin(), what sense is there in the expression cos(exp(50)) for
+% example with 16 digits precision? My opinion is that it does not make ANY
+% sense. Anyway, I shall obide.
+%
+% As \XINTinFloatS will not add unnecessarily trailing zeros, the
+% \XINTdigits+14 is not really an enormous overhead for integer exponents,
+% such as in the example above the 12345, or more realistically small integer
+% exponents, and if the input is already float rounded to P digits, the
+% overhead is also not enormous (float-rounding is costly when the input is a
+% fraction).
+%
+% \XINTinfloatpowten will receive an input with at least P+14 and up to 2P+28
+% digits... fortunaltely with no fraction part and will start rounding it in
+% the fixed point sense of its input to P+4 digits after decimal point, which
+% is not enormously costly.
+%
+% Of course all these things pile up...
+% |
+% \begin{macrocode}
+\def\XINTinFloatExp{\romannumeral0\XINTinfloatexp}%
+\def\XINT_tmpa#1.{%
+\def\XINTinfloatexp##1%
+{%
+ \XINTinfloatpowten
+ {\xintMul{\XINT_c_oneoverlogten_xx}{\XINTinFloatS[#1]{##1}}}%
+}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+14.%
+% \end{macrocode}
+% \lverb|&
+% Here is how the reduction to computations of an exp(h) via series is done.
+%
+% Starting from x, after initial argument normalization, it is fixed-point
+% rounded to 6 fractional digits giving x'' = ±n.d_1...d_6 (which may be 0).
+%
+% I have to resist temptation using very low level routines here and wisely
+% will employ the available user-level stuff. One computes then the
+% difference x-x'' which gives some eta, and the h will be log(10).eta. The
+% subtraction and multiplication are done exactly then float rounded to P-1
+% digits to obtain the h.
+%
+% Then exp(h) is computed. And to finish it is multiplied with the stored
+% 10^±0.d_1, 10^±0.0d_2, etc...., constants and its decimal exponent is
+% increased by ±n. These operations are done at P+5 floating point digits. The
+% final result is then float-rounded to the target P digits.
+%
+% Currently I may use nested macros for some operations but will perhaps
+% revise in future (it makes tracing very complicated if one does not have
+% intermediate macros). The exponential series itself was initially only one
+% single macro, but as commented above I have now modified it.|
+% \begin{macrocode}
+\def\XINTinFloatPowTen{\romannumeral0\XINTinfloatpowten}%
+\def\XINT_tmpa#1.{%
+\def\XINTinfloatpowten##1%
+{%
+ \expandafter\XINT_powten_fork
+ \romannumeral0\xintiround{#1}{##1}[-#1]%
+}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+4.%
+\def\XINT_powten_fork#1%
+{%
+ \xint_UDzerominusfork
+ #1-\XINT_powten_zero
+ 0#1\XINT_powten_neg
+ 0-\XINT_powten_pos
+ \krof #1%
}%
-\let\XINT_flexpr_func_pow\XINT_expr_func_pow
+\def\XINT_powten_zero #1[#2]{ 1[0]}%
+% \end{macrocode}
+% \lverb|This rounding may produce 0.000000 but will always have 6 exactly
+% fractional digits, because the special case of a zero input was filtered out
+% preventively.
+% |
+% \begin{macrocode}
+\def\XINT_powten_pos#1[#2]%
+{%
+ \expandafter\XINT_powten_pos_a\romannumeral0\xintround{6}{#1[#2]}#1[#2]%
+}%
+\def\XINT_tmpa #1.#2.{%
+\def\XINT_powten_pos_a ##1.##2##3##4##5##6##7##8[##9]%
+{%
+ \expandafter\XINT_infloate
+ \romannumeral0\XINTinfloat[\XINTdigits]{%
+ \xintMul{\csname XINT_c_1_##2\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_2_##3\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_3_##4\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_4_##5\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_5_##6\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_6_##7\endcsname}{%
+ \xintAdd{1[0]}{%
+ \expandafter\XINT_Exp_series_a_ii
+ \romannumeral0\XINTinfloat[#2]{%
+ \xintMul{\XINT_c_logten}%
+ {\xintAdd{-##1.##2##3##4##5##6##7}{##8[##9]}}%
+ }%
+ \xint:
+ }%
+ }}}}}}}}}}}}{##1}%
+}}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits+5\expandafter.%
+ \the\numexpr\XINTdigits-1.%
+% \end{macrocode}
+% \lverb|This rounding may produce -0.000000 but will always have 6 exactly
+% fractional digits and a leading minus sign.|
+% \begin{macrocode}
+\def\XINT_powten_neg#1[#2]%
+{%
+ \expandafter\XINT_powten_neg_a\romannumeral0\xintround{6}{#1[#2]}#1[#2]%
+}%
+\def\XINT_tmpa #1.#2.{%
+\def\XINT_powten_neg_a -##1.##2##3##4##5##6##7##8[##9]%
+{%
+ \expandafter\XINT_infloate
+ \romannumeral0\XINTinfloat[\XINTdigits]{%
+ \xintMul{\csname XINT_c_1_##2_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_2_##3_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_3_##4_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_4_##5_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_5_##6_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_6_##7_inv\endcsname}{%
+ \xintAdd{1[0]}{%
+ \expandafter\XINT_Exp_series_a_ii
+ \romannumeral0\XINTinfloat[#2]{%
+ \xintMul{\XINT_c_logten}%
+ {\xintAdd{##1.##2##3##4##5##6##7}{##8[##9]}}%
+ }%
+ \xint:
+ }%
+ }}}}}}}}}}}}{-##1}%
+}}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits+5\expandafter.%
+ \the\numexpr\XINTdigits-1.%
% \end{macrocode}
-% \subsection{\csh{poormanloghack}}
-% \lverb|With \poormanloghack{**}, the ** operator will use pow10(y*log10(x)).
-% Same for ^. Sync'd with xintexpr 1.4.
+% \subsubsection{Exponential series}
+% \lverb|Or rather here h(1 + h(1/2 + h (1/6 + ....))). Upto at most h^9/9!
+% term.
%
-% MEMO: the reason why I need to redefine a lot of stuff is that xintexpr.sty
-% does the job only for ^ and then does a \let for exec_** only. So if now
-% ^ and ** possibly act differently all must be duplicated.|
+% The used initial h has been float rounded to P-1 digits.|
% \begin{macrocode}
-\catcode`\* 11
-\def\poormanloghack**
+\def\XINT_tmpa#1.#2.{%
+\def\XINT_Exp_series_a_ii##1\xint:
{%
- \def\XINT_tmpa ##1##2##3##4##5##6%
+ \expandafter\XINT_Exp_series_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_Exp_series_b##1[##2]\xint:
+{%
+ \expandafter\XINT_Exp_series_c_
+ \romannumeral0\xintadd{1}{\xintHalf{##10}[##2-1]}\xint:
+}%
+\def\XINT_Exp_series_c_##1\xint:##2\xint:
+{%
+ \XINTinFloat[#2]{\xintMul{##1}{##2}}%
+}%
+}%
+\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-6\expandafter.%
+ \the\numexpr\XINTdigits-1.%
+\ifnum\XINTdigits>15
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_Exp_series_a_ii##1\xint:
+{%
+ \expandafter\XINT_Exp_series_a_iii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_Exp_series_a_iii##1\xint:
+{%
+ \expandafter\XINT_Exp_series_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_Exp_series_b##1[##2]\xint:
+{%
+ \expandafter\XINT_Exp_series_c_i
+ \romannumeral0\xintadd{#3}{##1/6[##2]}\xint:
+}%
+\def\XINT_Exp_series_c_i##1\xint:##2\xint:
+{%
+ \expandafter\XINT_Exp_series_c_
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-13\expandafter.%
+ \the\numexpr\XINTdigits-6.%
+ {5[-1]}.%
+ {1[0]}.%
+\fi
+\ifnum\XINTdigits>21
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_Exp_series_a_iii##1\xint:
+{%
+ \expandafter\XINT_Exp_series_a_iv
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_Exp_series_a_iv##1\xint:
+{%
+ \expandafter\XINT_Exp_series_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_Exp_series_b##1[##2]\xint:
+{%
+ \expandafter\XINT_Exp_series_c_ii
+ \romannumeral0\xintadd{#3}{##1/24[##2]}\xint:
+}%
+\def\XINT_Exp_series_c_ii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_Exp_series_c_i
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-19\expandafter.%
+ \the\numexpr\XINTdigits-13\expandafter.%
+ \romannumeral0\XINTinfloat[\XINTdigits-13]{1/6[0]}.%
+ {5[-1]}.%
+\fi
+\ifnum\XINTdigits>28
+\def\XINT_tmpa #1 #2 #3 #4 #5 #6 #7 %
+{%
+ \def\XINT_tmpb ##1##2##3##4%
{%
- \def ##3####1% \XINT_expr_op_<op>
+ \def\XINT_tmpc####1.####2.####3.####4.%
{%
- \expanded{\unexpanded{##4{####1}}\expandafter}%
- \romannumeral`&&@\expandafter##2\romannumeral`&&@\XINT_expr_getnext
+ \def##2########1\xint:
+ {%
+ \expandafter##1%
+ \romannumeral0\XINTinfloatS[####2]{########1}\xint:########1\xint:
+ }%
+ \def##1########1\xint:
+ {%
+ \expandafter\XINT_Exp_series_b
+ \romannumeral0\XINTinfloatS[####1]{########1}\xint:########1\xint:
+ }%
+ \def\XINT_Exp_series_b########1[########2]\xint:
+ {%
+ \expandafter##3%
+ \romannumeral0\xintadd{####3}{########1/#5[########2]}\xint:
+ }%
+ \def##3########1\xint:########2\xint:
+ {%
+ \expandafter##4%
+ \romannumeral0\xintadd{####4}{\XINTinFloat[####2]{\xintMul{########1}{########2}}}\xint:
+ }%
}%
- \def##2####1% \XINT_expr_check-_<op>
- {%
+ }%
+ \expandafter\XINT_tmpb
+ \csname XINT_Exp_series_a_\romannumeral\numexpr#1\expandafter\endcsname
+ \csname XINT_Exp_series_a_\romannumeral\numexpr#1-1\expandafter\endcsname
+ \csname XINT_Exp_series_c_\romannumeral\numexpr#1-2\expandafter\endcsname
+ \csname XINT_Exp_series_c_\romannumeral\numexpr#1-3\endcsname
+ \expandafter\XINT_tmpc
+ \the\numexpr\XINTdigits-#2\expandafter.%
+ \the\numexpr\XINTdigits-#3\expandafter.\expanded{%
+ \XINTinFloat[\XINTdigits-#3]{1/#6[0]}.%
+ \XINTinFloat[\XINTdigits-#4]{1/#7[0]}.%
+ }%
+}%
+\XINT_tmpa 5 26 19 13 120 24 6 %<-- keep space
+\ifnum\XINTdigits>35 \XINT_tmpa 6 33 26 19 720 120 24 \fi
+\ifnum\XINTdigits>42 \XINT_tmpa 7 40 33 26 5040 720 120 \fi
+\ifnum\XINTdigits>48 \XINT_tmpa 8 46 40 33 40320 5040 720 \fi
+\ifnum\XINTdigits>55 \XINT_tmpa 9 53 46 40 362880 40320 5040 \fi
+\fi
+% \end{macrocode}
+% \subsection{April 2021: at last \csh{XINTinFloagLogTen}, \csh{XINTinFloatLog}}
+% \lverb?&
+% Attention that this is not supposed to be used with \XINTdigits at
+% 8 or less, it will crash if that is the case. The log10() and log()
+% functions in case \XINTdigits is at most 8 are mapped to \PoormanLogBaseTen
+% respectively \PoormanLog macros.
+%
+% In the explications here I use the function names rather than the macro
+% names.
+%
+% Both log(x) and log10(x) are on top of an underlying macro which will
+% produce z and h such that x is about 10^z e^h (with h being small is
+% obtained via a log series). Then log(x) computes log(10)z+h whereas log10(x)
+% computes as z+h/log(10).
+%
+% There will be three branches
+% according to situation of x relative to 1. Let y be the math value log10(x)
+% that we want to approximate to target precision P digits. P is assumed at
+% least 9.
+%
+% I will describe the algorithm roughly, but skip its underlying support
+% analysis; at some point I mention "fixed point calculations", but in
+% practice it is not done exactly that way, but describing it would be
+% complicated so look at the code which is very readable (by the author, at
+% the present time).
+%
+% First we compute z = ±n.d_1d_2...d_6 as the rounded to 6 fractional digits
+% approximation of y=log10(x) obtained by first using the poormanlog macros on x
+% (float rounded to 9 digits) then rounding as above.
+%
+% Warning: this description is not in sync with the code, now the case where
+% d_1d_2...d_6 is 000000 is filtered out and one jumps directly either to case
+% I if n≠0 or to case III if n=0. There is also a preventive step to recognize
+% when the rounding produces a z exactly zero (\xintRound has bad pratice of
+% outputting a 0 with no decimal point if the input was exactly zero, and this
+% can happen here as the input is some approximation to actual logarithm).
+%
+% CASE I: either n is NOT zero or d_1d_2....d_6 is at least 100001. Then we
+% compute X = 10^(-z)*x which is near 1, by using the table of powers of
+% 10, using P+5 digits significands. Then we compute (exactly) eta = X-1,
+% (which is in absolute value less than 0.0000012)
+% and obtain
+% y as z + log(10)^(-1) times log(1+eta)
+% where log(1+eta) = eta - eta^2/2 + eta^3/3- ... is "computed with
+% P+4 fractional fixed point digits" [1]_ according to the following table:
+%
+%( - maximal value of P: 9, 15, 21, 27, 33, 39, 45, 51, 57, 63
+%: - last included term: /1, /2, /3, /4, /5, /6, /7, /8, /9, /10
+%)
+%
+% .. [1] this "P+4" includes leading fractional zeroes so in practice it will
+% rather be done as eta(1 - eta(1/2 + eta(1/3-...))), and the inner sums will
+% be done in various precisions, the top level (external) eta probably at P-1
+% digits, the first inner eta at P-7 digits, the next at P-13, something in
+% this style. The heuristics is simple: at P=9 we don't need the first inner
+% eta, so let's use there P-9 or rather P-7 digits by security. Similarly at
+% P=3 we would not need at all the eta, so let's use the top level one rounded
+% at P-3+2 = P-1 digits. And there is a shift by 6 less digits at each inner
+% level. RÉFLÉCHIR SI C'EST PAS PLUTÔT P-2 ICI, suffisant au regard de la
+% précision par ailleurs pour la réduction près de 1.
+%
+% The sequence of maximal P's is simply an arithmetic progression.
+%
+% The addition of z will trigger the final rounding to P digits.
+% The inverse of log(10) is precomputed with P+4 digits.
+%
+% This case I essentially handles x such as max(x,1/x)>10^0.1=1.2589...
+%
+% CASE II: n is zero and d_1d_2....d_6 is not zero. We operate as in CASE I,
+% up to the following differences:
+%( - the table of fractional powers of 10 is used with P+10 significands.
+%: - the X is also computed with P+10 digits, i.e. eta = X-1 (which obeys&
+% the given estimate) is estimated with P+9 [2]_ fractional fixed points digits&
+% and the log series will be evaluated in this sense.
+%: - the constant log(10)^(-1) is still used with only P+4 digits
+%)
+%
+% The log series is terminated according to the following table:
+%( - maximal value of P: 4, 10, 16, 22, 28, 34, 40, 46, 52, 58, 64
+%: - last included term: /1, /2, /3, /4, /5, /6, /7, /8, /9, /10
+%)
+%
+% Again the P's are in arithmetic progression, the same as before shifted by
+% 5.
+%
+% .. [2] same remark as above. The top level eta in eta(1 - eta(1/2 -
+% eta(...))) will use P+4 significant digits, but the first inner eta will be
+% used with only P-2 digits, the next inner one with P-8 digits etc...
+%
+% This case II handles the x which are near 1, but not as close as 10^±0.000001.
+%
+% CASE III: z=0. In this case X = x = 1+eta and we use the log series in
+% this sense : log(10)^(-1)*eta*(1 - eta/2 + eta^2/3-....)
+% where again log(10)^(-1) has been precomputed with P+4 digits
+% and morally the series uses P+4 fractional digits (P+3 would probably
+% be enough for the precision I want, need to check my notes)
+% and the thresholds table is:
+%( - maximal value of P: 3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63
+%: - last included term: /1, /2, /3, /4, /5, /6, /7, /8, /9, /10, /11
+%)
+%
+% This is same progression but shifted by one.
+%
+% To summarize some relevant aspects:
+%( - this algorithm uses only log(10)^(-1) as precomputed logarithm
+%: - in particular the logarithms of small integers 2, 3, 5,... are&
+% not pre-computed. Added note: I have now tested at 16, 32, 48 and 62&
+% digits that all of the log10(n), for n = 1..1000, are computed with&
+% correct rounding. In fact, generally speaking, random testing of a&
+% about 20000 inputs has failed to reveal a single non-correct&
+% rounding. Naturally, randomly testing is not the way to corner&
+% the software into its weak points...
+%: - it uses two tables of fractional powers of ten: one with P+5 digits and&
+% another one with extended precision at P+10 digits.
+%: - it needs three distinct implementations of the log series.
+%: - it does not use the well-known trick reducing to using only odd powers&
+% in the log series (somehow I have come to dread divisions, even though&
+% here as is well-known it could be replaced with some product, my&
+% impression was that what is gained on one side is lost on the other,&
+% for the range of P I am targeting, i.e. P up to about 60.)
+%: - all of this is experimental (in particular the previous item was not&
+% done perhaps out of sheer laziness)
+%)
+%
+% Absolutely no error check is done whether the input x is really positive.
+% As seen above the maximal target precision is 63 (not 64).
+%
+% ?
+% \begin{macrocode}
+\def\XINT_tmpa#1.{%
+\def\XINTinFloatLog{\romannumeral0\XINTinfloatlog}%
+\def\XINTinfloatlog
+{%
+ \expandafter\XINT_log_out
+ \romannumeral0\expandafter\XINT_logten_a
+ \romannumeral0\XINTinfloat[#1]%{##1}
+}%
+\def\XINT_log_out ##1\xint:##2\xint:
+{%
+ \XINTinfloat[#1]%
+ {\xintAdd{\xintMul{\XINT_c_logten}{##1}}{##2}}%
+}%
+\def\XINTinFloatLogTen{\romannumeral0\XINTinfloatlogten}%
+\def\XINTinfloatlogten
+{%
+ \expandafter\XINT_logten_out
+ \romannumeral0\expandafter\XINT_logten_a
+ \romannumeral0\XINTinfloat[#1]%{##1}
+}%
+\def\XINT_logten_out ##1\xint:##2\xint:
+{%
+ \XINTinfloat[#1]%
+ {\xintAdd{##1}{\xintMul{\XINT_c_oneoverlogten}{##2}}}%
+}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits.%
+\def\XINTinFloatLogTen_xdgout%#1[#2]
+{%
+ \romannumeral0\expandafter\XINT_logten_xdgout\romannumeral0\XINT_logten_a
+}%
+\def\XINT_logten_xdgout #1\xint:#2\xint:
+{%
+ \xintadd{#1}{\xintMul{\XINT_c_oneoverlogten_xx}{#2}}%
+}%
+% \end{macrocode}
+% \lverb|No check is done whether input is negative or vanishes. We apply
+% \XINTinfloat[9] which if input is not zero always produces 9 digits (and
+% perhaps a minus sign) the first digit is non-zero. This is the expected
+% input to \numexpr\PML@<digits><dot>.\relax|
+% \begin{macrocode}
+\def\XINT_logten_a#1[#2]%
+{%
+ \expandafter\XINT_logten_b
+ \romannumeral0\XINTinfloat[9]{#1[#2]}#1[#2]%
+}%
+\def\XINT_logten_b#1[#2]%
+{%
+ \expandafter\XINT_logten_c
+ \romannumeral0\xintround{6}%
+ {\xintiiAdd{\xintDSx{-9}{\the\numexpr#2+8\relax}}%
+ {\the\numexpr\PML@#1.\relax}%
+ [-9]}%
+ \xint:
+}%
+% \end{macrocode}
+% \lverb|If we were either in 100000000[0] or 999999999[-1] for the #1[#2]
+% \XINT_logten_b input, and only in those cases, the \xintRound{6} produced
+% "0". We are very near 1 and will treat this as case III, but this is
+% sub-optimal.|
+% \begin{macrocode}
+\def\XINT_logten_c #1#2%
+{%
+ \xint_gob_til_xint:#2\XINT_logten_IV\xint:
+ \XINT_logten_d #1#2%
+}%
+\def\XINT_logten_IV\xint:\XINT_logten_d0{\XINT_logten_f_III}%
+% \end{macrocode}
+% \lverb|Here we are certain that \xintRound{6} produced a decimal point and
+% 6 fractional digit tokens #2, but they can be zeros.
+%
+% If #1 vanishes and #2>100000 we are in case I.
+%
+% If #1 vanishes and 100000>=#2>0 we are in case II.
+%
+% If #1 and #2 vanish we are in case III.
+%
+% If #1 does not vanish we are in case I with a direct quicker access if #2 vanishes.
+%
+% Attention to the sign of #1, it is checked later on.
+%
+% A bit tired today of expandafter or afterfi or dothis/orthat etc... (which
+% is one level). Somehow there are very very few \ifcase use in all of
+% xint... I don't know why.
+%
+% |
+% \begin{macrocode}
+\def\XINT_logten_d #1.#2\xint:
+{%
+ \ifcase
+ \ifnum#1=\xint_c_
+ \ifnum #2>100000 \xint_c_i\else
+ \ifnum #2>\xint_c_ \xint_c_ii\else \xint_c_iii\fi\fi
+ \else
+ \ifnum#2>\xint_c_ \xint_c_i\else \xint_c_\fi
+ \fi
+ \expandafter\XINT_logten_f_Isp
+ \or\expandafter\XINT_logten_f_I
+ \or\expandafter\XINT_logten_f_II
+ \else\expandafter\XINT_logten_f_III
+ \fi
+ #1.#2\xint:
+}%
+\def\XINT_logten_f_I#1%
+{%
\xint_UDsignfork
- ####1{\expandafter##2\romannumeral`&&@##1}%
- -{##5####1}%
- \krof
+ #1\XINT_logten_f_I_neg
+ -\XINT_logten_f_I_pos
+ \krof #1%
+}%
+\def\XINT_logten_f_II#1%
+{%
+ \xint_UDsignfork
+ #1\XINT_logten_f_II_neg
+ -\XINT_logten_f_II_pos
+ \krof #1%
+}%
+\def\XINT_tmpa#1.{%
+\def\XINT_logten_f_Isp##1.000000\xint:##2[##3]%
+{%
+ {##1[0]}\xint:
+ {\expandafter\XINT_LogTen_serI_a_i
+ \romannumeral0\XINTinfloatS[#1]{\xintAdd{##2[##3-##1]}{-1[0]}}%
+ \xint:
+ }\xint:
+}%
+}\expandafter\XINT_tmpa\the\numexpr\XINTdigits-2.%
+\def\XINT_tmpa#1.{%
+\def\XINT_logten_f_III##1\xint:##2[##3]%
+{%
+ {0[0]}\xint:
+ {\expandafter\XINT_LogTen_serIII_a_ii
+ \romannumeral0\XINTinfloatS[#1]{\xintAdd{##2[##3]}{-1[0]}}%
+ \xint:
+ }\xint:
+}}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+4.%
+\def\XINT_tmpa#1.#2.{%
+\def\XINT_logten_f_I_pos##1.##2##3##4##5##6##7\xint:##8[##9]%
+{%
+ {\the\numexpr##1##2##3##4##5##6##7[-6]}\xint:
+ {\expandafter\XINT_LogTen_serI_a_i
+ \romannumeral0\XINTinfloat[#2]%
+ {\xintAdd{-1[0]}%
+ {\xintMul{\csname XINT_c_1_##2_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_2_##3_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_3_##4_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_4_##5_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_5_##6_inv\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_6_##7_inv\endcsname}
+ {##8[##9-##1]}%
+ }}}}}}}}}}%
+ }%
+ }\xint:
+ }\xint:
+}%
+\def\XINT_logten_f_I_neg##1.##2##3##4##5##6##7\xint:##8[##9]%
+{%
+ {\the\numexpr##1##2##3##4##5##6##7[-6]}\xint:
+ {\expandafter\XINT_LogTen_serI_a_i
+ \romannumeral0\XINTinfloat[#2]%
+ {\xintAdd{-1[0]}%
+ {\xintMul{\csname XINT_c_1_##2\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_2_##3\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_3_##4\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_4_##5\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_5_##6\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_6_##7\endcsname}
+ {##8[##9-##1]}%
+ }}}}}}}}}}%
+ }%
+ }\xint:
+ }\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits+5\expandafter.\the\numexpr\XINTdigits-1.%
+\def\XINT_tmpa#1.#2.{%
+\def\XINT_logten_f_II_pos0.##1##2##3##4##5##6\xint:##7[##8]%
+{%
+ {\the\numexpr##1##2##3##4##5##6[-6]}\xint:
+ {\expandafter\XINT_LogTen_serII_a_ii
+ \romannumeral0\XINTinfloat[#2]%
+ {\xintAdd{-1[0]}%
+ {\xintMul{\csname XINT_c_1_##1_inv_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_2_##2_inv_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_3_##3_inv_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_4_##4_inv_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_5_##5_inv_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_6_##6_inv_x\endcsname}
+ {##7[##8]}%
+ }}}}}}}}}}%
+ }%
+ }\xint:
+ }\xint:
+}%
+\def\XINT_logten_f_II_neg-0.##1##2##3##4##5##6\xint:##7[##8]%
+{%
+ {\the\numexpr-##1##2##3##4##5##6[-6]}\xint:
+ {\expandafter\XINT_LogTen_serII_a_ii
+ \romannumeral0\XINTinfloat[#2]%
+ {\xintAdd{-1[0]}%
+ {\xintMul{\csname XINT_c_1_##1_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_2_##2_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_3_##3_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_4_##4_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_5_##5_x\endcsname}{%
+ \XINTinFloat[#1]{%
+ \xintMul{\csname XINT_c_6_##6_x\endcsname}
+ {##7[##8]}%
+ }}}}}}}}}}%
+ }%
+ }\xint:
+ }\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits+10\expandafter.\the\numexpr\XINTdigits+4.%
+% \end{macrocode}
+% \lverb|Initially all of this was done in a single big nested macro but the
+% float-rounding of argument to less digits worked again each time from
+% initial long input; the advantage on the other hand was that the 1/i
+% constants were all pre-computed and rounded.
+%
+% Pre-coding the successive rounding to six digits less at each stage could be
+% done via a single loop which would then walk back up inserting coeffs like
+% 1/#1 having no special optimizing tricks. Pre-computing the 1/#1 too is
+% possible but then one would have to copy the full set of such constants
+% (which would be pre-computed depending on P), and this will add grabbing
+% overhead in the loop expansion. Or one defines macros to hold the
+% pre-rounded constants.
+%
+% Finally I do define macros, not only to hold the constants but to hold the
+% whole build-up. Sacrificing brevity of code to benefit of expansion "speed".
+%
+% Firts one prepares eta, with P+4 digits for mantissa, and then hands it over
+% to the log series. This will proceed via first preparing eta\xint: eta\xint:
+% .... eta\xint:, the leftmost ones being more and more reduced in number of
+% digits. Finally one goes back up to the right, the hard-coded number of
+% steps depending on value of P=\XINTdigits at time of reloading of
+% package. This number of steps is hard-coded in the number of macros which
+% get defined.
+%
+% Descending (leftwards) chain: _a, Turning point: _b, Ascending: _c.
+%
+% As it is very easy to make silly typing mistakes in the numerous macros I
+% have refactored a number of times the set-up to make manual verification
+% straightforward. Automatization is possible but the _b macros complicate
+% things, each one is its own special case. In the end the set-up will define
+% then redefine some _a and the (finally unique) _b macro, this allows easier
+% to read code, with no nesting of conditionals or else branches.
+%
+% Actually series III and series II differ by only a shift by and we could use
+% always the slightly more costly series III in place of series II. But that
+% would add one un-needed term and a bit overhead to the default P which is
+% 16...
+% |
+%
+% \subsubsection{Log series, case I}
+% \begin{macrocode}
+\def\XINT_LogTen_serI_a_i#1\xint:{#1}%
+\ifnum\XINTdigits>9
+\def\XINT_tmpa#1.#2.{%
+\def\XINT_LogTen_serI_a_i##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_ii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:
+}%
+\def\XINT_LogTen_serI_a_ii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_
+ \romannumeral0\xintadd{1}{\xintiiOpp\xintHalf{##10}[##2-1]}\xint:
+}%
+\def\XINT_LogTen_serI_c_##1\xint:##2\xint:
+{%
+ \XINTinFloat[#2]{\xintMul{##1}{##2}}%
+}%
+}%
+\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-7\expandafter.%
+ \the\numexpr\XINTdigits-1.%
+\fi
+\ifnum\XINTdigits>15
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_ii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_iii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_a_iii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_i
+ \romannumeral0\xintadd{#3}{##1/3[##2]}\xint:
+}%
+\def\XINT_LogTen_serI_c_i##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-13\expandafter.%
+ \the\numexpr\XINTdigits-7.%
+ {-5[-1]}.%
+ {1[0]}.%
+\fi
+\ifnum\XINTdigits>21
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_iii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_iv
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_a_iv##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_ii
+ \romannumeral0\xintadd{#3}{\xintiiMul{-25}{##1}[##2-2]}\xint:
+}%
+\def\XINT_LogTen_serI_c_ii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_i
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-19\expandafter.%
+ \the\numexpr\XINTdigits-13\expandafter.%
+ \romannumeral0\XINTinfloat[\XINTdigits-13]{1/3[0]}.%
+ {-5[-1]}.%
+\fi
+\ifnum\XINTdigits>27
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_iv##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_v
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_a_v##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_iii
+ \romannumeral0\xintadd{#3}{\xintDouble{##1}[##2-1]}\xint:
+}%
+\def\XINT_LogTen_serI_c_iii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_ii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-25\expandafter.%
+ \the\numexpr\XINTdigits-19\expandafter.\expanded{%
+ {-25[-2]}.%
+ \XINTinFloat[\XINTdigits-13]{1/3[0]}.%
}%
- \def##5####1####2% \XINT_expr_checkp_<op>
- {%
- \ifnum ####1>\XINT_expr_precedence_**
- \expandafter##5%
- \romannumeral`&&@\csname XINT_##6_op_####2\expandafter\endcsname
- \else
- \expandafter ####1\expandafter ####2%
- \fi
+\fi
+\ifnum\XINTdigits>33
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_v##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_vi
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_a_vi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_iv
+ \romannumeral0\xintadd{#3}{\xintiiOpp##1/6[##2]}\xint:
+}%
+\def\XINT_LogTen_serI_c_iv##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_iii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-31\expandafter.%
+ \the\numexpr\XINTdigits-25.%
+ {2[-1]}.%
+ {-25[-2]}.%
+\fi
+\ifnum\XINTdigits>39
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_vi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_vii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_a_vii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_v
+ \romannumeral0\xintadd{#3}{##1/7[##2]}\xint:
+}%
+\def\XINT_LogTen_serI_c_v##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_iv
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-37\expandafter.%
+ \the\numexpr\XINTdigits-31\expandafter.%
+ \romannumeral0\XINTinfloatS[\XINTdigits-31]{-1/6[0]}.%
+ {2[-1]}.%
+\fi
+\ifnum\XINTdigits>45
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_vii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_viii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_a_viii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_vi
+ \romannumeral0\xintadd{#3}{\xintiiMul{-125}{##1}[##2-3]}\xint:
+}%
+\def\XINT_LogTen_serI_c_vi##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_v
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-43\expandafter.%
+ \the\numexpr\XINTdigits-37\expandafter.\expanded{%
+ \XINTinFloat[\XINTdigits-37]{1/7[0]}.%
+ \XINTinFloat[\XINTdigits-31]{-1/6[0]}.%
}%
- }%
- \expandafter\XINT_tmpa
- \csname XINT_expr_op_-ix\expandafter\endcsname
- \csname XINT_expr_check-_**\endcsname
- \XINT_expr_op_**
- \XINT_expr_exec_**
- \XINT_expr_checkp_** {expr}%
- \expandafter\XINT_tmpa
- \csname XINT_flexpr_op_-ix\expandafter\endcsname
- \csname XINT_flexpr_check-_**\endcsname
- \XINT_flexpr_op_**
- \XINT_flexpr_exec_**
- \XINT_flexpr_checkp_** {flexpr}%
- \def\XINT_expr_exec_** ##1##2##3##4% \XINT_expr_exec_<op>
- {%
- \expandafter##2\expandafter##3\expandafter{%
- \romannumeral`&&@\XINT:NEhook:f:one:from:two
- {\romannumeral`&&@\PoorManPower##1##4}}%
+\fi
+\ifnum\XINTdigits>51
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_viii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_ix
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_a_ix##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_vii
+ \romannumeral0\xintadd{#3}{##1/9[##2]}\xint:
+}%
+\def\XINT_LogTen_serI_c_vii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_vi
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-49\expandafter.%
+ \the\numexpr\XINTdigits-43\expandafter.\expanded{%
+ {-125[-3]}.%
+ \XINTinFloat[\XINTdigits-37]{1/7[0]}.%
}%
- \let\XINT_flexpr_exec_**\XINT_expr_exec_**
+\fi
+\ifnum\XINTdigits>57
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serI_a_ix##1\xint:
+{%
+ \expandafter\XINT_LogTen_serI_a_x
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
}%
-\def\poormanloghack^
+\def\XINT_LogTen_serI_a_x##1\xint:
{%
- \def\XINT_tmpa ##1##2##3##4##5##6%
- {%
- \def ##3####1% \XINT_expr_op_<op>
- {%
- \expanded{\unexpanded{##4{####1}}\expandafter}%
- \romannumeral`&&@\expandafter##2\romannumeral`&&@\XINT_expr_getnext
+ \expandafter\XINT_LogTen_serI_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serI_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_viii
+ \romannumeral0\xintadd{#3}{\xintiiOpp##1[##2-1]}\xint:
+}%
+\def\XINT_LogTen_serI_c_viii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serI_c_vii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-55\expandafter.%
+ \the\numexpr\XINTdigits-49\expandafter.%
+ \romannumeral0\XINTinfloat[\XINTdigits-49]{1/9[0]}.%
+ {-125[-3]}.%
+\fi
+% \end{macrocode}
+% \subsubsection{Log series, case II}
+% \begin{macrocode}
+\def\XINT_tmpa#1.#2.{%
+\def\XINT_LogTen_serII_a_ii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b#1[#2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_
+ \romannumeral0\xintadd{1}{\xintiiOpp\xintHalf{#10}[#2-1]}\xint:
+}%
+\def\XINT_LogTen_serII_c_##1\xint:##2\xint:
+{%
+ \XINTinFloat[#2]{\xintMul{##1}{##2}}%
+}%
+}%
+\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-2\expandafter.%
+ \the\numexpr\XINTdigits+4.%
+\ifnum\XINTdigits>10
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_ii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_iii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_iii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_i
+ \romannumeral0\xintadd{#3}{##1/3[##2]}\xint:
+}%
+\def\XINT_LogTen_serII_c_i##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-8\expandafter.%
+ \the\numexpr\XINTdigits-2.%
+ {-5[-1]}.%
+ {1[0]}.%
+\fi
+\ifnum\XINTdigits>16
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_iii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_iv
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_iv##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_ii
+ \romannumeral0\xintadd{#3}{\xintiiMul{-25}{##1}[##2-2]}\xint:
+}%
+\def\XINT_LogTen_serII_c_ii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_i
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-14\expandafter.%
+ \the\numexpr\XINTdigits-8\expandafter.%
+ \romannumeral0\XINTinfloat[\XINTdigits-8]{1/3[0]}.%
+ {-5[-1]}.%
+\fi
+\ifnum\XINTdigits>22
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_iv##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_v
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_v##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_iii
+ \romannumeral0\xintadd{#3}{\xintDouble{##1}[##2-1]}\xint:
+}%
+\def\XINT_LogTen_serII_c_iii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_ii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-20\expandafter.%
+ \the\numexpr\XINTdigits-14\expandafter.\expanded{%
+ {-25[-2]}.%
+ \XINTinFloat[\XINTdigits-8]{1/3[0]}.%
}%
- \def##2####1% \XINT_expr_check-_<op>
- {%
- \xint_UDsignfork
- ####1{\expandafter##2\romannumeral`&&@##1}%
- -{##5####1}%
- \krof
+\fi
+\ifnum\XINTdigits>28
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_v##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_vi
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_vi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_iv
+ \romannumeral0\xintadd{#3}{\xintiiOpp##1/6[##2]}\xint:
+}%
+\def\XINT_LogTen_serII_c_iv##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_iii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-26\expandafter.%
+ \the\numexpr\XINTdigits-20.%
+ {2[-1]}.%
+ {-25[-2]}.%
+\fi
+\ifnum\XINTdigits>34
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_vi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_vii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_vii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_v
+ \romannumeral0\xintadd{#3}{##1/7[##2]}\xint:
+}%
+\def\XINT_LogTen_serII_c_v##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_iv
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-32\expandafter.%
+ \the\numexpr\XINTdigits-26\expandafter.%
+ \romannumeral0\XINTinfloatS[\XINTdigits-26]{-1/6[0]}.%
+ {2[-1]}.%
+\fi
+\ifnum\XINTdigits>40
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_vii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_viii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_viii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_vi
+ \romannumeral0\xintadd{#3}{\xintiiMul{-125}{##1}[##2-3]}\xint:
+}%
+\def\XINT_LogTen_serII_c_vi##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_v
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-38\expandafter.%
+ \the\numexpr\XINTdigits-32\expandafter.\expanded{%
+ \XINTinFloat[\XINTdigits-32]{1/7[0]}.%
+ \XINTinFloat[\XINTdigits-26]{-1/6[0]}.%
}%
- \def##5####1####2% \XINT_expr_checkp_<op>
- {%
- \ifnum ####1>\XINT_expr_precedence_^
- \expandafter##5%
- \romannumeral`&&@\csname XINT_##6_op_####2\expandafter\endcsname
- \else
- \expandafter ####1\expandafter ####2%
- \fi
+\fi
+\ifnum\XINTdigits>46
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_viii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_ix
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_ix##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_vii
+ \romannumeral0\xintadd{#3}{##1/9[##2]}\xint:
+}%
+\def\XINT_LogTen_serII_c_vii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_vi
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-44\expandafter.%
+ \the\numexpr\XINTdigits-38\expandafter.\expanded{%
+ {-125[-3]}.%
+ \XINTinFloat[\XINTdigits-32]{1/7[0]}.%
}%
- }%
- \expandafter\XINT_tmpa
- \csname XINT_expr_op_-ix\expandafter\endcsname
- \csname XINT_expr_check-_^\endcsname
- \XINT_expr_op_^
- \XINT_expr_exec_^
- \XINT_expr_checkp_^ {expr}%
- \expandafter\XINT_tmpa
- \csname XINT_flexpr_op_-ix\expandafter\endcsname
- \csname XINT_flexpr_check-_^\endcsname
- \XINT_flexpr_op_^
- \XINT_flexpr_exec_^
- \XINT_flexpr_checkp_^ {flexpr}%
- \def\XINT_expr_exec_^ ##1##2##3##4% \XINT_expr_exec_<op>
- {%
- \expandafter##2\expandafter##3\expandafter{%
- \romannumeral`&&@\XINT:NEhook:f:one:from:two
- {\romannumeral`&&@\PoorManPower##1##4}}%
+\fi
+\ifnum\XINTdigits>52
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_ix##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_x
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_x##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_viii
+ \romannumeral0\xintadd{#3}{\xintiiOpp##1[##2-1]}\xint:
+}%
+\def\XINT_LogTen_serII_c_viii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_vii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-50\expandafter.%
+ \the\numexpr\XINTdigits-44\expandafter.%
+ \romannumeral0\XINTinfloat[\XINTdigits-44]{1/9[0]}.%
+ {-125[-3]}.%
+\fi
+\ifnum\XINTdigits>58
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serII_a_x##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_a_xi
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_a_xi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_ix
+ \romannumeral0\xintadd{#3}{##1/11[##2]}\xint:
+}%
+\def\XINT_LogTen_serII_c_ix##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serII_c_viii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-56\expandafter.%
+ \the\numexpr\XINTdigits-50\expandafter.\expanded{%
+ {-1[-1]}.%
+ \XINTinFloat[\XINTdigits-44]{1/9[0]}.%
}%
- \let\XINT_flexpr_exec_^\XINT_expr_exec_^
+\fi
+% \end{macrocode}
+% \subsubsection{Log series, case III}
+% \begin{macrocode}
+\def\XINT_tmpa#1.#2.{%
+\def\XINT_LogTen_serIII_a_ii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b#1[#2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_
+ \romannumeral0\xintadd{1}{\xintiiOpp\xintHalf{#10}[#2-1]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_##1\xint:##2\xint:
+{%
+ \XINTinFloat[#2]{\xintMul{##1}{##2}}%
}%
-\def\poormanloghack#1{\csname poormanloghack#1\endcsname}%
+}%
+\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-1\expandafter.%
+ \the\numexpr\XINTdigits+4.%
+\ifnum\XINTdigits>9
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_ii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_iii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_iii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_i
+ \romannumeral0\xintadd{#3}{##1/3[##2]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_i##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-7\expandafter.%
+ \the\numexpr\XINTdigits-1.%
+ {-5[-1]}.%
+ {1[0]}.%
+\fi
+\ifnum\XINTdigits>15
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_iii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_iv
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_iv##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_ii
+ \romannumeral0\xintadd{#3}{\xintiiMul{-25}{##1}[##2-2]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_ii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_i
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-13\expandafter.%
+ \the\numexpr\XINTdigits-7\expandafter.%
+ \romannumeral0\XINTinfloat[\XINTdigits-7]{1/3[0]}.%
+ {-5[-1]}.%
+\fi
+\ifnum\XINTdigits>21
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_iv##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_v
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_v##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_iii
+ \romannumeral0\xintadd{#3}{\xintDouble{##1}[##2-1]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_iii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_ii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-19\expandafter.%
+ \the\numexpr\XINTdigits-13\expandafter.\expanded{%
+ {-25[-2]}.%
+ \XINTinFloat[\XINTdigits-7]{1/3[0]}.%
+ }%
+\fi
+\ifnum\XINTdigits>27
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_v##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_vi
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_vi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_iv
+ \romannumeral0\xintadd{#3}{\xintiiOpp##1/6[##2]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_iv##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_iii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-25\expandafter.%
+ \the\numexpr\XINTdigits-19.%
+ {2[-1]}.%
+ {-25[-2]}.%
+\fi
+\ifnum\XINTdigits>33
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_vi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_vii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_vii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_v
+ \romannumeral0\xintadd{#3}{##1/7[##2]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_v##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_iv
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-31\expandafter.%
+ \the\numexpr\XINTdigits-25\expandafter.%
+ \romannumeral0\XINTinfloatS[\XINTdigits-25]{-1/6[0]}.%
+ {2[-1]}.%
+\fi
+\ifnum\XINTdigits>39
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_vii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_viii
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_viii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_vi
+ \romannumeral0\xintadd{#3}{\xintiiMul{-125}{##1}[##2-3]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_vi##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_v
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-37\expandafter.%
+ \the\numexpr\XINTdigits-31\expandafter.\expanded{%
+ \XINTinFloat[\XINTdigits-31]{1/7[0]}.%
+ \XINTinFloat[\XINTdigits-25]{-1/6[0]}.%
+ }%
+\fi
+\ifnum\XINTdigits>45
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_viii##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_ix
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_ix##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_vii
+ \romannumeral0\xintadd{#3}{##1/9[##2]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_vii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_vi
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-43\expandafter.%
+ \the\numexpr\XINTdigits-37\expandafter.\expanded{%
+ {-125[-3]}.%
+ \XINTinFloat[\XINTdigits-31]{1/7[0]}.%
+ }%
+\fi
+\ifnum\XINTdigits>51
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_ix##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_x
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_x##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_viii
+ \romannumeral0\xintadd{#3}{\xintiiOpp##1[##2-1]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_viii##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_vii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-49\expandafter.%
+ \the\numexpr\XINTdigits-43\expandafter.%
+ \romannumeral0\XINTinfloat[\XINTdigits-43]{1/9[0]}.%
+ {-125[-3]}.%
+\fi
+\ifnum\XINTdigits>57
+\def\XINT_tmpa#1.#2.#3.#4.{%
+\def\XINT_LogTen_serIII_a_x##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_a_xi
+ \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_a_xi##1\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_b
+ \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint:
+}%
+\def\XINT_LogTen_serIII_b##1[##2]\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_ix
+ \romannumeral0\xintadd{#3}{##1/11[##2]}\xint:
+}%
+\def\XINT_LogTen_serIII_c_ix##1\xint:##2\xint:
+{%
+ \expandafter\XINT_LogTen_serIII_c_viii
+ \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint:
+}%
+}\expandafter\XINT_tmpa
+ \the\numexpr\XINTdigits-55\expandafter.%
+ \the\numexpr\XINTdigits-49\expandafter.\expanded{%
+ {-1[-1]}.%
+ \XINTinFloat[\XINTdigits-43]{1/9[0]}.%
+ }%
+\fi
+\XINTendxintloginput%
% \end{macrocode}
-% \lverb|IMPORTANT: We don't worry about resetting catcodes now as this file is
-% theoretically only loadable from xintexpr.sty itself which will take care of
-% the needed restore.|
% \StoreCodelineNo {xintlog}
% \cleardoublepage\let\xintlognameUp\undefined
% \MakePercentComment
@@ -43309,34 +46342,34 @@ xint.sty:205
xintbinhex.sty:53
xintcfrac.sty:183
xintcore.sty:272
-xintexpr.sty:428
-xintfrac.sty:507
+xintexpr.sty:431
+xintfrac.sty:506
xintgcd.sty:41
xintkernel.sty:17
-xintlog.sty:9
+xintlog.sty:187
xintseries.sty:48
xinttools.sty:157
-xinttrig.sty:31
+xinttrig.sty:65
\fi
% grep -o "^{%" xint*sty | wc -l
-\def\totala{ 1951}
+\def\totala{ 2165}
\iffalse
% grep -c -e "^}%" xint*sty
xint.sty:204
xintbinhex.sty:52
xintcfrac.sty:183
xintcore.sty:269
-xintexpr.sty:412
-xintfrac.sty:510
+xintexpr.sty:415
+xintfrac.sty:508
xintgcd.sty:43
xintkernel.sty:18
-xintlog.sty:9
+xintlog.sty:189
xintseries.sty:48
xinttools.sty:156
-xinttrig.sty:32
+xinttrig.sty:64
\fi
% grep -o "^}%" xint*sty | wc -l
-\def\totalb{ 1936}
+\def\totalb{ 2149}
\cleardoublepage
\section{Cumulative line count}
@@ -43360,7 +46393,8 @@ xinttrig.sty:32
\TeX\strut. Version {\xintbndlversion} of {\xintbndldate}.\par
}
-\CheckSum {35184}% 1.4d
+\CheckSum {38813}% 1.4e
+% 35184 pour 1.4d
% 35109 pour 1.4c, 35103 pour 1.4b, 34648 pour 1.4a, 34575 pour 1.4
% 33497 pour 1.3f, 33274 pour 1.3e, 31601 pour 1.3d, 31122 pour 1.3c
% 31069 pour 1.3b, 30482 pour 1.3a, 30621 pour 1.3, 30988 pour 1.2q,
diff --git a/macros/generic/xint/xint.pdf b/macros/generic/xint/xint.pdf
index 35ac85b1b0..11ca08941e 100644
--- a/macros/generic/xint/xint.pdf
+++ b/macros/generic/xint/xint.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 71eec1dedc..2247ca0125 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -24,11 +24,11 @@
% \changes{v1.20}{2021/01/09}{修改和完善用户文档。}
% \changes{v1.20}{2021/01/09}{模板更改为使用 CC-BY 许可协议。}
% \changes{v1.23}{2021/03/19}{修复在 \pkg{ctex} v2.5.6 更新后 \cls{easybook} 与 \pkg{hyperref} 冲突问题。}
-% \changes{v1.25a}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
+% \changes{v1.25b}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
%
% \title{\sffamily easybook 文档类手册}
% \author{瞿毅}
-% \date{2021/05/04\hskip\ccwd\relax v1.25a\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/05/05\hskip\ccwd\relax v1.25b\thanks{\url{https://gitee.com/texl3/easybook}}}
%
% \maketitle
% \begin{abstract}
@@ -118,7 +118,7 @@
% \end{syntax}
% 传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{noto} 与 \opt{none} 选项的相关描述见小节 \ref{subsec:font settings},\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
% \changes{v1.21}{2021/01/12}{默认字体与 \CTeX 一致,不再是自定义字体。}
-% \changes{v1.25a}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
+% \changes{v1.25b}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
% \end{function}
%
% \begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper}
@@ -145,8 +145,10 @@
% \changes{v1.23}{2021/03/16}{增加 article 文章模式,可用于短篇幅的文章。}
% \end{function}
%
+% \clearpage
% \subsection{文档命令}
% \label{subsec:document command}
+% \subsubsection{文区命令}
% \begin{function}[added = 2021-02-20,updated = 2021-04-29]{\frontmatter,\mainmatter,\backmatter,\cleardoublepage}
% \begin{syntax}
% \tn{frontmatter*}\oarg{编号格式|(Roman)}
@@ -158,15 +160,16 @@
% \changes{v1.23}{2021/02/20}{重新定义文档结构划分命令。}
% \end{function}
%
-% \begin{function}[added = 2021-02-20,updated = 2021-05-04]{\tableofcontents,\listoffigures,\listoftables,\listoflistings}
+% \subsubsection{目录命令}
+% \begin{function}[added = 2021-02-20,updated = 2021-05-05]{\tableofcontents,\listoffigures,\listoftables,\listoflistings}
% \begin{syntax}
-% \tn{tableofcontents+}\oarg{键值列表}
+% \tn{tableofcontents+}\oarg{键值列表}\parg{附加代码}
% \tn{listoffigures*+}\oarg{键值列表}
% \tn{listoftables*+}\oarg{键值列表}
% \tn{listoflistings*+}\oarg{键值列表}
% \end{syntax}
-% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等配合使用。目录的键值列表选项如下
-% \changes{v1.25a}{2021/05/04}{命令 \tn{tableofcontents} 可以输出双语目录。}
+% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用,附加代码是中文与英文目录之间的代码,可以插入文本和换页命令等。目录的键值列表选项如下
+% \changes{v1.25b}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
% \end{function}
%
% \begin{function}{multoc,title,book,article}
@@ -174,19 +177,40 @@
% multoc = <true|(false)>
% title = \{<中文目录标题>,<英文目录标题>\}
% \end{syntax}
-% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{title} 选项用于更改目录的标题,标题之间用一个半角逗号分开,也可以只有一部分,表示中文目录的标题,不过英文目录标题目前仅对 \tn{tableofcontents} 命令有效。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
+% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{title} 选项用于更改目录的标题,标题之间用一个半角逗号分开,也可以只有一部分,表示中文目录的标题。当设置了英文目录标题时,英文目录标题将会自动加入主文档目录,与 \tn{tableofcontents+} 配合输出。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
% \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
% \changes{v1.24}{2021/04/04}{目录命令的可选参数增加标题键值。}
% \end{function}
%
-% \begin{function}[added = 2021-05-04]{\bichapter,\bisection,\bisubsection}
+% \subsubsection{标题命令}
+% \begin{function}[added = 2021-05-05]{\bichapter,\bisection,\bisubsection,\bichapter*,\bisection*,\bisubsection*}
% \begin{syntax}
-% \tn{bichapter}\marg{中文标题}\marg{英文标题(在目录中)}
-% \tn{bichapter}\marg{中文标题}\marg{英文标题(在目录中)}
-% \tn{bichapter}\marg{中文标题}\marg{英文标题(在目录中)}
+% \tn{bichapter}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+% \tn{bisection}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+% \tn{bisubsection}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+% \tn{bichapter*}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+% \tn{bisection*}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+% \tn{bisubsection*}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
% \end{syntax}
-% 双语目录的标题命令目前设置了三个级别,它们将中文标题正常输出,并将中英文标题加入双语目录,这个功能是为国内一些大学的学位论文模板的要求设计,当然在英文模式下不需要使用。双语目录的格式是一致的,使用 \tn{tocset} 设置,英文目录的章级别标题名为 Chapter 暂不支持修改。
-% \changes{v1.25a}{2021/05/04}{增加与双语目录配合的标题命令。}
+% 双语目录的标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录,这个功能是为国内一些大学的学位论文模板的要求设计,当然在英文模式下不需要使用。
+%
+% 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一点与 \tn{chapter*} 等命令的行为不太一样。可选参数是目录中的中文标题,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。双语目录的格式是一致的,共享使用 \tn{tocset} 的设置,英文目录的章级别标题名及编号的修改方式如下
+% \changes{v1.25b}{2021/05/05}{增加与双语目录配合的标题命令。}
+% \end{function}
+%
+% \begin{function}{biname,binmuber}
+% \begin{syntax}
+% chapter/biname = \{<英文目录前名字|(Chapter\tn{space})>,<英文目录后名字>\}
+% chapter/binmuber = <英文目录数字输出命令|(\tn{arabic\{chapter\}})>
+% \end{syntax}
+% 类似 \CTeX 的 \opt{name} 和 \opt{nmuber} 选项,它们用于设置主文区 \tn{bichapter} 等标题命令在英文目录中的前后名字与编号,目前只支持通常改变名字与编号的 chapter 级别。
+% \end{function}
+%
+% \begin{function}[added = 2021-05-05]{\appendix}
+% \begin{syntax}
+% \tn{appendix}\oarg{英文附录目录前名字}\parg{英文附录目录数字输出命令}\oarg{英文附录目录后名字}
+% \end{syntax}
+% \tn{appendix} 命令后的章节标题变为附录形式。英文目录中附录标题的格式用可选参数修改,英文附录目录前名字默认为 Appendix\tn{space},英文附录目录数字输出命令默认为 \tn{Alph}\{chapter\},英文附录目录后名字默认为空。
% \end{function}
%
% \section{接口选项}
@@ -389,7 +413,7 @@
% headpunct = <(empty)>
% bodyfont = <(empty)>
% notefont = <(empty)>
-% headfont = <(\tn{color}\marg{ctex@emph}\tn{sffamily})>
+% headfont = <(\tn{color}\{ctex@emph\}\tn{sffamily})>
% headindent = <(0\tn{ccwd})>
% spaceabove = <(0.75ex plus .1ex)>
% spacebelow = <(0.75ex plus .1ex)>
@@ -692,7 +716,7 @@
% \end{syntax}
% 习题环境 \env{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号参数时不进行编号,使用+号参数启用 \pkg{tcolorbox} 支持生成标题。\meta{颜色名} 选项在使用+号参数时有效,其中颜色为自定义或 \pkg{xcolor} 包含的颜色名称。题目编号格式与小节 \ref{subsec:sort list} 排序列表相同,标题名默认为习题。
%
-% 配置选项在是否使用+号参数时用法不同,使用+号参数时为 \pkg{tcolorbox} 的盒子选项,例如 \opt{boxrule} 和 \opt{fontupper}。不使用+号参数时相当于设置 \tn{ctexset}\marg{section = {\#1}} 键值选项列表,例如 \opt{format} 和 \opt{beforeskip}。\meta{序言} 选项用于在习题环境开始前插入一段内容,可以是文本或者代码。注意,环境具有相同定界符的可选参数只能\textbf{从右往左}省略,省略的参数使用默认值。
+% 配置选项在是否使用+号参数时用法不同,使用+号参数时为 \pkg{tcolorbox} 的盒子选项,例如 \opt{boxrule} 和 \opt{fontupper}。不使用+号参数时相当于设置 \tn{ctexset}\{section = {\#1}\} 键值选项列表,例如 \opt{format} 和 \opt{beforeskip}。\meta{序言} 选项用于在习题环境开始前插入一段内容,可以是文本或者代码。注意,环境具有相同定界符的可选参数只能\textbf{从右往左}省略,省略的参数使用默认值。
% \changes{v1.23}{2021/02/08}{增加准确的习题盒子标题目录锚点。}
% \end{function}
%
@@ -921,7 +945,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplClass{easybook}{2021/05/04}{1.25a}{beta}
+\ProvidesExplClass{easybook}{2021/05/05}{1.25b}{beta}
\cs_generate_variant:Nn \eb_ctex_define:nn { nx }
\cs_generate_variant:Nn \int_to_arabic:n { v }
@@ -1144,10 +1168,7 @@
\cs_new_protected:Npn \eb_font_double_engine_set:n #1
{
\exp_args:Nc \RenewDocumentCommand {set #1 font}{O{}mO{}}
- {
- \ctex_at_end_preamble:n
- { \use:c { eb_set #1 font:nn }{##2}{##1,##3} }
- }
+ {\use:c { eb_set #1 font:nn }{##2}{##1,##3}}
}
\seq_const_from_clist:Nn \c__eb_font_reset_family_seq
{ main,sans,mono,CJKmain,CJKsans,CJKmono }
@@ -1395,9 +1416,7 @@
}
\bool_if:NT \l__eb_compile_draft_bool
{
- \bool_if:NTF \l__eb_page_twoside_bool
- { \easyfoot[C]{\color{SlateGray}\sffamily\today} }
- { \easyhead[C]{\color{SlateGray}\sffamily\today} }
+ \easyfoot[C]{\color{SlateGray}\sffamily\today}
\geometry{showframe}
}
}
@@ -1609,16 +1628,14 @@
}
}
-\contentsuse{}{bitoc}
+\contentsuse{}{tec}
\cs_set_protected:Npn \CTEX@addbitocline #1#2
{
\group_begin:
- \ctex_set:n
- {
- chapter/name = Chapter\space,
- chapter/number = \arabic{chapter}
- }
- \addcontentsline{bitoc}{#1}
+ \def\CTEX@prechapter{\CTEX@prebichapter}
+ \def\CTEX@thechapter{\CTEX@bichapter@number}
+ \def\CTEX@postchapter{\CTEX@postbichapter}
+ \addcontentsline{tec}{#1}
{\use:c { CTEX@#1@tocline }{#1}{#2}}
\group_end:
}
@@ -1626,8 +1643,18 @@
{ chapter,section,subsection }
\seq_map_inline:Nn \c__eb_bitoc_title_level_seq
{
- \cs_new_protected:cpn {bi #1} ##1##2
- { \use:c {#1}{##1}\CTEX@addbitocline{#1}{##2} }
+ \exp_args:Nc \NewDocumentCommand {bi #1}{sO{##3}mm}
+ {
+ \IfBooleanTF{##1}
+ {
+ \use:c {#1}*{\phantomsection ##3}
+ \CTEX@addtocline{#1}{##2}
+ \tl_if_empty:oF {##4} { \CTEX@addbitocline{#1}{##4} }
+ }{
+ \use:c {#1}[##2]{##3}
+ \tl_if_empty:oF {##4} { \CTEX@addbitocline{#1}{##4} }
+ }
+ }
}
\eb_appto_cmd:Nn \@chapter
@@ -1652,6 +1679,7 @@
}
\tl_set:Nn \l__eb_toc_type_tl { book }
+\tl_new:N \eb@bitoc@title
\keys_define:nn { eb/listoc }
{
article .code:n = \tl_set:Nn \l__eb_toc_type_tl { article },
@@ -1694,13 +1722,11 @@
{
\tl_if_eq:NnTF \l__eb_toc_type_tl { book }
{
- \chapter*{\phantomsection #1}
- \CTEX@addtocline{chapter}{#1}
+ \bichapter*{#1}{\eb@bitoc@title}
\eb@nonumber@markdouble{#1}
}
{
- \section*{\phantomsection #1}
- \CTEX@addtocline{section}{#1}
+ \bisection*{#1}{\eb@bitoc@title}
\bool_if:NTF \l__eb_class_book_bool
{ \eb@nonumber@markright{#1} }
{ \eb@nonumber@markdouble{#1} }
@@ -1725,8 +1751,8 @@
\IfBooleanTF{#1}
{
\tl_if_eq:NnTF \l__eb_toc_type_tl { book }
- { \chapter{\eb@toc@title} }
- { \section{\eb@toc@title} }
+ { \bichapter{\eb@toc@title}{\eb@bitoc@title} }
+ { \bisection{\eb@toc@title}{\eb@bitoc@title} }
}
{
\IfBooleanTF{#2}
@@ -1734,17 +1760,11 @@
{ \eb_title_mark_intoc:n {\eb@toc@title} }
}
}
-\cs_new_protected:Npn \eb_class_title_level_bool:n #1
+\cs_new_protected:Npn \eb_biber_title_level_bool:n #1
{
\bool_if:NTF \l__eb_class_book_bool
- {
- \chapter*{\phantomsection #1}
- \CTEX@addtocline{chapter}{#1}
- }
- {
- \section*{\phantomsection #1}
- \CTEX@addtocline{section}{#1}
- }
+ { \bichapter*{#1}{\l__eb_bib_bitoc_title} }
+ { \bisection*{#1}{\l__eb_bib_bitoc_title} }
\eb@nonumber@markdouble{#1}
}
\cs_new_protected:Npn \eb_multoc_pre_bool:
@@ -1767,7 +1787,7 @@
\bool_if:NT \l__eb_class_book_bool
{ \ifbool{@restonecol}{\twocolumn}{\onecolumn} }
}
-\RenewDocumentCommand{\tableofcontents}{t+o}
+\RenewDocumentCommand{\tableofcontents}{t+oD(){}}
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \contentsname
@@ -1779,9 +1799,9 @@
\@starttoc{toc}
\IfBooleanT{#1}
{
- \eb_title_mark_notoc:n { \eb@bitoc@title }
+ #3\eb_title_mark_notoc:n { \eb@bitoc@title }
\vspace*{\dim_use:N \l__eb_toc_offset_dim}
- \@starttoc{bitoc}
+ \@starttoc{tec}
}
\eb_multoc_post_bool:
\group_end:
@@ -1854,6 +1874,52 @@
}
}
+\eb_ctex_define:nn { chapter }
+ {
+ biname .code:n =
+ { \ctex_assign_heading_name:nn { bichapter } {#1} },
+ biname .initial:n = Chapter\space,
+ binmuber .tl_set:N = \CTEX@bichapter@number,
+ binmuber .initial:n = \arabic{chapter}
+ }
+\RenewDocumentCommand{\appendix}
+ {O{Appendix\space}D(){\Alph{chapter}}O{}}
+ {
+ \int_compare:nNnTF { \c@chapter } > { 0 }
+ {
+ \ExplSyntaxOn\char_set_catcode_letter:N \@
+ \eb_patch_cmd:Nnn \CTEX@addbitocline
+ {
+ \def\CTEX@prechapter{\CTEX@prebichapter}
+ \def\CTEX@thechapter{\CTEX@bichapter@number}
+ \def\CTEX@postchapter{\CTEX@postbichapter}
+ }
+ {
+ \def\CTEX@prechapter{#1}
+ \def\CTEX@thechapter{#2}
+ \def\CTEX@postchapter{#3}
+ }
+ \ExplSyntaxOff\char_set_catcode_other:N \@
+ \setcounter{chapter}{0}
+ \setcounter{section}{0}
+ \gdef\thechapter{\@Alph\c@chapter}
+ \gdef\CTEX@prechapter{\CTEX@preappendix}
+ \gdef\CTEX@thechapter{\CTEX@appendix@number}
+ \gdef\CTEX@postchapter{\CTEX@postappendix}
+ \gdef\CTEX@chapter@numbering{\CTEX@appendix@numbering}
+ }
+ {
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \gdef\thesection{\@Alph\c@section}
+ \gdef\CTEX@presection{\CTEX@preappendix}
+ \gdef\CTEX@thesection{\CTEX@appendix@number}
+ \gdef\CTEX@postsection{\CTEX@postappendix}
+ \gdef\CTEX@section@numbering{\CTEX@appendix@numbering}
+ \ctex_set:nn { appendix } { number = \@Alph\c@section,name = { } }
+ }
+ }
+
\tl_new:N \l__eb_font_table_tl
\tl_new:N \l__eb_font_figure_tl
\tl_new:N \l__eb_font_listing_tl
@@ -1924,40 +1990,7 @@
\eb_arabic:n {#1}
}
}
-\cs_gset_protected:Npn \appendix
- {
- \int_compare:nNnTF { \c@chapter } > { 0 }
- {
- \ExplSyntaxOn\char_set_catcode_letter:N \@
- \eb_patch_cmd:Nnn \CTEX@addbitocline
- {
- chapter/name = Chapter\space,
- chapter/number = \arabic{chapter}
- }
- {
- chapter/name = Appendix\space,
- chapter/number = \alph{chapter}
- }
- \ExplSyntaxOff\char_set_catcode_other:N \@
- \setcounter{chapter}{0}
- \setcounter{section}{0}
- \gdef\thechapter{\@Alph\c@chapter}
- \gdef\CTEX@prechapter{\CTEX@preappendix}
- \gdef\CTEX@thechapter{\CTEX@appendix@number}
- \gdef\CTEX@postchapter{\CTEX@postappendix}
- \gdef\CTEX@chapter@numbering{\CTEX@appendix@numbering}
- }
- {
- \setcounter{section}{0}
- \setcounter{subsection}{0}
- \gdef\thesection{\@Alph\c@section}
- \gdef\CTEX@presection{\CTEX@preappendix}
- \gdef\CTEX@thesection{\CTEX@appendix@number}
- \gdef\CTEX@postsection{\CTEX@postappendix}
- \gdef\CTEX@section@numbering{\CTEX@appendix@numbering}
- \ctex_set:nn { appendix } { number = \@Alph\c@section,name = { } }
- }
- }
+
\AtBeginEnvironment{tabularx}
{
\exp_args:Nx \linespread { \fp_use:N \l__eb_spread_table_fp }
@@ -1994,8 +2027,11 @@
footnote .initial:n = 1,
spread-all .meta:n =
{
- line = #1,table = #1,math = #1,
- caption = #1,footnote = #1
+ line = #1,
+ table = #1,
+ math = #1,
+ caption = #1,
+ footnote = #1
}
}
@@ -2395,7 +2431,10 @@
bib-loadpkg .bool_set:N = \l__eb_bib_loadpkg_bool,
bib-loadpkg .default:n = true,
- bib-loadpkg .initial:n = true
+ bib-loadpkg .initial:n = true,
+
+ bitoc-title .tl_set:N = \l__eb_bib_bitoc_title,
+ bitoc-title .initial:n = Reference
}
\cs_new_protected:Npn \EbBibtexSet
@@ -2449,7 +2488,7 @@
\exp_args:NV \addbibresource \l__eb_bib_file_tl
\tl_gset:Nn \blx@default@theheading { bibintoc }
\defbibheading{bibintoc}[\bibname]
- {\eb_class_title_level_bool:n {##1}}
+ {\eb_biber_title_level_bool:n {##1}}
\skip_zero:N \bibitemsep
}
\eb_at_end_preamble:n
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index e96c6f6bc9..64d2cf8aee 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md
index 012467cd78..7a1a7862b2 100644
--- a/macros/latex/contrib/l3build/CHANGELOG.md
+++ b/macros/latex/contrib/l3build/CHANGELOG.md
@@ -7,6 +7,21 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2021-05-05]
+
+### Changed
+- Normalise Lua function calls (issue #127) - may require `.tlg` update
+- LuaTeX from TL'21 is no longer 'off by one' in log files - may require
+ `.tlg` update
+
+### Fixed
+- Installation now supports deeper directory levels (issue #182)
+- The `texmfhome` directory is now created before use if required
+- Crash caused by yyyy-mm-dd epoch format
+
+### Removed
+- Support for use as `texlua build.lua <target>`
+
## [2020-06-04]
### Added
@@ -470,9 +485,10 @@ this project uses date-based 'snapshot' version identifiers.
### Removed
- Rationalise short option names: removed `-d`, `-E`, `-r`
-- Target `cmdcheck`: specific to LaTeX3 kernel work
+- Target `cmdcheck`: specific to LaTeX kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2020-06-04...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2021-05-05...HEAD
+[2021-05-05]: https://github.com/latex3/l3build/compare/2020-06-04...2021-05-05
[2020-06-04]: https://github.com/latex3/l3build/compare/2020-03-25...2020-06-04
[2020-03-25]: https://github.com/latex3/l3build/compare/2020-03-16...2020-03-25
[2020-03-16]: https://github.com/latex3/l3build/compare/2020-03-13...2020-03-16
diff --git a/macros/latex/contrib/l3build/CONTRIBUTING.md b/macros/latex/contrib/l3build/CONTRIBUTING.md
index a152299e83..e85fa762d3 100644
--- a/macros/latex/contrib/l3build/CONTRIBUTING.md
+++ b/macros/latex/contrib/l3build/CONTRIBUTING.md
@@ -1,5 +1,5 @@
Thanks for considering contributing to `l3build`: feedback, fixes and ideas are
-all useful. Here, we ([The LaTeX3 Project](https://www.latex-project.org)) have
+all useful. Here, we ([The LaTeX Project](https://www.latex-project.org)) have
collected together a few pointers to help things along.
## Bugs
diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md
index c3630c8f0d..a5f4913712 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
+l3build: a testing and building system for LaTeX
=================================================
-Release 2020-06-04
+Release 2021-05-05
Overview
--------
@@ -14,23 +14,23 @@ high-quality LaTeX code by providing:
The bundle consists of a Lua script to run the tasks and a
`.tex` file which provides the testing environment. These were
-originally developed for supporting LaTeX3 development but
+originally developed for supporting LaTeX development but
are designed such that they can be readily used by others. Full
documentation is provided.
Issues
------
-The issue tracker for LaTeX3 is currently located
+The issue tracker for LaTeX is currently located
[on GitHub](https://github.com/latex3/l3build/issues).
Development team
----------------
-The LaTeX kernel is developed by [The LaTeX3 Project](https://latex-project.org).
+The LaTeX kernel is developed by [The LaTeX Project](https://latex-project.org).
-----
-<p>Copyright (C) 2014-2020 The LaTeX3 Project <br />
+<p>Copyright (C) 2014-2020 The LaTeX Project <br />
<a href="http://latex-project.org/">http://latex-project.org/</a> <br />
All rights reserved.</p>
diff --git a/macros/latex/contrib/l3build/l3build-arguments.lua b/macros/latex/contrib/l3build/l3build-arguments.lua
index aa2f086d61..80f19d66ad 100644
--- a/macros/latex/contrib/l3build/l3build-arguments.lua
+++ b/macros/latex/contrib/l3build/l3build-arguments.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-arguments.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-arguments.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -170,7 +170,7 @@ local function argparse()
end
long_options[k] = k
end
- local args = args
+ local arg = arg
-- arg[1] is a special case: must be a command or "-h"/"--help"
-- Deal with this by assuming help and storing only apparently-valid
-- input
@@ -239,21 +239,21 @@ local function argparse()
if optarg then
local opt = "-" .. (match(a, "^%-%-") and "-" or "") .. opt
stderr:write("Value not allowed for option " .. opt .."\n")
- return {"help"}
+ return { target = "help" }
end
else
if not optarg then
optarg = arg[i + 1]
if not optarg then
stderr:write("Missing value for option " .. a .."\n")
- return {"help"}
+ return { target = "help" }
end
i = i + 1
end
end
else
stderr:write("Unknown option " .. a .."\n")
- return {"help"}
+ return { target = "help" }
end
-- Store the result
if optarg then
diff --git a/macros/latex/contrib/l3build/l3build-aux.lua b/macros/latex/contrib/l3build/l3build-aux.lua
index 8fa4b0cd82..12fe704af4 100644
--- a/macros/latex/contrib/l3build/l3build-aux.lua
+++ b/macros/latex/contrib/l3build/l3build-aux.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-aux.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-aux.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -22,6 +22,8 @@ for those people who are interested.
--]]
+-- local safety guards and shortcuts
+
local match = string.match
local pairs = pairs
@@ -29,97 +31,137 @@ local print = print
local lookup = kpse.lookup
+local os_time = os.time
--
-- Auxiliary functions which are used by more than one main function
--
-function normalise_epoch()
+---Convert the given `epoch` to a number.
+---@param epoch string
+---@return number
+---@see l3build.lua
+---@usage private?
+function normalise_epoch(epoch)
+ assert(epoch, 'normalize_epoch argument must not be nil')
-- If given as an ISO date, turn into an epoch number
local y, m, d = match(epoch, "^(%d%d%d%d)-(%d%d)-(%d%d)$")
if y then
- epoch =
- os_time({year = y, month = m, day = d, hour = 0, sec = 0, isdst = nil}) -
- os_time({year = 1970, month = 1, day = 1, hour = 0, sec = 0, isdst = nil})
+ return os_time({
+ year = y, month = m, day = d,
+ hour = 0, sec = 0, isdst = nil
+ }) - os_time({
+ year = 1970, month = 1, day = 1,
+ hour = 0, sec = 0, isdst = nil
+ })
elseif match(epoch, "^%d+$") then
- epoch = tonumber(epoch)
+ return tonumber(epoch)
else
- epoch = 0
+ return 0
end
end
-function setepoch()
- return
+---Returns the CLI command (ending with `os_concat`) to set the epoch
+---when forcecheckepoch is true, a void string otherwise.
+---Will be run while checking or typesetting
+---@param epoch string
+---@param force boolean
+---@return string
+---@see check, typesetting
+---@usage private?
+function set_epoch_cmd(epoch, force)
+ return force and (
os_setenv .. " SOURCE_DATE_EPOCH=" .. epoch
.. os_concat ..
os_setenv .. " SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1"
.. os_concat ..
os_setenv .. " FORCE_SOURCE_DATE=1"
.. os_concat
+ ) or ""
end
-local function getscriptname()
+---Returns the script name depending on the calling sequence.
+---`l3build ...` -> full path of `l3build.lua` in the TDS
+---When called via `texlua l3build.lua ...`, `l3build.lua` is resolved to either
+---`./l3build.lua` or the full path of `l3build.lua` in the TDS.
+---`texlua l3build.lua` -> `/Library/TeX/texbin/l3build.lua` or `./l3build.lua`
+---@return string
+local function get_script_name()
if match(arg[0], "l3build$") or match(arg[0], "l3build%.lua$") then
return lookup("l3build.lua")
else
- return arg[0]
+ return arg[0] -- Why no lookup here?
end
end
--- Do some subtarget for all modules in a bundle
-function call(dirs, target, opts)
- -- Turn the option table into a string
- local opts = opts or options
- local s = ""
+-- Performs the task named target given modules in a bundle.
+---A module is the path of a directory relative to the main one.
+---Uses `run` to launch a command.
+---@param modules table List of modules.
+---@param target string
+---@param opts table
+---@return number 0 on proper termination, a non 0 error code otherwise.
+---@see many places, including latex2e/build.lua
+---@usage Public
+function call(modules, target, opts)
+ -- Turn the option table into a CLI option string
+ opts = opts or options
+ local cli_opts = ""
for k,v in pairs(opts) do
- if k ~= "names" and k ~= "target" then -- Special cases
- local t = option_list[k] or { }
- local arg = ""
+ if k ~= "names" and k ~= "target" then -- Special cases, TODO enhance the design to remove the need for this comment
+ local t = option_list[k] or {}
+ local value = ""
if t["type"] == "string" then
- arg = arg .. "=" .. v
- end
- if t["type"] == "table" then
+ value = value .. "=" .. v
+ elseif t["type"] == "table" then
for _,a in pairs(v) do
- if arg == "" then
- arg = "=" .. a -- Add the initial "=" here
+ if value == "" then
+ value = "=" .. a -- Add the initial "=" here
else
- arg = arg .. "," .. a
+ value = value .. "," .. a
end
end
end
- s = s .. " --" .. k .. arg
+ cli_opts = cli_opts .. " --" .. k .. value
end
end
- if opts["names"] then
- for _,v in pairs(opts["names"]) do
- s = s .. " " .. v
+ if opts.names then
+ for _, name in pairs(opts.names) do
+ cli_opts = cli_opts .. " " .. name
end
end
- local scriptname = getscriptname()
- for _,i in ipairs(dirs) do
- local text = " for module " .. i
- if i == "." and opts["config"] then
+ local script_name = get_script_name()
+ for _, module in ipairs(modules) do
+ local text
+ if module == "." and opts["config"] and #opts["config"]>0 then
text = " with configuration " .. opts["config"][1]
+ else
+ text = " for module " .. module
end
print("Running l3build with target \"" .. target .. "\"" .. text )
- local errorlevel = run(
- i,
- "texlua " .. scriptname .. " " .. target .. s
+ local error_level = run(
+ module,
+ "texlua " .. script_name .. " " .. target .. cli_opts
)
- if errorlevel ~= 0 then
- return errorlevel
+ if error_level ~= 0 then
+ return error_level
end
end
return 0
end
--- Unpack files needed to support testing/typesetting/unpacking
-function depinstall(deps)
- local errorlevel
- for _,i in ipairs(deps) do
- print("Installing dependency: " .. i)
- errorlevel = run(i, "texlua " .. getscriptname() .. " unpack -q")
- if errorlevel ~= 0 then
- return errorlevel
+---Unpack the given dependencies.
+---A dependency is the path of a directory relative to the main one.
+---@param deps table regular array of dependencies.
+---@return number 0 on proper termination, a non 0 error code otherwise.
+---@see stdmain, check, unpack, typesetting
+---@usage Private?
+function dep_install(deps)
+ local error_level
+ for _, dep in ipairs(deps) do
+ print("Installing dependency: " .. dep)
+ error_level = run(dep, "texlua " .. get_script_name() .. " unpack -q")
+ if error_level ~= 0 then
+ return error_level
end
end
return 0
diff --git a/macros/latex/contrib/l3build/l3build-check.lua b/macros/latex/contrib/l3build/l3build-check.lua
index ff022c6079..dce9e68c6a 100644
--- a/macros/latex/contrib/l3build/l3build-check.lua
+++ b/macros/latex/contrib/l3build/l3build-check.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-check.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-check.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,7 +34,7 @@ local luatex_version = status.luatex_version
local len = string.len
local char = string.char
-local format = string.format
+local str_format = string.format
local gmatch = string.gmatch
local gsub = string.gsub
local match = string.match
@@ -59,7 +59,7 @@ function checkinit()
cleandir(testdir)
cleandir(resultdir)
end
- depinstall(checkdeps)
+ dep_install(checkdeps)
-- Copy dependencies to the test directory itself: this makes the paths
-- a lot easier to manage, and is important for dealing with the log and
-- with file input/output tests
@@ -85,7 +85,7 @@ function checkinit()
return checkinit_hook()
end
-checkinit_hook = checkinit_hook or function() return 0 end
+function checkinit_hook() return 0 end
local function rewrite(source,result,processor,...)
local file = assert(open(source,"rb"))
@@ -102,7 +102,7 @@ end
-- the 'business' part from the tests and removes system-dependent stuff
local function normalize_log(content,engine,errlevels)
local maxprintline = maxprintline
- if match(engine,"^lua") or match(engine,"^harf") then
+ if (match(engine,"^lua") or match(engine,"^harf")) and luatex_version < 113 then
maxprintline = maxprintline + 1 -- Deal with an out-by-one error
end
local function killcheck(line)
@@ -134,7 +134,7 @@ local function normalize_log(content,engine,errlevels)
not match(line, "%.%.%.$") then
return "", (lastline or "") .. line
end
- local line = (lastline or "") .. line
+ line = (lastline or "") .. line
lastline = ""
-- Zap ./ at begin of filename
line = gsub(line, "%(%.%/", "(")
@@ -223,15 +223,19 @@ local function normalize_log(content,engine,errlevels)
-- 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
+ end
+ end
+ -- Deal with Lua function calls
+ if match(line, "^Lua function") then
+ line = gsub(line,"= %d+$","= ...")
+ end
+ -- Remove the \special line that in DVI mode keeps PDFs comparable
if match(line, "^%.*\\special%{pdf: docinfo << /Creator") or
match(line, "^%.*\\special%{ps: /setdistillerparams") or
match(line, "^%.*\\special%{! <</........UUID") then
return ""
end
- -- Remove \special lines for DVI .pro files
+ -- Remove \special lines for DVI .pro files
if match(line, "^%.*\\special%{header=") then
return ""
end
@@ -251,7 +255,7 @@ local function normalize_log(content,engine,errlevels)
match(line, "^used file >") or
match(line, "^used option >") or
match(line, "^used structure >") then
- return ""
+ return ""
end
-- The first time a new font is used by LuaTeX, it shows up
-- as being cached: make it appear loaded every time
@@ -265,7 +269,7 @@ local function normalize_log(content,engine,errlevels)
-- tidy up to match pdfTeX if an ASCII engine is in use
if next(asciiengines) then
for i = 128, 255 do
- line = gsub(line, utf8_char(i), "^^" .. format("%02x", i))
+ line = gsub(line, utf8_char(i), "^^" .. str_format("%02x", i))
end
end
return line, lastline
@@ -341,7 +345,7 @@ local function normalize_lua_log(content,luatex)
l,
m .. " (%-?)%d+%.%d+",
m .. " %1"
- .. format(
+ .. str_format(
"%.3f",
match(line, m .. " %-?(%d+%.%d+)") or 0
)
@@ -370,20 +374,20 @@ local function normalize_lua_log(content,luatex)
-- This block only applies to the output of LuaTeX itself,
-- hence needing a flag to skip the case of the reference log
if luatex and
- tonumber(luatex_version) >= 107 and
- match(line, "^%.*\\kern") then
- -- Re-insert the space in explicit kerns
- if match(line, "kern%-?%d+%.%d+ *$") then
- line = gsub(line, "kern", "kern ")
- elseif match(line, "%(accent%)$") then
- line = gsub(line, "kern", "kern ")
- line = gsub(line, "%(accent%)$", "(for accent)")
- elseif match(line, "%(italic%)$") then
- line = gsub(line, "kern", "kern ")
- line = gsub(line, " %(italic%)$", "")
- else
- line = gsub(line, " %(font%)$", "")
- end
+ tonumber(luatex_version) >= 107 and
+ match(line, "^%.*\\kern") then
+ -- Re-insert the space in explicit kerns
+ if match(line, "kern%-?%d+%.%d+ *$") then
+ line = gsub(line, "kern", "kern ")
+ elseif match(line, "%(accent%)$") then
+ line = gsub(line, "kern", "kern ")
+ line = gsub(line, "%(accent%)$", "(for accent)")
+ elseif match(line, "%(italic%)$") then
+ line = gsub(line, "kern", "kern ")
+ line = gsub(line, " %(italic%)$", "")
+ else
+ line = gsub(line, " %(font%)$", "")
+ end
end
-- Changes in PDF specials
line = gsub(line, "\\pdfliteral origin", "\\pdfliteral")
@@ -394,8 +398,8 @@ local function normalize_lua_log(content,luatex)
-- 'Recover' some discretionary data
if match(lastline, "^%.+\\discretionary %(penalty 50%)$") and
match(line, boxprefix(lastline) .. "%.= ") then
- line = gsub(line," %(font%)$","")
- return gsub(line, "%.= ", ""),""
+ line = gsub(line," %(font%)$","")
+ return gsub(line, "%.= ", ""),""
end
-- Where the last line was a discretionary, looks for the
-- info one level in about what it represents
@@ -406,13 +410,13 @@ local function normalize_lua_log(content,luatex)
local prefix = boxprefix(lastline)
if match(line, prefix .. "%.") or
match(line, prefix .. "%|") then
- if match(lastline, " replacing $") and
- not dropping then
- -- Modify the return line
- return gsub(line, "^%.", ""), lastline, true
- else
- return "", lastline, true
- end
+ if match(lastline, " replacing $") and
+ not dropping then
+ -- Modify the return line
+ return gsub(line, "^%.", ""), lastline, true
+ else
+ return "", lastline, true
+ end
else
if dropping then
-- End of a \discretionary block
@@ -431,7 +435,7 @@ local function normalize_lua_log(content,luatex)
end
end
-- Look for another form of \discretionary, replacing a "-"
- pattern = "^%.+\\discretionary replacing *$"
+ local pattern = "^%.+\\discretionary replacing *$"
if match(line, pattern) then
return "", line
else
@@ -461,7 +465,7 @@ local function normalize_lua_log(content,luatex)
match(line, "^%.+\\localbrokenpenalty=0$") or
match(line, "^%.+\\localleftbox=null$") or
match(line, "^%.+\\localrightbox=null$") then
- return "", ""
+ return "", ""
end
-- Older LuaTeX versions set the above up as a whatsit
-- (at some stage this can therefore go)
@@ -522,7 +526,7 @@ local function normalize_pdf(content)
if binary then
new_content = new_content .. "[BINARY STREAM]" .. os_newline
else
- new_content = new_content .. stream_content .. line .. os_newline
+ new_content = new_content .. stream_content .. line .. os_newline
end
binary = false
else
@@ -541,7 +545,7 @@ local function normalize_pdf(content)
stream = true
stream_content = "stream" .. os_newline
elseif not match(line, "^ *$") and
- not match(line,"^%%%%Invocation") and
+ not match(line,"^%%%%Invocation") and
not match(line,"^%%%%%+") then
line = gsub(line,"%/ID( ?)%[<[^>]+><[^>]+>]","/ID%1[<ID-STRING><ID-STRING>]")
new_content = new_content .. line .. os_newline
@@ -550,10 +554,19 @@ local function normalize_pdf(content)
return new_content
end
+function rewrite_log(source, result, engine, errlevels)
+ return rewrite(source, result, normalize_log, engine, errlevels)
+end
+
+function rewrite_pdf(source, result, engine, errlevels)
+ return rewrite(source, result, normalize_pdf, engine, errlevels)
+end
+
-- Run one test which may have multiple engine-dependent comparisons
-- Should create a difference file for each failed test
function runcheck(name, hide)
- if not testexists(name) then
+ local test_filename, kind = testexists(name)
+ if not test_filename then
print("Failed to find input for test " .. name)
return 1
end
@@ -562,9 +575,10 @@ function runcheck(name, hide)
checkengines = options["engine"]
end
-- Used for both .lvt and .pvt tests
- local function check_and_diff(ext,engine,comp,pdftest)
- runtest(name,engine,hide,ext,pdftest,true)
- local errorlevel = comp(name,engine)
+ local test_type = test_types[kind]
+ local function check_and_diff(engine)
+ runtest(name, engine, hide, test_type.test, test_type, true)
+ local errorlevel = base_compare(test_type,name,engine)
if errorlevel == 0 then
return errorlevel
end
@@ -579,12 +593,7 @@ function runcheck(name, hide)
local errorlevel = 0
for _,engine in pairs(checkengines) do
setup_check(name,engine)
- local errlevel = 0
- if fileexists(testfiledir .. "/" .. name .. pvtext) then
- errlevel = check_and_diff(pvtext,engine,compare_pdf,true)
- else
- errlevel = check_and_diff(lvtext,engine,compare_tlg)
- end
+ local errlevel = check_and_diff(engine)
if errlevel ~= 0 and options["halt-on-error"] then
return 1
end
@@ -598,64 +607,73 @@ end
function setup_check(name, engine)
local testname = name .. "." .. engine
- local tlgfile = locate(
- {testfiledir, unpackdir},
- {testname .. tlgext, name .. tlgext}
- )
- local tpffile = locate(
- {testfiledir, unpackdir},
- {testname .. tpfext, name .. tpfext}
- )
- -- Attempt to generate missing reference file from expectation
- if not (tlgfile or tpffile) then
- if not locate({unpackdir, testfiledir}, {name .. lveext}) then
- print(
- "Error: failed to find " .. tlgext .. ", " .. tpfext .. " or "
- .. lveext .. " file for " .. name .. "!"
+ local found
+ for _, kind in ipairs(test_order) do
+ local reference_ext = test_types[kind].reference
+ local reference_file = locate(
+ {testfiledir, unpackdir},
+ {testname .. reference_ext, name .. reference_ext}
+ )
+ if reference_file then
+ found = true
+ -- Install comparison file found
+ cp(
+ match(reference_file, ".*/(.*)"),
+ match(reference_file, "(.*)/.*"),
+ testdir
)
- exit(1)
end
- runtest(name, engine, true, lveext)
- ren(testdir, testname .. logext, testname .. tlgext)
- else
- -- Install comparison files found
- for _,v in pairs({tlgfile, tpffile}) do
- if v then
- cp(
- match(v, ".*/(.*)"),
- match(v, "(.*)/.*"),
- testdir
- )
- end
+ end
+ if found then
+ return
+ end
+ -- Attempt to generate missing reference file from expectation
+ for _, kind in ipairs(test_order) do
+ local test_type = test_types[kind]
+ local exp_ext = test_type.expectation
+ local expectation_file = exp_ext and locate(
+ {testfiledir, unpackdir},
+ {name .. exp_ext}
+ )
+ if expectation_file then
+ found = true
+ runtest(name, engine, true, exp_ext, test_type)
+ ren(testdir, testname .. test_type.generated, testname .. test_type.reference)
end
end
+ if found then
+ return
+ end
+ print(
+ "Error: failed to find any reference or expectation file for "
+ .. name .. "!"
+ )
+ exit(1)
end
-function compare_pdf(name,engine,cleanup)
+function base_compare(test_type,name,engine,cleanup)
local testname = name .. "." .. engine
- local difffile = testdir .. "/" .. testname .. pdfext .. os_diffext
- local pdffile = testdir .. "/" .. testname .. pdfext
- local tpffile = locate({testdir}, {testname .. tpfext, name .. tpfext})
- if not tpffile then
+ local difffile = testdir .. "/" .. testname.. os_diffext
+ local genfile = testdir .. "/" .. testname .. test_type.generated
+ local reffile = locate({testdir}, {testname .. test_type.reference, name .. test_type.reference})
+ if not reffile then
return 1
end
+ local compare = test_type.compare
+ if compare then
+ return compare(difffile, reffile, genfile, cleanup, name, engine)
+ end
local errorlevel = execute(os_diffexe .. " "
- .. normalize_path(tpffile .. " " .. pdffile .. " > " .. difffile))
+ .. normalize_path(reffile .. " " .. genfile .. " > " .. difffile))
if errorlevel == 0 or cleanup then
remove(difffile)
end
return errorlevel
end
-function compare_tlg(name,engine,cleanup)
+function compare_tlg(difffile, tlgfile, logfile, cleanup, name, engine)
local errorlevel
local testname = name .. "." .. engine
- local difffile = testdir .. "/" .. testname .. os_diffext
- local logfile = testdir .. "/" .. testname .. logext
- local tlgfile = locate({testdir}, {testname .. tlgext, name .. tlgext})
- if not tlgfile then
- return 1
- end
-- Do additional log formatting if the engine is LuaTeX, there is no
-- LuaTeX-specific .tlg file and the default engine is not LuaTeX
if (match(engine,"^lua") or match(engine,"^harf"))
@@ -687,22 +705,22 @@ end
-- Run one of the test files: doesn't check the result so suitable for
-- both creating and verifying
-function runtest(name, engine, hide, ext, pdfmode, breakout)
+function runtest(name, engine, hide, ext, test_type, breakout)
local lvtfile = name .. (ext or lvtext)
cp(lvtfile, fileexists(testfiledir .. "/" .. lvtfile)
and testfiledir or unpackdir, testdir)
local checkopts = checkopts
- local engine = engine or stdengine
+ engine = engine or stdengine
local binary = engine
local format = gsub(engine,"tex$",checkformat)
-- Special binary/format combos
- if specialformats[checkformat] and next(specialformats[checkformat]) then
- local t = specialformats[checkformat]
- if t[engine] and next(t[engine]) then
- local t = t[engine]
- binary = t.binary or binary
- checkopts = t.options or checkopts
- format = t.format or format
+ local special_check = specialformats[checkformat]
+ if special_check and next(special_check) then
+ local engine_info = special_check[engine]
+ if engine_info then
+ binary = engine_info.binary or binary
+ format = engine_info.format or format
+ checkopts = engine_info.options or checkopts
end
end
-- Finalise format string
@@ -710,7 +728,7 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
format = " --fmt=" .. format
end
-- Special casing for XeTeX engine
- if match(engine, "xetex") and not pdfmode then
+ if match(engine, "xetex") and test_type.generated ~= pdfext then
checkopts = checkopts .. " -no-pdf"
end
-- Special casing for ConTeXt
@@ -721,10 +739,8 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
function setup(file) return ' "' .. file .. '" ' end
end
local basename = testdir .. "/" .. name
- local logfile = basename .. logext
- local newfile = basename .. "." .. engine .. logext
- local pdffile = basename .. pdfext
- local npffile = basename .. "." .. engine .. pdfext
+ local gen_file = basename .. test_type.generated
+ local new_file = basename .. "." .. engine .. test_type.generated
local asciiopt = ""
for _,i in ipairs(asciiengines) do
if binary == i then
@@ -737,7 +753,7 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
rm(testdir,filetype)
end
-- Ensure there is no stray .log file
- rm(testdir,name .. logext)
+ rmfile(testdir,name .. logext)
local errlevels = {}
local localtexmf = ""
if texmfdir and texmfdir ~= "" and direxists(texmfdir) then
@@ -760,7 +776,7 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
-- Allow for local texmf files
os_setenv .. " TEXMFCNF=." .. os_pathsep
.. os_concat ..
- (forcecheckepoch and setepoch() or "") ..
+ set_epoch_cmd(epoch, forcecheckepoch) ..
-- Ensure lines are of a known length
os_setenv .. " max_print_line=" .. maxprintline
.. os_concat ..
@@ -773,47 +789,34 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
)
-- Break the loop if the result is stable
if breakout and i < checkruns then
- if pdfmode then
+ if test_type.generated == pdfext then
if fileexists(testdir .. "/" .. name .. dviext) then
dvitopdf(name, testdir, engine, hide)
end
- rewrite(pdffile,npffile,normalize_pdf)
- if compare_pdf(name,engine,true) == 0 then
- break
- end
- else
- rewrite(logfile,newfile,normalize_log,engine,errlevels)
- if compare_tlg(name,engine,true) == 0 then
- break
- end
+ end
+ test_type.rewrite(gen_file,new_file,engine,errlevels)
+ if base_compare(test_type,name,engine,true) == 0 then
+ break
end
end
end
- if pdfmode and fileexists(testdir .. "/" .. name .. dviext) then
- dvitopdf(name, testdir, engine, hide)
- end
- if pdfmode then
+ if test_type.generated == pdfext then
+ if fileexists(testdir .. "/" .. name .. dviext) then
+ dvitopdf(name, testdir, engine, hide)
+ end
cp(name .. pdfext,testdir,resultdir)
ren(resultdir,name .. pdfext,name .. "." .. engine .. pdfext)
- rewrite(pdffile,npffile,normalize_pdf)
- else
- rewrite(logfile,newfile,normalize_log,engine,errlevels)
end
+ test_type.rewrite(gen_file,new_file,engine,errlevels)
-- Store secondary files for this engine
for _,filetype in pairs(auxfiles) do
for _,file in pairs(filelist(testdir, filetype)) do
- if match(file,"^" .. name .. ".[^.]+$") then
- local ext = match(file, "%.[^.]+$")
- if ext ~= lvtext and
- ext ~= tlgext and
- ext ~= lveext and
- ext ~= logext then
- local newname = gsub(file,"(%.[^.]+)$","." .. engine .. "%1")
- if fileexists(testdir,newname) then
- rm(testdir,newname)
- end
- ren(testdir,file,newname)
+ if match(file,"^" .. name .. "%.[^.]+$") then
+ local newname = gsub(file,"(%.[^.]+)$","." .. engine .. "%1")
+ if fileexists(testdir .. "/" .. newname) then
+ rmfile(testdir,newname)
end
+ ren(testdir,file,newname)
end
end
end
@@ -821,14 +824,25 @@ 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,run)
+function runtest_tasks(name,run)
return ""
end
-- Look for a test: could be in the testfiledir or the unpackdir
function testexists(test)
- return(locate({testfiledir, unpackdir},
- {test .. lvtext, test .. pvtext}))
+ local filenames = {}
+ for i, kind in ipairs(test_order) do
+ filenames[i] = test .. test_types[kind].test
+ end
+ local found = locate({testfiledir, unpackdir}, filenames)
+ if found then
+ for i, kind in ipairs(test_order) do
+ local filename = filenames[i]
+ if found:sub(-#filename) == filename then
+ return found, kind
+ end
+ end
+ end
end
function check(names)
@@ -844,36 +858,42 @@ function check(names)
names = names or { }
-- No names passed: find all test files
if not next(names) then
- local excludenames = { }
- for _,glob in pairs(excludetests) do
- for _,name in pairs(filelist(testfiledir, glob .. lvtext)) do
- excludenames[jobname(name)] = true
- end
- for _,name in pairs(filelist(unpackdir, glob .. lvtext)) do
- excludenames[jobname(name)] = true
- end
- for _,name in pairs(filelist(testfiledir, glob .. pvtext)) do
- excludenames[jobname(name)] = true
- end
- end
- local function addname(name)
- if not excludenames[jobname(name)] then
- insert(names,jobname(name))
- end
- end
- for _,glob in pairs(includetests) do
- for _,name in pairs(filelist(testfiledir, glob .. lvtext)) do
- addname(name)
- end
- for _,name in pairs(filelist(testfiledir, glob .. pvtext)) do
- addname(name)
+ for _, kind in ipairs(test_order) do
+ local ext = test_types[kind].test
+ local excludepatterns = { }
+ local num_exclude = 0
+ for _,glob in pairs(excludetests) do
+ num_exclude = num_exclude+1
+ excludepatterns[num_exclude] = glob_to_pattern(glob .. ext)
end
- for _,name in pairs(filelist(unpackdir, glob .. lvtext)) do
- if fileexists(testfiledir .. "/" .. name) then
- print("Duplicate test file: " .. i)
- return 1
+ for _,glob in pairs(includetests) do
+ for _,name in pairs(filelist(testfiledir, glob .. ext)) do
+ local exclude
+ for i=1, num_exclude do
+ if match(name, excludepatterns[i]) then
+ exclude = true
+ break
+ end
+ end
+ if not exclude then
+ insert(names,jobname(name))
+ end
+ end
+ for _,name in pairs(filelist(unpackdir, glob .. ext)) do
+ local exclude
+ for i=1, num_exclude do
+ if not match(name, excludepatterns[i]) then
+ exclude = true
+ break
+ end
+ end
+ if not exclude then
+ if fileexists(testfiledir .. "/" .. name) then
+ return 1
+ end
+ insert(names,jobname(name))
+ end
end
- addname(name)
end
end
sort(names)
@@ -904,24 +924,17 @@ function check(names)
end
end
end
- -- https://stackoverflow.com/a/32167188
- local function shuffle(tbl)
- local len, random = #tbl, rnd
- for i = len, 2, -1 do
- local j = random(1, i)
- tbl[i], tbl[j] = tbl[j], tbl[i]
- end
- return tbl
- end
if options["shuffle"] then
- names = shuffle(names)
+ -- https://stackoverflow.com/a/32167188
+ for i = #names, 2, -1 do
+ local j = rnd(1, i)
+ names[i], names[j] = names[j], names[i]
+ end
end
-- Actually run the tests
print("Running checks on")
- local i = 0
- for _,name in ipairs(names) do
- i = i + 1
- print(" " .. name .. " (" .. i.. "/" .. #names ..")")
+ for i, name in ipairs(names) do
+ print(" " .. name .. " (" .. i .. "/" .. #names ..")")
local errlevel = runcheck(name, hide)
-- Return value must be 1 not errlevel
if errlevel ~= 0 then
@@ -988,39 +1001,31 @@ function save(names)
return 1
end
for _,name in pairs(names) do
- if testexists(name) then
- for _,engine in pairs(engines) do
- local testengine = ((engine == stdengine and "") or "." .. engine)
- local function save_test(test_ext,gen_ext,out_ext,pdfmode)
- local out_file = name .. testengine .. out_ext
- local gen_file = name .. "." .. engine .. gen_ext
- print("Creating and copying " .. out_file)
- runtest(name,engine,false,test_ext,pdfmode)
- ren(testdir,gen_file,out_file)
- cp(out_file,testdir,testfiledir)
- if fileexists(unpackdir .. "/" .. out_file) then
- print("Saved " .. out_ext
- .. " file overrides unpacked version of the same name")
- return 1
- end
- return 0
- end
- local errorlevel
- if fileexists(testfiledir .. "/" .. name .. lvtext) then
- errorlevel = save_test(lvtext,logext,tlgext)
- else
- errorlevel = save_test(pvtext,pdfext,tpfext,true)
- end
- if errorlevel ~=0 then return errorlevel end
- end
- elseif locate({unpackdir, testfiledir}, {name .. lveext}) then
- print("Saved " .. tlgext .. " file overrides a "
- .. lveext .. " file of the same name")
- return 1
- else
+ local test_filename, kind = testexists(name)
+ if not test_filename then
print('Test "' .. name .. '" not found')
return 1
end
+ local test_type = test_types[kind]
+ if locate({unpackdir, testfiledir}, {name .. test_type.expectation}) then
+ print("Saved " .. test_type.test .. " file would override a "
+ .. test_type.expectation .. " file of the same name")
+ return 1
+ end
+ for _,engine in pairs(engines) do
+ local testengine = engine == stdengine and "" or ("." .. engine)
+ local out_file = name .. testengine .. test_type.reference
+ local gen_file = name .. "." .. engine .. test_type.generated
+ print("Creating and copying " .. out_file)
+ runtest(name, engine, false, test_type.test, test_type)
+ ren(testdir, gen_file, out_file)
+ cp(out_file, testdir, testfiledir)
+ if fileexists(unpackdir .. "/" .. test_type.reference) then
+ print("Saved " .. test_type.reference
+ .. " file overrides unpacked version of the same name")
+ return 1
+ end
+ end
end
return 0
end
diff --git a/macros/latex/contrib/l3build/l3build-clean.lua b/macros/latex/contrib/l3build/l3build-clean.lua
index 27ed42be9c..f548a392eb 100644
--- a/macros/latex/contrib/l3build/l3build-clean.lua
+++ b/macros/latex/contrib/l3build/l3build-clean.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-clean.lua Copyright (C) 2018,2020 The LaTeX3 Project
+File l3build-clean.lua Copyright (C) 2018,2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -22,36 +22,46 @@ for those people who are interested.
--]]
+local pairs = pairs
+local ipairs = ipairs
+local insert = table.insert
+
-- Remove all generated files
function clean()
-- To make sure that distribdir never contains any stray subdirs,
-- it is entirely removed then recreated rather than simply deleting
-- all of the files
- local errorlevel =
- rmdir(distribdir) +
- mkdir(distribdir) +
- cleandir(localdir) +
- cleandir(testdir) +
- cleandir(typesetdir) +
- cleandir(unpackdir)
+ local errorlevel = rmdir(distribdir)
+ + mkdir(distribdir)
+ + cleandir(localdir)
+ + cleandir(testdir)
+ + cleandir(typesetdir)
+ + cleandir(unpackdir)
if errorlevel ~= 0 then return errorlevel end
- local clean_list = { }
for _,dir in pairs(remove_duplicates({maindir,sourcefiledir,docfiledir})) do
+ local clean_list = {}
+ local flags = {}
for _,glob in pairs(cleanfiles) do
- for file,_ in pairs(tree(dir,glob)) do
- clean_list[file] = true
+ for _,p in ipairs(tree(dir,glob)) do
+ insert(clean_list, p.src)
+ flags[p.src] = true
end
end
for _,glob in pairs(sourcefiles) do
- for file,_ in pairs(tree(dir,glob)) do
- clean_list[file] = nil
+ for _,p in ipairs(tree(dir,glob)) do
+ flags[p.src] = nil
end
end
- for file,_ in pairs(clean_list) do
- errorlevel = rm(dir,file)
- if errorlevel ~= 0 then return errorlevel end
+ for i = #clean_list, 1, -1 do
+ local p_src = clean_list[i]
+ if flags[p_src] then
+ errorlevel = rm(dir,p_src)
+ if errorlevel ~= 0 then
+ return errorlevel
+ end
+ end
end
end
@@ -63,10 +73,8 @@ function bundleclean()
for _,i in ipairs(cleanfiles) do
errorlevel = rm(currentdir, i) + errorlevel
end
- return (
- errorlevel +
- rmdir(ctandir) +
- rmdir(tdsdir)
- )
+ return errorlevel
+ + rmdir(ctandir)
+ + rmdir(tdsdir)
end
diff --git a/macros/latex/contrib/l3build/l3build-ctan.lua b/macros/latex/contrib/l3build/l3build-ctan.lua
index df1daf9728..fd1491dd58 100644
--- a/macros/latex/contrib/l3build/l3build-ctan.lua
+++ b/macros/latex/contrib/l3build/l3build-ctan.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-ctan.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-ctan.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -38,12 +38,12 @@ function copyctan()
end
else
for _,filetype in pairs(files) do
- for file,_ in pairs(tree(source,filetype)) do
- local path = splitpath(file)
+ for _,p in ipairs(tree(source,filetype)) do
+ local path = dirname(p.src)
local ctantarget = ctandir .. "/" .. ctanpkg .. "/"
.. source .. "/" .. path
mkdir(ctantarget)
- cp(file,source,ctantarget)
+ cp(p.src,source,ctantarget)
end
end
end
diff --git a/macros/latex/contrib/l3build/l3build-file-functions.lua b/macros/latex/contrib/l3build/l3build-file-functions.lua
index 7d13fc933e..6ca1cc6011 100644
--- a/macros/latex/contrib/l3build/l3build-file-functions.lua
+++ b/macros/latex/contrib/l3build/l3build-file-functions.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-file-functions.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-file-functions.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -36,7 +36,6 @@ local execute = os.execute
local exit = os.exit
local getenv = os.getenv
local remove = os.remove
-local os_time = os.time
local os_type = os.type
local luatex_revision = status.luatex_revision
@@ -171,14 +170,19 @@ function normalize_path(path)
end
-- Return an absolute path from a relative one
+-- Due to chdir, path must exist and be accessible.
function abspath(path)
local oldpwd = currentdir()
- chdir(path)
- local result = currentdir()
- chdir(oldpwd)
- return escapepath(gsub(result, "\\", "/"))
+ local ok, msg = chdir(path)
+ if ok then
+ local result = currentdir()
+ chdir(oldpwd)
+ return escapepath(gsub(result, "\\", "/"))
+ end
+ error(msg)
end
+-- TODO: Fix the cross platform problem
function escapepath(path)
if os_type == "windows" then
local path,count = gsub(path,'"','')
@@ -210,22 +214,25 @@ end
-- Copy files 'quietly'
function cp(glob, source, dest)
local errorlevel
- for i,_ in pairs(tree(source, glob)) do
- local source = source .. "/" .. i
+ for _,p in ipairs(tree(source, glob)) do
+ -- p_src is a path relative to `source` whereas
+ -- p_cwd is the counterpart relative to the current working directory
if os_type == "windows" then
- if attributes(source)["mode"] == "directory" then
+ if attributes(p.cwd, "mode") == "directory" then
errorlevel = execute(
- 'xcopy /y /e /i "' .. unix_to_win(source) .. '" "'
- .. unix_to_win(dest .. '/' .. i) .. '" > nul'
- )
+ 'xcopy /y /e /i "' .. unix_to_win(p.cwd) .. '" "'
+ .. unix_to_win(dest .. '/' .. p.src) .. '" > nul'
+ ) and 0 or 1
else
errorlevel = execute(
- 'xcopy /y "' .. unix_to_win(source) .. '" "'
+ 'xcopy /y "' .. unix_to_win(p.cwd) .. '" "'
.. unix_to_win(dest .. '/') .. '" > nul'
- )
+ ) and 0 or 1
end
else
- errorlevel = execute("cp -RLf '" .. source .. "' '" .. dest .. "'")
+ errorlevel = execute(
+ "cp -RLf '" .. p.cwd .. "' '" .. dest .. "'"
+ ) and 0 or 1
end
if errorlevel ~=0 then
return errorlevel
@@ -255,7 +262,7 @@ function fileexists(file)
f:close()
return true
else
- return false
+ return false -- also file exits and is not readable
end
end
@@ -283,54 +290,73 @@ function filelist(path, glob)
return files
end
--- Does what filelist does, but can also glob subdirectories. In the returned
--- table, the keys are paths relative to the given starting path, the values
--- are their counterparts relative to the current working directory.
-function tree(path, glob)
+---@class tree_entry_t
+---@field src string path relative to the source directory
+---@field cwd string path counterpart relative to the current working directory
+
+---Does what filelist does, but can also glob subdirectories.
+---In the returned table, the keys are paths relative to the given source path,
+---the values are their counterparts relative to the current working directory.
+---@param src_path string
+---@param glob string
+---@return table<integer,tree_entry_t>
+function tree(src_path, glob)
local function cropdots(path)
- return gsub(gsub(path, "^%./", ""), "/%./", "/")
+ return path:gsub( "^%./", ""):gsub("/%./", "/")
end
+ src_path = cropdots(src_path)
+ glob = cropdots(glob)
local function always_true()
return true
end
local function is_dir(file)
- return attributes(file)["mode"] == "directory"
+ return attributes(file, "mode") == "directory"
end
- local dirs = {["."] = cropdots(path)}
- for pattern, criterion in gmatch(cropdots(glob), "([^/]+)(/?)") do
- local criterion = criterion == "/" and is_dir or always_true
- function fill(path, dir, table)
- for _, file in ipairs(filelist(dir, pattern)) do
- local fullpath = path .. "/" .. file
- if file ~= "." and file ~= ".." and
- fullpath ~= builddir
- then
- local fulldir = dir .. "/" .. file
- if criterion(fulldir) then
- table[fullpath] = fulldir
+ ---@type table<integer,tree_entry_t>
+ local result = { {
+ src = ".",
+ cwd = src_path,
+ } }
+ for glob_part, sep in glob:gmatch("([^/]+)(/?)/*") do
+ local accept = sep == "/" and is_dir or always_true
+ ---Feeds the given table according to `glob_part`
+ ---@param p tree_entry_t path counterpart relative to the current working directory
+ ---@param table table
+ local function fill(p, table)
+ for _,file in ipairs(filelist(p.cwd, glob_part)) do
+ if file ~= "." and file ~= ".." then
+ local pp = {
+ src = p.src .. "/" .. file,
+ cwd = p.cwd .. "/" .. file,
+ }
+ if pp.cwd ~= builddir -- TODO: ensure that `builddir` is properly formatted
+ and accept(pp.cwd)
+ then
+ insert(table, pp)
end
end
end
end
- local newdirs = {}
- if pattern == "**" then
+ local new_result = {}
+ if glob_part == "**" then
+ local i = 1
while true do
- path, dir = next(dirs)
- if not path then
+ local p = result[i]
+ i = i + 1
+ if not p then
break
end
- dirs[path] = nil
- newdirs[path] = dir
- fill(path, dir, dirs)
+ insert(new_result, p) -- shorter path
+ fill(p, result) -- after longer
end
else
- for path, dir in pairs(dirs) do
- fill(path, dir, newdirs)
+ for _,p in ipairs(result) do
+ fill(p, new_result)
end
end
- dirs = newdirs
+ result = new_result
end
- return dirs
+ return result
end
function remove_duplicates(a)
@@ -353,7 +379,7 @@ function mkdir(dir)
if os_type == "windows" then
-- Windows (with the extensions) will automatically make directory trees
-- but issues a warning if the dir already exists: avoid by including a test
- local dir = unix_to_win(dir)
+ dir = unix_to_win(dir)
return execute(
"if not exist " .. dir .. "\\nul " .. "mkdir " .. dir
)
@@ -364,10 +390,10 @@ end
-- Rename
function ren(dir, source, dest)
- local dir = dir .. "/"
+ dir = dir .. "/"
if os_type == "windows" then
- local source = gsub(source, "^%.+/", "")
- local dest = gsub(dest, "^%.+/", "")
+ source = gsub(source, "^%.+/", "")
+ dest = gsub(dest, "^%.+/", "")
return execute("ren " .. unix_to_win(dir) .. source .. " " .. dest)
else
return execute("mv " .. dir .. source .. " " .. dir .. dest)
@@ -376,8 +402,8 @@ end
-- Remove file(s) based on a glob
function rm(source, glob)
- for i,_ in pairs(tree(source, glob)) do
- rmfile(source,i)
+ for _,p in ipairs(tree(source, glob)) do
+ rmfile(source,p.src)
end
-- os.remove doesn't give a sensible errorlevel
return 0
diff --git a/macros/latex/contrib/l3build/l3build-help.lua b/macros/latex/contrib/l3build/l3build-help.lua
index 055fc1a918..6431ac547e 100644
--- a/macros/latex/contrib/l3build/l3build-help.lua
+++ b/macros/latex/contrib/l3build/l3build-help.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-help.lua Copyright (C) 2018,2020 The LaTeX3 Project
+File l3build-help.lua Copyright (C) 2018,2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,14 +32,14 @@ function version()
"\n" ..
"l3build: A testing and building system for LaTeX\n\n" ..
"Release " .. release_date .. "\n" ..
- "Copyright (C) 2014-2020 The LaTeX3 Project"
+ "Copyright (C) 2014-2020 The LaTeX Project"
)
end
function help()
local function setup_list(list)
local longest = 0
- for k,v in pairs(list) do
+ for k,_ in pairs(list) do
if k:len() > longest then
longest = k:len()
end
@@ -70,7 +70,7 @@ function help()
end
print("")
print("Valid options are:")
- local longest,t = setup_list(option_list)
+ longest,t = setup_list(option_list)
for _,k in ipairs(t) do
local opt = option_list[k]
local filler = rep(" ", longest - k:len() + 1)
@@ -87,5 +87,5 @@ function help()
print("")
print("Repository : https://github.com/latex3/l3build")
print("Bug tracker : https://github.com/latex3/l3build/issues")
- print("Copyright (C) 2014-2020 The LaTeX3 Project")
+ print("Copyright (C) 2014-2020 The LaTeX Project")
end
diff --git a/macros/latex/contrib/l3build/l3build-install.lua b/macros/latex/contrib/l3build/l3build-install.lua
index 77c15fd0e2..f4839fdca7 100644
--- a/macros/latex/contrib/l3build/l3build-install.lua
+++ b/macros/latex/contrib/l3build/l3build-install.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-install.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-install.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -37,7 +37,9 @@ local insert = table.insert
local function gethome()
set_program("latex")
- return abspath(options["texmfhome"] or var_value("TEXMFHOME"))
+ local result = options["texmfhome"] or var_value("TEXMFHOME")
+ mkdir(result)
+ return abspath(result)
end
function uninstall()
@@ -68,15 +70,15 @@ function uninstall()
-- Any script man files need special handling
local manfiles = { }
for _,glob in pairs(scriptmanfiles) do
- for file,_ in pairs(tree(docfiledir,glob)) do
+ for _,p in ipairs(tree(docfiledir,glob)) do
-- Man files should have a single-digit extension: the type
- local installdir = gethome() .. "/doc/man/man" .. match(file,".$")
- if fileexists(installdir .. "/" .. file) then
+ local installdir = gethome() .. "/doc/man/man" .. match(p.src,".$")
+ if fileexists(installdir .. "/" .. p.src) then
if options["dry-run"] then
- insert(manfiles,"man" .. match(file,".$") .. "/" ..
- select(2,splitpath(file)))
+ insert(manfiles,"man" .. match(p.src,".$") .. "/" ..
+ select(2,splitpath(p.src)))
else
- errorlevel = errorlevel + rm(installdir,file)
+ errorlevel = errorlevel + rm(installdir,p.src)
end
end
end
@@ -97,7 +99,7 @@ function uninstall()
if errorlevel ~= 0 then return errorlevel end
-- Finally, clean up special locations
for _,location in ipairs(tdslocations) do
- local path,glob = splitpath(location)
+ local path = dirname(location)
errorlevel = zapdir(path)
if errorlevel ~= 0 then return errorlevel end
end
@@ -127,9 +129,9 @@ function install_files(target,full,dry_run)
-- Generate a file list and include the directory
for _,glob_table in pairs(files) do
for _,glob in pairs(glob_table) do
- for file,_ in pairs(tree(source,glob)) do
+ for _,p in ipairs(tree(source,glob)) do
-- Just want the name
- local path,filename = splitpath(file)
+ local path,filename = splitpath(p.src)
local sourcepath = "/"
if path == "." then
sourcepaths[filename] = source
@@ -140,11 +142,11 @@ function install_files(target,full,dry_run)
end
local matched = false
for _,location in ipairs(tdslocations) do
- local path,glob = splitpath(location)
- local pattern = glob_to_pattern(glob)
+ local l_dir,l_glob = splitpath(location)
+ local pattern = glob_to_pattern(l_glob)
if match(filename,pattern) then
- insert(paths,path)
- insert(filenames,path .. sourcepath .. filename)
+ insert(paths,l_dir)
+ insert(filenames,l_dir .. sourcepath .. filename)
matched = true
break
end
@@ -161,20 +163,20 @@ function install_files(target,full,dry_run)
-- The target is only created if there are actual files to install
if next(filenames) then
if not dry_run then
- for _,path in pairs(paths) do
- local dir = target .. "/" .. path
- if not cleanpaths[dir] then
- errorlevel = cleandir(dir)
+ for _,path in ipairs(paths) do
+ local target_path = target .. "/" .. path
+ if not cleanpaths[target_path] then
+ errorlevel = cleandir(target_path)
if errorlevel ~= 0 then return errorlevel end
end
- cleanpaths[dir] = true
+ cleanpaths[target_path] = true
end
end
- for _,file in ipairs(filenames) do
+ for _,name in ipairs(filenames) do
if dry_run then
- print("- " .. file)
+ print("- " .. name)
else
- local path,file = splitpath(file)
+ local path,file = splitpath(name)
insert(installmap,
{file = file, source = sourcepaths[file], dest = target .. "/" .. path})
end
@@ -187,30 +189,30 @@ function install_files(target,full,dry_run)
if errorlevel ~= 0 then return errorlevel end
-- Creates a 'controlled' list of files
- local function excludelist(dir,include,exclude)
+ local function create_file_list(dir,include,exclude)
+ dir = dir or currentdir
include = include or { }
exclude = exclude or { }
- dir = dir or currentdir
- local includelist = { }
local excludelist = { }
for _,glob_table in pairs(exclude) do
for _,glob in pairs(glob_table) do
- for file,_ in pairs(tree(dir,glob)) do
- excludelist[file] = true
+ for _,p in ipairs(tree(dir,glob)) do
+ excludelist[p.src] = true
end
end
end
+ local result = { }
for _,glob in pairs(include) do
- for file,_ in pairs(tree(dir,glob)) do
- if not excludelist[file] then
- insert(includelist, file)
+ for _,p in ipairs(tree(dir,glob)) do
+ if not excludelist[p.src] then
+ insert(result, p.src)
end
end
end
- return includelist
+ return result
end
- local installlist = excludelist(unpackdir,installfiles,{scriptfiles})
+ local installlist = create_file_list(unpackdir,installfiles,{scriptfiles})
if full then
errorlevel = doc()
@@ -229,8 +231,8 @@ function install_files(target,full,dry_run)
end
-- Set up lists: global as they are also needed to do CTAN releases
- typesetlist = excludelist(docfiledir,typesetfiles,{sourcefiles})
- sourcelist = excludelist(sourcefiledir,sourcefiles,
+ typesetlist = create_file_list(docfiledir,typesetfiles,{sourcefiles})
+ sourcelist = create_file_list(sourcefiledir,sourcefiles,
{bstfiles,installfiles,makeindexfiles,scriptfiles})
if dry_run then
@@ -255,15 +257,15 @@ function install_files(target,full,dry_run)
-- Any script man files need special handling
local manfiles = { }
for _,glob in pairs(scriptmanfiles) do
- for file,_ in pairs(tree(docfiledir,glob)) do
+ for _,p in ipairs(tree(docfiledir,glob)) do
if dry_run then
- insert(manfiles,"man" .. match(file,".$") .. "/" ..
- select(2,splitpath(file)))
+ insert(manfiles,"man" .. match(p.src,".$") .. "/" ..
+ select(2,splitpath(p.src)))
else
-- Man files should have a single-digit extension: the type
- local installdir = target .. "/doc/man/man" .. match(file,".$")
+ local installdir = target .. "/doc/man/man" .. match(p.src,".$")
errorlevel = errorlevel + mkdir(installdir)
- errorlevel = errorlevel + cp(file,docfiledir,installdir)
+ errorlevel = errorlevel + cp(p.src,docfiledir,installdir)
end
end
end
diff --git a/macros/latex/contrib/l3build/l3build-manifest-setup.lua b/macros/latex/contrib/l3build/l3build-manifest-setup.lua
index 26bf1ca008..9fcf493729 100644
--- a/macros/latex/contrib/l3build/l3build-manifest-setup.lua
+++ b/macros/latex/contrib/l3build/l3build-manifest-setup.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-manifest-setup.lua Copyright (C) 2018,2020 The LaTeX3 Project
+File l3build-manifest-setup.lua Copyright (C) 2018,2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -54,7 +54,7 @@ for those people who are interested.
--]]
-manifest_setup = manifest_setup or function()
+function manifest_setup()
local groups = {
{
subheading = "Repository manifest",
@@ -221,18 +221,16 @@ end
--]]
manifest_sort_within_match = manifest_sort_within_match or function(files)
- local f = files
- table.sort(f)
- return f
+ table.sort(files)
+ return files
end
manifest_sort_within_group = manifest_sort_within_group or function(files)
- local f = files
--[[
-- no-op by default; make your own definition to customise. E.g.:
- table.sort(f)
+ table.sort(files)
--]]
- return f
+ return files
end
--[[
@@ -240,7 +238,7 @@ end
---------------
--]]
-manifest_write_opening = manifest_write_opening or function(filehandle)
+function manifest_write_opening(filehandle)
filehandle:write("# Manifest for " .. module .. "\n\n")
filehandle:write([[
@@ -250,7 +248,7 @@ It is automatically generated with `texlua build.lua manifest`.
end
-manifest_write_subheading = manifest_write_subheading or function(filehandle,heading,description)
+function manifest_write_subheading(filehandle,heading,description)
filehandle:write("\n\n## " .. heading .. "\n\n")
@@ -260,7 +258,7 @@ manifest_write_subheading = manifest_write_subheading or function(filehandle,hea
end
-manifest_write_group_heading = manifest_write_group_heading or function (filehandle,heading,description)
+function manifest_write_group_heading(filehandle,heading,description)
filehandle:write("\n### " .. heading .. "\n\n")
@@ -270,7 +268,7 @@ manifest_write_group_heading = manifest_write_group_heading or function (filehan
end
-manifest_write_group_file = manifest_write_group_file or function(filehandle,filename,param)
+function manifest_write_group_file(filehandle,filename,param)
--[[
filehandle : write file object
filename : the count of the filename to be written
@@ -296,7 +294,7 @@ manifest_write_group_file = manifest_write_group_file or function(filehandle,fil
end
-manifest_write_group_file_descr = manifest_write_group_file_descr or function(filehandle,filename,descr,param)
+function manifest_write_group_file_descr(filehandle,filename,descr,param)
--[[
filehandle : write file object
filename : the name of the file to write
@@ -326,7 +324,7 @@ end
-------------------------------------------
--]]
-manifest_extract_filedesc = manifest_extract_filedesc or function(filehandle)
+function manifest_extract_filedesc(filehandle)
-- no-op by default; two examples below
diff --git a/macros/latex/contrib/l3build/l3build-manifest.lua b/macros/latex/contrib/l3build/l3build-manifest.lua
index dc5138952c..f9b1c4e82e 100644
--- a/macros/latex/contrib/l3build/l3build-manifest.lua
+++ b/macros/latex/contrib/l3build/l3build-manifest.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-manifest.lua Copyright (C) 2018,2020 The LaTeX3 Project
+File l3build-manifest.lua Copyright (C) 2018,2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -33,7 +33,7 @@ for those people who are interested.
`l3build-manifest-setup.lua`.
--]]
-manifest = manifest or function()
+function manifest()
-- build list of ctan files
ctanfiles = {}
@@ -277,4 +277,3 @@ manifest_write_group = function(f,entry)
end
end
-
diff --git a/macros/latex/contrib/l3build/l3build-stdmain.lua b/macros/latex/contrib/l3build/l3build-stdmain.lua
index 10303b71f7..80b5cc84be 100644
--- a/macros/latex/contrib/l3build/l3build-stdmain.lua
+++ b/macros/latex/contrib/l3build/l3build-stdmain.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-stdmain.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-stdmain.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -22,6 +22,8 @@ for those people who are interested.
--]]
+local lfs = require("lfs")
+
local exit = os.exit
local insert = table.insert
@@ -49,7 +51,7 @@ target_list =
bundlecheck =
{
func = check,
- pre = function()
+ pre = function(names)
if names then
print("Bundle checks should not list test names")
help()
@@ -65,7 +67,7 @@ target_list =
bundleunpack =
{
func = bundleunpack,
- pre = function() return(depinstall(unpackdeps)) end
+ pre = function() return(dep_install(unpackdeps)) end
},
-- Public targets
check =
@@ -149,7 +151,7 @@ target_list =
-- The overall main function
--
-function stdmain(target,names)
+function main(target,names)
-- Deal with unknown targets up-front
if not target_list[target] then
help()
diff --git a/macros/latex/contrib/l3build/l3build-tagging.lua b/macros/latex/contrib/l3build/l3build-tagging.lua
index a00180b34c..e255aba5cd 100644
--- a/macros/latex/contrib/l3build/l3build-tagging.lua
+++ b/macros/latex/contrib/l3build/l3build-tagging.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-tagging.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-tagging.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -28,7 +28,7 @@ local os_date = os.date
local match = string.match
local gsub = string.gsub
-update_tag = update_tag or function(filename,content,tagname,tagdate)
+function update_tag(filename,content,tagname,tagdate)
return content
end
@@ -51,7 +51,7 @@ local function update_file_tag(file,tagname,tagdate)
else
local path = dirname(file)
ren(path,filename,filename .. ".bak")
- local f = assert(open(file,"w"))
+ f = assert(open(file,"w"))
-- Convert line ends back if required during write
-- Watch for the second return value!
f:write((gsub(updated_content,"\n",os_newline)))
@@ -71,8 +71,8 @@ function tag(tagnames)
local errorlevel = 0
for _,dir in pairs(dirs) do
for _,filetype in pairs(tagfiles) do
- for file,_ in pairs(tree(dir,filetype)) do
- errorlevel = update_file_tag(dir .. "/" .. file,tagname,tagdate)
+ for _,p in ipairs(tree(dir,filetype)) do
+ errorlevel = update_file_tag(dir .. "/" .. p.src,tagname,tagdate)
if errorlevel ~= 0 then
return errorlevel
end
@@ -81,4 +81,3 @@ function tag(tagnames)
end
return tag_hook(tagname,tagdate)
end
-
diff --git a/macros/latex/contrib/l3build/l3build-typesetting.lua b/macros/latex/contrib/l3build/l3build-typesetting.lua
index 540ac3f384..716648f7fd 100644
--- a/macros/latex/contrib/l3build/l3build-typesetting.lua
+++ b/macros/latex/contrib/l3build/l3build-typesetting.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-typesetting.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-typesetting.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -38,20 +38,20 @@ local os_type = os.type
function dvitopdf(name, dir, engine, hide)
run(
dir,
- (forcecheckepoch and setepoch() or "") ..
+ set_epoch_cmd(epoch, forcecheckepoch) ..
"dvips " .. name .. dviext
.. (hide and (" > " .. os_null) or "")
.. os_concat ..
- "ps2pdf " .. ps2pdfopt .. name .. psext
+ "ps2pdf " .. ps2pdfopt .. name .. psext
.. (hide and (" > " .. os_null) or "")
)
end
-- An auxiliary used to set up the environmental variables
function runcmd(cmd,dir,vars)
- local dir = dir or "."
- local dir = abspath(dir)
- local vars = vars or {}
+ dir = dir or "."
+ dir = abspath(dir)
+ vars = vars or {}
-- Allow for local texmf files
local env = os_setenv .. " TEXMFCNF=." .. os_pathsep
local localtexmf = ""
@@ -68,7 +68,7 @@ function runcmd(cmd,dir,vars)
for _,var in pairs(vars) do
env = env .. os_concat .. os_setenv .. " " .. var .. "=" .. envpaths
end
- return run(dir,(forcedocepoch and setepoch() or "") .. env .. os_concat .. cmd)
+ return run(dir,set_epoch_cmd(epoch, forcedocepoch) .. env .. os_concat .. cmd)
end
function biber(name,dir)
@@ -80,7 +80,7 @@ function biber(name,dir)
end
function bibtex(name,dir)
- local dir = dir or "."
+ dir = dir or "."
if fileexists(dir .. "/" .. name .. ".aux") then
-- LaTeX always generates an .aux file, so there is a need to
-- look inside it for a \citation line
@@ -105,7 +105,7 @@ function bibtex(name,dir)
end
function makeindex(name,dir,inext,outext,logext,style)
- local dir = dir or "."
+ dir = dir or "."
if fileexists(dir .. "/" .. name .. inext) then
if style == "" then style = nil end
return runcmd(makeindexexe .. " " .. makeindexopts
@@ -119,15 +119,15 @@ function makeindex(name,dir,inext,outext,logext,style)
end
function tex(file,dir,cmd)
- local dir = dir or "."
- local cmd = cmd or typesetexe .. typesetopts
+ dir = dir or "."
+ cmd = cmd or typesetexe .. " " .. typesetopts
return runcmd(cmd .. " \"" .. typesetcmds
.. "\\input " .. file .. "\"",
dir,{"TEXINPUTS","LUAINPUTS"})
end
local function typesetpdf(file,dir)
- local dir = dir or "."
+ dir = dir or "."
local name = jobname(file)
print("Typesetting " .. name)
local fn = typeset
@@ -141,12 +141,12 @@ local function typesetpdf(file,dir)
print(" ! Compilation failed")
return errorlevel
end
- pdfname = name .. pdfext
+ local pdfname = name .. pdfext
rm(docfiledir,pdfname)
return cp(pdfname,dir,docfiledir)
end
-typeset = typeset or function(file,dir,exe)
+function typeset(file,dir,exe)
dir = dir or "."
local errorlevel = tex(file,dir,exe)
if errorlevel ~= 0 then
@@ -168,7 +168,7 @@ typeset = typeset or function(file,dir,exe)
end
-- A hook to allow additional typesetting of demos
-typeset_demo_tasks = typeset_demo_tasks or function()
+function typeset_demo_tasks()
return 0
end
@@ -188,7 +188,7 @@ local function docinit()
for _,file in pairs(typesetsuppfiles) do
cp(file, supportdir, typesetdir)
end
- depinstall(typesetdeps)
+ dep_install(typesetdeps)
unpack({sourcefiles, typesetsourcefiles}, {sourcefiledir, docfiledir})
-- Main loop for doc creation
local errorlevel = typeset_demo_tasks()
@@ -198,7 +198,7 @@ local function docinit()
return docinit_hook()
end
-docinit_hook = docinit_hook or function() return 0 end
+function docinit_hook() return 0 end
-- Typeset all required documents
-- Uses a set of dedicated auxiliaries that need to be available to others
@@ -209,8 +209,8 @@ function doc(files)
for _,typesetfiles in ipairs({typesetdemofiles,typesetfiles}) do
for _,glob in pairs(typesetfiles) do
for _,dir in ipairs({typesetdir,unpackdir}) do
- for _,file in pairs(tree(dir,glob)) do
- local path,srcname = splitpath(file)
+ for _,p in ipairs(tree(dir,glob)) do
+ local path,srcname = splitpath(p.cwd)
local name = jobname(srcname)
if not done[name] then
local typeset = true
@@ -226,7 +226,7 @@ function doc(files)
end
-- Now know if we should typeset this source
if typeset then
- local errorlevel = typesetpdf(srcname,path)
+ errorlevel = typesetpdf(srcname,path)
if errorlevel ~= 0 then
return errorlevel
else
@@ -240,4 +240,3 @@ function doc(files)
end
return 0
end
-
diff --git a/macros/latex/contrib/l3build/l3build-unpack.lua b/macros/latex/contrib/l3build/l3build-unpack.lua
index 412b5e84da..7ab21ee09d 100644
--- a/macros/latex/contrib/l3build/l3build-unpack.lua
+++ b/macros/latex/contrib/l3build/l3build-unpack.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-unpack.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-unpack.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -22,12 +22,10 @@ for those people who are interested.
--]]
-local execute = os.execute
-
-- Unpack the package files using an 'isolated' system: this requires
-- a copy of the 'basic' DocStrip program, which is used then removed
function unpack(sources, sourcedirs)
- local errorlevel = depinstall(unpackdeps)
+ local errorlevel = dep_install(unpackdeps)
if errorlevel ~= 0 then
return errorlevel
end
@@ -46,7 +44,7 @@ end
-- Split off from the main unpack so it can be used on a bundle and not
-- leave only one modules files
-bundleunpack = bundleunpack or function(sourcedirs, sources)
+function bundleunpack(sourcedirs, sources)
local errorlevel = mkdir(localdir)
if errorlevel ~=0 then
return errorlevel
@@ -72,8 +70,8 @@ bundleunpack = bundleunpack or function(sourcedirs, sources)
end
end
for _,i in ipairs(unpackfiles) do
- for j,_ in pairs(tree(unpackdir, i)) do
- local path, name = splitpath(j)
+ for _,p in ipairs(tree(unpackdir, i)) do
+ local path, name = splitpath(p.src)
local localdir = abspath(localdir)
local success = io.popen(
"cd " .. unpackdir .. "/" .. path .. os_concat ..
diff --git a/macros/latex/contrib/l3build/l3build-upload.lua b/macros/latex/contrib/l3build/l3build-upload.lua
index ba74309492..629d2ee7c7 100644
--- a/macros/latex/contrib/l3build/l3build-upload.lua
+++ b/macros/latex/contrib/l3build/l3build-upload.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-upload.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-upload.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -78,6 +78,12 @@ end
-- if upload is anything else, the user will be prompted whether to upload.
-- For now, this is undocumented. I think I would prefer to keep it always set to ask for the time being.
+local ctan_post -- this is private to the module
+
+-- TODO: next is a public global method,
+-- but following functions are semantically local
+-- despite they are declared globally.
+
function upload(tagnames)
local uploadfile = ctanzip..".zip"
@@ -100,7 +106,7 @@ function upload(tagnames)
uploadconfig.note = uploadconfig.note or file_contents(uploadconfig.note_file)
- local tagnames = tagnames or { }
+ tagnames = tagnames or { }
uploadconfig.version = tagnames[1] or uploadconfig.version
local override_update_check = false
@@ -214,7 +220,7 @@ end
function shell(s)
local h = assert(popen(s, 'r'))
- t = assert(h:read('*a'))
+ local t = assert(h:read('*a'))
h:close()
return t
end
@@ -248,12 +254,6 @@ function construct_ctan_post(uploadfile,debug)
ctan_field("uploader", uploadconfig.uploader, 255, "Name of uploader", true, false )
ctan_field("version", uploadconfig.version, 32, "Package version", true, false )
- -- finish constructing the curl command:
- local qq = '"'
- if os_type == "windows" then
- qq = '\"'
- end
--- commandline ctan_post = ctan_post .. ' --form ' .. qq .. 'file=@' .. tostring(uploadfile) .. ';filename=' .. tostring(uploadfile) .. qq
ctan_post = ctan_post .. '\nform="file=@' .. tostring(uploadfile) .. ';filename=' .. tostring(uploadfile) .. '"'
return ctan_post
@@ -352,7 +352,7 @@ function file_contents (filename)
local f= open(filename,"r")
if f==nil then
return nil
- else
+ else
local s = f:read("*all")
close(f)
return s
diff --git a/macros/latex/contrib/l3build/l3build-variables.lua b/macros/latex/contrib/l3build/l3build-variables.lua
index 87ce01d611..e3ae64e13b 100644
--- a/macros/latex/contrib/l3build/l3build-variables.lua
+++ b/macros/latex/contrib/l3build/l3build-variables.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-variables.lua Copyright (C) 2018-2020 The LaTeX3 Project
+File l3build-variables.lua Copyright (C) 2018-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -22,8 +22,6 @@ for those people who are interested.
--]]
-local exit = os.exit
-
-- "module" is a deprecated function in Lua 5.2: as we want the name
-- for other purposes, and it should eventually be 'free', simply
-- remove the built-in
@@ -209,6 +207,24 @@ pvtext = pvtext or ".pvt"
tlgext = tlgext or ".tlg"
tpfext = tpfext or ".tpf"
+test_types = test_types or { }
+test_types.log = test_types.log or {
+ test = lvtext,
+ generated = logext,
+ reference = tlgext,
+ expectation = lveext,
+ compare = compare_tlg,
+ rewrite = rewrite_log,
+}
+test_types.pdf = test_types.pdf or {
+ test = pvtext,
+ generated = pdfext,
+ reference = tpfext,
+ rewrite = rewrite_pdf,
+}
+
+test_order = test_order or {"log", "pdf"}
+
-- Manifest options
manifestfile = manifestfile or "MANIFEST.md"
diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1
index 9262d7c5b6..2bb47c3068 100644
--- a/macros/latex/contrib/l3build/l3build.1
+++ b/macros/latex/contrib/l3build/l3build.1
@@ -1,4 +1,4 @@
-.TH l3build 1 "2020-06-04"
+.TH l3build 1 "2021-05-05"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
@@ -59,7 +59,7 @@ Shuffle order of tests
Location of user texmf tree
.SH BUGS
.SH AUTHOR
-The LaTeX3 Project (latex-team@latex-project.org)
+The LaTeX Project (latex-team@latex-project.org)
.PP
Please log issues on the GitHub homepage:
https://github.com/latex3/l3build/issues.
diff --git a/macros/latex/contrib/l3build/l3build.dtx b/macros/latex/contrib/l3build/l3build.dtx
index 198042469e..9359b941b1 100644
--- a/macros/latex/contrib/l3build/l3build.dtx
+++ b/macros/latex/contrib/l3build/l3build.dtx
@@ -1,6 +1,6 @@
% \iffalse
%
-% File l3build.dtx (C) Copyright 2014-2020 The LaTeX3 Project
+% File l3build.dtx (C) Copyright 2014-2020 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -114,6 +114,8 @@
\luavarset{stdengine} {"pdftex"}{Engine to generate \texttt{.tlg} file from}
\luavarset{checkformat} {"latex"} {Format to use for tests}
\luavarset{specialformats}{\meta{table}} {Non-standard engine/format combinations}
+\luavarset{\detokenize{test_types}} {\meta{table}} {Custom test variants}
+\luavarset{\detokenize{test_order}} {\{"log", "pdf"\}} {Which kinds of tests to evaluate}
\luavarseparator
\luavarset{checkconfigs}{\{\}}{Configurations to use for tests}
\luavarseparator
@@ -227,7 +229,7 @@
% }
%
% \author{^^A
-% The \LaTeX3 Project\thanks
+% The \LaTeX{} Project\thanks
% {^^A
% E-mail:
% \href{mailto:latex-team@latex-project.org}
@@ -235,7 +237,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-04}
+% \date{Released 2021-05-05}
%
% \maketitle
% \tableofcontents
@@ -274,7 +276,7 @@
% The \pkg{l3build} system is also capable of building and checking \emph{bundles} of packages.
% To avoid confusion, we refer to either a standalone package or a package within a bundle as a \emph{module}.
%
-% For example, within the \LaTeX3 project we have the \textsf{l3packages} bundle which contains the \textsf{xparse}, \textsf{xtemplate}, etc., modules.
+% For example, within the \LaTeX{} project we have the \textsf{l3packages} bundle which contains the \textsf{xparse}, \textsf{xtemplate}, etc., modules.
% These are all built and distributed as one bundle for installation, distribution \emph{via} CTAN and so forth.
%
% Each module in a bundle will have its own build script, and a bundle build script brings them all together.
@@ -320,16 +322,19 @@
% which is read during execution. In the current release of \pkg{l3build},
% \texttt{build.lua} is read automatically and can access all of the global
% functions provided by the script. Thus it may contain a simple list of
-% variable settings \emph{or} additionally custom code to change the build
-% process. A number of example scripts are given in Section~\ref{sec:examples}.
+% variable settings \emph{or} additional code to customize the build
+% process.
+%
+%The example scripts given in Section~\ref{sec:examples} largely cover the required knowledge in Lua programing.
+% For a more advanced usage, one may consult general Lua documentations including \url{http://www.lua.org/manual/5.3/manual.html} and for the few |texlua| specific additions see section 4.2 of the \LuaTeX{} manual available locally with |texdoc luatex| command line or at \url{https://www.pragma-ade.com/general/manuals/luatex.pdf}.
%
% \subsection{Main build targets}
%
% In the working directory of a bundle or module, \pkg{l3build} is run by executing
% \begin{center}
-% \texttt{l3build \meta{targets} [\meta{option(s)}]}
+% \texttt{l3build \meta{target} [\meta{option(s)}]}
% \end{center}
-% where \texttt{\meta{targets}} can be one of the following:
+% where \texttt{\meta{target}} can be one of the following:
% \begin{itemize}[noitemsep]\ttfamily
% \item check
% \item check \meta{name(s)}
@@ -340,11 +345,10 @@
% \item install
% \item manifest
% \item save \meta{name(s)}
-% \item tag \meta{tag}
+% \item tag [\meta{tag name}]
% \item uninstall
% \item unpack
-% \item upload
-% \item upload \meta{tag}
+% \item upload [\meta{version}]
% \end{itemize}
% These targets are described below.
%
@@ -408,8 +412,8 @@
%
% Checking can be performed with any or all of the `engines' \texttt{pdftex}, \texttt{xetex}, and \texttt{luatex}.
% By default, each test is executed with all three, being compared against the \texttt{.tlg} file produced from the \var{pdftex} engine (these defaults are controlled by the |checkengines| and |stdengine| variable respectively).
-% The format used for tests can be altered by setting \var{checkformat}: the default setting \texttt{latex} means that tests are run using \emph{e.g.}~\texttt{pdflatex}, whereas setting to \texttt{plain} will run tests using \emph{e.g.}~\texttt{pdftex}.
-% (Currently, this should be one of \texttt{latex} or \texttt{plain}.)
+% The format used for tests can be altered by setting \var{checkformat}: the default setting \texttt{latex} means that tests are run using \emph{e.g.}~\texttt{pdflatex}, whereas setting to \texttt{tex} will run tests using \emph{e.g.}~\texttt{pdftex}.
+% (Currently, this should be one of \texttt{latex} or \texttt{tex}.)
% To perform the check, the engine typesets each test up to \var{checkruns} times.
% More detail on this in the documentation on |save|.
% Options passed to the binary are defined in the variable \var{checkopts}.
@@ -563,17 +567,14 @@
% Improvements to this process are planned for the future.
% \end{buildcmd}
%
-% \begin{buildcmd}{tag}
-% Modifies the contents of files specified by |tagfiles| using a search pattern
-% to automatically update the `release tag' (or package version) and date.
-% The tag is given as the command line option and the date using
-% |--date| (|-d|). If not given, the date will default to the current date in
-% ISO format (YYYY-MM-DD). If no option is given (i.e., no tag specified) the tag
-% is passed through as |nil| to allow setting the tag programmatically.
-%
-% The standard setup has no search pattern defined for this target and so no action
-% will be taken \emph{unless} tag substitution is set up by defining the Lua function
-% |update_tag()|. See Section~\ref{sec:tagging} for full details on this feature.
+% \begin{buildcmd}{tag [\meta{tag name}]}
+% Apply the Lua |update_tag()| function to modify the contents of files specified by |tagfiles| to update the `release tag' (or package version) and date.
+% The tag is given as the optional command line argument \meta{tag name} and the date using
+% |--date| (or |-d|). If not given, the date will default to the current date in
+% ISO format (YYYY-MM-DD). If no \meta{tag name} is given, the tag will default to |nil|.
+% Both are passed as arguments to the |update_tag()| function.
+%
+% The standard setup does nothing unless tag update is set up by defining a custom |update_tag()| function. See Section~\ref{sec:tagging} for full details on this feature.
% \end{buildcmd}
%
% \begin{buildcmd}{unpack}
@@ -588,11 +589,11 @@
% By default this process allows files to be accessed in all standard |texmf| trees; this can be disabled by setting \var{unpacksearch} to |false|.
% \end{buildcmd}
%
-% \begin{buildcmd}{upload}
+% \begin{buildcmd}{upload [\meta{version}]}
% This target uses \texttt{curl} to upload the package zip file (created using \texttt{ctan}) to CTAN.
% To control the metadata used to upload the package, the \texttt{uploadconfig} table should be populated with a number of fields.
% These are documented in Table~\ref{tab:upload-setup}.
-% Missing required fields will result in an interactive prompt for manual entry.
+% Missing required fields will result in an interactive prompt for manual entry. When given, \meta{version} overrides \texttt{uploadconfig.version}.
%
% See Section~\ref{sec:upload} for full details on this feature.
% \end{buildcmd}
@@ -620,12 +621,12 @@
% \end{figure}
%
% An example of a bundle build script for \pkg{l3packages} is shown in Figure~\ref{fig:bundle}.
-% Note for \LaTeX3 we use a common file to set all build variables in one place, and the path to the |l3build.lua| script is hard-coded so we always use our own most recent version of the script.
+% Note for \LaTeX{} we use a common file to set all build variables in one place, and the path to the |l3build.lua| script is hard-coded so we always use our own most recent version of the script.
% An example of an accompanying module build script is shown in Figure~\ref{fig:module}.
%
% \begin{figure}[p]
% \begin{lstlisting}[frame=single,language={[5.2]Lua},gobble = 6]
-% -- Build script for LaTeX3 "l3packages" files
+% -- Build script for LaTeX "l3packages" files
%
% -- Identify the bundle: there is no module as this is the "driver"
% bundle = "l3packages"
@@ -639,7 +640,7 @@
%
% \begin{figure}[p]
% \begin{lstlisting}[frame=single,language={[5.2]Lua},gobble = 6]
-% -- Build script for LaTeX3 "xparse" files
+% -- Build script for LaTeX "xparse" files
%
% -- Identify the bundle and module:
% bundle = "l3packages"
@@ -656,28 +657,6 @@
% A collection of full examples (source files in various layouts) are available
% at \url{https://github.com/latex3/l3build/tree/master/examples}.
%
-% \subsection{Backwards compatibility}
-%
-% Earlier releases of \pkg{l3build} required that the last line of
-% \texttt{build.lua} ran the main script, \emph{i.e.}~that \texttt{build.lua}
-% was what the user called rather than \texttt{l3build.lua}. To allow scripts
-% to support both forms \emph{for the transition}, a simple test may be
-% included as showing in Figure~\ref{fig:build-compat}.
-% \begin{figure}
-% \begin{lstlisting}[frame=single,language={[5.2]Lua},gobble = 6]
-% if not release_date then
-% dofile(kpse.lookup("l3build.lua"))
-% end
-% \end{lstlisting}
-% \caption{Final lines for a \texttt{build.lua} script usable with both older
-% and newer releases of \pkg{l3build}.}
-% \label{fig:build-compat}
-% \end{figure}
-%
-% Note that in time support for loading \pkg{l3build} by calling the
-% \texttt{build.lua} script \emph{may} be removed: the recommended approach for
-% new scripts is to run \texttt{l3build}.
-%
% \subsection{Variables}
%
% This section lists all variables defined in the |l3build.lua| script that are available for customisation.
@@ -696,10 +675,10 @@
% \subsection{Selective running of tests}
%
% The variables |includetests| and |excludetests| may be used to select which
-% tests are run: these variables take test \emph{names} not full file names.
+% tests are run: these variables take raw test \emph{names} not full file names.
% The list of tests in |excludetests| overrides any matches in |includetests|,
% meaning that tests can be disabled selectively. It also makes it possible
-% to disable test on for example a platform basis: the Lua core variable
+% to disable test on for example a platform basis: the |texlua| specific variable
% |os.type| may be used to set |excludetests| only on some systems.
%
% \subsection{Multiple sets of tests}
@@ -741,10 +720,10 @@
% \subsection{Dependencies}
%
% If you have multiple packages that are developed separately but still interact in some way, it's often desirable to integrate them when performing regression tests.
-% For \LaTeX3, for example, when we make changes to \pkg{l3kernel} it's important to check that the tests for \pkg{l3packages} still run correctly, so it's necessary to include the \pkg{l3kernel} files in the build process for \pkg{l3packages}.
+% For \LaTeX{}, for example, when we make changes to \pkg{l3kernel} it's important to check that the tests for \pkg{l3packages} still run correctly, so it's necessary to include the \pkg{l3kernel} files in the build process for \pkg{l3packages}.
%
% In other words, \pkg{l3packages} is \emph{dependent} on \pkg{l3kernel}, and this is specified in \pkg{l3build} by setting appropriately the variables \texttt{checkdeps}, \texttt{typesetdeps}, and \texttt{unpackdeps}.
-% The relevant parts of the \LaTeX3 repository is structured as the following.
+% The relevant parts of the \LaTeX{} repository is structured as the following.
% \Needspace{3\baselineskip}
% \begin{Verbatim}
% l3/
@@ -763,7 +742,7 @@
% xparse.ins
% support/
% \end{Verbatim}
-% For \LaTeX3 build files, |maindir| is defined as top level folder |l3|, so all support files are located here, and the build directories will be created there.
+% For \LaTeX{} build files, |maindir| is defined as top level folder |l3|, so all support files are located here, and the build directories will be created there.
% To set \pkg{l3kernel} as a dependency of \pkg{l3package}, within |l3packages/xparse/build.lua| the equivalent of the following is set:
% \begin{Verbatim}
% maindir = "../.."
@@ -1246,6 +1225,38 @@
% engine-specific, thus one |.tpf| file should be stored per engine to be
% tested.
%
+% \subsection{Custom tests}
+%
+% If neither the text-based methods nor PDF-based tests are sufficient,
+% there is the additional option of defining custom variants with individual
+% normalization rules.
+%
+% For this, the variant has to be registered in the \texttt{test_types} table
+% and then activated in \texttt{test_order}.
+%
+% Every element in \texttt{test_types} is a table with fields \texttt{test}
+% (the extension of the test file), \texttt{reference} (the extension of the
+% file the output is compared with), \texttt{generated} (extension of the
+% analyzed \LaTeX{} output file) and \texttt{rewrite} (A Lua function for
+% normalizing the output file, taking as parameters the name of the unnormalized
+% \LaTeX{} output file to be read, the name of the normalized file to be written,
+% the engine name and a potential errorcode).
+%
+% For example:
+% \begin{verbatim}
+% test_types = {
+% mytest = {
+% test = ".mylvt",
+% reference = ".mytlg",
+% generated = ".log",
+% rewrite = function(source, normalized, engine, errorcode)
+% -- In this example we just copy the logfile without any normalization
+% os.execute(string.format("cp %s %s", source, normalized)
+% end,
+% },
+% }
+% test_order = {"mylvt", "log", "pdf"}
+% \end{verbatim}
%
% \section{Release-focussed features}
%
@@ -1294,7 +1305,7 @@
% \label{sec:tagging}
%
% The |tag| target can automatically edit
-% source files to modify date and release tag. As standard, no automatic
+% source files to modify date and release tag name. As standard, no automatic
% replacement takes place, but setting up a |update_tag()| function
% will allow this to happen. This function takes four input arguments:
% \begin{enumerate}[nosep]
@@ -1334,7 +1345,7 @@
%
% To allow more complex tasks to take place, a hook |tag_hook()| is also
% available. It will receive the tag name and date as arguments, and
-% may be used to carry out arbitrary tasks after the main tagging process.
+% may be used to carry out arbitrary tasks after all files have been updated.
% For example, this can be used to set a version control tag for an entire repository.
%
%
@@ -1426,7 +1437,7 @@
%
% The CTAN upload process is backed by an API, which \pkg{l3build} can use
% to send zip files for release. Along with the file, a variety of metadata
-% must be specified about the package, including the version, license, and so on.
+% must be specified about the package, including the version, license, and so on, explained at \url{https://www.ctan.org/upload}.
% A description of this metadata is outlined in Table~\ref{tab:upload-setup},
% and a simple example of an extract from a \texttt{build.lua} file using this is shown
% in Figure~\ref{fig:uploadconfig}.
@@ -1666,7 +1677,7 @@
% \begin{syntax}
% |fileexists(|\meta{file}|)|
% \end{syntax}
-% Tests if the \meta{file} exists; returns a boolean value.
+% Tests if the \meta{file} exists and is readable; returns a boolean value.
% \end{function}
%
% \begin{function}{filelist()}
@@ -1882,6 +1893,7 @@
% the |names| as an argument; this allows checking of the |name| data
% without impact on the main |func|.
% \end{itemize}
+% The functions |func|, |bundle_func| and |pre| must return 0 on success.
%
% \subsection{Customising the manifest file}
% \label{sec:manifest}
diff --git a/macros/latex/contrib/l3build/l3build.ins b/macros/latex/contrib/l3build/l3build.ins
index 483bab9d4a..bdb0fb7a52 100644
--- a/macros/latex/contrib/l3build/l3build.ins
+++ b/macros/latex/contrib/l3build/l3build.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File l3build.ins Copyright (C) 2014-2018 The LaTeX3 Project
+File l3build.ins Copyright (C) 2014-2018,2021 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@ license information is placed in the derived files.
\preamble
-Copyright (C) 2014-2018 The LaTeX3 Project
+Copyright (C) 2014-2021 The LaTeX Project
It may be distributed and/or modified under the conditions of
the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua
index e7acd47fb3..0b68ee1617 100755..100644
--- a/macros/latex/contrib/l3build/l3build.lua
+++ b/macros/latex/contrib/l3build/l3build.lua
@@ -2,7 +2,7 @@
--[[
-File l3build.lua Copyright (C) 2014-2020 The LaTeX3 Project
+File l3build.lua Copyright (C) 2014-2020 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2020-06-04"
+release_date = "2021-05-05"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
@@ -79,18 +79,12 @@ elseif options["target"] == "version" then
exit(0)
end
--- Allow main function to be disabled 'higher up'
-main = main or stdmain
-
--- Load configuration file if running as a script
-if match(arg[0], "l3build$") or match(arg[0], "l3build%.lua$") then
- -- Look for some configuration details
- if fileexists("build.lua") then
- dofile("build.lua")
- else
- print("Error: Cannot find configuration build.lua")
- exit(1)
- end
+-- Look for some configuration details
+if fileexists("build.lua") then
+ dofile("build.lua")
+else
+ print("Error: Cannot find configuration build.lua")
+ exit(1)
end
-- Load standard settings for variables:
@@ -120,7 +114,7 @@ if options["epoch"] then
forcecheckepoch = true
forcedocepoch = true
end
-normalise_epoch()
+epoch = normalise_epoch(epoch)
-- Sanity check
check_engines()
@@ -159,7 +153,6 @@ if options["target"] == "check" then
print("\n Check failed with difference files")
local testdir = testdir
if config ~= "build" then
- resultdir = resultdir .. "-" .. config
testdir = testdir .. "-" .. config
end
for _,i in ipairs(filelist(testdir,"*" .. os_diffext)) do
diff --git a/macros/latex/contrib/l3build/l3build.pdf b/macros/latex/contrib/l3build/l3build.pdf
index 958de58c4d..709314feef 100644
--- a/macros/latex/contrib/l3build/l3build.pdf
+++ b/macros/latex/contrib/l3build/l3build.pdf
Binary files differ
diff --git a/macros/plain/contrib/xintsession/README.md b/macros/plain/contrib/xintsession/README.md
index 9821fcd2e7..c5bdd6b7b9 100644
--- a/macros/plain/contrib/xintsession/README.md
+++ b/macros/plain/contrib/xintsession/README.md
@@ -1,5 +1,7 @@
# xintsession README #
+Release: 0.2 (2021-05-05)
+
## Usage ##
xintsession.tex is to be used with etex (or pdftex or the other engines
@@ -9,19 +11,24 @@ It will load [xintexpr](http://www.ctan.org/pkg/xint) and
[polexpr](http://www.ctan.org/pkg/polexpr)
(its version `0.8` or later is needed).
-The following explanations have been tested on a Unixen (Mac OS),
-please adapt to your shell environment.
+You need 2 steps to start a session:
+
+1. execute `etex xintsession`, or if available, `rlwrap etex xintsession`
+ to benefit from arrow keys navigation and other improvements such
+ as parentheses highlighting.
+ Alternatively, execute `rlwrap etex` and enter `xintsession` at the `**`
+ prompt.
+ One can also use the `-jobname` option of `etex` at this step.
+2. a welcome message is printed, hit the `RET` key at the `*` prompt.
-You need 3 small steps to start a session:
+The above explanations have been tested on a Unixen (Mac OS), and probably
+`rlwrap` is not available on all platforms, but it is not a requirement.
-1. execute `etex`, or better, `rlwrap etex` to benefit from arrow keys
- navigation and other improvements such as parentheses highlighting in
- the input (and optionally, use the `-jobname` option here)
-2. at the `**` prompt, enter `xintsession` and hit `RET`,
-3. a welcome message is printed, hit the `RET` key at the `*` prompt.
+At my locale I added `alias xs="rlwrap etex xintsession"` to my `.bashrc`
+so I only have to type `xs` at the command line.
You are now ready to make computations!
-Here is an example session (spaces do not matter):
+Here is a sample session (spaces do not matter):
(Please type a command or say `\end')
* 1+1/2+1/3+1/4+1/5;
@@ -43,8 +50,9 @@ Here is an example session (spaces do not matter):
Transcript written on xintsession.log.
As this example shows, the computational engine can work in various
-modes: exact, fp, fp16, fp24, fp32, int, and pol. One can define
-variables and functions using `:=` syntax.
+modes: exact, fp, int, and pol. Say `&fp=number` at the prompt
+to activate floating point mode with `number` as Digits (scientific
+functions implemented up to 62 digits at xint 1.4e).
If ill-formed input drops you into TeX error interaction mode, try
hitting `S` it may work to bring you back to normal session.
diff --git a/macros/plain/contrib/xintsession/xintsession.tex b/macros/plain/contrib/xintsession/xintsession.tex
index 271c6abff6..aa0e8540d2 100644
--- a/macros/plain/contrib/xintsession/xintsession.tex
+++ b/macros/plain/contrib/xintsession/xintsession.tex
@@ -1,17 +1,19 @@
-% Release 0.1 (2021/04/13) of xintsession.tex
+% Release 0.2 (2021-05-05) of xintsession.tex
% author: Jean-Francois Burnol
% License: LPPL 1.3c (author-maintained)
% Usage: execute etex or pdftex
% then enter "xintsession" at the ** prompt
\input xintexpr.sty\relax%
+% AJOUTER CHECK DE VERSION ICI
\input xintbinhex.sty\relax%
\input polexpr.sty\relax% attention will crash if < 0.8
\let\PolToExprOneTerm\PolToExprOneTermStyleB%
%\let\PolToExprTimes\empty%
% we do assume standard catcodes on loading and use
-% \XINT_restorecatcodes as a convenience facility.
+% \XINTrestorecatcodes as a convenience facility.
% It stores \endlinechar but not \newlinechar
-\edef\xsrestorecatcodes{\csname XINT_restorecatcodes\endcsname%
+% and was renamed at 1.4e
+\edef\xsrestorecatcodes{\XINTrestorecatcodes%
\newlinechar\the\newlinechar\relax}%
\endlinechar 13 %
\newlinechar 10
@@ -30,7 +32,7 @@
\expandafter\xint_gobble_i\the\numexpr100+\time-60*((\time+30)/60-1).tex}%
\immediate\openout\xs_out=\xs_name\relax
\begingroup\catcode37 12
-\gdef\xs_message#1{\message{#1}\immediate\write\xs_out{%#1}}\endgroup
+\long\gdef\xs_message#1{\message{#1}\immediate\write\xs_out{%#1}}\endgroup
{\catcode13\active\def
{""J}\catcode32\active\edef {\string }%
\catcode`?=0\catcode`\\=12\relax%
@@ -49,13 +51,13 @@
}%
?immediate?write128{%
- xintsession 0.1
+ xintsession 0.2
Copyright (c) Jean-Francois Burnol, 2021.
\jobname is ?jobname
Transcript will go to log and to ?xs_name
- ===> HIT THE <RET> KEY NOW! <===
+ ===> HIT THE <RET> KEY NOW! <===%
}}%
\def\xs_no{0}%
\XINT_expr_defvar_one{@___}{{0}}%
@@ -64,7 +66,7 @@
\def\xs_fetch{\let\xs_in\empty\xs_fetch_a}%
\begingroup
\catcode13\active%
-\gdef\xs_fetch_a#1
+\long\gdef\xs_fetch_a#1
{%
\odef\xs_firstitem{\romannumeral0\xintfirstitem{#1.}}%
\ifcat\relax\expandafter\noexpand\xs_firstitem%
@@ -82,17 +84,15 @@
\fi%
}%
\endgroup
-\def\xs_cs\if;\expandafter\noexpand\romannumeral0\xintlastitem#1#2\fi
+\long\def\xs_cs\if;\expandafter\noexpand\romannumeral0\xintlastitem#1#2\fi
{%
- \xs_message{(executing \detokenize{#1} in background)}
+ \xs_message{(executing \detokenize{#1} in background)}%
#1\xs_fetch_a
}%
-\def\xs_firstfour#1#2#3#4#5\xint_bye{#1#2#3#4}%
-\def\xs_magic\if;\expandafter\noexpand\romannumeral0\xintlastitem#1#2\fi
+\def\xs_firstfour#1#2#3#4#5\xint_bye{\edef\xs_magic_in{#1#2#3#4}\def\xs_magic_inb{#5}}%
+\long\def\xs_magic\if;\expandafter\noexpand\romannumeral0\xintlastitem#1#2\fi
{%
-% this gets rid of spaces and an inadvertent ; except for &fp which is too
-% short, but this puts a constraint on magic words, maybe I will revisit
- \edef\xs_magic_in{\xs_firstfour#1\empty\empty\empty\empty\xint_bye}%
+ \xs_firstfour#1\empty\empty\empty\empty\xint_bye
\ifcsname xs_magic@\xs_magic_in\endcsname
\csname xs_magic@\xs_magic_in\expandafter\endcsname
\else
@@ -100,7 +100,7 @@
ignored)}%
\fi\xs_fetch_a
}%
-\def\xs_fetch_b#1;^%
+\long\def\xs_fetch_b#1;^%
{%
\odef\xs_in{\xs_in#1}\expandafter\xs_fetch_c
}%
@@ -187,34 +187,16 @@
\def\xs_magic@&fp
{%
\xs_message{fp mode (\xinttheDigits\space digits)}%
- \def\xs_mode{fp}%
+ \def\xs_mode{fp (Digits=\xinttheDigits)}%
\def\xs_xintdefvar{\xintdeffloatvar}%
\def\xs_xintdeffunc{\xintdeffloatfunc}%
\def\xs_xinteval{\xintfloateval}%
}%
-\expandafter\def\csname xs_magic@&fp1\endcsname
+\expandafter\def\csname xs_magic@&fp=\endcsname
{%
- \xintDigits*:=16;%
- \xs_message{fp16 mode (trig reloaded)}%
- \def\xs_mode{fp16}%
- \def\xs_xintdefvar{\xintdeffloatvar}%
- \def\xs_xintdeffunc{\xintdeffloatfunc}%
- \def\xs_xinteval{\xintfloateval}%
-}%
-\expandafter\def\csname xs_magic@&fp2\endcsname
-{%
- \xintDigits*:=24;%
- \xs_message{fp24 mode (trig reloaded)}%
- \def\xs_mode{fp24}%
- \def\xs_xintdefvar{\xintdeffloatvar}%
- \def\xs_xintdeffunc{\xintdeffloatfunc}%
- \def\xs_xinteval{\xintfloateval}%
-}%
-\expandafter\def\csname xs_magic@&fp3\endcsname
-{%
- \xintDigits*:=32;%
- \xs_message{fp32 mode (trig reloaded)}%
- \def\xs_mode{fp32}%
+ \xintDigits*:=\xs_magic_inb\relax
+ \xs_message{fp mode (log and trig reloaded at Digits=\xinttheDigits)}%
+ \def\xs_mode{fp=\xinttheDigits}%
\def\xs_xintdefvar{\xintdeffloatvar}%
\def\xs_xintdeffunc{\xintdeffloatfunc}%
\def\xs_xinteval{\xintfloateval}%
@@ -266,44 +248,43 @@
- definitions must be done using the `:=' syntax, not `='.
Any line starting with a control sequence is executed in the
- background, interrupted numerical input resumes at next prompt.
-
- To pause, say either `;' or `&pause'.
- To quit, say `&bye'.
- For help say `&help'.
+ background, the interrupted numerical input resumes at prompt.
+ Magic words: `&pause' (or `;'), `&help', `&bye'.
+ Mode toggles: `&exact', `&fp', `&int', `&pol'. Say for example
+ `&fp=24' at the prompt to work with Digits=24 (Digits range: 1 to 62)
Starting in}\xs_magic@&exa\let
=\xs_fetch}\gdef\xintresume{\edef {\string }\xs_storecats\xs_setcats%
\message{Welcome back to xintexpr interactive mode!}\let
-=\xs_fetch}\gdef\xs_help\xs_fetch_a{\def
-{""J}\edef {\string }\message{%
+=\xs_fetch}\catcode`?0\catcode`\\12?gdef?xs_help?xs_fetch_a{?def
+{""J}?edef {?string }?message{%
- Terminate inputs using the `;' character.
- Input can extend over multiple lines (<RET> terminated).
- An empty input (`;' terminated) or the magic word `&pause' puts
- the session on hold and switches to normal TeX interaction.
- Use \string\xintresume to resume the session.
+ the session on hold and switches to normal TeX interaction. Use
+ \xintresume to resume the session.
- The numerical engine can work in various modes:
- * exact mode means using \string\xintexpr context,
- * fp mode uses \string\xintfloatexpr,
- * int mode uses integer-only \string\xintiiexpr,
- * pol mode makes function definitions using \string\poldef.
+ * exact mode means using \xintexpr context,
+ * fp mode uses \xintfloatexpr,
+ * int mode uses integer-only \xintiiexpr,
+ * pol mode makes function definitions using \poldef.
To activate a mode enter `&<mode name>' at the prompt
- Lines starting with any control sequence are handed over to
TeX, and numerical input resumes on next line.
- - To change the floating point precision enter at the prompt:
- \string\xintDigits*:= <some number>;
- then at next prompt switch to fp mode using `&fp'.
- This can be done in the midst of a computation!
+ - Say `&fp=<number>' for example `&fp=32' at the prompt to change
+ the Digits setting. This can be done in the midst of the
+ input of a multi-line computation!
(1/5) HIT <RET> KEY
-}\let
-=\xs_help_b}\gdef\xs_help_b{\def
-{""J}\message{%
- - Specific toggles `&fp16', `&fp24', `&fp32' are already predefined.
+}?let
+=?xs_help_b}?gdef?xs_help_b{?def
+{""J}?message{%
+ - Say `&exact' resp. `&fp' to go back and forth between exact
+ and floating point mode
- Issue `&mode' if you forgot in what mode you are currently in.
@@ -323,23 +304,24 @@
- Parentheses present before the `:=' trigger a function
definition, else a variable definition is done.
-(2/5) HIT <RET> KEY
-}\let
-=\xs_help_c}\gdef\xs_help_c{\def
-{""J}\message{%
- - Functions defined in one mode are not available for usage in other
- modes without further steps; check xintexpr doc.
+ - Functions defined in one mode are not available for usage in
+ other modes without further steps; check xintexpr doc.
- - Polynomial definitions (pol mode) are function definitions
- (see polexpr documentation). To use a polynomial also as a
- numerical function when back in `fp' mode, issue
- \string\PolGenFloatVariant{<polname>} at the prompt.
+(2/5) HIT <RET> KEY
+}?let
+=?xs_help_c}?gdef?xs_help_c{?def
+{""J}?message{%
+ - Polynomial definitions (pol mode) are function definitions (see
+ polexpr documentation). To use a polynomial also as a numerical
+ function when back in fp mode, issue
+ \PolGenFloatVariant{<polname>} at the prompt.
- Variables defined in any mode can be used in any mode except:
* polynomials can be used as variables only in the pol and the
exact modes,
- * integer only mode requires... integer only variables!
- One can use num() wrapper see xintexpr documentation.
+ * integer-only mode requires... integer-only variables, also
+ internally. Use in int mode num() or \xintiexpr...\relax as
+ wrapper around exact or fp variables, even integer-valued ones.
- Whenever a variable is defined, or a computation is performed,
the result is assigned a label @_<integer>. These automatic
@@ -349,65 +331,65 @@
the automatic variable @_<integer> holds the whole thing, which
may be a nutple or an ople, in addition to individual variables.
-(3/5) HIT <RET> KEY
-}\let
-=\xs_help_d}\gdef\xs_help_d{\def
-{""J}\message{%
- The special variables @_, @__, and @___ hold the last, next
to last and next to next to last evaluation results.
+(3/5) HIT <RET> KEY
+}?let
+=?xs_help_d}?gdef?xs_help_d{?def
+{""J}?message{%
Known issues:
- - The [P] optional argument of \string\xintfloateval can not
- be used because it is not recognized by \string\xintdeffloatvar,
- one can use the float() function with its second argument.
+ - The [P] optional argument of \xintfloateval can not be used
+ because it is not recognized by \xintdeffloatvar, one can use
+ the float() function with its second argument.
- - Sometimes one wishes to use \string\xintexpr...\string\relax wrapper
- inside fp mode; this is possible but can not be first in current
- input line as it would trigger control sequence execution. Start
- with 0+ or use parentheses.
+ - An \xintexpr...\relax wrapper inside fp mode or an
+ \xintiexpr...\relax one inside int mode can not start a line,
+ as it would trigger control sequence execution.
+ Start with 0+ or use parentheses.
- - The output format of the exact and fp mode is not yet decided
- at upstream xintexpr; in particular trailing zeros are not
- trimmed and floating point numbers are printed in diverging
- ways in exact vs fp modes. Besides, the exact mode does
- not do a systematic reduction to lowest terms. Use the
- reduce() function (or preduce()).
+ - The definitive default output format of the exact and fp modes
+ are not yet decided at upstream xintexpr:
+ - trailing zeros are not trimmed,
+ - exact and fp modes print out floating point numbers in
+ diverging ways,
+ - exact mode does not reduce to lowest terms, use reduce().
- - By default, the ** and ^ operators operate only with integer
+ - By default, the ** and ^ operators operate _only_ with integer
exponents in exact mode and with half-integers in fp mode.
Fractional powers are available via the pow(x,a) function.
+
(4/5) HIT <RET> KEY
-}\let
-=\xs_help_e}\gdef\xs_help_e{\def
-{""J}\message{%
+}?let
+=?xs_help_e}?gdef?xs_help_e{?def
+{""J}?message{%
Known issues (cont.):
- - Refer to xintexpr \string\poormanloghack documentation on
- how to let fractional powers be available with ** or ^,
- and check polexpr documentation for related information.
+ - Refer to xintexpr \poormanloghack documentation on how to let
+ fractional powers be available with ** or ^, and check polexpr
+ documentation for related information.
- A session transcript file is created which can be executed by
- eTeX to redo all calculations; however @_, @__, and @__
- will not be defined in this context so need to be manually
- replaced by the suitable @_<integer>.
+ eTeX to redo all calculations; however @_, @__, and @___ will
+ not be defined in this context so need to be manually replaced
+ by the suitable @_<integer>.
Future:
- a plot() function will be added at some point to export
- coordinates into a tex file for usage either with PSTricks or
+ coordinates into a .tex file for usage either with PSTricks or
TikZ/pgf.
- Caveat:
+ Miscellany:
- Misformed xintexpr input can drop you into TeX error mode.
- In that case, try escaping using `S'. It does work sometimes.
+ Misformed xintexpr input can drop you into TeX error mode. In that
+ case, try escaping using `S'. It does work sometimes.
- Use `&bye' to terminate the session and the TeX run.
-
-(5/5) You are back to the xintexpr interactive session! (mode: \xs_mode)
-}\let
-=\xs_fetch\xs_fetch_a}\endgroup
+(5/5) You are back to the xintexpr interactive session! (mode: ?xs_mode)
+ Use `&bye' to terminate the session and the TeX run.
+}?let
+=?xs_fetch?xs_fetch_a}?endgroup
\let\xs_magic@&hel\xs_help
\xsrestorecatcodes
\csname xs_storecats\endcsname
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 2ac76c6aa6..e148e572b9 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -31,6 +31,7 @@ $mirrors = {
},
'India' => {
'http://ctan.imsc.res.in/' => 1,
+ 'https://mirror.jit.ac.in/tex-archive/' => 1,
},
'Indonesia' => {
'https://mirror.unpad.ac.id/ctan/' => 1,
@@ -47,12 +48,15 @@ $mirrors = {
},
'Korea' => {
'http://ftp.ktug.org/tex-archive/' => 1,
+ 'https://cran.asia/tex/' => 1,
'https://ftp.harukasan.org/CTAN/' => 1,
- 'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
'https://mirror.kakao.com/CTAN/' => 1,
'https://mirror.navercorp.com/CTAN/' => 1,
'https://mirror.yongbok.net/ctan/' => 1,
},
+ 'Philippines' => {
+ 'https://mirror.pregi.net/tex-archive/' => 1,
+ },
'Singapore' => {
'https://download.nus.edu.sg/mirror/ctan/' => 1,
},
@@ -114,9 +118,6 @@ $mirrors = {
'Hungary' => {
'https://mirror.szerverem.hu/ctan/' => 1,
},
- 'Italy' => {
- 'https://ctan.mirror.garr.it/mirrors/ctan/' => 1,
- },
'Netherlands' => {
'https://ftp.snt.utwente.nl/pub/software/tex/' => 1,
'https://mirror.koddos.net/CTAN/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 0c0cda5450..563f9c76f3 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/59081
+depend revision/59092
name 00texlive.image
category TLCore
@@ -4383,7 +4383,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 59073
+revision 59083
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
@@ -97285,10 +97285,10 @@ binfiles arch=universal-darwin size=527
name dvipdfmx.win32
category TLCore
-revision 58890
+revision 59085
shortdesc win32 files of dvipdfmx
-containersize 331768
-containerchecksum 585d3c15445e5566b6ed142e6266c7ceae825f178fdee4ffa40a3460d9a21070abb00e6ad3807cec137850e0b1f3c7bcd781a859c051fdf2ff03f27af7fb9b31
+containersize 332376
+containerchecksum 5c4c780cd2ad7593eeffd4c2b94466225220e75a76753e93963c4f2ec1ca27be82d4852a58ebe4cbe58f3dab1f11ee2ce398be57f212503c2d9cd15a69fdd462
binfiles arch=win32 size=239
bin/win32/dvipdfm.exe
bin/win32/dvipdfmx.dll
@@ -161419,7 +161419,7 @@ catalogue-topics latex3 expl3 macro-supp pre-release
name l3build
category Package
-revision 55426
+revision 59091
shortdesc A testing and building system for (La)TeX
longdesc The build system supports testing and building LaTeX3 code, on
longdesc Linux, Mac OS X and Windows systems. The package offers: A unit
@@ -161431,10 +161431,10 @@ longdesc material released by the LaTeX3 team, and may be updated on a
longdesc different schedule.
depend l3build.ARCH
depend luatex
-containersize 32392
-containerchecksum 1311812fbdba6a8c8d2ff565916ce3da9081229f9129fe8323239eda53ba544686d9bba184112bfda4304c5bdd51c944bdb51e3d6b70c2b2a90ad4ffdf0a6254
-doccontainersize 723940
-doccontainerchecksum 33bf3c01ec1bc38122686b55bea0c6c096bc2332ca1e04b23e582b9c1754a4c76537e180fb636952cafe63639a883592b06ca4245d3e3f38b944e03dc38fedfe
+containersize 33328
+containerchecksum bb1a5a2b7a0a1944b6f34256c776cc4a09157ae1abc07a2dbf2ef8f71e3df7fe33b3c22ddc05ee3362904f683e87f2c2125d5b88f64ac21686a1fcdb25e973bf
+doccontainersize 725568
+doccontainerchecksum dc7e6fcd044c6b4ccb0fb5653a796bef60570696cc55ae72fe4fdfcca6f38bd5736563a47ef6c73000e3cdf5cde5a00e13a26935daea356885e1d42bcb846eab
docfiles size=184
texmf-dist/doc/latex/l3build/CHANGELOG.md
texmf-dist/doc/latex/l3build/CONTRIBUTING.md
@@ -161442,12 +161442,12 @@ docfiles size=184
texmf-dist/doc/latex/l3build/l3build.pdf details="Package documentation"
texmf-dist/doc/man/man1/l3build.1
texmf-dist/doc/man/man1/l3build.man1.pdf
-srccontainersize 29424
-srccontainerchecksum ba5051894ce861a2f833d592156976aa5ab3a1ce9d6c87e8b8eda33f32820c4d1bb0884f193536d8ce9362eddcaf11b113b9cf9ef2ce8b551f739951afe7c4f8
+srccontainersize 29816
+srccontainerchecksum 19cc091239126937a281d3a6cd6a3132a82eb070f326b7781d44e53c4f8400adf926d0e8824855312f96873722627ceaecfe3da8726d6c9d392a1bdb02023e16
srcfiles size=28
texmf-dist/source/latex/l3build/l3build.dtx
texmf-dist/source/latex/l3build/l3build.ins
-runfiles size=42
+runfiles size=44
texmf-dist/scripts/l3build/l3build-arguments.lua
texmf-dist/scripts/l3build/l3build-aux.lua
texmf-dist/scripts/l3build/l3build-check.lua
@@ -191878,16 +191878,16 @@ catalogue-version 0.4
name mcf2graph
category Package
-revision 58904
+revision 59086
shortdesc Draw chemical structure diagrams with Metafont/MetaPost
relocated 1
longdesc The Molecular Coding Format (MCF) is a linear notation for
longdesc describing chemical structure diagrams. This package converts
longdesc MCF to graphic files using Metafont / MetaPost.
-containersize 23192
-containerchecksum 71cb1991dbd119d6a87e05c64918cf6e902208c1e70f209940e6d8032b2364182e060597d5c68046237d9701436ff3e8aae91816b161a21048ab2b27581d4356
-doccontainersize 917548
-doccontainerchecksum 09ee57a13e7c9b19ed908b5473e6672c51f77d20e3dc0cf5765bffa36b4eb8ac93d1329b7ec02633a8532590033096b7678de27a871b895325e51b2f839308dd
+containersize 23336
+containerchecksum 117e5b4e716ff374220c58c940577790c9275be0261bb9423e34a88ae1089f8d6e78aea16e9ee35f9a3d29d21662a4319fd45bd54b0382877b795b2222e7f8b5
+doccontainersize 909748
+doccontainerchecksum d468ca257179f947831ee70e9575de2f7d750cc358ce103b22b2e2eed1725de1d6c1991f5e51be904c690f0b241761d6e7829c3ec171edb767d5525500231264
docfiles size=265
RELOC/doc/metapost/mcf2graph/CHANGELOG
RELOC/doc/metapost/mcf2graph/README details="Readme"
@@ -191906,7 +191906,7 @@ runfiles size=27
catalogue-ctan /graphics/mcf2graph
catalogue-license mit
catalogue-topics graphics graphics-mpost chemistry
-catalogue-version 4.63
+catalogue-version 4.64
name mcite
category Package
@@ -247381,7 +247381,7 @@ catalogue-topics font font-sans font-mono font-otf font-type1 font-proportional
name polexpr
category Package
-revision 58854
+revision 59088
shortdesc A parser for polynomial expressions
relocated 1
longdesc The package provides a parser \poldef of algebraic polynomial
@@ -247398,10 +247398,10 @@ longdesc as functions). Functionality which previously was implemented
longdesc via macros such as the computation of a greatest common divisor
longdesc is now available directly in \xintexpr, \xinteval or \poldef
longdesc via infix or functional syntax.
-containersize 31560
-containerchecksum 227077057d60276408780db7cf8db66bf156ec1bb6ecec70b7145890f37f232781287d013201bcca8508d9e2c5990537b45c40ca71d41f73886935e5455712fe
-doccontainersize 46768
-doccontainerchecksum d8868d4bca81729925c282950fcd6dab0cb995d4146dab6069d8b804aed1e889f1264f174e2df7c9a084b838d36780873e27950f27d066439f8422f922540a06
+containersize 31628
+containerchecksum 68c786c6a1c8af8203db22a6d0785e9c17ea233bbf39b68831e2705feccf376eb629315ecf439cf71b0d8894b9391036a84caa29ec7ef0faea82a8fb39da7399
+doccontainersize 46536
+doccontainerchecksum a44f62c65fc8854709975ddb27246b925760210920226b4e8de2bc14096e80ef03e072a4e9bf82acba6aa668e655a55bda92f584c7e8dc8496e45b2e809437a9
docfiles size=69
RELOC/doc/generic/polexpr/README.md details="Readme"
RELOC/doc/generic/polexpr/polexpr.html details="Package documentation (HTML)"
@@ -247414,7 +247414,7 @@ catalogue-also polynom
catalogue-ctan /macros/generic/polexpr
catalogue-license lppl1.3c
catalogue-topics maths arithmetic calculation etex macro-gen
-catalogue-version 0.8.1
+catalogue-version 0.8.2
name polski
category Package
@@ -298859,15 +298859,15 @@ docfiles size=619
name texlive-docindex
category TLCore
-revision 59073
+revision 59083
shortdesc top-level TeX Live doc.html, etc.
longdesc These files are regenerated as needed, which is often, so we
longdesc make them a separate package. See the tl-update-auto script for
longdesc the process.
containersize 388
-containerchecksum d3fb3381dd3f10e2278e62136860c3fcfd50c23c2e1c4131a0586d4e502b43675c7929d9cc12ade72f4d64e5e27c63cd5f602b4d5c5628f49f09cac8dec1febe
-doccontainersize 174892
-doccontainerchecksum 9ec0ee9ba399130e13be2b5309cc99a0cd3b870bf1ff469ca9604b43a32e968536bb9638ed9af5d416c5570cec3e85dd5017157b95db6d10a5bff1456152aa87
+containerchecksum 3cf73604111a0db40c1f11bfa867001fdbd4bace6a0f2c3baadda3b513f0136c16d1daea289580051c61f1f2f77d2768131012946a2483b6f9e9663ad851ccaf
+doccontainersize 174864
+doccontainerchecksum a4d2edd00d2ffdb0b7d6800e3fc20bbc60d2fe417a5246525c67825eba40830c1c1fe081687debc10179420319071d02a95b68ade2649e3afc6f51c871773eab
docfiles size=348
doc.html
@@ -299095,7 +299095,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 59073
+revision 59083
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.
@@ -299103,10 +299103,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 107212
-containerchecksum d12ad3015e346646476c048b9552d00c62bb0bad827bdfd180160bcd3cc896c140d18b55b4922e2715b8997f5fd20e87f1e0627f4ef582b3c189ef1820de563f
-doccontainersize 218536
-doccontainerchecksum 8d8f9dbd3938cbed5e1b2f15236021df783dd158fe11f1d31e6586afac1788bea3a9983be1af99abba0c9de43faa19f5c2718f9abcf0b8cea4ba60d39e195907
+containersize 107216
+containerchecksum 9b172ad7074c07c5295fbbc24afb21d45231b95a56c40cb0fa320c42f9b93120f0820396d24ffc4c67554c6b695b45731a6ecc1c5975f545e5a16c41ed5e53e4
+doccontainersize 218532
+doccontainerchecksum ea88cf467d8c67c754f83a547bdc9e50af029992d51f9a8c2ca23790dbe88244e0da79c5911086a799d11501638bccc9d86dffd754de10626340ec7ec0e39d3b
docfiles size=137
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
@@ -309368,16 +309368,17 @@ catalogue-topics graphics-prep
name tlmgr-intro-zh-cn
category Package
-revision 58965
+revision 59087
shortdesc A short tutorial on using tlmgr in Chinese
relocated 1
-longdesc This is a Chinese translation of tlmgr documentation. It
+longdesc This is a Chinese translation of the tlmgr documentation. It
longdesc introduces some of the common usage of the TeX Live Manager.
-containersize 456
-containerchecksum 8a05da7e2d13b197310992114c59d14e7f26a5ae10825a3781e46e366225a11edc4a24b6095f83fe97c0c0fa070316949b175f293ed1ac2bd8727588acc6c036
-doccontainersize 434928
-doccontainerchecksum aeb05ce1ee6c9a1aca7b72c190273b6cdcd2d7eea94c3fac2e98c329f2c8d0da983539e6ba55db29dda6ef6aa24e902dd2884cd16bc6806e3a351b6f60464b86
-docfiles size=128
+longdesc The original can be found in the tlmgrbasics package.
+containersize 492
+containerchecksum 6c73e523aca2cd703812b2f0ebe009ca8be1b3e687517e1dd3af9ab03bfe042dfe4aaf0570c131e8d976e77b73fade2676b07062cd310700b7e2a2a17048c509
+doccontainersize 444372
+doccontainerchecksum c17b1125ebf88c0b17782da85a788a8679ceb19b00c82df6398c44847339ff037481c062ced8eb11f28c14908e4606c85e414dde85d388fd62a9ec69a65438bd
+docfiles size=131
RELOC/doc/support/tlmgr-intro-zh-cn/LICENSE
RELOC/doc/support/tlmgr-intro-zh-cn/README.md details="Readme" language="zh"
RELOC/doc/support/tlmgr-intro-zh-cn/body/actions.tex
@@ -309385,11 +309386,12 @@ docfiles size=128
RELOC/doc/support/tlmgr-intro-zh-cn/body/mirrors.tex
RELOC/doc/support/tlmgr-intro-zh-cn/body/options.tex
RELOC/doc/support/tlmgr-intro-zh-cn/body/preface.tex
+ RELOC/doc/support/tlmgr-intro-zh-cn/body/schemes_and_collections.tex
RELOC/doc/support/tlmgr-intro-zh-cn/body/syntex.tex
RELOC/doc/support/tlmgr-intro-zh-cn/fig/collection.png
RELOC/doc/support/tlmgr-intro-zh-cn/fig/scheme.png
RELOC/doc/support/tlmgr-intro-zh-cn/latexmkrc
- RELOC/doc/support/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf details="Package documentation" language="zh"
+ RELOC/doc/support/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf details="The document itself" language="zh"
RELOC/doc/support/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.sty
RELOC/doc/support/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex
catalogue-contact-bugs https://github.com/syvshc/tlmgr-intro-zh-cn/issues
@@ -336804,7 +336806,7 @@ binfiles arch=x86_64-linux size=1272
name xint
category Package
-revision 58738
+revision 59089
shortdesc Expandable operations on long numbers
relocated 1
longdesc The xint bundle main modules are: xinttools utilities of
@@ -336829,21 +336831,21 @@ longdesc display of continued fractions). All computations are
longdesc compatible with expansion-only context. The packages may be
longdesc used with Plain TeX, LaTeX, or (a priori) any other macro
longdesc format built upon TeX.
-containersize 70940
-containerchecksum 44305994a39b6d0a0c517445bf554f1decaa8c1bde5eee2613010308308fd606790409266e9af0803828df00693ac5e1d015a8cef90d112553762eae97f8ed53
-doccontainersize 2002992
-doccontainerchecksum dc65101c1196c68a703d1e6f8f1b69c554bc3841fbde860cacf11c3547f6fe45928d371deed05ce1999f7afa1bd65368df626199a0f2dd5392c4d67e924a51b9
-docfiles size=530
+containersize 79376
+containerchecksum a73037ee75ad004eefc64eca1c85137e98e583ab674cd797c7e7029bf4bb4216100e12c980a184e0cd00267f99b68cb444c8326a782889abbfe35a6db716670d
+doccontainersize 2108880
+doccontainerchecksum b5c591298bf8dc5981df4319ae9a1f0350aa3941687af895447c263d067efb0ff97191eaae1aa95067e25bdcdb5263fae4ae1d87283b8bf07be01bfd848ed417
+docfiles size=559
RELOC/doc/generic/xint/CHANGES.html details="Changes (HTML)"
RELOC/doc/generic/xint/README.md details="Readme"
RELOC/doc/generic/xint/sourcexint.pdf details="Documented source code"
RELOC/doc/generic/xint/xint.pdf details="Package documentation"
-srccontainersize 346220
-srccontainerchecksum 75fa7fe493f9bd393cab448c7bbac43d56f67daf547281cc410d88db54e8b6ccffd86171a2ef5ed54721e73538c61b6493e41fca4a503775ff8ed0cb7bac968e
-srcfiles size=405
+srccontainersize 370820
+srccontainerchecksum 2e12696cbcc9476a49043b7a8fab02613ba8e9b2604d1ca08dd48dfe6fe66fc70e21eacf011562813666868a6eb7b58793268d02675ccab24946b0d744589632
+srcfiles size=435
RELOC/source/generic/xint/Makefile
RELOC/source/generic/xint/xint.dtx
-runfiles size=145
+runfiles size=162
RELOC/tex/generic/xint/xint.sty
RELOC/tex/generic/xint/xintbinhex.sty
RELOC/tex/generic/xint/xintcfrac.sty
@@ -336856,14 +336858,15 @@ runfiles size=145
RELOC/tex/generic/xint/xintseries.sty
RELOC/tex/generic/xint/xinttools.sty
RELOC/tex/generic/xint/xinttrig.sty
+catalogue-alias xintexpr
catalogue-ctan /macros/generic/xint
catalogue-license lppl1.3c
catalogue-topics arithmetic calculation
-catalogue-version 1.4d
+catalogue-version 1.4e
name xintsession
category Package
-revision 58875
+revision 59090
shortdesc Interactive computing sessions (fractions, floating points, polynomials)
relocated 1
longdesc This package provides support for interactive computing
@@ -336877,10 +336880,10 @@ longdesc variables and functions can be defined during the session, and
longdesc each evaluation result is stored in automatically labeled
longdesc variables. A file is automatically created storing inputs and
longdesc outputs.
-containersize 5240
-containerchecksum f83a4144ac5b238a8d4fc6063f15b56c12ea3eb6d34e15299acaf120d6f94f3faa1f31d3d98a11b4b837526ddce83cf027b7baa56b9f4cefa55ca67f6c5f96bb
-doccontainersize 1596
-doccontainerchecksum c43303c0463ce509df60af75c32df972e6acab65fc0a8d504cce8d03b61458ae9e279293bf7a626d8662b98c06c57e9beb5339a50c276132ba67b2cee8adb89c
+containersize 5244
+containerchecksum 3d616e01c51e5bb6a12bac4801aa01d30af5d9fdd916c77ebf72468e3bdca82c750723cd7d22e0259e923cd0423df5a63cc41458f875ea5d95716a75b02167bc
+doccontainersize 1732
+doccontainerchecksum 634b24ff263513a03ceb4b7d50bc550d3a2ed3a719520cc42d87d4965539b902e75fe2a87e23f399d20f458f0f6820838dc59411509cfe17933e1097a9af0454
docfiles size=1
RELOC/doc/plain/xintsession/README.md details="Readme"
runfiles size=4
@@ -336888,7 +336891,7 @@ runfiles size=4
catalogue-ctan /macros/plain/contrib/xintsession
catalogue-license lppl1.3c
catalogue-topics maths calculation
-catalogue-version 0.1
+catalogue-version 0.2
name xits
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index d47fdf2cba..74b3055528 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-17e921d68372f5a92212060bfe378cb1 texlive.tlpdb
+d24994076f9cfec49e87546f891eaf27 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index d9f4295646..1de9ad17ce 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-e7c95a6375767e9183e9c4d8a7e671a14af6730c65abe2d10817d5be0701f8882fb6a588250896f80009d23cef04e83833fc2fda8ea207b33cad355e55532d05 texlive.tlpdb
+6d92391f00d0f45aae52b62c0c0413fffc2325cad476ecb4a68bee658c51c8de55dddff92aaf83bc68615ef09608d66f48f59398cdeb2f8e32f7b78323d71297 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 53c30a2b84..39b0eecfed 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-----
-iQEcBAEBCgAGBQJgkd6fAAoJEEzhh34ZQ4xwNLsH/ia3fiNrryZWG00uX65HsNtJ
-ZowbYHu9AU9jFh/j7iwbRy/ixZ0q2zVbiK7upJMIlXW823DZeN+u5oXWxVs4+36w
-mWjpLwrEe5AZmQLSC7fpZk4uRbXHpKiobjgpLbRp297Bnkf74t/UEjoGA4nhSSzY
-rzaLqzCkqwaADfhdAueYN5rfqSEqqhUF4bpvLr3/scS0pkFcopeqjyJ4xpcs1JKL
-N1FBCDgyNDrLA82pbAXFY5+49NCtZ8W2Jqqc5/6cQB5YWc0ERzecAqN/nQ1aAmn1
-Tu3N51yuVpReItZLziNzUgQv/MbRPsMI19cuPHgQ3iKRMDZ5502hbReZlxbsI90=
-=YB6i
+iQEcBAEBCgAGBQJgky/YAAoJEEzhh34ZQ4xw6rwH/j9vw/EHESib1oc6V61Euqvx
+wFShXGGqbqbPVPdLnKrkZp1uVM/akYfvxXW4N8xqB6NFSaMMxpR/rAOcx5QTG/a9
+LiE4Pbme6EVIRLI45gE/cPj4f9JMStV1dWKn5U5LFRatumwDfRR8zZIMP63hCHUn
+HnA1JKUemX2lFTEryT5GU7wN+IaogYUVnOxWi669NXuM/LaDKmglSYGOAZA+crxU
+cbC63VsYf1yAVe6WyONSyg0CtKxrsrwCIsQNmBZXDWPq/DCV0mmLWooVaJpolAxq
+aXkwCDVPP7VvzEPUCNox953lX7Pgh2F2e39FYuSOyFpT64NgTKpKVh95+EZ9Z/4=
+=oBwe
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 87efeb5af7..70d880972d 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 62b961e032..4c2c35a9ca 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1620159259
+date=1620245657
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=458233bb3176e9b4a882a92b4f87b520
+lstdigest=492e26c9f2b51936aa66693b8aba8418
numpkg=4092
relstate=next
-version=7794
+version=7795
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: el7jj6s9Fdqu4isG3vwRWSUmjPVUj09uSYJz+g5/7roXcC1ky4ky1zCDnRFQnl69gscPgt2Hkab7oyhP+EaMc9vniVZ1J951/EdHqcetKHHbrRp3X5dAJPsiE1aTDFK8C9hu+Tg9hK+mZcx/XY5rbNfbdi29HXVTXfKeK7o3fj1F/Hg+hojtkT5rQkP5nZkTpGFNkfzfd2U8dA9ADG+KjQiGn4z/qE6ekDTPRwzQ+NIZnrhRU+BpsbnPgMN/Xj5SWxjqSc81O2PTHOQUzo5jkm5jIdK/PsFbrRLJ2lD6qw1lRIu/K8XB0XTvNWJL2qb+gqHdFGiTRcy8prCBZSN7VQ==
+;;;; signature/miktex: stN21RAYwpBERwuEp9s/D6A/8R1O+x+fQ/XtrdD4TR7I2WArf9klfGmyJnsFBbU3ROkUbI5AclLuIiByN8LeStdtD73T8+c7l8bOpfRqFDdJtGn3x+7VFL9dvYq8Dmq7CI9JklNOuqfCFZTa1RYLM5HOR9KPqB3wwiiduQ54oljhcS62ohp/KmUIy48MJ8iwhhM/+jQQHt4JaBGteKZuRH76f99+BV61ofWvn3W9h0weK/ROdy2dx8ONlNT2rx+FKpkbpcrA7JZbSq7BGRPDNnhlOHegRA344DyF9KHLlbomFZ4usILVtE2TdydeBBof1lx0rWtDbVA1n9gDNDTzzQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index d0ebc4c95e..62c1149227 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1620159074
+date=1620245465
lastupd=acrotex babel easybook grundgesetze lua-ul nicematrix optex pdfxup profcollege structmech todonotes worldflags acmart beamerswitch biblatex-ext biblatex-philosophy byo-twemojis circuitikz erewhon erewhon-math
-lstdigest=3fb14a8099b41ba1c924b45987366eb4
+lstdigest=58a8cea071d46686708f3f69b44525d2
numpkg=4092
relstate=stable
-version=7794
+version=7795
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: LDRfvx2KetA8RBihmkLWBOHRBVg9ysZ43StYmK+JSrXrdVxzBlhz8QbHn9wTE/Ahbnv+ye30uzSZAix//U1HEPW+eeo+0AMRkCFqOeTFerDp1HL98rwelSnn/WpZp/UZBGWhcer5wog1f+VuiioYXA6Dad9Jg/suxkRLC3+CVvoNYHDTQHEqnW9Xs8XztnmTmhemiOjZ7aPtcDYYO+42TmtE4IWlizmRXeKOpCVVWYaXBi+4OK7QW43/VdpOl74PgjcMCQnmYO6lwiVeJNqE058+NYpwdrulD3REpeAZPXkc54JDwtq11zTWl+a1bW1jETBGg8dbes/YuF1Avpk5cw==
+;;;; signature/miktex: VPBb3h7sUegCLTmFs/XwT7Dvxt+1sDaA0S9QCR+6MIy7ZzHc5dIlAjfv+eS36kez2kvEWLBLdfeq2p8nolkaNpA06X0vW5zFVyw+CqLfN4xo7dE0wZSVnTey1p3pxd2ixkunNjoz8EdZu772NEg4I/eJmpSnHaAm1rNaiqO9/HXfgPgkzNI5LVlH12ex3oLHW6zAvLda0Ovgzlio1+IA9stg/06IWDe+/5ho0k0ZHl2lr9AEBgZzcIt8OsBRYNVtD9jYZqfnAMXBwHG/K1swqQl2dO7MjKGx3xZxmydFbnbZUqHERE9KwGmrTFRtZ5utSQumnGCM76IpIeQIDe3R5w==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index 88b0855bc6..3402e26ed4 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -1,5 +1,23 @@
W32TeX (x86 & x64) ChangeLog
+[2021/05/05]
+(01) dvipdfm-w32.tar.xz
+ Update dvipdfmx.dll.
+(02) latex-dev.tar.xz
+ Update latex-base-dev, latex-graphics-dev and latex-tools-dev.
+(03) ptex-ng-w32.tar.xz
+ Update libdpx.
+(04) web2c-w32.tar.xz
+ Update latexmk.
+(05) xetex-w32.tar.xz
+ Update dvipdfmx.dll.
+(06) win64/dvipdfm-w64.tar.xz
+ Update dvipdfmx.dll.
+(07) win64/ptex-ng-w64.tar.xz
+ Update libdpx.
+(08) win64/xetex-w64.tar.xz
+ Update dvipdfmx.dll.
+
[2021/05/04]
(01) cweb-w32.tar.xz
Update cweb.
diff --git a/timestamp b/timestamp
index a9917d1550..4b0c215908 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:
-2021-05-05-02-02
+2021-05-06-02-02
diff --git a/usergrps/usergrps/bg.html b/usergrps/usergrps/bg.html
index 04fcd314c9..0d02fa805b 100644
--- a/usergrps/usergrps/bg.html
+++ b/usergrps/usergrps/bg.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Bulgarian LaTeX Users Group</h2>
@@ -273,50 +263,51 @@ Bulgaria
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/br.html b/usergrps/usergrps/br.html
index 72302dc9dd..8bad511a91 100644
--- a/usergrps/usergrps/br.html
+++ b/usergrps/usergrps/br.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Grupo de Usuários latex-br</h2>
@@ -265,50 +255,51 @@
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/ca.html b/usergrps/usergrps/ca.html
index 6c141f0402..ef2c7d73e7 100644
--- a/usergrps/usergrps/ca.html
+++ b/usergrps/usergrps/ca.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Canadian TeX Users Association</h2>
@@ -267,50 +257,51 @@ Vancouver, B.C., V6B3X6
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/cn.html b/usergrps/usergrps/cn.html
index 159b7a472e..1212eebae7 100644
--- a/usergrps/usergrps/cn.html
+++ b/usergrps/usergrps/cn.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Chinese TeX Society</h2>
@@ -279,50 +269,51 @@ China
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/cz.html b/usergrps/usergrps/cz.html
index 467a6a591f..615910ab8e 100644
--- a/usergrps/usergrps/cz.html
+++ b/usergrps/usergrps/cz.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Československé sdružení uživatelů TeXu, z. s.</h2>
@@ -275,50 +265,51 @@ Czech Republic
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/de.html b/usergrps/usergrps/de.html
index 5c431d65bc..961ece84c7 100644
--- a/usergrps/usergrps/de.html
+++ b/usergrps/usergrps/de.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Deutschsprachige Anwendervereinigung TeX e.V.</h2>
@@ -278,50 +268,51 @@ Germany
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/dk.html b/usergrps/usergrps/dk.html
index fb6e44d8c2..e15ea58363 100644
--- a/usergrps/usergrps/dk.html
+++ b/usergrps/usergrps/dk.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Danish TeX Users Group</h2>
@@ -271,50 +261,51 @@ Denmark
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/ee.html b/usergrps/usergrps/ee.html
index 01638ad304..87fa74d3c4 100644
--- a/usergrps/usergrps/ee.html
+++ b/usergrps/usergrps/ee.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Estonian User Group</h2>
@@ -267,50 +257,51 @@ EE 2444 Estonia
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/es.html b/usergrps/usergrps/es.html
index 4f0dbf8a8c..99b728c646 100644
--- a/usergrps/usergrps/es.html
+++ b/usergrps/usergrps/es.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Grupo de Usuarios de TeX Hispanohablantes</h2>
@@ -267,50 +257,51 @@ Spain
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/esc.html b/usergrps/usergrps/esc.html
index 7d49a5ec1e..99a99a1b99 100644
--- a/usergrps/usergrps/esc.html
+++ b/usergrps/usergrps/esc.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Catalan TeX Users Group</h2>
@@ -268,50 +258,51 @@ Spain
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/fr.html b/usergrps/usergrps/fr.html
index f3efe81e3a..c5212064c1 100644
--- a/usergrps/usergrps/fr.html
+++ b/usergrps/usergrps/fr.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Groupe francophone des utilisateurs de TeX</h2>
@@ -273,50 +263,51 @@ FRANCE
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/gb.html b/usergrps/usergrps/gb.html
index 3502f97540..4a9c420bed 100644
--- a/usergrps/usergrps/gb.html
+++ b/usergrps/usergrps/gb.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>UK TeX Users Group</h2>
@@ -272,50 +262,51 @@ NN6 0NH
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/gr.html b/usergrps/usergrps/gr.html
index bed9564a34..46945f9250 100644
--- a/usergrps/usergrps/gr.html
+++ b/usergrps/usergrps/gr.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Σύλλογος Ελλήνων Φίλων του TeX / Greek TeX Friends</h2>
@@ -267,50 +257,51 @@ Greece
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/hu.html b/usergrps/usergrps/hu.html
index 78bd77b228..b571c7d927 100644
--- a/usergrps/usergrps/hu.html
+++ b/usergrps/usergrps/hu.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Magyar TeX Egyesület</h2>
@@ -281,50 +271,51 @@ Hungary
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/ie.html b/usergrps/usergrps/ie.html
index 9512eac013..1972b50d50 100644
--- a/usergrps/usergrps/ie.html
+++ b/usergrps/usergrps/ie.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Irish TeX and LaTeX In-print Community</h2>
@@ -267,50 +257,51 @@ Ireland
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/index.html b/usergrps/usergrps/index.html
index 23704e47e2..784ea60d9d 100644
--- a/usergrps/usergrps/index.html
+++ b/usergrps/usergrps/index.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<div class="lugcountries">
@@ -128,50 +118,51 @@ the cell.
</tr>
</table></div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/is.html b/usergrps/usergrps/is.html
index f19c10ccfa..a476fbb00e 100644
--- a/usergrps/usergrps/is.html
+++ b/usergrps/usergrps/is.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Vefur íslenskra TeX notenda</h2>
@@ -267,50 +257,51 @@ Iceland
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/it.html b/usergrps/usergrps/it.html
index b493fdc737..1a35e3b1c8 100644
--- a/usergrps/usergrps/it.html
+++ b/usergrps/usergrps/it.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Gruppo Utilizzatori Italiani di TeX</h2>
@@ -268,50 +258,51 @@ Via Claudio 21
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/kh.html b/usergrps/usergrps/kh.html
index 7ea8dabd72..7c133fbbbd 100644
--- a/usergrps/usergrps/kh.html
+++ b/usergrps/usergrps/kh.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Khmer TeX Users Group</h2>
@@ -267,50 +257,51 @@ Cambodia
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/kr.html b/usergrps/usergrps/kr.html
index b44db039d8..76d0348428 100644
--- a/usergrps/usergrps/kr.html
+++ b/usergrps/usergrps/kr.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Korean TeX Society</h2>
@@ -279,50 +269,51 @@ Republic of Korea
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/lt.html b/usergrps/usergrps/lt.html
index 81bf9fb674..3ec22d56db 100644
--- a/usergrps/usergrps/lt.html
+++ b/usergrps/usergrps/lt.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Lietuvos TeX'o Vartotojų Grupė</h2>
@@ -267,50 +257,51 @@ Lithuania
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/mx.html b/usergrps/usergrps/mx.html
index 5545d1878d..dd19515c11 100644
--- a/usergrps/usergrps/mx.html
+++ b/usergrps/usergrps/mx.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>TeX México</h2>
@@ -268,50 +258,51 @@ Mexico
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/nl.html b/usergrps/usergrps/nl.html
index ea4e50d206..50dce5b20c 100644
--- a/usergrps/usergrps/nl.html
+++ b/usergrps/usergrps/nl.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Nederlandstalige TeX Gebruikersgroep</h2>
@@ -272,50 +262,51 @@ The Netherlands
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/no.html b/usergrps/usergrps/no.html
index 8e7a58da64..5c68ee1622 100644
--- a/usergrps/usergrps/no.html
+++ b/usergrps/usergrps/no.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Nordic TeX Users Group</h2>
@@ -268,50 +258,51 @@ Norway
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/pl.html b/usergrps/usergrps/pl.html
index e8df229604..53d474f11f 100644
--- a/usergrps/usergrps/pl.html
+++ b/usergrps/usergrps/pl.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Polska Grupa Użytkowników Systemu TeX</h2>
@@ -275,50 +265,51 @@ Poland
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/pt.html b/usergrps/usergrps/pt.html
index 92a6d40927..98f5b35475 100644
--- a/usergrps/usergrps/pt.html
+++ b/usergrps/usergrps/pt.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Grupo de Utilizadores de TeX</h2>
@@ -269,50 +259,51 @@ Portugal
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/us.html b/usergrps/usergrps/us.html
index b684f75020..b6fd0d4278 100644
--- a/usergrps/usergrps/us.html
+++ b/usergrps/usergrps/us.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>TeX Users Group</h2>
@@ -267,50 +257,51 @@ USA
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/uy.html b/usergrps/usergrps/uy.html
index 160296c98c..c8be234ff9 100644
--- a/usergrps/usergrps/uy.html
+++ b/usergrps/usergrps/uy.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Grupo de Usuarios de LaTeX en Uruguay</h2>
@@ -265,50 +255,51 @@
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/vn.html b/usergrps/usergrps/vn.html
index c2189ab3a8..9d7f762dc1 100644
--- a/usergrps/usergrps/vn.html
+++ b/usergrps/usergrps/vn.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>Vietnamese TeX Users Group</h2>
@@ -273,50 +263,51 @@ Việt Nam
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on
diff --git a/usergrps/usergrps/za.html b/usergrps/usergrps/za.html
index 1bd460b2e1..d6c3cbaa75 100644
--- a/usergrps/usergrps/za.html
+++ b/usergrps/usergrps/za.html
@@ -8,28 +8,18 @@
<meta name="description" content="Nederlandstalige TeX Gebruikersgroep"/>
<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep"/>
<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Creator" content="Erik Frambach"/>
-<meta name="DC.Subject" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Description" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Publisher" content="Nederlandstalige TeX Gebruikersgroep"/>
-<meta name="DC.Date" content="2002-05-14"/>
-<meta name="DC.Type" content="Data"/>
-<meta name="DC.Format" content="text/html"/>
-<meta name="DC.Source" content="original"/>
-<meta name="DC.Language" content="nl"/>
-<meta name="DC.Rights" content="All rights reserved by NTG"/>
<title>TeX User Groups around the world</title>
</head>
<body>
<div id="everything">
<div id="header">
-<a href="../index.html" title="NTG homepage"><img src="../graphics/ntglogo.png" alt="NTG"/></a>
+<a href="../index.html" title="NTG homepage">
+<img src="../graphics/ntglogo.png" alt="NTG Home"/></a>
<p>Nederlandstalige TeX Gebruikersgroep</p>
</div>
<div id="notheader">
<div id="main">
-<script> function goBack() { window.history.back(); } </script>
<h1>TeX User Groups around the world</h1>
<h2>LaTeX User Group - South Africa</h2>
@@ -268,50 +258,51 @@ South Africa
</form>
</div>
<ul id="leftbar">
-<li><a href="../membersonly-en.html" title="NTG members only">members only</a></li>
-<li><a href="../news-en.html" title="News">news</a></li>
-<li>over TeX
-<ul>
- <li><a href="../watistex.html" title="All about TeX?">about TeX</a></li>
-<li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a></li>
- <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a></li>
- <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a></li>
- <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a></li>
- <li><a href="../software.html" title="TeX software">software</a></li>
-<li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a></li>
- <li><a href="../doc/index.html" title="Literature">literature</a></li>
-</ul></li>
-<li>over de NTG
-<ul> <li><a href="../doelstelling.html" title="Objectives">objectives</a></li>
- <li><a href="../activiteiten.html" title="Activities">activities</a></li>
- <li><a href="../bestuur.html" title="Board">board</a></li>
- <li><a href="../statuten.html" title="Statutes">statutes</a></li>
- <li><a href="../newmember-en.html" title="Membership">membership</a></li>
- <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a></li>
-</ul></li>
-<li>international
-<ul>
-<li><a href="../lug/index.html" title="local TeX user groups">local user groups</a></li>
-<li><a href="../conferenties.html" title="conferences">conferences</a></li>
-</ul></li>
-<li>publications
-<ul>
- <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a></li>
- <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a></li>
-</ul></li>
-<li>events
-<ul>
- <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a></li>
-<li><a href="https://www.google.com/calendar/embed?src=d3lib0BudGcubmw" title="NTG calendar">NTG calendar</a></li>
-<li><a href="http://texcalendar.dante.de/year.php?lug=All&amp;month=1&amp;lang=nl" title="international calendar">TeX calendar</a></li>
-</ul></li>
-<li>contact
-<ul>
- <li><a href="../lug/nl.html" title="addresses">addresses</a></li>
- <li><a href="../mail.html" title="mailing lists">mailing lists</a></li>
-</ul></li>
- <li><a href="../links.html" title="links">links</a></li>
- <li><a href="../index.html" title="in Dutch">in Dutch</a></li>
+ <li><a href="../membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="../news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="../watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="../watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="../watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="../watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="../watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="../software.html" title="TeX software">software</a>
+ <li><a href="../faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="../doc/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="../doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="../activiteiten.html" title="Activities">activities</a>
+ <li><a href="../bestuur.html" title="Board">board</a>
+ <li><a href="../statuten.html" title="Statutes">statutes</a>
+ <li><a href="../newmember-en.html" title="Membership">membership</a>
+ <li><a href="../privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="../lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="../conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="../maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="../publicaties.html#internationaal" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="../bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://calendar.google.com/calendar/u/0?cid=d3lib250Z0BnbWFpbC5jb20" title="NTG calendar">NTG calendar</a>
+ <li><a href="http://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="../lug/nl.html" title="addresses">addresses</a>
+ <li><a href="../mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="../links.html" title="links">links</a>
+ <li><a href="../index.html" title="in Dutch">in Dutch</a>
</ul>
</div>
<p id="copyright">&copy; NTG - last changed on