summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-02-28 03:02:40 +0000
committerNorbert Preining <norbert@preining.info>2022-02-28 03:02:40 +0000
commit7a8d1925127ad121a8f591db931524f9b8eacb93 (patch)
treedf5084184ea4d6732d6a9fae1d263b6915dbb36d
parenta911d39178540078c8ff5bc880418478d7433c40 (diff)
CTAN sync 202202280302
-rw-r--r--FILES.byname2348
-rw-r--r--FILES.byname.gzbin2432819 -> 2432769 bytes
-rw-r--r--FILES.last07days1152
-rw-r--r--dviware/dvisvgm/ChangeLog39
-rw-r--r--dviware/dvisvgm/NEWS7
-rwxr-xr-xdviware/dvisvgm/ar-lib17
-rwxr-xr-xdviware/dvisvgm/compile6
-rwxr-xr-xdviware/dvisvgm/config.guess120
-rwxr-xr-xdviware/dvisvgm/config.sub2427
-rwxr-xr-xdviware/dvisvgm/configure20
-rw-r--r--dviware/dvisvgm/configure.ac2
-rwxr-xr-xdviware/dvisvgm/depcomp2
-rw-r--r--dviware/dvisvgm/doc/dvisvgm.117
-rw-r--r--dviware/dvisvgm/doc/dvisvgm.txt.in9
-rwxr-xr-xdviware/dvisvgm/install-sh13
-rwxr-xr-xdviware/dvisvgm/missing2
-rw-r--r--dviware/dvisvgm/src/BoundingBox.cpp16
-rw-r--r--dviware/dvisvgm/src/BoundingBox.hpp1
-rw-r--r--dviware/dvisvgm/src/PsSpecialHandler.cpp23
-rw-r--r--dviware/dvisvgm/src/PsSpecialHandler.hpp1
-rw-r--r--dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp94
-rw-r--r--dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp43
-rw-r--r--dviware/dvisvgm/src/optimizer/Makefile.am6
-rw-r--r--dviware/dvisvgm/src/optimizer/Makefile.in32
-rw-r--r--dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp4
-rwxr-xr-xdviware/dvisvgm/test-driver2
-rw-r--r--graphics/mcf2graph/CHANGELOG6
-rw-r--r--graphics/mcf2graph/README4
-rw-r--r--graphics/mcf2graph/mcf2graph.mp560
-rw-r--r--graphics/mcf2graph/mcf_data_base.mcf2
-rw-r--r--graphics/mcf2graph/mcf_exa_soc.mp8
-rw-r--r--graphics/mcf2graph/mcf_example.pdfbin431593 -> 431779 bytes
-rw-r--r--graphics/mcf2graph/mcf_example.tex4
-rw-r--r--graphics/mcf2graph/mcf_man_soc.mp32
-rw-r--r--graphics/mcf2graph/mcf_manual.pdfbin292313 -> 289267 bytes
-rw-r--r--graphics/mcf2graph/mcf_manual.tex10
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.pdfbin197089 -> 195943 bytes
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.tex4
-rw-r--r--macros/latex/contrib/create-theorem/LICENSE416
-rw-r--r--macros/latex/contrib/create-theorem/README.md11
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.pdfbin0 -> 111285 bytes
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.tex385
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem.sty1458
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.pdfbin112174 -> 115616 bytes
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.tex21
-rw-r--r--macros/latex/contrib/crefthe/crefthe.sty80
-rw-r--r--macros/latex/contrib/fnpct/README7
-rw-r--r--macros/latex/contrib/fnpct/fnpct-2019-10-05.sty1191
-rw-r--r--macros/latex/contrib/fnpct/fnpct-manual.cls6
-rw-r--r--macros/latex/contrib/fnpct/fnpct-manual.pdfbin509779 -> 494932 bytes
-rw-r--r--macros/latex/contrib/fnpct/fnpct-manual.tex28
-rw-r--r--macros/latex/contrib/fnpct/fnpct.sty51
-rw-r--r--macros/latex/contrib/projlib/README.md24
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-author.sty312
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-datetime.sty1645
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-draft.sty140
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-font.sty137
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-language.sty508
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-logo.sty100
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-math.sty234
-rw-r--r--macros/latex/contrib/projlib/new-modules/projlib-paper.sty108
-rw-r--r--macros/luatex/generic/luaotfload/NEWS6
-rw-r--r--macros/luatex/generic/luaotfload/README.md4
-rw-r--r--macros/luatex/generic/luaotfload/filegraph.pdfbin40019 -> 40007 bytes
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-basics-gen.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-colors.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-conf.pdfbin77690 -> 77520 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-configuration.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-database.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-dvi.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-embolden.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-fallback.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-features.lua9
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-filelist.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-define.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-init.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-latex.pdfbin494376 -> 493487 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-letterspace.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-loaders.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-log.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-main.tex10
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-multiscript.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-notdef.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-parsers.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-resolvers.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-scripts.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-status.lua62
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-suppress.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-szss.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-t3.lua142
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.12
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.pdfbin76959 -> 76788 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.rst4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tounicode.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-unicode.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.conf.52
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.conf.rst4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.sty2
-rw-r--r--macros/luatex/generic/luaotfload/scripts-demo.pdfbin22075 -> 21673 bytes
-rw-r--r--macros/luatex/generic/luaotfload/shaper-demo-graphite.pdfbin8560 -> 8548 bytes
-rw-r--r--macros/luatex/generic/luaotfload/shaper-demo.pdfbin8481 -> 8469 bytes
-rw-r--r--macros/luatex/generic/lutabulartools/README.md5
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.lua177
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.pdfbin59544 -> 83452 bytes
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.sty102
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.tex198
-rw-r--r--macros/luatex/generic/penlight/penlight.lua2256
-rw-r--r--macros/luatex/generic/penlight/penlight.pdfbin29642 -> 38237 bytes
-rw-r--r--macros/luatex/generic/penlight/penlight.sty12
-rw-r--r--macros/luatex/generic/penlight/penlight.tex109
-rw-r--r--macros/luatex/generic/penlight/penlightextras.lua738
-rw-r--r--macros/unicodetex/latex/book-of-common-prayer/README.md (renamed from macros/xetex/latex/book-of-common-prayer/README.md)6
-rw-r--r--macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.pdfbin0 -> 128251 bytes
-rw-r--r--macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.sty (renamed from macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.sty)33
-rw-r--r--macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.tex (renamed from macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.tex)73
-rw-r--r--macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.pdfbin95265 -> 0 bytes
-rw-r--r--support/arara/README.md2
-rw-r--r--support/arara/doc/arara-manual.pdfbin1971116 -> 1971107 bytes
-rw-r--r--support/arara/doc/arara-quickstart.pdfbin250045 -> 250058 bytes
-rw-r--r--support/arara/doc/arara.12
-rw-r--r--support/arara/doc/version.tex2
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb695
-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.xzbin2353376 -> 2355256 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/cs.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/da.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/de.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/es.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/fr.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/it.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/ja.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/messages.pot108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/nl.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/pl.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/pt_BR.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sk.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sl.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sr.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/uk.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/vi.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/zh_CN.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/zh_TW.po108
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
157 files changed, 14577 insertions, 6081 deletions
diff --git a/FILES.byname b/FILES.byname
index 92013a647e..c2325a5849 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -3657,642 +3657,644 @@
1990/10/02 | 159 | dviware/dvisun/makefile
1990/10/02 | 280 | dviware/dvisun/README
2019/06/09 | 55720 | dviware/dvisun.zip
-2022/02/23 | 56953 | dviware/dvisvgm/aclocal.m4
-2019/03/09 | 5827 | dviware/dvisvgm/ar-lib
-2018/09/08 | 576 | dviware/dvisvgm/AUTHORS
-2022/02/23 | 446117 | dviware/dvisvgm/ChangeLog
-2019/03/09 | 7383 | dviware/dvisvgm/compile
-2019/03/09 | 44166 | dviware/dvisvgm/config.guess
-2022/02/23 | 4369 | dviware/dvisvgm/config.h.in
-2019/03/09 | 36408 | dviware/dvisvgm/config.sub
-2022/02/23 | 689518 | dviware/dvisvgm/configure
-2022/02/23 | 8413 | dviware/dvisvgm/configure.ac
-2016/09/03 | 35147 | dviware/dvisvgm/COPYING
-2019/03/09 | 23568 | dviware/dvisvgm/depcomp
-2022/01/18 | 718 | dviware/dvisvgm/doc/conf-dblatex-man.xsl
-2022/01/18 | 2618 | dviware/dvisvgm/doc/conf-dblatex-pdf.xsl
-2022/02/23 | 68834 | dviware/dvisvgm/doc/dvisvgm.1
-2022/01/18 | 62271 | dviware/dvisvgm/doc/dvisvgm.txt.in
-2020/03/21 | 840 | dviware/dvisvgm/doc/generate-dvisvgm-sty.xsl
-2022/01/18 | 3692 | dviware/dvisvgm/doc/Makefile.am
-2022/02/23 | 21375 | dviware/dvisvgm/doc/Makefile.in
-2022/01/18 | 1041 | dviware/dvisvgm/doc/tweak-dblatex-pdf.xsl
-2021/03/05 | 717 | dviware/dvisvgm/doc/tweak-dblatex-tex.py
-2022/01/18 | 1698 | dviware/dvisvgm/doc/tweak-db-refentry.xsl
-2016/09/03 | 9236 | dviware/dvisvgm/INSTALL
-2019/03/09 | 15368 | dviware/dvisvgm/install-sh
-2020/08/27 | 623 | dviware/dvisvgm/libs/brotli/common/constants.c
-2020/08/27 | 8012 | dviware/dvisvgm/libs/brotli/common/constants.h
-2020/08/27 | 7967 | dviware/dvisvgm/libs/brotli/common/context.c
-2020/08/27 | 4666 | dviware/dvisvgm/libs/brotli/common/context.h
-2020/08/27 | 471957 | dviware/dvisvgm/libs/brotli/common/dictionary.c
-2018/05/03 | 1951 | dviware/dvisvgm/libs/brotli/common/dictionary.h
-2020/08/27 | 514 | dviware/dvisvgm/libs/brotli/common/platform.c
-2020/08/27 | 21522 | dviware/dvisvgm/libs/brotli/common/platform.h
-2020/08/27 | 10679 | dviware/dvisvgm/libs/brotli/common/transform.c
-2020/08/27 | 3209 | dviware/dvisvgm/libs/brotli/common/transform.h
-2020/09/12 | 871 | dviware/dvisvgm/libs/brotli/common/version.h
-2020/08/27 | 4001 | dviware/dvisvgm/libs/brotli/enc/backward_references.c
-2020/08/27 | 1306 | dviware/dvisvgm/libs/brotli/enc/backward_references.h
-2020/08/27 | 32486 | dviware/dvisvgm/libs/brotli/enc/backward_references_hq.c
-2020/08/27 | 3875 | dviware/dvisvgm/libs/brotli/enc/backward_references_hq.h
-2020/08/27 | 6914 | dviware/dvisvgm/libs/brotli/enc/backward_references_inc.h
-2018/05/03 | 824 | dviware/dvisvgm/libs/brotli/enc/bit_cost.c
-2018/05/03 | 1680 | dviware/dvisvgm/libs/brotli/enc/bit_cost.h
-2017/12/28 | 4109 | dviware/dvisvgm/libs/brotli/enc/bit_cost_inc.h
-2018/05/03 | 1137 | dviware/dvisvgm/libs/brotli/enc/block_encoder_inc.h
-2020/08/27 | 6260 | dviware/dvisvgm/libs/brotli/enc/block_splitter.c
-2018/05/03 | 1679 | dviware/dvisvgm/libs/brotli/enc/block_splitter.h
-2020/08/27 | 16811 | dviware/dvisvgm/libs/brotli/enc/block_splitter_inc.h
-2020/08/27 | 49657 | dviware/dvisvgm/libs/brotli/enc/brotli_bit_stream.c
-2018/07/31 | 3371 | dviware/dvisvgm/libs/brotli/enc/brotli_bit_stream.h
-2018/05/03 | 1500 | dviware/dvisvgm/libs/brotli/enc/cluster.c
-2018/05/03 | 1033 | dviware/dvisvgm/libs/brotli/enc/cluster.h
-2020/08/27 | 11560 | dviware/dvisvgm/libs/brotli/enc/cluster_inc.h
-2020/08/27 | 1021 | dviware/dvisvgm/libs/brotli/enc/command.c
-2020/08/27 | 6897 | dviware/dvisvgm/libs/brotli/enc/command.h
-2018/07/31 | 32374 | dviware/dvisvgm/libs/brotli/enc/compress_fragment.c
-2018/05/03 | 2825 | dviware/dvisvgm/libs/brotli/enc/compress_fragment.h
-2020/08/27 | 25772 | dviware/dvisvgm/libs/brotli/enc/compress_fragment_two_pass.c
-2018/05/03 | 2407 | dviware/dvisvgm/libs/brotli/enc/compress_fragment_two_pass.h
-2020/08/27 | 147104 | dviware/dvisvgm/libs/brotli/enc/dictionary_hash.c
-2020/08/27 | 646 | dviware/dvisvgm/libs/brotli/enc/dictionary_hash.h
-2021/12/06 | 73998 | dviware/dvisvgm/libs/brotli/enc/encode.c
-2020/08/27 | 949 | dviware/dvisvgm/libs/brotli/enc/encoder_dict.c
-2020/08/27 | 1155 | dviware/dvisvgm/libs/brotli/enc/encoder_dict.h
-2020/08/27 | 14585 | dviware/dvisvgm/libs/brotli/enc/entropy_encode.c
-2020/08/27 | 4056 | dviware/dvisvgm/libs/brotli/enc/entropy_encode.h
-2018/05/03 | 32900 | dviware/dvisvgm/libs/brotli/enc/entropy_encode_static.h
-2020/08/27 | 6026 | dviware/dvisvgm/libs/brotli/enc/fast_log.c
-2020/08/27 | 1649 | dviware/dvisvgm/libs/brotli/enc/fast_log.h
-2020/08/27 | 2533 | dviware/dvisvgm/libs/brotli/enc/find_match_length.h
-2020/08/27 | 4415 | dviware/dvisvgm/libs/brotli/enc/hash_composite_inc.h
-2020/08/27 | 10861 | dviware/dvisvgm/libs/brotli/enc/hash_forgetful_chain_inc.h
-2020/08/27 | 14944 | dviware/dvisvgm/libs/brotli/enc/hash.h
-2020/08/27 | 10481 | dviware/dvisvgm/libs/brotli/enc/hash_longest_match64_inc.h
-2020/08/27 | 10054 | dviware/dvisvgm/libs/brotli/enc/hash_longest_match_inc.h
-2020/08/27 | 9310 | dviware/dvisvgm/libs/brotli/enc/hash_longest_match_quickly_inc.h
-2020/08/27 | 7196 | dviware/dvisvgm/libs/brotli/enc/hash_rolling_inc.h
-2020/08/27 | 13035 | dviware/dvisvgm/libs/brotli/enc/hash_to_binary_tree_inc.h
-2018/05/03 | 3227 | dviware/dvisvgm/libs/brotli/enc/histogram.c
-2018/05/03 | 1884 | dviware/dvisvgm/libs/brotli/enc/histogram.h
-2018/05/03 | 1401 | dviware/dvisvgm/libs/brotli/enc/histogram_inc.h
-2018/05/03 | 5614 | dviware/dvisvgm/libs/brotli/enc/literal_cost.c
-2018/05/03 | 892 | dviware/dvisvgm/libs/brotli/enc/literal_cost.h
-2018/05/03 | 4887 | dviware/dvisvgm/libs/brotli/enc/memory.c
-2020/08/27 | 3595 | dviware/dvisvgm/libs/brotli/enc/memory.h
-2020/08/27 | 26199 | dviware/dvisvgm/libs/brotli/enc/metablock.c
-2018/05/03 | 3994 | dviware/dvisvgm/libs/brotli/enc/metablock.h
-2020/08/27 | 7557 | dviware/dvisvgm/libs/brotli/enc/metablock_inc.h
-2020/08/27 | 1138 | dviware/dvisvgm/libs/brotli/enc/params.h
-2018/05/03 | 1970 | dviware/dvisvgm/libs/brotli/enc/prefix.h
-2018/07/31 | 6165 | dviware/dvisvgm/libs/brotli/enc/quality.h
-2020/08/27 | 6012 | dviware/dvisvgm/libs/brotli/enc/ringbuffer.h
-2018/07/31 | 19012 | dviware/dvisvgm/libs/brotli/enc/static_dict.c
-2018/05/03 | 1276 | dviware/dvisvgm/libs/brotli/enc/static_dict.h
-2018/05/03 | 469658 | dviware/dvisvgm/libs/brotli/enc/static_dict_lut.h
-2020/08/27 | 2271 | dviware/dvisvgm/libs/brotli/enc/utf8_util.c
-2018/05/03 | 904 | dviware/dvisvgm/libs/brotli/enc/utf8_util.h
-2020/08/27 | 2861 | dviware/dvisvgm/libs/brotli/enc/write_bits.h
-2018/05/03 | 14323 | dviware/dvisvgm/libs/brotli/include/brotli/decode.h
-2020/08/27 | 17361 | dviware/dvisvgm/libs/brotli/include/brotli/encode.h
-2020/08/27 | 10712 | dviware/dvisvgm/libs/brotli/include/brotli/port.h
-2018/07/31 | 2615 | dviware/dvisvgm/libs/brotli/include/brotli/types.h
-2017/12/28 | 1084 | dviware/dvisvgm/libs/brotli/LICENSE
-2020/08/27 | 1997 | dviware/dvisvgm/libs/brotli/Makefile.am
-2022/02/23 | 33403 | dviware/dvisvgm/libs/brotli/Makefile.in
-2018/09/08 | 132235 | dviware/dvisvgm/libs/clipper/clipper.cpp
-2016/09/03 | 15879 | dviware/dvisvgm/libs/clipper/clipper.hpp
-2017/04/14 | 1374 | dviware/dvisvgm/libs/clipper/License.txt
-2017/04/14 | 202 | dviware/dvisvgm/libs/clipper/Makefile.am
-2022/02/23 | 20366 | dviware/dvisvgm/libs/clipper/Makefile.in
-2019/03/09 | 467 | dviware/dvisvgm/libs/defs.am
-2017/04/14 | 188824 | dviware/dvisvgm/libs/ff-woff/fontforge/alphabet.c
-2017/04/14 | 32761 | dviware/dvisvgm/libs/ff-woff/fontforge/asmfpst.c
-2017/04/14 | 81675 | dviware/dvisvgm/libs/ff-woff/fontforge/autohint.c
-2017/04/14 | 2340 | dviware/dvisvgm/libs/ff-woff/fontforge/char.c
-2017/04/14 | 1027567 | dviware/dvisvgm/libs/ff-woff/fontforge/cjk.c
-2017/04/14 | 4984 | dviware/dvisvgm/libs/ff-woff/fontforge/configure-fontforge.h
-2017/04/14 | 1827 | dviware/dvisvgm/libs/ff-woff/fontforge/cvundoes.c
-2017/04/14 | 4233 | dviware/dvisvgm/libs/ff-woff/fontforge/dumppfa.c
-2017/04/14 | 3150 | dviware/dvisvgm/libs/ff-woff/fontforge/edgelist2.h
-2017/04/14 | 5274 | dviware/dvisvgm/libs/ff-woff/fontforge/edgelist.h
-2017/04/14 | 29572 | dviware/dvisvgm/libs/ff-woff/fontforge/encoding.c
-2017/04/14 | 90 | dviware/dvisvgm/libs/ff-woff/fontforge/encoding.h
-2017/04/14 | 1200 | dviware/dvisvgm/libs/ff-woff/fontforge/fflocale.c
-2017/04/14 | 452 | dviware/dvisvgm/libs/ff-woff/fontforge/fflocale.h
-2017/04/14 | 486 | dviware/dvisvgm/libs/ff-woff/fontforge/fontforge-config.h
-2017/04/14 | 3001 | dviware/dvisvgm/libs/ff-woff/fontforge/fontforge.h
-2017/04/14 | 1512 | dviware/dvisvgm/libs/ff-woff/fontforge/fontforgevw.h
-2017/04/14 | 7522 | dviware/dvisvgm/libs/ff-woff/fontforge/fvfonts.c
-2017/04/14 | 23626 | dviware/dvisvgm/libs/ff-woff/fontforge/gwwiconv.c
-2017/04/14 | 428 | dviware/dvisvgm/libs/ff-woff/fontforge/libffstamp.h
-2017/04/14 | 21357 | dviware/dvisvgm/libs/ff-woff/fontforge/lookups.c
-2017/10/30 | 8506 | dviware/dvisvgm/libs/ff-woff/fontforge/macbinary.c
-2017/04/14 | 83604 | dviware/dvisvgm/libs/ff-woff/fontforge/macenc.c
-2017/04/14 | 5539 | dviware/dvisvgm/libs/ff-woff/fontforge/mathconstants.c
-2017/04/14 | 2052 | dviware/dvisvgm/libs/ff-woff/fontforge/memory.c
-2017/04/14 | 9924 | dviware/dvisvgm/libs/ff-woff/fontforge/mm.c
-2017/04/14 | 2029 | dviware/dvisvgm/libs/ff-woff/fontforge/namehash.h
-2017/04/14 | 296376 | dviware/dvisvgm/libs/ff-woff/fontforge/namelist.c
-2017/04/14 | 4520 | dviware/dvisvgm/libs/ff-woff/fontforge/nouiutil.c
-2017/04/14 | 178642 | dviware/dvisvgm/libs/ff-woff/fontforge/nowakowskittfinstr.c
-2017/04/14 | 13812 | dviware/dvisvgm/libs/ff-woff/fontforge/parsepfa.c
-2017/04/14 | 1819 | dviware/dvisvgm/libs/ff-woff/fontforge/parsettfatt.c
-2017/04/14 | 10402 | dviware/dvisvgm/libs/ff-woff/fontforge/parsettf.c
-2017/04/14 | 10001 | dviware/dvisvgm/libs/ff-woff/fontforge/PfEd.h
-2017/04/14 | 7808 | dviware/dvisvgm/libs/ff-woff/fontforge/psfont.h
-2017/04/14 | 2388 | dviware/dvisvgm/libs/ff-woff/fontforge/psread.c
-2017/04/14 | 133230 | dviware/dvisvgm/libs/ff-woff/fontforge/pua.c
-2017/04/14 | 4637 | dviware/dvisvgm/libs/ff-woff/fontforge/sd.h
-2017/04/14 | 5412 | dviware/dvisvgm/libs/ff-woff/fontforge/sfd1.c
-2017/04/14 | 3972 | dviware/dvisvgm/libs/ff-woff/fontforge/sfd1.h
-2017/04/14 | 141065 | dviware/dvisvgm/libs/ff-woff/fontforge/sfd.c
-2017/04/14 | 9675 | dviware/dvisvgm/libs/ff-woff/fontforge/splinechar.c
-2017/04/14 | 13672 | dviware/dvisvgm/libs/ff-woff/fontforge/splinefont.c
-2017/04/14 | 102583 | dviware/dvisvgm/libs/ff-woff/fontforge/splinefont.h
-2017/04/14 | 54147 | dviware/dvisvgm/libs/ff-woff/fontforge/splineorder2.c
-2017/04/14 | 15643 | dviware/dvisvgm/libs/ff-woff/fontforge/splineoverlap.c
-2017/04/14 | 4779 | dviware/dvisvgm/libs/ff-woff/fontforge/splinerefigure.c
-2017/04/14 | 9598 | dviware/dvisvgm/libs/ff-woff/fontforge/splinesaveafm.c
-2017/04/14 | 68453 | dviware/dvisvgm/libs/ff-woff/fontforge/splinesave.c
-2017/04/14 | 50805 | dviware/dvisvgm/libs/ff-woff/fontforge/splineutil2.c
-2017/04/14 | 113050 | dviware/dvisvgm/libs/ff-woff/fontforge/splineutil.c
-2017/04/14 | 1950 | dviware/dvisvgm/libs/ff-woff/fontforge/start.c
-2017/04/14 | 210538 | dviware/dvisvgm/libs/ff-woff/fontforge/stemdb.c
-2017/04/14 | 8655 | dviware/dvisvgm/libs/ff-woff/fontforge/stemdb.h
-2017/04/14 | 114 | dviware/dvisvgm/libs/ff-woff/fontforge/tables.h
-2022/01/18 | 2041 | dviware/dvisvgm/libs/ff-woff/fontforge/tmpfile2.cpp
-2017/04/14 | 83106 | dviware/dvisvgm/libs/ff-woff/fontforge/tottfaat.c
-2017/04/14 | 217496 | dviware/dvisvgm/libs/ff-woff/fontforge/tottf.c
-2017/04/14 | 149564 | dviware/dvisvgm/libs/ff-woff/fontforge/tottfgpos.c
-2017/04/14 | 24895 | dviware/dvisvgm/libs/ff-woff/fontforge/tottfvar.c
-2017/04/14 | 30896 | dviware/dvisvgm/libs/ff-woff/fontforge/ttf.h
-2017/04/14 | 11086 | dviware/dvisvgm/libs/ff-woff/fontforge/ttfinstrs.c
-2017/04/14 | 3416 | dviware/dvisvgm/libs/ff-woff/fontforge/ttfinstrs.h
-2017/04/14 | 62940 | dviware/dvisvgm/libs/ff-woff/fontforge/ttfspecial.c
-2017/04/14 | 7710 | dviware/dvisvgm/libs/ff-woff/fontforge/uiinterface.h
-2017/04/14 | 318474 | dviware/dvisvgm/libs/ff-woff/fontforge/unialt.c
-2017/04/14 | 6435 | dviware/dvisvgm/libs/ff-woff/fontforge/ustring.c
-2017/04/14 | 1924432 | dviware/dvisvgm/libs/ff-woff/fontforge/utype.c
-2017/04/14 | 9876 | dviware/dvisvgm/libs/ff-woff/fontforge/woff.c
-2017/04/14 | 3909 | dviware/dvisvgm/libs/ff-woff/inc/basics.h
-2017/04/14 | 3051 | dviware/dvisvgm/libs/ff-woff/inc/chardata.h
-2017/04/14 | 3336 | dviware/dvisvgm/libs/ff-woff/inc/charset.h
-2017/04/14 | 5956 | dviware/dvisvgm/libs/ff-woff/inc/dlist.h
-2017/04/14 | 1638 | dviware/dvisvgm/libs/ff-woff/inc/ffintl.h
-2017/04/14 | 8611 | dviware/dvisvgm/libs/ff-woff/inc/gimage.h
-2017/04/14 | 3413 | dviware/dvisvgm/libs/ff-woff/inc/gnetwork.h
-2017/04/14 | 2002 | dviware/dvisvgm/libs/ff-woff/inc/gwwiconv.h
-2017/04/14 | 9794 | dviware/dvisvgm/libs/ff-woff/inc/ustring.h
-2017/04/14 | 5185 | dviware/dvisvgm/libs/ff-woff/inc/utype.h
-2017/04/14 | 9905 | dviware/dvisvgm/libs/ff-woff/LICENSE
-2019/04/12 | 2027 | dviware/dvisvgm/libs/ff-woff/Makefile.am
-2022/02/23 | 40582 | dviware/dvisvgm/libs/ff-woff/Makefile.in
-2022/01/18 | 241 | dviware/dvisvgm/libs/Makefile.am
-2022/02/23 | 19964 | dviware/dvisvgm/libs/Makefile.in
-2018/09/08 | 171 | dviware/dvisvgm/libs/md5/Makefile.am
-2022/02/23 | 19573 | dviware/dvisvgm/libs/md5/Makefile.in
-2018/09/08 | 8743 | dviware/dvisvgm/libs/md5/md5.c
-2018/09/08 | 1426 | dviware/dvisvgm/libs/md5/md5.h
-2019/10/25 | 2146 | dviware/dvisvgm/libs/potrace/auxiliary.h
-2019/10/25 | 6450 | dviware/dvisvgm/libs/potrace/bitmap.h
-2019/10/25 | 90 | dviware/dvisvgm/libs/potrace/config.h
-2019/10/25 | 2693 | dviware/dvisvgm/libs/potrace/curve.c
-2019/10/25 | 2782 | dviware/dvisvgm/libs/potrace/curve.h
-2019/10/25 | 14605 | dviware/dvisvgm/libs/potrace/decompose.c
-2019/10/25 | 442 | dviware/dvisvgm/libs/potrace/decompose.h
-2019/10/25 | 11118 | dviware/dvisvgm/libs/potrace/lists.h
-2019/03/09 | 330 | dviware/dvisvgm/libs/potrace/Makefile.am
-2022/02/23 | 20832 | dviware/dvisvgm/libs/potrace/Makefile.in
-2019/10/25 | 3122 | dviware/dvisvgm/libs/potrace/potracelib.c
-2019/10/25 | 4573 | dviware/dvisvgm/libs/potrace/potracelib.h
-2019/10/25 | 2654 | dviware/dvisvgm/libs/potrace/progress.h
-2019/10/25 | 32392 | dviware/dvisvgm/libs/potrace/trace.c
-2019/10/25 | 397 | dviware/dvisvgm/libs/potrace/trace.h
-2019/03/09 | 102582 | dviware/dvisvgm/libs/variant/include/mpark/variant.hpp
-2017/10/30 | 1338 | dviware/dvisvgm/libs/variant/LICENSE.md
-2019/03/09 | 71 | dviware/dvisvgm/libs/variant/Makefile.am
-2022/02/23 | 15621 | dviware/dvisvgm/libs/variant/Makefile.in
-2017/10/30 | 1171 | dviware/dvisvgm/libs/woff2/include/woff2/decode.h
-2017/10/30 | 1434 | dviware/dvisvgm/libs/woff2/include/woff2/encode.h
-2017/10/30 | 2304 | dviware/dvisvgm/libs/woff2/include/woff2/output.h
-2018/07/31 | 131 | dviware/dvisvgm/libs/woff2/include/woff2/version.h
-2016/09/03 | 11358 | dviware/dvisvgm/libs/woff2/LICENSE
-2019/03/09 | 701 | dviware/dvisvgm/libs/woff2/Makefile.am
-2022/02/23 | 24709 | dviware/dvisvgm/libs/woff2/Makefile.in
-2017/10/30 | 4185 | dviware/dvisvgm/libs/woff2/src/buffer.h
-2018/07/31 | 12155 | dviware/dvisvgm/libs/woff2/src/font.cc
-2017/10/30 | 3509 | dviware/dvisvgm/libs/woff2/src/font.h
-2019/10/25 | 11277 | dviware/dvisvgm/libs/woff2/src/glyph.cc
-2017/10/30 | 1756 | dviware/dvisvgm/libs/woff2/src/glyph.h
-2019/10/25 | 9004 | dviware/dvisvgm/libs/woff2/src/normalize.cc
-2017/10/30 | 1301 | dviware/dvisvgm/libs/woff2/src/normalize.h
-2017/10/30 | 1674 | dviware/dvisvgm/libs/woff2/src/port.h
-2017/10/30 | 587 | dviware/dvisvgm/libs/woff2/src/round.h
-2017/10/30 | 1864 | dviware/dvisvgm/libs/woff2/src/store_bytes.h
-2017/10/30 | 2558 | dviware/dvisvgm/libs/woff2/src/table_tags.cc
-2017/10/30 | 807 | dviware/dvisvgm/libs/woff2/src/table_tags.h
-2017/10/30 | 13101 | dviware/dvisvgm/libs/woff2/src/transform.cc
-2017/10/30 | 768 | dviware/dvisvgm/libs/woff2/src/transform.h
-2017/10/30 | 3176 | dviware/dvisvgm/libs/woff2/src/variable_length.cc
-2017/10/30 | 811 | dviware/dvisvgm/libs/woff2/src/variable_length.h
-2017/10/30 | 1547 | dviware/dvisvgm/libs/woff2/src/woff2_common.cc
-2017/10/30 | 1439 | dviware/dvisvgm/libs/woff2/src/woff2_common.h
-2018/07/31 | 15423 | dviware/dvisvgm/libs/woff2/src/woff2_enc.cc
-2017/10/30 | 1564 | dviware/dvisvgm/libs/woff2/src/woff2_out.cc
-2019/10/25 | 200 | dviware/dvisvgm/libs/xxHash/Makefile.am
-2022/02/23 | 19678 | dviware/dvisvgm/libs/xxHash/Makefile.in
-2021/12/02 | 2394 | dviware/dvisvgm/libs/xxHash/xxh3.h
-2020/07/04 | 1855 | dviware/dvisvgm/libs/xxHash/xxhash.c
+2022/02/27 | 56953 | dviware/dvisvgm/aclocal.m4
+2021/08/13 | 5875 | dviware/dvisvgm/ar-lib
+2021/08/13 | 576 | dviware/dvisvgm/AUTHORS
+2022/02/27 | 447313 | dviware/dvisvgm/ChangeLog
+2021/08/13 | 7400 | dviware/dvisvgm/compile
+2021/08/13 | 44155 | dviware/dvisvgm/config.guess
+2022/02/27 | 4369 | dviware/dvisvgm/config.h.in
+2021/08/13 | 31428 | dviware/dvisvgm/config.sub
+2022/02/27 | 689518 | dviware/dvisvgm/configure
+2022/02/27 | 8413 | dviware/dvisvgm/configure.ac
+2021/08/13 | 35147 | dviware/dvisvgm/COPYING
+2021/08/13 | 23568 | dviware/dvisvgm/depcomp
+2022/01/23 | 718 | dviware/dvisvgm/doc/conf-dblatex-man.xsl
+2022/01/23 | 2618 | dviware/dvisvgm/doc/conf-dblatex-pdf.xsl
+2022/02/27 | 69105 | dviware/dvisvgm/doc/dvisvgm.1
+2022/02/26 | 62519 | dviware/dvisvgm/doc/dvisvgm.txt.in
+2021/08/13 | 840 | dviware/dvisvgm/doc/generate-dvisvgm-sty.xsl
+2022/01/23 | 3692 | dviware/dvisvgm/doc/Makefile.am
+2022/02/27 | 21375 | dviware/dvisvgm/doc/Makefile.in
+2022/01/23 | 1041 | dviware/dvisvgm/doc/tweak-dblatex-pdf.xsl
+2021/08/13 | 717 | dviware/dvisvgm/doc/tweak-dblatex-tex.py
+2022/01/23 | 1698 | dviware/dvisvgm/doc/tweak-db-refentry.xsl
+2021/08/13 | 9236 | dviware/dvisvgm/INSTALL
+2021/08/13 | 15645 | dviware/dvisvgm/install-sh
+2021/08/13 | 623 | dviware/dvisvgm/libs/brotli/common/constants.c
+2021/08/13 | 8012 | dviware/dvisvgm/libs/brotli/common/constants.h
+2021/08/13 | 7967 | dviware/dvisvgm/libs/brotli/common/context.c
+2021/08/13 | 4666 | dviware/dvisvgm/libs/brotli/common/context.h
+2021/08/13 | 471957 | dviware/dvisvgm/libs/brotli/common/dictionary.c
+2021/08/13 | 1951 | dviware/dvisvgm/libs/brotli/common/dictionary.h
+2021/08/13 | 514 | dviware/dvisvgm/libs/brotli/common/platform.c
+2021/08/13 | 21522 | dviware/dvisvgm/libs/brotli/common/platform.h
+2021/08/13 | 10679 | dviware/dvisvgm/libs/brotli/common/transform.c
+2021/08/13 | 3209 | dviware/dvisvgm/libs/brotli/common/transform.h
+2021/08/13 | 871 | dviware/dvisvgm/libs/brotli/common/version.h
+2021/08/13 | 4001 | dviware/dvisvgm/libs/brotli/enc/backward_references.c
+2021/08/13 | 1306 | dviware/dvisvgm/libs/brotli/enc/backward_references.h
+2021/08/13 | 32486 | dviware/dvisvgm/libs/brotli/enc/backward_references_hq.c
+2021/08/13 | 3875 | dviware/dvisvgm/libs/brotli/enc/backward_references_hq.h
+2021/08/13 | 6914 | dviware/dvisvgm/libs/brotli/enc/backward_references_inc.h
+2021/08/13 | 824 | dviware/dvisvgm/libs/brotli/enc/bit_cost.c
+2021/08/13 | 1680 | dviware/dvisvgm/libs/brotli/enc/bit_cost.h
+2021/08/13 | 4109 | dviware/dvisvgm/libs/brotli/enc/bit_cost_inc.h
+2021/08/13 | 1137 | dviware/dvisvgm/libs/brotli/enc/block_encoder_inc.h
+2021/08/13 | 6260 | dviware/dvisvgm/libs/brotli/enc/block_splitter.c
+2021/08/13 | 1679 | dviware/dvisvgm/libs/brotli/enc/block_splitter.h
+2021/08/13 | 16811 | dviware/dvisvgm/libs/brotli/enc/block_splitter_inc.h
+2021/08/13 | 49657 | dviware/dvisvgm/libs/brotli/enc/brotli_bit_stream.c
+2021/08/13 | 3371 | dviware/dvisvgm/libs/brotli/enc/brotli_bit_stream.h
+2021/08/13 | 1500 | dviware/dvisvgm/libs/brotli/enc/cluster.c
+2021/08/13 | 1033 | dviware/dvisvgm/libs/brotli/enc/cluster.h
+2021/08/13 | 11560 | dviware/dvisvgm/libs/brotli/enc/cluster_inc.h
+2021/08/13 | 1021 | dviware/dvisvgm/libs/brotli/enc/command.c
+2021/08/13 | 6897 | dviware/dvisvgm/libs/brotli/enc/command.h
+2021/08/13 | 32374 | dviware/dvisvgm/libs/brotli/enc/compress_fragment.c
+2021/08/13 | 2825 | dviware/dvisvgm/libs/brotli/enc/compress_fragment.h
+2021/08/13 | 25772 | dviware/dvisvgm/libs/brotli/enc/compress_fragment_two_pass.c
+2021/08/13 | 2407 | dviware/dvisvgm/libs/brotli/enc/compress_fragment_two_pass.h
+2021/08/13 | 147104 | dviware/dvisvgm/libs/brotli/enc/dictionary_hash.c
+2021/08/13 | 646 | dviware/dvisvgm/libs/brotli/enc/dictionary_hash.h
+2022/01/23 | 73998 | dviware/dvisvgm/libs/brotli/enc/encode.c
+2021/08/13 | 949 | dviware/dvisvgm/libs/brotli/enc/encoder_dict.c
+2021/08/13 | 1155 | dviware/dvisvgm/libs/brotli/enc/encoder_dict.h
+2021/08/13 | 14585 | dviware/dvisvgm/libs/brotli/enc/entropy_encode.c
+2021/08/13 | 4056 | dviware/dvisvgm/libs/brotli/enc/entropy_encode.h
+2021/08/13 | 32900 | dviware/dvisvgm/libs/brotli/enc/entropy_encode_static.h
+2021/08/13 | 6026 | dviware/dvisvgm/libs/brotli/enc/fast_log.c
+2021/08/13 | 1649 | dviware/dvisvgm/libs/brotli/enc/fast_log.h
+2021/08/13 | 2533 | dviware/dvisvgm/libs/brotli/enc/find_match_length.h
+2021/08/13 | 4415 | dviware/dvisvgm/libs/brotli/enc/hash_composite_inc.h
+2021/08/13 | 10861 | dviware/dvisvgm/libs/brotli/enc/hash_forgetful_chain_inc.h
+2021/08/13 | 14944 | dviware/dvisvgm/libs/brotli/enc/hash.h
+2021/08/13 | 10481 | dviware/dvisvgm/libs/brotli/enc/hash_longest_match64_inc.h
+2021/08/13 | 10054 | dviware/dvisvgm/libs/brotli/enc/hash_longest_match_inc.h
+2021/08/13 | 9310 | dviware/dvisvgm/libs/brotli/enc/hash_longest_match_quickly_inc.h
+2021/08/13 | 7196 | dviware/dvisvgm/libs/brotli/enc/hash_rolling_inc.h
+2021/08/13 | 13035 | dviware/dvisvgm/libs/brotli/enc/hash_to_binary_tree_inc.h
+2021/08/13 | 3227 | dviware/dvisvgm/libs/brotli/enc/histogram.c
+2021/08/13 | 1884 | dviware/dvisvgm/libs/brotli/enc/histogram.h
+2021/08/13 | 1401 | dviware/dvisvgm/libs/brotli/enc/histogram_inc.h
+2021/08/13 | 5614 | dviware/dvisvgm/libs/brotli/enc/literal_cost.c
+2021/08/13 | 892 | dviware/dvisvgm/libs/brotli/enc/literal_cost.h
+2021/08/13 | 4887 | dviware/dvisvgm/libs/brotli/enc/memory.c
+2021/08/13 | 3595 | dviware/dvisvgm/libs/brotli/enc/memory.h
+2021/08/13 | 26199 | dviware/dvisvgm/libs/brotli/enc/metablock.c
+2021/08/13 | 3994 | dviware/dvisvgm/libs/brotli/enc/metablock.h
+2021/08/13 | 7557 | dviware/dvisvgm/libs/brotli/enc/metablock_inc.h
+2021/08/13 | 1138 | dviware/dvisvgm/libs/brotli/enc/params.h
+2021/08/13 | 1970 | dviware/dvisvgm/libs/brotli/enc/prefix.h
+2021/08/13 | 6165 | dviware/dvisvgm/libs/brotli/enc/quality.h
+2021/08/13 | 6012 | dviware/dvisvgm/libs/brotli/enc/ringbuffer.h
+2021/08/13 | 19012 | dviware/dvisvgm/libs/brotli/enc/static_dict.c
+2021/08/13 | 1276 | dviware/dvisvgm/libs/brotli/enc/static_dict.h
+2021/08/13 | 469658 | dviware/dvisvgm/libs/brotli/enc/static_dict_lut.h
+2021/08/13 | 2271 | dviware/dvisvgm/libs/brotli/enc/utf8_util.c
+2021/08/13 | 904 | dviware/dvisvgm/libs/brotli/enc/utf8_util.h
+2021/08/13 | 2861 | dviware/dvisvgm/libs/brotli/enc/write_bits.h
+2021/08/13 | 14323 | dviware/dvisvgm/libs/brotli/include/brotli/decode.h
+2021/08/13 | 17361 | dviware/dvisvgm/libs/brotli/include/brotli/encode.h
+2021/08/13 | 10712 | dviware/dvisvgm/libs/brotli/include/brotli/port.h
+2021/08/13 | 2615 | dviware/dvisvgm/libs/brotli/include/brotli/types.h
+2021/08/13 | 1084 | dviware/dvisvgm/libs/brotli/LICENSE
+2021/08/13 | 1997 | dviware/dvisvgm/libs/brotli/Makefile.am
+2022/02/27 | 33403 | dviware/dvisvgm/libs/brotli/Makefile.in
+2021/08/13 | 132235 | dviware/dvisvgm/libs/clipper/clipper.cpp
+2021/08/13 | 15879 | dviware/dvisvgm/libs/clipper/clipper.hpp
+2021/08/13 | 1374 | dviware/dvisvgm/libs/clipper/License.txt
+2021/08/13 | 202 | dviware/dvisvgm/libs/clipper/Makefile.am
+2022/02/27 | 20366 | dviware/dvisvgm/libs/clipper/Makefile.in
+2021/08/13 | 467 | dviware/dvisvgm/libs/defs.am
+2021/08/13 | 188824 | dviware/dvisvgm/libs/ff-woff/fontforge/alphabet.c
+2021/08/13 | 32761 | dviware/dvisvgm/libs/ff-woff/fontforge/asmfpst.c
+2021/08/13 | 81675 | dviware/dvisvgm/libs/ff-woff/fontforge/autohint.c
+2021/08/13 | 2340 | dviware/dvisvgm/libs/ff-woff/fontforge/char.c
+2021/08/13 | 1027567 | dviware/dvisvgm/libs/ff-woff/fontforge/cjk.c
+2021/08/13 | 4984 | dviware/dvisvgm/libs/ff-woff/fontforge/configure-fontforge.h
+2021/08/13 | 1827 | dviware/dvisvgm/libs/ff-woff/fontforge/cvundoes.c
+2021/08/13 | 4233 | dviware/dvisvgm/libs/ff-woff/fontforge/dumppfa.c
+2021/08/13 | 3150 | dviware/dvisvgm/libs/ff-woff/fontforge/edgelist2.h
+2021/08/13 | 5274 | dviware/dvisvgm/libs/ff-woff/fontforge/edgelist.h
+2021/08/13 | 29572 | dviware/dvisvgm/libs/ff-woff/fontforge/encoding.c
+2021/08/13 | 90 | dviware/dvisvgm/libs/ff-woff/fontforge/encoding.h
+2021/08/13 | 1200 | dviware/dvisvgm/libs/ff-woff/fontforge/fflocale.c
+2021/08/13 | 452 | dviware/dvisvgm/libs/ff-woff/fontforge/fflocale.h
+2021/08/13 | 486 | dviware/dvisvgm/libs/ff-woff/fontforge/fontforge-config.h
+2021/08/13 | 3001 | dviware/dvisvgm/libs/ff-woff/fontforge/fontforge.h
+2021/08/13 | 1512 | dviware/dvisvgm/libs/ff-woff/fontforge/fontforgevw.h
+2021/08/13 | 7522 | dviware/dvisvgm/libs/ff-woff/fontforge/fvfonts.c
+2021/08/13 | 23626 | dviware/dvisvgm/libs/ff-woff/fontforge/gwwiconv.c
+2021/08/13 | 428 | dviware/dvisvgm/libs/ff-woff/fontforge/libffstamp.h
+2021/08/13 | 21357 | dviware/dvisvgm/libs/ff-woff/fontforge/lookups.c
+2021/08/13 | 8506 | dviware/dvisvgm/libs/ff-woff/fontforge/macbinary.c
+2021/08/13 | 83604 | dviware/dvisvgm/libs/ff-woff/fontforge/macenc.c
+2021/08/13 | 5539 | dviware/dvisvgm/libs/ff-woff/fontforge/mathconstants.c
+2021/08/13 | 2052 | dviware/dvisvgm/libs/ff-woff/fontforge/memory.c
+2021/08/13 | 9924 | dviware/dvisvgm/libs/ff-woff/fontforge/mm.c
+2021/08/13 | 2029 | dviware/dvisvgm/libs/ff-woff/fontforge/namehash.h
+2021/08/13 | 296376 | dviware/dvisvgm/libs/ff-woff/fontforge/namelist.c
+2021/08/13 | 4520 | dviware/dvisvgm/libs/ff-woff/fontforge/nouiutil.c
+2021/08/13 | 178642 | dviware/dvisvgm/libs/ff-woff/fontforge/nowakowskittfinstr.c
+2021/08/13 | 13812 | dviware/dvisvgm/libs/ff-woff/fontforge/parsepfa.c
+2021/08/13 | 1819 | dviware/dvisvgm/libs/ff-woff/fontforge/parsettfatt.c
+2021/08/13 | 10402 | dviware/dvisvgm/libs/ff-woff/fontforge/parsettf.c
+2021/08/13 | 10001 | dviware/dvisvgm/libs/ff-woff/fontforge/PfEd.h
+2021/08/13 | 7808 | dviware/dvisvgm/libs/ff-woff/fontforge/psfont.h
+2021/08/13 | 2388 | dviware/dvisvgm/libs/ff-woff/fontforge/psread.c
+2021/08/13 | 133230 | dviware/dvisvgm/libs/ff-woff/fontforge/pua.c
+2021/08/13 | 4637 | dviware/dvisvgm/libs/ff-woff/fontforge/sd.h
+2021/08/13 | 5412 | dviware/dvisvgm/libs/ff-woff/fontforge/sfd1.c
+2021/08/13 | 3972 | dviware/dvisvgm/libs/ff-woff/fontforge/sfd1.h
+2021/08/13 | 141065 | dviware/dvisvgm/libs/ff-woff/fontforge/sfd.c
+2021/08/13 | 9675 | dviware/dvisvgm/libs/ff-woff/fontforge/splinechar.c
+2021/08/13 | 13672 | dviware/dvisvgm/libs/ff-woff/fontforge/splinefont.c
+2021/08/13 | 102583 | dviware/dvisvgm/libs/ff-woff/fontforge/splinefont.h
+2021/08/13 | 54147 | dviware/dvisvgm/libs/ff-woff/fontforge/splineorder2.c
+2021/08/13 | 15643 | dviware/dvisvgm/libs/ff-woff/fontforge/splineoverlap.c
+2021/08/13 | 4779 | dviware/dvisvgm/libs/ff-woff/fontforge/splinerefigure.c
+2021/08/13 | 9598 | dviware/dvisvgm/libs/ff-woff/fontforge/splinesaveafm.c
+2021/08/13 | 68453 | dviware/dvisvgm/libs/ff-woff/fontforge/splinesave.c
+2021/08/13 | 50805 | dviware/dvisvgm/libs/ff-woff/fontforge/splineutil2.c
+2021/08/13 | 113050 | dviware/dvisvgm/libs/ff-woff/fontforge/splineutil.c
+2021/08/13 | 1950 | dviware/dvisvgm/libs/ff-woff/fontforge/start.c
+2021/08/13 | 210538 | dviware/dvisvgm/libs/ff-woff/fontforge/stemdb.c
+2021/08/13 | 8655 | dviware/dvisvgm/libs/ff-woff/fontforge/stemdb.h
+2021/08/13 | 114 | dviware/dvisvgm/libs/ff-woff/fontforge/tables.h
+2022/01/23 | 2041 | dviware/dvisvgm/libs/ff-woff/fontforge/tmpfile2.cpp
+2021/08/13 | 83106 | dviware/dvisvgm/libs/ff-woff/fontforge/tottfaat.c
+2021/08/13 | 217496 | dviware/dvisvgm/libs/ff-woff/fontforge/tottf.c
+2021/08/13 | 149564 | dviware/dvisvgm/libs/ff-woff/fontforge/tottfgpos.c
+2021/08/13 | 24895 | dviware/dvisvgm/libs/ff-woff/fontforge/tottfvar.c
+2021/08/13 | 30896 | dviware/dvisvgm/libs/ff-woff/fontforge/ttf.h
+2021/08/13 | 11086 | dviware/dvisvgm/libs/ff-woff/fontforge/ttfinstrs.c
+2021/08/13 | 3416 | dviware/dvisvgm/libs/ff-woff/fontforge/ttfinstrs.h
+2021/08/13 | 62940 | dviware/dvisvgm/libs/ff-woff/fontforge/ttfspecial.c
+2021/08/13 | 7710 | dviware/dvisvgm/libs/ff-woff/fontforge/uiinterface.h
+2021/08/13 | 318474 | dviware/dvisvgm/libs/ff-woff/fontforge/unialt.c
+2021/08/13 | 6435 | dviware/dvisvgm/libs/ff-woff/fontforge/ustring.c
+2021/08/13 | 1924432 | dviware/dvisvgm/libs/ff-woff/fontforge/utype.c
+2021/08/13 | 9876 | dviware/dvisvgm/libs/ff-woff/fontforge/woff.c
+2021/08/13 | 3909 | dviware/dvisvgm/libs/ff-woff/inc/basics.h
+2021/08/13 | 3051 | dviware/dvisvgm/libs/ff-woff/inc/chardata.h
+2021/08/13 | 3336 | dviware/dvisvgm/libs/ff-woff/inc/charset.h
+2021/08/13 | 5956 | dviware/dvisvgm/libs/ff-woff/inc/dlist.h
+2021/08/13 | 1638 | dviware/dvisvgm/libs/ff-woff/inc/ffintl.h
+2021/08/13 | 8611 | dviware/dvisvgm/libs/ff-woff/inc/gimage.h
+2021/08/13 | 3413 | dviware/dvisvgm/libs/ff-woff/inc/gnetwork.h
+2021/08/13 | 2002 | dviware/dvisvgm/libs/ff-woff/inc/gwwiconv.h
+2021/08/13 | 9794 | dviware/dvisvgm/libs/ff-woff/inc/ustring.h
+2021/08/13 | 5185 | dviware/dvisvgm/libs/ff-woff/inc/utype.h
+2021/08/13 | 9905 | dviware/dvisvgm/libs/ff-woff/LICENSE
+2021/08/13 | 2027 | dviware/dvisvgm/libs/ff-woff/Makefile.am
+2022/02/27 | 40582 | dviware/dvisvgm/libs/ff-woff/Makefile.in
+2022/01/23 | 241 | dviware/dvisvgm/libs/Makefile.am
+2022/02/27 | 19964 | dviware/dvisvgm/libs/Makefile.in
+2021/08/13 | 171 | dviware/dvisvgm/libs/md5/Makefile.am
+2022/02/27 | 19573 | dviware/dvisvgm/libs/md5/Makefile.in
+2021/08/13 | 8743 | dviware/dvisvgm/libs/md5/md5.c
+2021/08/13 | 1426 | dviware/dvisvgm/libs/md5/md5.h
+2021/08/13 | 2146 | dviware/dvisvgm/libs/potrace/auxiliary.h
+2021/08/13 | 6450 | dviware/dvisvgm/libs/potrace/bitmap.h
+2021/08/13 | 90 | dviware/dvisvgm/libs/potrace/config.h
+2021/08/13 | 2693 | dviware/dvisvgm/libs/potrace/curve.c
+2021/08/13 | 2782 | dviware/dvisvgm/libs/potrace/curve.h
+2021/08/13 | 14605 | dviware/dvisvgm/libs/potrace/decompose.c
+2021/08/13 | 442 | dviware/dvisvgm/libs/potrace/decompose.h
+2021/08/13 | 11118 | dviware/dvisvgm/libs/potrace/lists.h
+2021/08/13 | 330 | dviware/dvisvgm/libs/potrace/Makefile.am
+2022/02/27 | 20832 | dviware/dvisvgm/libs/potrace/Makefile.in
+2021/08/13 | 3122 | dviware/dvisvgm/libs/potrace/potracelib.c
+2021/08/13 | 4573 | dviware/dvisvgm/libs/potrace/potracelib.h
+2021/08/13 | 2654 | dviware/dvisvgm/libs/potrace/progress.h
+2021/08/13 | 32392 | dviware/dvisvgm/libs/potrace/trace.c
+2021/08/13 | 397 | dviware/dvisvgm/libs/potrace/trace.h
+2021/08/13 | 102582 | dviware/dvisvgm/libs/variant/include/mpark/variant.hpp
+2021/08/13 | 1338 | dviware/dvisvgm/libs/variant/LICENSE.md
+2021/08/13 | 71 | dviware/dvisvgm/libs/variant/Makefile.am
+2022/02/27 | 15621 | dviware/dvisvgm/libs/variant/Makefile.in
+2021/08/13 | 1171 | dviware/dvisvgm/libs/woff2/include/woff2/decode.h
+2021/08/13 | 1434 | dviware/dvisvgm/libs/woff2/include/woff2/encode.h
+2021/08/13 | 2304 | dviware/dvisvgm/libs/woff2/include/woff2/output.h
+2021/08/13 | 131 | dviware/dvisvgm/libs/woff2/include/woff2/version.h
+2021/08/13 | 11358 | dviware/dvisvgm/libs/woff2/LICENSE
+2021/08/13 | 701 | dviware/dvisvgm/libs/woff2/Makefile.am
+2022/02/27 | 24709 | dviware/dvisvgm/libs/woff2/Makefile.in
+2021/08/13 | 4185 | dviware/dvisvgm/libs/woff2/src/buffer.h
+2021/08/13 | 12155 | dviware/dvisvgm/libs/woff2/src/font.cc
+2021/08/13 | 3509 | dviware/dvisvgm/libs/woff2/src/font.h
+2021/08/13 | 11277 | dviware/dvisvgm/libs/woff2/src/glyph.cc
+2021/08/13 | 1756 | dviware/dvisvgm/libs/woff2/src/glyph.h
+2021/08/13 | 9004 | dviware/dvisvgm/libs/woff2/src/normalize.cc
+2021/08/13 | 1301 | dviware/dvisvgm/libs/woff2/src/normalize.h
+2021/08/13 | 1674 | dviware/dvisvgm/libs/woff2/src/port.h
+2021/08/13 | 587 | dviware/dvisvgm/libs/woff2/src/round.h
+2021/08/13 | 1864 | dviware/dvisvgm/libs/woff2/src/store_bytes.h
+2021/08/13 | 2558 | dviware/dvisvgm/libs/woff2/src/table_tags.cc
+2021/08/13 | 807 | dviware/dvisvgm/libs/woff2/src/table_tags.h
+2021/08/13 | 13101 | dviware/dvisvgm/libs/woff2/src/transform.cc
+2021/08/13 | 768 | dviware/dvisvgm/libs/woff2/src/transform.h
+2021/08/13 | 3176 | dviware/dvisvgm/libs/woff2/src/variable_length.cc
+2021/08/13 | 811 | dviware/dvisvgm/libs/woff2/src/variable_length.h
+2021/08/13 | 1547 | dviware/dvisvgm/libs/woff2/src/woff2_common.cc
+2021/08/13 | 1439 | dviware/dvisvgm/libs/woff2/src/woff2_common.h
+2021/08/13 | 15423 | dviware/dvisvgm/libs/woff2/src/woff2_enc.cc
+2021/08/13 | 1564 | dviware/dvisvgm/libs/woff2/src/woff2_out.cc
+2021/08/13 | 200 | dviware/dvisvgm/libs/xxHash/Makefile.am
+2022/02/27 | 19678 | dviware/dvisvgm/libs/xxHash/Makefile.in
+2022/01/23 | 2394 | dviware/dvisvgm/libs/xxHash/xxh3.h
+2021/08/13 | 1855 | dviware/dvisvgm/libs/xxHash/xxhash.c
2022/01/25 | 209623 | dviware/dvisvgm/libs/xxHash/xxhash.h
-2019/03/09 | 324151 | dviware/dvisvgm/ltmain.sh
-2019/03/09 | 2105 | dviware/dvisvgm/m4/ax_check_compile_flag.m4
-2017/10/30 | 11836 | dviware/dvisvgm/m4/ax_code_coverage.m4
-2021/06/11 | 19816 | dviware/dvisvgm/m4/ax_cxx_compile_stdcxx.m4
-2019/03/09 | 305862 | dviware/dvisvgm/m4/libtool.m4
-2019/03/09 | 6140 | dviware/dvisvgm/m4/lt~obsolete.m4
-2019/03/09 | 14514 | dviware/dvisvgm/m4/ltoptions.m4
-2019/03/09 | 4384 | dviware/dvisvgm/m4/ltsugar.m4
-2019/03/09 | 699 | dviware/dvisvgm/m4/ltversion.m4
-2019/03/09 | 95 | dviware/dvisvgm/m4/Makefile.am
-2022/02/23 | 13502 | dviware/dvisvgm/m4/Makefile.in
-2022/01/18 | 744 | dviware/dvisvgm/Makefile.am
-2022/02/23 | 27920 | dviware/dvisvgm/Makefile.in
-2019/03/09 | 6878 | dviware/dvisvgm/missing
-2022/02/23 | 39022 | dviware/dvisvgm/NEWS
-2022/01/18 | 6173 | dviware/dvisvgm/README
-2022/01/18 | 158418 | dviware/dvisvgm/src/AGLTable.hpp
-2022/01/18 | 15777 | dviware/dvisvgm/src/BasicDVIReader.cpp
-2022/01/18 | 5248 | dviware/dvisvgm/src/BasicDVIReader.hpp
-2022/01/18 | 9132 | dviware/dvisvgm/src/Bezier.cpp
-2022/01/18 | 2502 | dviware/dvisvgm/src/Bezier.hpp
-2022/01/18 | 3164 | dviware/dvisvgm/src/BgColorSpecialHandler.cpp
-2022/01/18 | 2228 | dviware/dvisvgm/src/BgColorSpecialHandler.hpp
-2022/01/18 | 4889 | dviware/dvisvgm/src/Bitmap.cpp
-2022/01/18 | 4166 | dviware/dvisvgm/src/Bitmap.hpp
-2022/02/22 | 7860 | dviware/dvisvgm/src/BoundingBox.cpp
-2022/02/22 | 3916 | dviware/dvisvgm/src/BoundingBox.hpp
-2022/01/18 | 6779 | dviware/dvisvgm/src/Calculator.cpp
-2022/01/18 | 2365 | dviware/dvisvgm/src/Calculator.hpp
-2022/01/18 | 2000 | dviware/dvisvgm/src/Character.hpp
-2022/01/18 | 2040 | dviware/dvisvgm/src/CharMapID.cpp
-2022/01/18 | 2541 | dviware/dvisvgm/src/CharMapID.hpp
-2022/01/18 | 8299 | dviware/dvisvgm/src/CLCommandLine.cpp
-2022/01/18 | 2891 | dviware/dvisvgm/src/CLCommandLine.hpp
-2022/01/18 | 6531 | dviware/dvisvgm/src/CLOption.hpp
-2022/01/18 | 3539 | dviware/dvisvgm/src/CMap.cpp
-2022/01/18 | 4475 | dviware/dvisvgm/src/CMap.hpp
-2022/01/18 | 5299 | dviware/dvisvgm/src/CMapManager.cpp
-2022/01/18 | 2221 | dviware/dvisvgm/src/CMapManager.hpp
-2022/01/18 | 8332 | dviware/dvisvgm/src/CMapReader.cpp
-2022/01/18 | 3080 | dviware/dvisvgm/src/CMapReader.hpp
-2022/01/18 | 19513 | dviware/dvisvgm/src/Color.cpp
-2022/01/18 | 4778 | dviware/dvisvgm/src/Color.hpp
-2022/01/18 | 4118 | dviware/dvisvgm/src/ColorSpecialHandler.cpp
-2022/01/18 | 2118 | dviware/dvisvgm/src/ColorSpecialHandler.hpp
-2022/01/20 | 7644 | dviware/dvisvgm/src/CommandLine.hpp
-2022/01/18 | 3410 | dviware/dvisvgm/src/Directory.cpp
-2022/01/18 | 2053 | dviware/dvisvgm/src/Directory.hpp
-2022/01/18 | 2290 | dviware/dvisvgm/src/DLLoader.cpp
-2022/01/18 | 2539 | dviware/dvisvgm/src/DLLoader.hpp
-2022/01/18 | 2334 | dviware/dvisvgm/src/DVIActions.hpp
-2022/01/18 | 24848 | dviware/dvisvgm/src/DVIReader.cpp
-2022/01/18 | 8202 | dviware/dvisvgm/src/DVIReader.hpp
-2022/01/18 | 18110 | dviware/dvisvgm/src/dvisvgm.cpp
-2022/02/22 | 19533 | dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
-2022/01/18 | 4603 | dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp
-2022/01/18 | 12271 | dviware/dvisvgm/src/DVIToSVGActions.cpp
-2022/01/18 | 5087 | dviware/dvisvgm/src/DVIToSVGActions.hpp
-2022/01/18 | 21247 | dviware/dvisvgm/src/DVIToSVG.cpp
-2022/01/18 | 5630 | dviware/dvisvgm/src/DVIToSVG.hpp
-2022/01/18 | 10946 | dviware/dvisvgm/src/EllipticalArc.cpp
-2022/01/18 | 3100 | dviware/dvisvgm/src/EllipticalArc.hpp
-2022/01/18 | 9740 | dviware/dvisvgm/src/EmSpecialHandler.cpp
-2022/01/18 | 2930 | dviware/dvisvgm/src/EmSpecialHandler.hpp
-2022/01/18 | 3935 | dviware/dvisvgm/src/EncFile.cpp
-2022/01/18 | 2116 | dviware/dvisvgm/src/EncFile.hpp
-2022/01/18 | 3776 | dviware/dvisvgm/src/EPSFile.cpp
-2022/01/18 | 2051 | dviware/dvisvgm/src/EPSFile.hpp
-2022/01/18 | 2098 | dviware/dvisvgm/src/EPSToSVG.hpp
-2022/01/18 | 3098 | dviware/dvisvgm/src/ffwrapper.c
-2022/01/18 | 1657 | dviware/dvisvgm/src/ffwrapper.h
-2022/01/18 | 9824 | dviware/dvisvgm/src/FileFinder.cpp
-2022/01/18 | 2586 | dviware/dvisvgm/src/FileFinder.hpp
-2022/01/18 | 10407 | dviware/dvisvgm/src/FilePath.cpp
-2022/01/18 | 3434 | dviware/dvisvgm/src/FilePath.hpp
-2022/01/18 | 11115 | dviware/dvisvgm/src/FileSystem.cpp
-2022/01/18 | 3168 | dviware/dvisvgm/src/FileSystem.hpp
-2022/01/18 | 1821 | dviware/dvisvgm/src/FixWord.hpp
-2022/01/18 | 12504 | dviware/dvisvgm/src/FontCache.cpp
-2022/01/18 | 2857 | dviware/dvisvgm/src/FontCache.hpp
-2022/01/18 | 21792 | dviware/dvisvgm/src/Font.cpp
-2022/01/18 | 3488 | dviware/dvisvgm/src/FontEncoding.cpp
-2022/01/18 | 2795 | dviware/dvisvgm/src/FontEncoding.hpp
-2022/01/18 | 14146 | dviware/dvisvgm/src/FontEngine.cpp
-2022/01/18 | 3393 | dviware/dvisvgm/src/FontEngine.hpp
-2022/01/18 | 18771 | dviware/dvisvgm/src/Font.hpp
-2022/01/18 | 12225 | dviware/dvisvgm/src/FontManager.cpp
-2022/01/18 | 3939 | dviware/dvisvgm/src/FontManager.hpp
-2022/01/18 | 9307 | dviware/dvisvgm/src/FontMap.cpp
-2022/01/18 | 2909 | dviware/dvisvgm/src/FontMap.hpp
-2022/01/18 | 1984 | dviware/dvisvgm/src/FontMetrics.cpp
-2022/01/18 | 3441 | dviware/dvisvgm/src/FontMetrics.hpp
-2022/01/18 | 1805 | dviware/dvisvgm/src/FontStyle.hpp
-2022/01/18 | 10107 | dviware/dvisvgm/src/FontWriter.cpp
-2022/01/18 | 2742 | dviware/dvisvgm/src/FontWriter.hpp
-2022/01/18 | 2757 | dviware/dvisvgm/src/GFGlyphTracer.cpp
-2022/01/18 | 2583 | dviware/dvisvgm/src/GFGlyphTracer.hpp
-2022/01/18 | 10879 | dviware/dvisvgm/src/GFReader.cpp
-2022/01/18 | 3967 | dviware/dvisvgm/src/GFReader.hpp
-2022/01/18 | 3610 | dviware/dvisvgm/src/GFTracer.cpp
-2022/01/18 | 2107 | dviware/dvisvgm/src/GFTracer.hpp
-2022/01/18 | 12128 | dviware/dvisvgm/src/Ghostscript.cpp
-2022/01/18 | 4044 | dviware/dvisvgm/src/Ghostscript.hpp
-2022/01/18 | 1537 | dviware/dvisvgm/src/Glyph.hpp
-2022/01/18 | 2941 | dviware/dvisvgm/src/GlyphTracerMessages.hpp
-2022/01/18 | 27848 | dviware/dvisvgm/src/GraphicsPath.hpp
-2022/01/18 | 3609 | dviware/dvisvgm/src/HashFunction.cpp
-2022/01/18 | 2550 | dviware/dvisvgm/src/HashFunction.hpp
-2022/01/18 | 3623 | dviware/dvisvgm/src/HtmlSpecialHandler.cpp
-2022/01/18 | 2214 | dviware/dvisvgm/src/HtmlSpecialHandler.hpp
-2022/01/18 | 9665 | dviware/dvisvgm/src/HyperlinkManager.cpp
-2022/01/18 | 3986 | dviware/dvisvgm/src/HyperlinkManager.hpp
-2016/09/03 | 10028 | dviware/dvisvgm/src/iapi.h
-2016/09/03 | 4595 | dviware/dvisvgm/src/ierrors.h
-2022/01/18 | 6950 | dviware/dvisvgm/src/ImageToSVG.cpp
-2022/01/18 | 4602 | dviware/dvisvgm/src/ImageToSVG.hpp
-2022/01/18 | 3788 | dviware/dvisvgm/src/InputBuffer.cpp
-2022/01/18 | 5059 | dviware/dvisvgm/src/InputBuffer.hpp
-2022/01/18 | 12240 | dviware/dvisvgm/src/InputReader.cpp
-2022/01/18 | 4184 | dviware/dvisvgm/src/InputReader.hpp
-2022/01/18 | 4491 | dviware/dvisvgm/src/JFM.cpp
-2022/01/18 | 2166 | dviware/dvisvgm/src/JFM.hpp
-2022/01/18 | 4728 | dviware/dvisvgm/src/Length.cpp
-2022/01/18 | 4138 | dviware/dvisvgm/src/Length.hpp
-2022/01/18 | 2014 | dviware/dvisvgm/src/macros.hpp
-2022/01/18 | 7207 | dviware/dvisvgm/src/Makefile.am
-2022/02/23 | 60275 | dviware/dvisvgm/src/Makefile.in
-2022/01/18 | 8495 | dviware/dvisvgm/src/MapLine.cpp
-2022/01/18 | 3089 | dviware/dvisvgm/src/MapLine.hpp
-2022/01/18 | 16862 | dviware/dvisvgm/src/Matrix.cpp
-2022/01/18 | 4152 | dviware/dvisvgm/src/Matrix.hpp
-2022/01/18 | 2704 | dviware/dvisvgm/src/MD5HashFunction.hpp
-2022/01/18 | 7509 | dviware/dvisvgm/src/Message.cpp
-2022/01/18 | 1779 | dviware/dvisvgm/src/MessageException.hpp
-2022/01/18 | 3541 | dviware/dvisvgm/src/Message.hpp
-2022/01/18 | 5814 | dviware/dvisvgm/src/MetafontWrapper.cpp
-2022/01/18 | 1876 | dviware/dvisvgm/src/MetafontWrapper.hpp
-2022/01/18 | 3776 | dviware/dvisvgm/src/MiKTeXCom.cpp
-2022/01/18 | 1894 | dviware/dvisvgm/src/MiKTeXCom.hpp
-2022/01/18 | 2062 | dviware/dvisvgm/src/NoPsSpecialHandler.cpp
-2022/01/18 | 1999 | dviware/dvisvgm/src/NoPsSpecialHandler.hpp
-2022/01/18 | 3927 | dviware/dvisvgm/src/NumericRanges.hpp
-2022/01/18 | 2575 | dviware/dvisvgm/src/Opacity.cpp
-2022/01/18 | 3720 | dviware/dvisvgm/src/Opacity.hpp
-2022/01/18 | 8119 | dviware/dvisvgm/src/optimizer/AttributeExtractor.cpp
-2022/01/18 | 2709 | dviware/dvisvgm/src/optimizer/AttributeExtractor.hpp
-2022/01/18 | 4213 | dviware/dvisvgm/src/optimizer/DependencyGraph.hpp
-2022/01/18 | 6745 | dviware/dvisvgm/src/optimizer/GroupCollapser.cpp
-2022/01/18 | 2181 | dviware/dvisvgm/src/optimizer/GroupCollapser.hpp
-2019/12/06 | 534 | dviware/dvisvgm/src/optimizer/Makefile.am
-2022/02/23 | 22194 | dviware/dvisvgm/src/optimizer/Makefile.in
-2022/01/18 | 1642 | dviware/dvisvgm/src/optimizer/OptimizerModule.hpp
-2022/01/18 | 3192 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.cpp
-2022/01/18 | 1644 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.hpp
-2022/01/18 | 4597 | dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
-2022/01/18 | 2297 | dviware/dvisvgm/src/optimizer/SVGOptimizer.hpp
-2022/01/18 | 4179 | dviware/dvisvgm/src/optimizer/TextSimplifier.cpp
-2022/01/18 | 1699 | dviware/dvisvgm/src/optimizer/TextSimplifier.hpp
-2022/01/18 | 6846 | dviware/dvisvgm/src/optimizer/TransformSimplifier.cpp
-2022/01/18 | 1856 | dviware/dvisvgm/src/optimizer/TransformSimplifier.hpp
-2022/01/18 | 2013 | dviware/dvisvgm/src/optimizer/WSNodeRemover.cpp
-2022/01/18 | 1687 | dviware/dvisvgm/src/optimizer/WSNodeRemover.hpp
-2022/01/18 | 2067 | dviware/dvisvgm/src/options.dtd
-2022/01/18 | 8986 | dviware/dvisvgm/src/options.xml
-2022/01/18 | 2829 | dviware/dvisvgm/src/PageRanges.cpp
-2022/01/18 | 1676 | dviware/dvisvgm/src/PageRanges.hpp
-2022/01/18 | 5332 | dviware/dvisvgm/src/PageSize.cpp
-2022/01/18 | 2092 | dviware/dvisvgm/src/PageSize.hpp
-2022/01/18 | 4043 | dviware/dvisvgm/src/Pair.hpp
-2022/01/18 | 4042 | dviware/dvisvgm/src/PapersizeSpecialHandler.cpp
-2022/01/18 | 2514 | dviware/dvisvgm/src/PapersizeSpecialHandler.hpp
-2022/01/18 | 13145 | dviware/dvisvgm/src/PathClipper.cpp
-2022/01/18 | 2432 | dviware/dvisvgm/src/PathClipper.hpp
-2022/01/18 | 15422 | dviware/dvisvgm/src/PDFParser.cpp
-2022/01/18 | 5841 | dviware/dvisvgm/src/PDFParser.hpp
-2022/01/18 | 10418 | dviware/dvisvgm/src/PdfSpecialHandler.cpp
-2022/01/18 | 2836 | dviware/dvisvgm/src/PdfSpecialHandler.hpp
-2022/01/18 | 2548 | dviware/dvisvgm/src/PDFToSVG.hpp
-2022/01/18 | 1913 | dviware/dvisvgm/src/PreScanDVIReader.cpp
-2022/01/18 | 1886 | dviware/dvisvgm/src/PreScanDVIReader.hpp
-2022/01/18 | 10029 | dviware/dvisvgm/src/Process.cpp
-2022/01/18 | 1815 | dviware/dvisvgm/src/Process.hpp
-2022/01/18 | 12876 | dviware/dvisvgm/src/psdefs.cpp
-2022/01/18 | 1806 | dviware/dvisvgm/src/PSFilter.hpp
-2022/01/18 | 17287 | dviware/dvisvgm/src/PSInterpreter.cpp
-2022/01/18 | 7037 | dviware/dvisvgm/src/PSInterpreter.hpp
-2022/02/22 | 6500 | dviware/dvisvgm/src/PSPattern.cpp
-2022/01/18 | 4059 | dviware/dvisvgm/src/PSPattern.hpp
-2022/01/18 | 4494 | dviware/dvisvgm/src/PSPreviewFilter.cpp
-2022/01/18 | 2605 | dviware/dvisvgm/src/PSPreviewFilter.hpp
-2022/02/22 | 49954 | dviware/dvisvgm/src/PsSpecialHandler.cpp
-2022/01/18 | 9935 | dviware/dvisvgm/src/PsSpecialHandler.hpp
-2022/01/18 | 7053 | dviware/dvisvgm/src/RangeMap.cpp
-2022/01/18 | 5180 | dviware/dvisvgm/src/RangeMap.hpp
-2022/01/18 | 2871 | dviware/dvisvgm/src/ShadingPatch.cpp
-2022/01/18 | 3150 | dviware/dvisvgm/src/ShadingPatch.hpp
-2022/01/18 | 4203 | dviware/dvisvgm/src/SignalHandler.cpp
-2022/01/18 | 2180 | dviware/dvisvgm/src/SignalHandler.hpp
-2022/01/18 | 4623 | dviware/dvisvgm/src/SourceInput.cpp
-2022/01/18 | 2388 | dviware/dvisvgm/src/SourceInput.hpp
-2022/01/18 | 4494 | dviware/dvisvgm/src/SpecialActions.hpp
-2022/01/18 | 2512 | dviware/dvisvgm/src/SpecialHandler.hpp
-2022/01/18 | 6511 | dviware/dvisvgm/src/SpecialManager.cpp
-2022/01/18 | 2958 | dviware/dvisvgm/src/SpecialManager.hpp
-2022/01/18 | 5021 | dviware/dvisvgm/src/StreamReader.cpp
-2022/01/18 | 2975 | dviware/dvisvgm/src/StreamReader.hpp
-2022/01/18 | 3768 | dviware/dvisvgm/src/StreamWriter.cpp
-2022/01/18 | 2196 | dviware/dvisvgm/src/StreamWriter.hpp
-2022/01/18 | 9256 | dviware/dvisvgm/src/Subfont.cpp
-2022/01/18 | 3521 | dviware/dvisvgm/src/Subfont.hpp
-2022/01/18 | 3676 | dviware/dvisvgm/src/SVGCharHandler.cpp
-2022/01/18 | 2024 | dviware/dvisvgm/src/SVGCharHandlerFactory.cpp
-2022/01/18 | 1645 | dviware/dvisvgm/src/SVGCharHandlerFactory.hpp
-2022/01/18 | 4471 | dviware/dvisvgm/src/SVGCharHandler.hpp
-2022/01/18 | 5814 | dviware/dvisvgm/src/SVGCharPathHandler.cpp
-2022/01/18 | 2455 | dviware/dvisvgm/src/SVGCharPathHandler.hpp
-2022/01/18 | 3959 | dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp
-2022/01/18 | 2041 | dviware/dvisvgm/src/SVGCharTspanTextHandler.hpp
-2022/01/18 | 4511 | dviware/dvisvgm/src/SVGElement.cpp
-2022/01/18 | 2803 | dviware/dvisvgm/src/SVGElement.hpp
-2022/01/18 | 6479 | dviware/dvisvgm/src/SVGOutput.cpp
-2022/01/18 | 3729 | dviware/dvisvgm/src/SVGOutput.hpp
-2022/01/18 | 2182 | dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp
-2022/01/18 | 1784 | dviware/dvisvgm/src/SVGSingleCharTextHandler.hpp
-2022/02/22 | 12106 | dviware/dvisvgm/src/SVGTree.cpp
-2022/01/18 | 4721 | dviware/dvisvgm/src/SVGTree.hpp
-2022/01/18 | 2005 | dviware/dvisvgm/src/System.cpp
-2022/01/18 | 1511 | dviware/dvisvgm/src/System.hpp
-2022/01/18 | 21248 | dviware/dvisvgm/src/TensorProductPatch.cpp
-2022/01/18 | 5274 | dviware/dvisvgm/src/TensorProductPatch.hpp
-2022/01/18 | 6113 | dviware/dvisvgm/src/Terminal.cpp
-2022/01/18 | 2284 | dviware/dvisvgm/src/Terminal.hpp
-2022/01/18 | 7079 | dviware/dvisvgm/src/TFM.cpp
-2022/01/18 | 3519 | dviware/dvisvgm/src/TFM.hpp
-2022/01/18 | 4761 | dviware/dvisvgm/src/ToUnicodeMap.cpp
-2022/01/18 | 1844 | dviware/dvisvgm/src/ToUnicodeMap.hpp
-2022/01/18 | 12940 | dviware/dvisvgm/src/TpicSpecialHandler.cpp
-2022/01/18 | 2613 | dviware/dvisvgm/src/TpicSpecialHandler.hpp
-2022/01/18 | 8354 | dviware/dvisvgm/src/TriangularPatch.cpp
-2022/01/18 | 3049 | dviware/dvisvgm/src/TriangularPatch.hpp
-2022/01/18 | 7108 | dviware/dvisvgm/src/TrueTypeFont.cpp
-2022/01/18 | 3275 | dviware/dvisvgm/src/TrueTypeFont.hpp
-2022/01/18 | 4167 | dviware/dvisvgm/src/TTFAutohint.cpp
-2022/01/18 | 2090 | dviware/dvisvgm/src/TTFAutohint.hpp
-2022/01/18 | 8002 | dviware/dvisvgm/src/Unicode.cpp
-2022/01/18 | 1860 | dviware/dvisvgm/src/Unicode.hpp
-2022/01/18 | 7162 | dviware/dvisvgm/src/utility.cpp
-2022/01/18 | 5772 | dviware/dvisvgm/src/utility.hpp
-2022/01/18 | 3439 | dviware/dvisvgm/src/VectorIterator.hpp
-2022/01/18 | 2949 | dviware/dvisvgm/src/VectorStream.hpp
-2022/01/18 | 1577 | dviware/dvisvgm/src/version.hpp.in
-2022/01/18 | 1911 | dviware/dvisvgm/src/VFActions.hpp
-2022/01/18 | 6570 | dviware/dvisvgm/src/VFReader.cpp
-2022/01/18 | 2443 | dviware/dvisvgm/src/VFReader.hpp
-2022/01/18 | 1604 | dviware/dvisvgm/src/windows.hpp
-2022/01/18 | 2237 | dviware/dvisvgm/src/XMLDocument.cpp
-2022/01/18 | 2053 | dviware/dvisvgm/src/XMLDocument.hpp
-2022/01/18 | 15641 | dviware/dvisvgm/src/XMLNode.cpp
-2022/01/18 | 9963 | dviware/dvisvgm/src/XMLNode.hpp
-2022/01/18 | 3036 | dviware/dvisvgm/src/XMLString.cpp
-2022/01/18 | 1887 | dviware/dvisvgm/src/XMLString.hpp
-2022/01/18 | 4735 | dviware/dvisvgm/src/XXHashFunction.hpp
-2022/01/18 | 5940 | dviware/dvisvgm/src/ZLibOutputStream.hpp
-2019/03/09 | 4642 | dviware/dvisvgm/test-driver
-2022/01/18 | 6075 | dviware/dvisvgm/tests/BezierTest.cpp
-2022/01/18 | 2704 | dviware/dvisvgm/tests/BitmapTest.cpp
-2022/02/22 | 6078 | dviware/dvisvgm/tests/BoundingBoxTest.cpp
-2022/01/18 | 3688 | dviware/dvisvgm/tests/CalculatorTest.cpp
-2022/01/18 | 1216 | dviware/dvisvgm/tests/check-conv
-2022/01/18 | 2974 | dviware/dvisvgm/tests/CMapManagerTest.cpp
-2022/01/18 | 4223 | dviware/dvisvgm/tests/CMapReaderTest.cpp
-2022/01/18 | 4980 | dviware/dvisvgm/tests/CMapTest.cpp
-2022/01/18 | 4702 | dviware/dvisvgm/tests/ColorSpecialTest.cpp
-2022/01/18 | 6942 | dviware/dvisvgm/tests/ColorTest.cpp
-2022/01/18 | 8439 | dviware/dvisvgm/tests/CommandLineTest.cpp
-2016/09/03 | 2508 | dviware/dvisvgm/tests/data/cidjmgr0-h.tfm
-2016/09/03 | 24244 | dviware/dvisvgm/tests/data/cmr10.600gf
-2017/11/23 | 35752 | dviware/dvisvgm/tests/data/cmr10.pfb
-2016/09/03 | 1296 | dviware/dvisvgm/tests/data/cmr10.tfm
-2016/09/03 | 18351 | dviware/dvisvgm/tests/data/dvipdfm_test.map
-2016/09/03 | 15594 | dviware/dvisvgm/tests/data/dvips_test.map
-2016/09/03 | 2072 | dviware/dvisvgm/tests/data/frktest.dvi
-2016/09/03 | 337419 | dviware/dvisvgm/tests/data/frktest-nf-cmp.svg
-2016/09/03 | 163979 | dviware/dvisvgm/tests/data/frktest-wf-cmp.svg
-2021/05/26 | 63012 | dviware/dvisvgm/tests/data/lmmono12-regular.otf
-2022/01/18 | 452 | dviware/dvisvgm/tests/data/Makefile.am
-2022/02/23 | 13740 | dviware/dvisvgm/tests/data/Makefile.in
-2016/09/03 | 1207 | dviware/dvisvgm/tests/data/ot1.cmap
-2016/09/03 | 1320 | dviware/dvisvgm/tests/data/sample.dvi
-2016/09/03 | 60654 | dviware/dvisvgm/tests/data/sample-nf-cmp.svg
-2016/09/03 | 17637 | dviware/dvisvgm/tests/data/sample.sfd
-2017/11/23 | 1016 | dviware/dvisvgm/tests/data/sample_v2.dvi
-2017/11/23 | 256 | dviware/dvisvgm/tests/data/sample_v3.dvi
-2016/09/03 | 46985 | dviware/dvisvgm/tests/data/sample-wf-cmp.svg
-2022/01/18 | 2512 | dviware/dvisvgm/tests/DependencyGraphTest.cpp
-2022/01/18 | 2773 | dviware/dvisvgm/tests/DirectoryTest.cpp
-2022/01/18 | 33210 | dviware/dvisvgm/tests/DVIReaderTest.cpp
-2022/02/22 | 13291 | dviware/dvisvgm/tests/DvisvgmSpecialTest.cpp
-2022/01/18 | 5850 | dviware/dvisvgm/tests/EllipticalArcTest.cpp
-2022/02/22 | 7489 | dviware/dvisvgm/tests/EmSpecialTest.cpp
-2022/01/18 | 3124 | dviware/dvisvgm/tests/FileFinderTest.cpp
-2022/01/18 | 4004 | dviware/dvisvgm/tests/FilePathTest.cpp
-2022/01/18 | 3899 | dviware/dvisvgm/tests/FileSystemTest.cpp
-2022/01/18 | 5070 | dviware/dvisvgm/tests/FontCacheTest.cpp
-2022/01/18 | 3875 | dviware/dvisvgm/tests/FontManagerTest.cpp
-2022/01/18 | 2850 | dviware/dvisvgm/tests/FontMapTest.cpp
-2022/01/18 | 2026 | dviware/dvisvgm/tests/genhashcheck.py
-2022/01/18 | 4645 | dviware/dvisvgm/tests/GFGlyphTracerTest.cpp
-2022/01/18 | 12993 | dviware/dvisvgm/tests/GFReaderTest.cpp
-2022/01/18 | 2083 | dviware/dvisvgm/tests/GhostscriptTest.cpp
-2022/01/18 | 7230 | dviware/dvisvgm/tests/GraphicsPathTest.cpp
-2021/12/02 | 14647 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-death-test.h
-2021/12/02 | 94331 | dviware/dvisvgm/tests/gtest/include/gtest/gtest.h
-2021/12/02 | 33126 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-matchers.h
-2021/12/02 | 8045 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-message.h
-2021/12/02 | 22588 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-param-test.h
-2021/12/02 | 14865 | dviware/dvisvgm/tests/gtest/include/gtest/gtest_pred_impl.h
-2021/12/02 | 35935 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-printers.h
-2021/12/02 | 2534 | dviware/dvisvgm/tests/gtest/include/gtest/gtest_prod.h
-2021/12/02 | 10112 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-spi.h
-2021/12/02 | 6868 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-test-part.h
-2021/12/02 | 15881 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-typed-test.h
-2021/12/02 | 1858 | dviware/dvisvgm/tests/gtest/include/gtest/internal/custom/gtest.h
-2021/12/02 | 1873 | dviware/dvisvgm/tests/gtest/include/gtest/internal/custom/gtest-port.h
-2021/12/02 | 2094 | dviware/dvisvgm/tests/gtest/include/gtest/internal/custom/gtest-printers.h
-2021/12/02 | 13451 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-death-test-internal.h
-2021/12/02 | 9780 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-filepath.h
-2021/12/02 | 61622 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-internal.h
-2019/03/09 | 8401 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-linked_ptr.h
-2019/03/09 | 218498 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-param-util-generated.h
-2021/12/02 | 35140 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-param-util.h
-2021/12/02 | 4157 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-port-arch.h
-2021/12/02 | 85257 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-port.h
-2021/12/02 | 7228 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-string.h
-2019/03/09 | 28605 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-tuple.h
-2021/12/02 | 6174 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-type-util.h
-2017/04/14 | 1475 | dviware/dvisvgm/tests/gtest/LICENSE
-2019/10/25 | 2160 | dviware/dvisvgm/tests/gtest/src/gtest-all.cc
-2021/12/02 | 248773 | dviware/dvisvgm/tests/gtest/src/gtest.cc
-2021/12/02 | 62109 | dviware/dvisvgm/tests/gtest/src/gtest-death-test.cc
-2021/12/02 | 14081 | dviware/dvisvgm/tests/gtest/src/gtest-filepath.cc
-2021/12/02 | 47373 | dviware/dvisvgm/tests/gtest/src/gtest-internal-inl.h
-2021/12/02 | 1968 | dviware/dvisvgm/tests/gtest/src/gtest_main.cc
-2021/12/02 | 3723 | dviware/dvisvgm/tests/gtest/src/gtest-matchers.cc
-2021/12/02 | 48099 | dviware/dvisvgm/tests/gtest/src/gtest-port.cc
-2021/12/02 | 17269 | dviware/dvisvgm/tests/gtest/src/gtest-printers.cc
-2021/12/02 | 4126 | dviware/dvisvgm/tests/gtest/src/gtest-test-part.cc
-2021/12/02 | 3780 | dviware/dvisvgm/tests/gtest/src/gtest-typed-test.cc
-2022/01/18 | 5568 | dviware/dvisvgm/tests/HashFunctionTest.cpp
-2022/01/18 | 4034 | dviware/dvisvgm/tests/JFMReaderTest.cpp
-2022/01/18 | 7803 | dviware/dvisvgm/tests/LengthTest.cpp
-2022/01/18 | 15639 | dviware/dvisvgm/tests/Makefile.am
-2022/02/23 | 256038 | dviware/dvisvgm/tests/Makefile.in
-2022/01/18 | 5795 | dviware/dvisvgm/tests/MapLineTest.cpp
-2022/01/18 | 8332 | dviware/dvisvgm/tests/MatrixTest.cpp
-2022/01/18 | 2315 | dviware/dvisvgm/tests/MessageExceptionTest.cpp
-2022/01/18 | 4799 | dviware/dvisvgm/tests/normalize.xsl
-2022/01/18 | 4640 | dviware/dvisvgm/tests/PageRagesTest.cpp
-2022/01/18 | 2398 | dviware/dvisvgm/tests/PageSizeTest.cpp
-2022/01/18 | 4193 | dviware/dvisvgm/tests/PairTest.cpp
-2022/02/22 | 4926 | dviware/dvisvgm/tests/PapersizeSpecialTest.cpp
-2022/01/18 | 8452 | dviware/dvisvgm/tests/PDFParserTest.cpp
-2022/01/18 | 9574 | dviware/dvisvgm/tests/PSInterpreterTest.cpp
-2022/01/18 | 6392 | dviware/dvisvgm/tests/RangeMapTest.cpp
-2022/01/18 | 3629 | dviware/dvisvgm/tests/ShadingPatchTest.cpp
-2022/01/18 | 3801 | dviware/dvisvgm/tests/SpecialManagerTest.cpp
-2022/01/18 | 5392 | dviware/dvisvgm/tests/SplittedCharInputBufferTest.cpp
-2022/01/18 | 7499 | dviware/dvisvgm/tests/StreamInputBufferTest.cpp
-2022/01/18 | 4178 | dviware/dvisvgm/tests/StreamReaderTest.cpp
-2022/01/18 | 3420 | dviware/dvisvgm/tests/StreamWriterTest.cpp
-2022/01/18 | 4460 | dviware/dvisvgm/tests/StringMatcherTest.cpp
-2022/01/18 | 3363 | dviware/dvisvgm/tests/SubfontTest.cpp
-2022/01/18 | 6521 | dviware/dvisvgm/tests/SVGOutputTest.cpp
-2022/01/18 | 12810 | dviware/dvisvgm/tests/TensorProductPatchTest.cpp
-2022/01/18 | 1999 | dviware/dvisvgm/tests/testmain.cpp
-2021/12/02 | 198 | dviware/dvisvgm/tests/testutil.hpp
-2022/01/18 | 3348 | dviware/dvisvgm/tests/TFMReaderTest.cpp
-2022/01/18 | 2501 | dviware/dvisvgm/tests/ToUnicodeMapTest.cpp
-2022/01/18 | 13772 | dviware/dvisvgm/tests/TpicSpecialTest.cpp
-2022/01/18 | 7066 | dviware/dvisvgm/tests/TriangularPatchTest.cpp
-2022/01/18 | 6084 | dviware/dvisvgm/tests/UnicodeTest.cpp
-2022/01/18 | 5194 | dviware/dvisvgm/tests/UtilityTest.cpp
-2022/01/18 | 3785 | dviware/dvisvgm/tests/VectorIteratorTest.cpp
-2022/01/18 | 2276 | dviware/dvisvgm/tests/VectorStreamTest.cpp
-2022/01/18 | 15061 | dviware/dvisvgm/tests/XMLNodeTest.cpp
-2022/01/18 | 3034 | dviware/dvisvgm/tests/XMLStringTest.cpp
-2022/02/23 | 3568424 | dviware/dvisvgm.zip
+2021/08/13 | 324151 | dviware/dvisvgm/ltmain.sh
+2021/08/13 | 2105 | dviware/dvisvgm/m4/ax_check_compile_flag.m4
+2021/08/13 | 11836 | dviware/dvisvgm/m4/ax_code_coverage.m4
+2021/08/13 | 19816 | dviware/dvisvgm/m4/ax_cxx_compile_stdcxx.m4
+2021/08/13 | 305862 | dviware/dvisvgm/m4/libtool.m4
+2021/08/13 | 6140 | dviware/dvisvgm/m4/lt~obsolete.m4
+2021/08/13 | 14514 | dviware/dvisvgm/m4/ltoptions.m4
+2021/08/13 | 4384 | dviware/dvisvgm/m4/ltsugar.m4
+2021/08/13 | 699 | dviware/dvisvgm/m4/ltversion.m4
+2021/08/13 | 95 | dviware/dvisvgm/m4/Makefile.am
+2022/02/27 | 13502 | dviware/dvisvgm/m4/Makefile.in
+2022/01/23 | 744 | dviware/dvisvgm/Makefile.am
+2022/02/27 | 27920 | dviware/dvisvgm/Makefile.in
+2021/08/13 | 6878 | dviware/dvisvgm/missing
+2022/02/27 | 39402 | dviware/dvisvgm/NEWS
+2022/01/23 | 6173 | dviware/dvisvgm/README
+2022/01/23 | 158418 | dviware/dvisvgm/src/AGLTable.hpp
+2022/01/23 | 15777 | dviware/dvisvgm/src/BasicDVIReader.cpp
+2022/01/23 | 5248 | dviware/dvisvgm/src/BasicDVIReader.hpp
+2022/01/23 | 9132 | dviware/dvisvgm/src/Bezier.cpp
+2022/01/23 | 2502 | dviware/dvisvgm/src/Bezier.hpp
+2022/01/23 | 3164 | dviware/dvisvgm/src/BgColorSpecialHandler.cpp
+2022/01/23 | 2228 | dviware/dvisvgm/src/BgColorSpecialHandler.hpp
+2022/01/23 | 4889 | dviware/dvisvgm/src/Bitmap.cpp
+2022/01/23 | 4166 | dviware/dvisvgm/src/Bitmap.hpp
+2022/02/26 | 8299 | dviware/dvisvgm/src/BoundingBox.cpp
+2022/02/26 | 3970 | dviware/dvisvgm/src/BoundingBox.hpp
+2022/01/23 | 6779 | dviware/dvisvgm/src/Calculator.cpp
+2022/01/23 | 2365 | dviware/dvisvgm/src/Calculator.hpp
+2022/01/23 | 2000 | dviware/dvisvgm/src/Character.hpp
+2022/01/23 | 2040 | dviware/dvisvgm/src/CharMapID.cpp
+2022/01/23 | 2541 | dviware/dvisvgm/src/CharMapID.hpp
+2022/01/23 | 8299 | dviware/dvisvgm/src/CLCommandLine.cpp
+2022/01/23 | 2891 | dviware/dvisvgm/src/CLCommandLine.hpp
+2022/01/23 | 6531 | dviware/dvisvgm/src/CLOption.hpp
+2022/01/23 | 3539 | dviware/dvisvgm/src/CMap.cpp
+2022/01/23 | 4475 | dviware/dvisvgm/src/CMap.hpp
+2022/01/23 | 5299 | dviware/dvisvgm/src/CMapManager.cpp
+2022/01/23 | 2221 | dviware/dvisvgm/src/CMapManager.hpp
+2022/01/23 | 8332 | dviware/dvisvgm/src/CMapReader.cpp
+2022/01/23 | 3080 | dviware/dvisvgm/src/CMapReader.hpp
+2022/01/23 | 19513 | dviware/dvisvgm/src/Color.cpp
+2022/01/23 | 4778 | dviware/dvisvgm/src/Color.hpp
+2022/01/23 | 4118 | dviware/dvisvgm/src/ColorSpecialHandler.cpp
+2022/01/23 | 2118 | dviware/dvisvgm/src/ColorSpecialHandler.hpp
+2022/02/26 | 7644 | dviware/dvisvgm/src/CommandLine.hpp
+2022/01/23 | 3410 | dviware/dvisvgm/src/Directory.cpp
+2022/01/23 | 2053 | dviware/dvisvgm/src/Directory.hpp
+2022/01/23 | 2290 | dviware/dvisvgm/src/DLLoader.cpp
+2022/01/23 | 2539 | dviware/dvisvgm/src/DLLoader.hpp
+2022/01/23 | 2334 | dviware/dvisvgm/src/DVIActions.hpp
+2022/01/23 | 24848 | dviware/dvisvgm/src/DVIReader.cpp
+2022/01/23 | 8202 | dviware/dvisvgm/src/DVIReader.hpp
+2022/01/23 | 18110 | dviware/dvisvgm/src/dvisvgm.cpp
+2022/02/26 | 19533 | dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
+2022/01/23 | 4603 | dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp
+2022/01/23 | 12271 | dviware/dvisvgm/src/DVIToSVGActions.cpp
+2022/01/23 | 5087 | dviware/dvisvgm/src/DVIToSVGActions.hpp
+2022/01/23 | 21247 | dviware/dvisvgm/src/DVIToSVG.cpp
+2022/01/23 | 5630 | dviware/dvisvgm/src/DVIToSVG.hpp
+2022/01/23 | 10946 | dviware/dvisvgm/src/EllipticalArc.cpp
+2022/01/23 | 3100 | dviware/dvisvgm/src/EllipticalArc.hpp
+2022/01/23 | 9740 | dviware/dvisvgm/src/EmSpecialHandler.cpp
+2022/01/23 | 2930 | dviware/dvisvgm/src/EmSpecialHandler.hpp
+2022/01/23 | 3935 | dviware/dvisvgm/src/EncFile.cpp
+2022/01/23 | 2116 | dviware/dvisvgm/src/EncFile.hpp
+2022/01/23 | 3776 | dviware/dvisvgm/src/EPSFile.cpp
+2022/01/23 | 2051 | dviware/dvisvgm/src/EPSFile.hpp
+2022/01/23 | 2098 | dviware/dvisvgm/src/EPSToSVG.hpp
+2022/01/23 | 3098 | dviware/dvisvgm/src/ffwrapper.c
+2022/01/23 | 1657 | dviware/dvisvgm/src/ffwrapper.h
+2022/01/23 | 9824 | dviware/dvisvgm/src/FileFinder.cpp
+2022/01/23 | 2586 | dviware/dvisvgm/src/FileFinder.hpp
+2022/01/23 | 10407 | dviware/dvisvgm/src/FilePath.cpp
+2022/01/23 | 3434 | dviware/dvisvgm/src/FilePath.hpp
+2022/01/23 | 11115 | dviware/dvisvgm/src/FileSystem.cpp
+2022/01/23 | 3168 | dviware/dvisvgm/src/FileSystem.hpp
+2022/01/23 | 1821 | dviware/dvisvgm/src/FixWord.hpp
+2022/01/23 | 12504 | dviware/dvisvgm/src/FontCache.cpp
+2022/01/23 | 2857 | dviware/dvisvgm/src/FontCache.hpp
+2022/01/23 | 21792 | dviware/dvisvgm/src/Font.cpp
+2022/01/23 | 3488 | dviware/dvisvgm/src/FontEncoding.cpp
+2022/01/23 | 2795 | dviware/dvisvgm/src/FontEncoding.hpp
+2022/01/23 | 14146 | dviware/dvisvgm/src/FontEngine.cpp
+2022/01/23 | 3393 | dviware/dvisvgm/src/FontEngine.hpp
+2022/01/23 | 18771 | dviware/dvisvgm/src/Font.hpp
+2022/01/23 | 12225 | dviware/dvisvgm/src/FontManager.cpp
+2022/01/23 | 3939 | dviware/dvisvgm/src/FontManager.hpp
+2022/01/23 | 9307 | dviware/dvisvgm/src/FontMap.cpp
+2022/01/23 | 2909 | dviware/dvisvgm/src/FontMap.hpp
+2022/01/23 | 1984 | dviware/dvisvgm/src/FontMetrics.cpp
+2022/01/23 | 3441 | dviware/dvisvgm/src/FontMetrics.hpp
+2022/01/23 | 1805 | dviware/dvisvgm/src/FontStyle.hpp
+2022/01/23 | 10107 | dviware/dvisvgm/src/FontWriter.cpp
+2022/01/23 | 2742 | dviware/dvisvgm/src/FontWriter.hpp
+2022/01/23 | 2757 | dviware/dvisvgm/src/GFGlyphTracer.cpp
+2022/01/23 | 2583 | dviware/dvisvgm/src/GFGlyphTracer.hpp
+2022/01/23 | 10879 | dviware/dvisvgm/src/GFReader.cpp
+2022/01/23 | 3967 | dviware/dvisvgm/src/GFReader.hpp
+2022/01/23 | 3610 | dviware/dvisvgm/src/GFTracer.cpp
+2022/01/23 | 2107 | dviware/dvisvgm/src/GFTracer.hpp
+2022/01/23 | 12128 | dviware/dvisvgm/src/Ghostscript.cpp
+2022/01/23 | 4044 | dviware/dvisvgm/src/Ghostscript.hpp
+2022/01/23 | 1537 | dviware/dvisvgm/src/Glyph.hpp
+2022/01/23 | 2941 | dviware/dvisvgm/src/GlyphTracerMessages.hpp
+2022/01/23 | 27848 | dviware/dvisvgm/src/GraphicsPath.hpp
+2022/01/23 | 3609 | dviware/dvisvgm/src/HashFunction.cpp
+2022/01/23 | 2550 | dviware/dvisvgm/src/HashFunction.hpp
+2022/01/23 | 3623 | dviware/dvisvgm/src/HtmlSpecialHandler.cpp
+2022/01/23 | 2214 | dviware/dvisvgm/src/HtmlSpecialHandler.hpp
+2022/01/23 | 9665 | dviware/dvisvgm/src/HyperlinkManager.cpp
+2022/01/23 | 3986 | dviware/dvisvgm/src/HyperlinkManager.hpp
+2021/08/13 | 10028 | dviware/dvisvgm/src/iapi.h
+2021/08/13 | 4595 | dviware/dvisvgm/src/ierrors.h
+2022/01/23 | 6950 | dviware/dvisvgm/src/ImageToSVG.cpp
+2022/01/23 | 4602 | dviware/dvisvgm/src/ImageToSVG.hpp
+2022/01/23 | 3788 | dviware/dvisvgm/src/InputBuffer.cpp
+2022/01/23 | 5059 | dviware/dvisvgm/src/InputBuffer.hpp
+2022/01/23 | 12240 | dviware/dvisvgm/src/InputReader.cpp
+2022/01/23 | 4184 | dviware/dvisvgm/src/InputReader.hpp
+2022/01/23 | 4491 | dviware/dvisvgm/src/JFM.cpp
+2022/01/23 | 2166 | dviware/dvisvgm/src/JFM.hpp
+2022/01/23 | 4728 | dviware/dvisvgm/src/Length.cpp
+2022/01/23 | 4138 | dviware/dvisvgm/src/Length.hpp
+2022/01/23 | 2014 | dviware/dvisvgm/src/macros.hpp
+2022/01/23 | 7207 | dviware/dvisvgm/src/Makefile.am
+2022/02/27 | 60275 | dviware/dvisvgm/src/Makefile.in
+2022/01/23 | 8495 | dviware/dvisvgm/src/MapLine.cpp
+2022/01/23 | 3089 | dviware/dvisvgm/src/MapLine.hpp
+2022/01/23 | 16862 | dviware/dvisvgm/src/Matrix.cpp
+2022/01/23 | 4152 | dviware/dvisvgm/src/Matrix.hpp
+2022/01/23 | 2704 | dviware/dvisvgm/src/MD5HashFunction.hpp
+2022/01/23 | 7509 | dviware/dvisvgm/src/Message.cpp
+2022/01/23 | 1779 | dviware/dvisvgm/src/MessageException.hpp
+2022/01/23 | 3541 | dviware/dvisvgm/src/Message.hpp
+2022/01/23 | 5814 | dviware/dvisvgm/src/MetafontWrapper.cpp
+2022/01/23 | 1876 | dviware/dvisvgm/src/MetafontWrapper.hpp
+2022/01/23 | 3776 | dviware/dvisvgm/src/MiKTeXCom.cpp
+2022/01/23 | 1894 | dviware/dvisvgm/src/MiKTeXCom.hpp
+2022/01/23 | 2062 | dviware/dvisvgm/src/NoPsSpecialHandler.cpp
+2022/01/23 | 1999 | dviware/dvisvgm/src/NoPsSpecialHandler.hpp
+2022/01/23 | 3927 | dviware/dvisvgm/src/NumericRanges.hpp
+2022/01/23 | 2575 | dviware/dvisvgm/src/Opacity.cpp
+2022/01/23 | 3720 | dviware/dvisvgm/src/Opacity.hpp
+2022/01/23 | 8119 | dviware/dvisvgm/src/optimizer/AttributeExtractor.cpp
+2022/01/23 | 2709 | dviware/dvisvgm/src/optimizer/AttributeExtractor.hpp
+2022/02/26 | 3928 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp
+2022/02/26 | 1979 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp
+2022/01/23 | 4213 | dviware/dvisvgm/src/optimizer/DependencyGraph.hpp
+2022/01/23 | 6745 | dviware/dvisvgm/src/optimizer/GroupCollapser.cpp
+2022/01/23 | 2181 | dviware/dvisvgm/src/optimizer/GroupCollapser.hpp
+2022/02/27 | 634 | dviware/dvisvgm/src/optimizer/Makefile.am
+2022/02/27 | 23211 | dviware/dvisvgm/src/optimizer/Makefile.in
+2022/01/23 | 1642 | dviware/dvisvgm/src/optimizer/OptimizerModule.hpp
+2022/01/23 | 3192 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.cpp
+2022/01/23 | 1644 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.hpp
+2022/02/26 | 4738 | dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
+2022/01/23 | 2297 | dviware/dvisvgm/src/optimizer/SVGOptimizer.hpp
+2022/01/23 | 4179 | dviware/dvisvgm/src/optimizer/TextSimplifier.cpp
+2022/01/23 | 1699 | dviware/dvisvgm/src/optimizer/TextSimplifier.hpp
+2022/01/23 | 6846 | dviware/dvisvgm/src/optimizer/TransformSimplifier.cpp
+2022/01/23 | 1856 | dviware/dvisvgm/src/optimizer/TransformSimplifier.hpp
+2022/01/23 | 2013 | dviware/dvisvgm/src/optimizer/WSNodeRemover.cpp
+2022/01/23 | 1687 | dviware/dvisvgm/src/optimizer/WSNodeRemover.hpp
+2022/01/23 | 2067 | dviware/dvisvgm/src/options.dtd
+2022/01/23 | 8986 | dviware/dvisvgm/src/options.xml
+2022/01/23 | 2829 | dviware/dvisvgm/src/PageRanges.cpp
+2022/01/23 | 1676 | dviware/dvisvgm/src/PageRanges.hpp
+2022/01/23 | 5332 | dviware/dvisvgm/src/PageSize.cpp
+2022/01/23 | 2092 | dviware/dvisvgm/src/PageSize.hpp
+2022/01/23 | 4043 | dviware/dvisvgm/src/Pair.hpp
+2022/01/23 | 4042 | dviware/dvisvgm/src/PapersizeSpecialHandler.cpp
+2022/01/23 | 2514 | dviware/dvisvgm/src/PapersizeSpecialHandler.hpp
+2022/01/23 | 13145 | dviware/dvisvgm/src/PathClipper.cpp
+2022/01/23 | 2432 | dviware/dvisvgm/src/PathClipper.hpp
+2022/01/23 | 15422 | dviware/dvisvgm/src/PDFParser.cpp
+2022/01/23 | 5841 | dviware/dvisvgm/src/PDFParser.hpp
+2022/01/23 | 10418 | dviware/dvisvgm/src/PdfSpecialHandler.cpp
+2022/01/23 | 2836 | dviware/dvisvgm/src/PdfSpecialHandler.hpp
+2022/01/23 | 2548 | dviware/dvisvgm/src/PDFToSVG.hpp
+2022/01/23 | 1913 | dviware/dvisvgm/src/PreScanDVIReader.cpp
+2022/01/23 | 1886 | dviware/dvisvgm/src/PreScanDVIReader.hpp
+2022/01/23 | 10029 | dviware/dvisvgm/src/Process.cpp
+2022/01/23 | 1815 | dviware/dvisvgm/src/Process.hpp
+2022/01/23 | 12876 | dviware/dvisvgm/src/psdefs.cpp
+2022/01/23 | 1806 | dviware/dvisvgm/src/PSFilter.hpp
+2022/01/23 | 17287 | dviware/dvisvgm/src/PSInterpreter.cpp
+2022/01/23 | 7037 | dviware/dvisvgm/src/PSInterpreter.hpp
+2022/02/26 | 6500 | dviware/dvisvgm/src/PSPattern.cpp
+2022/01/23 | 4059 | dviware/dvisvgm/src/PSPattern.hpp
+2022/01/23 | 4494 | dviware/dvisvgm/src/PSPreviewFilter.cpp
+2022/01/23 | 2605 | dviware/dvisvgm/src/PSPreviewFilter.hpp
+2022/02/26 | 50001 | dviware/dvisvgm/src/PsSpecialHandler.cpp
+2022/02/26 | 10025 | dviware/dvisvgm/src/PsSpecialHandler.hpp
+2022/01/23 | 7053 | dviware/dvisvgm/src/RangeMap.cpp
+2022/01/23 | 5180 | dviware/dvisvgm/src/RangeMap.hpp
+2022/01/23 | 2871 | dviware/dvisvgm/src/ShadingPatch.cpp
+2022/01/23 | 3150 | dviware/dvisvgm/src/ShadingPatch.hpp
+2022/01/23 | 4203 | dviware/dvisvgm/src/SignalHandler.cpp
+2022/01/23 | 2180 | dviware/dvisvgm/src/SignalHandler.hpp
+2022/01/23 | 4623 | dviware/dvisvgm/src/SourceInput.cpp
+2022/01/23 | 2388 | dviware/dvisvgm/src/SourceInput.hpp
+2022/01/23 | 4494 | dviware/dvisvgm/src/SpecialActions.hpp
+2022/01/23 | 2512 | dviware/dvisvgm/src/SpecialHandler.hpp
+2022/01/23 | 6511 | dviware/dvisvgm/src/SpecialManager.cpp
+2022/01/23 | 2958 | dviware/dvisvgm/src/SpecialManager.hpp
+2022/01/23 | 5021 | dviware/dvisvgm/src/StreamReader.cpp
+2022/01/23 | 2975 | dviware/dvisvgm/src/StreamReader.hpp
+2022/01/23 | 3768 | dviware/dvisvgm/src/StreamWriter.cpp
+2022/01/23 | 2196 | dviware/dvisvgm/src/StreamWriter.hpp
+2022/01/23 | 9256 | dviware/dvisvgm/src/Subfont.cpp
+2022/01/23 | 3521 | dviware/dvisvgm/src/Subfont.hpp
+2022/01/23 | 3676 | dviware/dvisvgm/src/SVGCharHandler.cpp
+2022/01/23 | 2024 | dviware/dvisvgm/src/SVGCharHandlerFactory.cpp
+2022/01/23 | 1645 | dviware/dvisvgm/src/SVGCharHandlerFactory.hpp
+2022/01/23 | 4471 | dviware/dvisvgm/src/SVGCharHandler.hpp
+2022/01/23 | 5814 | dviware/dvisvgm/src/SVGCharPathHandler.cpp
+2022/01/23 | 2455 | dviware/dvisvgm/src/SVGCharPathHandler.hpp
+2022/01/23 | 3959 | dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp
+2022/01/23 | 2041 | dviware/dvisvgm/src/SVGCharTspanTextHandler.hpp
+2022/01/23 | 4511 | dviware/dvisvgm/src/SVGElement.cpp
+2022/01/23 | 2803 | dviware/dvisvgm/src/SVGElement.hpp
+2022/01/23 | 6479 | dviware/dvisvgm/src/SVGOutput.cpp
+2022/01/23 | 3729 | dviware/dvisvgm/src/SVGOutput.hpp
+2022/01/23 | 2182 | dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp
+2022/01/23 | 1784 | dviware/dvisvgm/src/SVGSingleCharTextHandler.hpp
+2022/02/26 | 12106 | dviware/dvisvgm/src/SVGTree.cpp
+2022/01/23 | 4721 | dviware/dvisvgm/src/SVGTree.hpp
+2022/01/23 | 2005 | dviware/dvisvgm/src/System.cpp
+2022/01/23 | 1511 | dviware/dvisvgm/src/System.hpp
+2022/01/23 | 21248 | dviware/dvisvgm/src/TensorProductPatch.cpp
+2022/01/23 | 5274 | dviware/dvisvgm/src/TensorProductPatch.hpp
+2022/01/23 | 6113 | dviware/dvisvgm/src/Terminal.cpp
+2022/01/23 | 2284 | dviware/dvisvgm/src/Terminal.hpp
+2022/01/23 | 7079 | dviware/dvisvgm/src/TFM.cpp
+2022/01/23 | 3519 | dviware/dvisvgm/src/TFM.hpp
+2022/01/23 | 4761 | dviware/dvisvgm/src/ToUnicodeMap.cpp
+2022/01/23 | 1844 | dviware/dvisvgm/src/ToUnicodeMap.hpp
+2022/01/23 | 12940 | dviware/dvisvgm/src/TpicSpecialHandler.cpp
+2022/01/23 | 2613 | dviware/dvisvgm/src/TpicSpecialHandler.hpp
+2022/01/23 | 8354 | dviware/dvisvgm/src/TriangularPatch.cpp
+2022/01/23 | 3049 | dviware/dvisvgm/src/TriangularPatch.hpp
+2022/01/23 | 7108 | dviware/dvisvgm/src/TrueTypeFont.cpp
+2022/01/23 | 3275 | dviware/dvisvgm/src/TrueTypeFont.hpp
+2022/01/23 | 4167 | dviware/dvisvgm/src/TTFAutohint.cpp
+2022/01/23 | 2090 | dviware/dvisvgm/src/TTFAutohint.hpp
+2022/01/23 | 8002 | dviware/dvisvgm/src/Unicode.cpp
+2022/01/23 | 1860 | dviware/dvisvgm/src/Unicode.hpp
+2022/01/23 | 7162 | dviware/dvisvgm/src/utility.cpp
+2022/01/23 | 5772 | dviware/dvisvgm/src/utility.hpp
+2022/01/23 | 3439 | dviware/dvisvgm/src/VectorIterator.hpp
+2022/01/23 | 2949 | dviware/dvisvgm/src/VectorStream.hpp
+2022/01/23 | 1577 | dviware/dvisvgm/src/version.hpp.in
+2022/01/23 | 1911 | dviware/dvisvgm/src/VFActions.hpp
+2022/01/23 | 6570 | dviware/dvisvgm/src/VFReader.cpp
+2022/01/23 | 2443 | dviware/dvisvgm/src/VFReader.hpp
+2022/01/23 | 1604 | dviware/dvisvgm/src/windows.hpp
+2022/01/23 | 2237 | dviware/dvisvgm/src/XMLDocument.cpp
+2022/01/23 | 2053 | dviware/dvisvgm/src/XMLDocument.hpp
+2022/01/23 | 15641 | dviware/dvisvgm/src/XMLNode.cpp
+2022/01/23 | 9963 | dviware/dvisvgm/src/XMLNode.hpp
+2022/01/23 | 3036 | dviware/dvisvgm/src/XMLString.cpp
+2022/01/23 | 1887 | dviware/dvisvgm/src/XMLString.hpp
+2022/01/23 | 4735 | dviware/dvisvgm/src/XXHashFunction.hpp
+2022/01/23 | 5940 | dviware/dvisvgm/src/ZLibOutputStream.hpp
+2021/08/13 | 4642 | dviware/dvisvgm/test-driver
+2022/01/23 | 6075 | dviware/dvisvgm/tests/BezierTest.cpp
+2022/01/23 | 2704 | dviware/dvisvgm/tests/BitmapTest.cpp
+2022/02/26 | 6078 | dviware/dvisvgm/tests/BoundingBoxTest.cpp
+2022/01/23 | 3688 | dviware/dvisvgm/tests/CalculatorTest.cpp
+2022/01/23 | 1216 | dviware/dvisvgm/tests/check-conv
+2022/01/23 | 2974 | dviware/dvisvgm/tests/CMapManagerTest.cpp
+2022/01/23 | 4223 | dviware/dvisvgm/tests/CMapReaderTest.cpp
+2022/01/23 | 4980 | dviware/dvisvgm/tests/CMapTest.cpp
+2022/01/23 | 4702 | dviware/dvisvgm/tests/ColorSpecialTest.cpp
+2022/01/23 | 6942 | dviware/dvisvgm/tests/ColorTest.cpp
+2022/01/23 | 8439 | dviware/dvisvgm/tests/CommandLineTest.cpp
+2021/08/13 | 2508 | dviware/dvisvgm/tests/data/cidjmgr0-h.tfm
+2021/08/13 | 24244 | dviware/dvisvgm/tests/data/cmr10.600gf
+2021/08/13 | 35752 | dviware/dvisvgm/tests/data/cmr10.pfb
+2021/08/13 | 1296 | dviware/dvisvgm/tests/data/cmr10.tfm
+2021/08/13 | 18351 | dviware/dvisvgm/tests/data/dvipdfm_test.map
+2021/08/13 | 15594 | dviware/dvisvgm/tests/data/dvips_test.map
+2021/08/13 | 2072 | dviware/dvisvgm/tests/data/frktest.dvi
+2021/08/13 | 337419 | dviware/dvisvgm/tests/data/frktest-nf-cmp.svg
+2021/08/13 | 163979 | dviware/dvisvgm/tests/data/frktest-wf-cmp.svg
+2021/08/13 | 63012 | dviware/dvisvgm/tests/data/lmmono12-regular.otf
+2022/01/23 | 452 | dviware/dvisvgm/tests/data/Makefile.am
+2022/02/27 | 13740 | dviware/dvisvgm/tests/data/Makefile.in
+2021/08/13 | 1207 | dviware/dvisvgm/tests/data/ot1.cmap
+2021/08/13 | 1320 | dviware/dvisvgm/tests/data/sample.dvi
+2021/08/13 | 60654 | dviware/dvisvgm/tests/data/sample-nf-cmp.svg
+2021/08/13 | 17637 | dviware/dvisvgm/tests/data/sample.sfd
+2021/08/13 | 1016 | dviware/dvisvgm/tests/data/sample_v2.dvi
+2021/08/13 | 256 | dviware/dvisvgm/tests/data/sample_v3.dvi
+2021/08/13 | 46985 | dviware/dvisvgm/tests/data/sample-wf-cmp.svg
+2022/01/23 | 2512 | dviware/dvisvgm/tests/DependencyGraphTest.cpp
+2022/01/23 | 2773 | dviware/dvisvgm/tests/DirectoryTest.cpp
+2022/01/23 | 33210 | dviware/dvisvgm/tests/DVIReaderTest.cpp
+2022/02/26 | 13291 | dviware/dvisvgm/tests/DvisvgmSpecialTest.cpp
+2022/01/23 | 5850 | dviware/dvisvgm/tests/EllipticalArcTest.cpp
+2022/02/26 | 7489 | dviware/dvisvgm/tests/EmSpecialTest.cpp
+2022/01/23 | 3124 | dviware/dvisvgm/tests/FileFinderTest.cpp
+2022/01/23 | 4004 | dviware/dvisvgm/tests/FilePathTest.cpp
+2022/01/23 | 3899 | dviware/dvisvgm/tests/FileSystemTest.cpp
+2022/01/23 | 5070 | dviware/dvisvgm/tests/FontCacheTest.cpp
+2022/01/23 | 3875 | dviware/dvisvgm/tests/FontManagerTest.cpp
+2022/01/23 | 2850 | dviware/dvisvgm/tests/FontMapTest.cpp
+2022/01/23 | 2026 | dviware/dvisvgm/tests/genhashcheck.py
+2022/01/23 | 4645 | dviware/dvisvgm/tests/GFGlyphTracerTest.cpp
+2022/01/23 | 12993 | dviware/dvisvgm/tests/GFReaderTest.cpp
+2022/01/23 | 2083 | dviware/dvisvgm/tests/GhostscriptTest.cpp
+2022/01/23 | 7230 | dviware/dvisvgm/tests/GraphicsPathTest.cpp
+2021/10/20 | 14647 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-death-test.h
+2021/10/20 | 94331 | dviware/dvisvgm/tests/gtest/include/gtest/gtest.h
+2021/10/20 | 33126 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-matchers.h
+2021/10/20 | 8045 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-message.h
+2021/10/20 | 22588 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-param-test.h
+2021/10/20 | 14865 | dviware/dvisvgm/tests/gtest/include/gtest/gtest_pred_impl.h
+2021/10/20 | 35935 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-printers.h
+2021/10/20 | 2534 | dviware/dvisvgm/tests/gtest/include/gtest/gtest_prod.h
+2021/10/20 | 10112 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-spi.h
+2021/10/20 | 6868 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-test-part.h
+2021/10/20 | 15881 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-typed-test.h
+2021/10/20 | 1858 | dviware/dvisvgm/tests/gtest/include/gtest/internal/custom/gtest.h
+2021/10/20 | 1873 | dviware/dvisvgm/tests/gtest/include/gtest/internal/custom/gtest-port.h
+2021/10/20 | 2094 | dviware/dvisvgm/tests/gtest/include/gtest/internal/custom/gtest-printers.h
+2021/10/20 | 13451 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-death-test-internal.h
+2021/10/20 | 9780 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-filepath.h
+2021/10/20 | 61622 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-internal.h
+2021/08/13 | 8401 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-linked_ptr.h
+2021/08/13 | 218498 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-param-util-generated.h
+2021/10/20 | 35140 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-param-util.h
+2021/10/20 | 4157 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-port-arch.h
+2021/10/20 | 85257 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-port.h
+2021/10/20 | 7228 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-string.h
+2021/08/13 | 28605 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-tuple.h
+2021/10/20 | 6174 | dviware/dvisvgm/tests/gtest/include/gtest/internal/gtest-type-util.h
+2021/08/13 | 1475 | dviware/dvisvgm/tests/gtest/LICENSE
+2021/08/13 | 2160 | dviware/dvisvgm/tests/gtest/src/gtest-all.cc
+2021/10/20 | 248773 | dviware/dvisvgm/tests/gtest/src/gtest.cc
+2021/10/20 | 62109 | dviware/dvisvgm/tests/gtest/src/gtest-death-test.cc
+2021/10/20 | 14081 | dviware/dvisvgm/tests/gtest/src/gtest-filepath.cc
+2021/10/20 | 47373 | dviware/dvisvgm/tests/gtest/src/gtest-internal-inl.h
+2021/10/20 | 1968 | dviware/dvisvgm/tests/gtest/src/gtest_main.cc
+2021/10/20 | 3723 | dviware/dvisvgm/tests/gtest/src/gtest-matchers.cc
+2021/10/20 | 48099 | dviware/dvisvgm/tests/gtest/src/gtest-port.cc
+2021/10/20 | 17269 | dviware/dvisvgm/tests/gtest/src/gtest-printers.cc
+2021/10/20 | 4126 | dviware/dvisvgm/tests/gtest/src/gtest-test-part.cc
+2021/10/20 | 3780 | dviware/dvisvgm/tests/gtest/src/gtest-typed-test.cc
+2022/01/23 | 5568 | dviware/dvisvgm/tests/HashFunctionTest.cpp
+2022/01/23 | 4034 | dviware/dvisvgm/tests/JFMReaderTest.cpp
+2022/01/23 | 7803 | dviware/dvisvgm/tests/LengthTest.cpp
+2022/01/23 | 15639 | dviware/dvisvgm/tests/Makefile.am
+2022/02/27 | 256038 | dviware/dvisvgm/tests/Makefile.in
+2022/01/23 | 5795 | dviware/dvisvgm/tests/MapLineTest.cpp
+2022/01/23 | 8332 | dviware/dvisvgm/tests/MatrixTest.cpp
+2022/01/23 | 2315 | dviware/dvisvgm/tests/MessageExceptionTest.cpp
+2022/01/23 | 4799 | dviware/dvisvgm/tests/normalize.xsl
+2022/01/23 | 4640 | dviware/dvisvgm/tests/PageRagesTest.cpp
+2022/01/23 | 2398 | dviware/dvisvgm/tests/PageSizeTest.cpp
+2022/01/23 | 4193 | dviware/dvisvgm/tests/PairTest.cpp
+2022/02/26 | 4926 | dviware/dvisvgm/tests/PapersizeSpecialTest.cpp
+2022/01/23 | 8452 | dviware/dvisvgm/tests/PDFParserTest.cpp
+2022/01/23 | 9574 | dviware/dvisvgm/tests/PSInterpreterTest.cpp
+2022/01/23 | 6392 | dviware/dvisvgm/tests/RangeMapTest.cpp
+2022/01/23 | 3629 | dviware/dvisvgm/tests/ShadingPatchTest.cpp
+2022/01/23 | 3801 | dviware/dvisvgm/tests/SpecialManagerTest.cpp
+2022/01/23 | 5392 | dviware/dvisvgm/tests/SplittedCharInputBufferTest.cpp
+2022/01/23 | 7499 | dviware/dvisvgm/tests/StreamInputBufferTest.cpp
+2022/01/23 | 4178 | dviware/dvisvgm/tests/StreamReaderTest.cpp
+2022/01/23 | 3420 | dviware/dvisvgm/tests/StreamWriterTest.cpp
+2022/01/23 | 4460 | dviware/dvisvgm/tests/StringMatcherTest.cpp
+2022/01/23 | 3363 | dviware/dvisvgm/tests/SubfontTest.cpp
+2022/01/23 | 6521 | dviware/dvisvgm/tests/SVGOutputTest.cpp
+2022/01/23 | 12810 | dviware/dvisvgm/tests/TensorProductPatchTest.cpp
+2022/01/23 | 1999 | dviware/dvisvgm/tests/testmain.cpp
+2021/10/20 | 198 | dviware/dvisvgm/tests/testutil.hpp
+2022/01/23 | 3348 | dviware/dvisvgm/tests/TFMReaderTest.cpp
+2022/01/23 | 2501 | dviware/dvisvgm/tests/ToUnicodeMapTest.cpp
+2022/01/23 | 13772 | dviware/dvisvgm/tests/TpicSpecialTest.cpp
+2022/01/23 | 7066 | dviware/dvisvgm/tests/TriangularPatchTest.cpp
+2022/01/23 | 6084 | dviware/dvisvgm/tests/UnicodeTest.cpp
+2022/01/23 | 5194 | dviware/dvisvgm/tests/UtilityTest.cpp
+2022/01/23 | 3785 | dviware/dvisvgm/tests/VectorIteratorTest.cpp
+2022/01/23 | 2276 | dviware/dvisvgm/tests/VectorStreamTest.cpp
+2022/01/23 | 15061 | dviware/dvisvgm/tests/XMLNodeTest.cpp
+2022/01/23 | 3034 | dviware/dvisvgm/tests/XMLStringTest.cpp
+2022/02/27 | 3571467 | dviware/dvisvgm.zip
1991/04/12 | 1728 | dviware/dvitops/aftopl.1
1991/04/12 | 12075 | dviware/dvitops/aftopl.c
1991/01/25 | 837 | dviware/dvitops/cms.h
@@ -5210,7 +5212,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
-2022/02/26 | 118572 | FILES.last07days
+2022/02/27 | 248600 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -152075,19 +152077,19 @@
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
-2022/02/19 | 17425 | graphics/mcf2graph/CHANGELOG
-2022/02/20 | 102120 | graphics/mcf2graph/mcf2graph.mp
-2022/02/20 | 100635 | graphics/mcf2graph/mcf_data_base.mcf
-2022/02/20 | 431593 | graphics/mcf2graph/mcf_example.pdf
-2022/02/20 | 2801 | graphics/mcf2graph/mcf_example.tex
-2022/02/20 | 2166 | graphics/mcf2graph/mcf_exa_soc.mp
-2022/02/20 | 42878 | graphics/mcf2graph/mcf_man_soc.mp
-2022/02/20 | 292313 | graphics/mcf2graph/mcf_manual.pdf
-2022/02/13 | 57532 | graphics/mcf2graph/mcf_manual.tex
-2022/02/20 | 197089 | graphics/mcf2graph/mcf_mplib_exa.pdf
-2022/02/20 | 14549 | graphics/mcf2graph/mcf_mplib_exa.tex
-2022/02/20 | 3593 | graphics/mcf2graph/README
-2022/02/20 | 972970 | graphics/mcf2graph.zip
+2022/02/27 | 17496 | graphics/mcf2graph/CHANGELOG
+2022/02/27 | 101318 | graphics/mcf2graph/mcf2graph.mp
+2022/02/27 | 100635 | graphics/mcf2graph/mcf_data_base.mcf
+2022/02/27 | 431779 | graphics/mcf2graph/mcf_example.pdf
+2022/02/27 | 2801 | graphics/mcf2graph/mcf_example.tex
+2022/02/27 | 2168 | graphics/mcf2graph/mcf_exa_soc.mp
+2022/02/26 | 43257 | graphics/mcf2graph/mcf_man_soc.mp
+2022/02/27 | 289267 | graphics/mcf2graph/mcf_manual.pdf
+2022/02/27 | 57492 | graphics/mcf2graph/mcf_manual.tex
+2022/02/27 | 195943 | graphics/mcf2graph/mcf_mplib_exa.pdf
+2022/02/26 | 14549 | graphics/mcf2graph/mcf_mplib_exa.tex
+2022/02/27 | 3593 | graphics/mcf2graph/README
+2022/02/27 | 968769 | 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
@@ -185961,7 +185963,7 @@
2015/10/01 | 154538 | install/macros/luatex/generic/ctablestack.tds.zip
2021/05/21 | 273734 | install/macros/luatex/generic/lualibs.tds.zip
2022/01/12 | 202258 | install/macros/luatex/generic/luamplib.tds.zip
-2022/02/25 | 1959295 | install/macros/luatex/generic/luaotfload.tds.zip
+2022/02/27 | 1956247 | install/macros/luatex/generic/luaotfload.tds.zip
2015/10/04 | 277014 | install/macros/luatex/generic/luatexbase.tds.zip
2022/02/22 | 346732 | install/macros/luatex/generic/lua-widow-control.tds.zip
2020/03/23 | 891718 | install/macros/luatex/latex/arabluatex.tds.zip
@@ -185991,7 +185993,7 @@
2008/06/20 | 3954 | install/macros/xetex/plain/xetexfontinfo.tds.zip
2013/01/04 | 36361 | install/support/adhocfilelist.tds.zip
2021/11/27 | 2294905 | install/support/albatross.tds.zip
-2021/12/21 | 13738884 | install/support/arara.tds.zip
+2022/02/27 | 13761857 | install/support/arara.tds.zip
2019/11/05 | 310742 | install/support/chklref.tds.zip
2017/04/22 | 51557 | install/support/ctanify.tds.zip
2012/05/08 | 180596 | install/support/ctanupload.tds.zip
@@ -208810,12 +208812,18 @@
2013/04/03 | 3607 | macros/latex/contrib/crbox/crbox.sty
2013/04/03 | 914 | macros/latex/contrib/crbox/README
2013/04/04 | 30542 | macros/latex/contrib/crbox.zip
-2022/02/20 | 112174 | macros/latex/contrib/crefthe/crefthe-doc.pdf
-2022/02/20 | 10362 | macros/latex/contrib/crefthe/crefthe-doc.tex
-2022/02/20 | 9257 | macros/latex/contrib/crefthe/crefthe.sty
-2022/02/20 | 19106 | macros/latex/contrib/crefthe/LICENSE
-2022/02/20 | 2796 | macros/latex/contrib/crefthe/README.md
-2022/02/20 | 123879 | macros/latex/contrib/crefthe.zip
+2022/02/27 | 111285 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+2022/02/27 | 18214 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
+2022/02/27 | 66239 | macros/latex/contrib/create-theorem/create-theorem.sty
+2022/02/27 | 19106 | macros/latex/contrib/create-theorem/LICENSE
+2022/02/27 | 630 | macros/latex/contrib/create-theorem/README.md
+2022/02/27 | 129781 | macros/latex/contrib/create-theorem.zip
+2022/02/27 | 115616 | macros/latex/contrib/crefthe/crefthe-doc.pdf
+2022/02/27 | 10798 | macros/latex/contrib/crefthe/crefthe-doc.tex
+2022/02/27 | 10283 | macros/latex/contrib/crefthe/crefthe.sty
+2022/02/27 | 19106 | macros/latex/contrib/crefthe/LICENSE
+2022/02/27 | 2796 | macros/latex/contrib/crefthe/README.md
+2022/02/27 | 127687 | macros/latex/contrib/crefthe.zip
2020/06/05 | 67341 | macros/latex/contrib/crop/crop.dtx
2020/06/05 | 260 | macros/latex/contrib/crop/crop.ins
2020/06/05 | 327371 | macros/latex/contrib/crop/crop.pdf
@@ -213035,12 +213043,13 @@
2010/02/28 | 2715 | macros/latex/contrib/fnpara/fnpara-doc.tex
2012/03/11 | 6981 | macros/latex/contrib/fnpara/fnpara.sty
2012/03/11 | 177564 | macros/latex/contrib/fnpara.zip
-2022/02/03 | 9184 | macros/latex/contrib/fnpct/fnpct-manual.cls
-2022/02/03 | 509779 | macros/latex/contrib/fnpct/fnpct-manual.pdf
-2022/02/03 | 27748 | macros/latex/contrib/fnpct/fnpct-manual.tex
-2022/02/03 | 47991 | macros/latex/contrib/fnpct/fnpct.sty
-2022/02/03 | 1505 | macros/latex/contrib/fnpct/README
-2022/02/03 | 527283 | macros/latex/contrib/fnpct.zip
+2022/02/27 | 40530 | macros/latex/contrib/fnpct/fnpct-2019-10-05.sty
+2022/02/27 | 9255 | macros/latex/contrib/fnpct/fnpct-manual.cls
+2022/02/27 | 494932 | macros/latex/contrib/fnpct/fnpct-manual.pdf
+2022/02/27 | 28315 | macros/latex/contrib/fnpct/fnpct-manual.tex
+2022/02/27 | 47951 | macros/latex/contrib/fnpct/fnpct.sty
+2022/02/27 | 1577 | macros/latex/contrib/fnpct/README
+2022/02/27 | 520491 | macros/latex/contrib/fnpct.zip
2017/09/20 | 199982 | macros/latex/contrib/fnspe/fnspe.pdf
2017/09/20 | 5996 | macros/latex/contrib/fnspe/fnspe.sty
2017/09/20 | 14233 | macros/latex/contrib/fnspe/fnspe.tex
@@ -222829,16 +222838,24 @@
2003/07/02 | 9461 | macros/latex/contrib/progress/progress.tex
2003/07/02 | 413 | macros/latex/contrib/progress/README
2006/05/20 | 88703 | macros/latex/contrib/progress.zip
-2021/12/16 | 19106 | macros/latex/contrib/projlib/LICENSE
-2021/12/16 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
-2021/12/16 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
-2021/12/16 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
-2021/12/16 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
-2021/12/16 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
-2021/12/16 | 135371 | macros/latex/contrib/projlib/ProjLib.dtx
-2021/12/16 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
-2021/12/16 | 4348 | macros/latex/contrib/projlib/README.md
-2021/12/16 | 772758 | macros/latex/contrib/projlib.zip
+2022/02/27 | 19106 | macros/latex/contrib/projlib/LICENSE
+2022/02/24 | 11084 | macros/latex/contrib/projlib/new-modules/projlib-author.sty
+2022/02/24 | 55015 | macros/latex/contrib/projlib/new-modules/projlib-datetime.sty
+2022/02/24 | 4682 | macros/latex/contrib/projlib/new-modules/projlib-draft.sty
+2022/02/26 | 4513 | macros/latex/contrib/projlib/new-modules/projlib-font.sty
+2022/02/26 | 16649 | macros/latex/contrib/projlib/new-modules/projlib-language.sty
+2022/02/24 | 2643 | macros/latex/contrib/projlib/new-modules/projlib-logo.sty
+2022/02/26 | 7420 | macros/latex/contrib/projlib/new-modules/projlib-math.sty
+2022/02/25 | 4096 | macros/latex/contrib/projlib/new-modules/projlib-paper.sty
+2022/02/27 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
+2022/02/27 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
+2022/02/27 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
+2022/02/27 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
+2022/02/27 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
+2022/02/27 | 135371 | macros/latex/contrib/projlib/ProjLib.dtx
+2022/02/27 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
+2022/02/27 | 5318 | macros/latex/contrib/projlib/README.md
+2022/02/27 | 791161 | macros/latex/contrib/projlib.zip
2022/02/07 | 121559 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
2022/02/07 | 10484 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
2022/02/07 | 84168 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
@@ -236215,124 +236232,123 @@
2022/01/12 | 5611 | macros/luatex/generic/luamplib/test-luamplib-latex.tex
2022/01/12 | 3872 | macros/luatex/generic/luamplib/test-luamplib-plain.tex
2022/01/12 | 187673 | macros/luatex/generic/luamplib.zip
-2022/02/25 | 18714 | macros/luatex/generic/luaotfload/COPYING
-2022/02/25 | 40019 | macros/luatex/generic/luaotfload/filegraph.pdf
-2022/02/25 | 8597 | macros/luatex/generic/luaotfload/filegraph.tex
-2022/02/25 | 879568 | macros/luatex/generic/luaotfload/fontloader-2022-02-24.lua
-2022/02/25 | 48728 | macros/luatex/generic/luaotfload/fontloader-basics-chr.lua
-2022/02/25 | 12749 | macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
-2022/02/25 | 10207 | macros/luatex/generic/luaotfload/fontloader-basics-nod.lua
-2022/02/25 | 5388 | macros/luatex/generic/luaotfload/fontloader-data-con.lua
-2022/02/25 | 6866 | macros/luatex/generic/luaotfload/fontloader-font-afk.lua
-2022/02/25 | 92210 | macros/luatex/generic/luaotfload/fontloader-font-cff.lua
-2022/02/25 | 5502 | macros/luatex/generic/luaotfload/fontloader-font-cid.lua
-2022/02/25 | 63211 | macros/luatex/generic/luaotfload/fontloader-font-con.lua
-2022/02/25 | 19944 | macros/luatex/generic/luaotfload/fontloader-font-def.lua
-2022/02/25 | 154203 | macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
-2022/02/25 | 12704 | macros/luatex/generic/luaotfload/fontloader-font-imp-effects.lua
-2022/02/25 | 3693 | macros/luatex/generic/luaotfload/fontloader-font-imp-italics.lua
-2022/02/25 | 3580 | macros/luatex/generic/luaotfload/fontloader-font-imp-ligatures.lua
-2022/02/25 | 3406 | macros/luatex/generic/luaotfload/fontloader-font-imp-tex.lua
-2022/02/25 | 1794 | macros/luatex/generic/luaotfload/fontloader-font-ini.lua
-2022/02/25 | 1449 | macros/luatex/generic/luaotfload/fontloader-font-lua.lua
-2022/02/25 | 19570 | macros/luatex/generic/luaotfload/fontloader-font-map.lua
-2022/02/25 | 25264 | macros/luatex/generic/luaotfload/fontloader-font-ocl.lua
-2022/02/25 | 31349 | macros/luatex/generic/luaotfload/fontloader-font-one.lua
-2022/02/25 | 18717 | macros/luatex/generic/luaotfload/fontloader-font-onr.lua
-2022/02/25 | 118105 | macros/luatex/generic/luaotfload/fontloader-font-osd.lua
-2022/02/25 | 18411 | macros/luatex/generic/luaotfload/fontloader-font-ota.lua
-2022/02/25 | 34476 | macros/luatex/generic/luaotfload/fontloader-font-otc.lua
-2022/02/25 | 7904 | macros/luatex/generic/luaotfload/fontloader-font-oti.lua
-2022/02/25 | 65279 | macros/luatex/generic/luaotfload/fontloader-font-otj.lua
-2022/02/25 | 33960 | macros/luatex/generic/luaotfload/fontloader-font-otl.lua
-2022/02/25 | 23238 | macros/luatex/generic/luaotfload/fontloader-font-oto.lua
-2022/02/25 | 94451 | macros/luatex/generic/luaotfload/fontloader-font-otr.lua
-2022/02/25 | 186209 | macros/luatex/generic/luaotfload/fontloader-font-ots.lua
-2022/02/25 | 34922 | macros/luatex/generic/luaotfload/fontloader-font-ott.lua
-2022/02/25 | 123210 | macros/luatex/generic/luaotfload/fontloader-font-oup.lua
-2022/02/25 | 3821 | macros/luatex/generic/luaotfload/fontloader-fonts-def.lua
-2022/02/25 | 2625 | macros/luatex/generic/luaotfload/fontloader-fonts-enc.lua
-2022/02/25 | 7260 | macros/luatex/generic/luaotfload/fontloader-fonts-ext.lua
-2022/02/25 | 9881 | macros/luatex/generic/luaotfload/fontloader-fonts-gbn.lua
-2022/02/25 | 13525 | macros/luatex/generic/luaotfload/fontloader-font-shp.lua
-2022/02/25 | 57342 | macros/luatex/generic/luaotfload/fontloader-fonts-lig.lua
-2022/02/25 | 912 | macros/luatex/generic/luaotfload/fontloader-fonts-mis.lua
-2022/02/25 | 3674 | macros/luatex/generic/luaotfload/fontloader-fonts-syn.lua
-2022/02/25 | 23399 | macros/luatex/generic/luaotfload/fontloader-fonts-tfm.lua
-2022/02/25 | 64282 | macros/luatex/generic/luaotfload/fontloader-font-ttf.lua
-2022/02/25 | 2667 | macros/luatex/generic/luaotfload/fontloader-font-vfc.lua
-2022/02/25 | 1850 | macros/luatex/generic/luaotfload/fontloader-l-boolean.lua
-2022/02/25 | 22186 | macros/luatex/generic/luaotfload/fontloader-l-file.lua
-2022/02/25 | 361 | macros/luatex/generic/luaotfload/fontloader-l-function.lua
-2022/02/25 | 11988 | macros/luatex/generic/luaotfload/fontloader-l-io.lua
-2022/02/25 | 38742 | macros/luatex/generic/luaotfload/fontloader-l-lpeg.lua
-2022/02/25 | 6405 | macros/luatex/generic/luaotfload/fontloader-l-lua.lua
-2022/02/25 | 2549 | macros/luatex/generic/luaotfload/fontloader-l-math.lua
-2022/02/25 | 6644 | macros/luatex/generic/luaotfload/fontloader-l-string.lua
-2022/02/25 | 41758 | macros/luatex/generic/luaotfload/fontloader-l-table.lua
-2022/02/25 | 41303 | macros/luatex/generic/luaotfload/fontloader-l-unicode.lua
-2022/02/25 | 15196 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.lua
-2022/02/25 | 5885 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.tex
-2022/02/25 | 981511 | macros/luatex/generic/luaotfload/fontloader-reference.lua
-2022/02/25 | 11474 | macros/luatex/generic/luaotfload/fontloader-util-fil.lua
-2022/02/25 | 46322 | macros/luatex/generic/luaotfload/fontloader-util-str.lua
-2022/02/25 | 32597 | macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
-2022/02/25 | 52 | macros/luatex/generic/luaotfload/luaotfload-blacklist.cnf
-2022/02/25 | 6809 | macros/luatex/generic/luaotfload/luaotfload-case.lua
-2022/02/25 | 3287334 | macros/luatex/generic/luaotfload/luaotfload-characters.lua
-2022/02/25 | 15954 | macros/luatex/generic/luaotfload/luaotfload-colors.lua
-2022/02/25 | 16794 | macros/luatex/generic/luaotfload/luaotfload.conf.5
-2022/02/25 | 735 | macros/luatex/generic/luaotfload/luaotfload.conf.example
-2022/02/25 | 31223 | macros/luatex/generic/luaotfload/luaotfload-configuration.lua
-2022/02/25 | 77690 | macros/luatex/generic/luaotfload/luaotfload-conf.pdf
-2022/02/25 | 18378 | macros/luatex/generic/luaotfload/luaotfload.conf.rst
-2022/02/25 | 134114 | macros/luatex/generic/luaotfload/luaotfload-database.lua
-2022/02/25 | 21858 | macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
-2022/02/25 | 4956 | macros/luatex/generic/luaotfload/luaotfload-dvi.lua
-2022/02/25 | 1004 | macros/luatex/generic/luaotfload/luaotfload-embolden.lua
-2022/02/25 | 4047 | macros/luatex/generic/luaotfload/luaotfload-fallback.lua
-2022/02/25 | 32949 | macros/luatex/generic/luaotfload/luaotfload-features.lua
-2022/02/25 | 25336 | macros/luatex/generic/luaotfload/luaotfload-filelist.lua
-2022/02/25 | 102502 | macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
-2022/02/25 | 18741 | macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
-2022/02/25 | 42240 | macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
-2022/02/25 | 14279 | macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
-2022/02/25 | 4050 | macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
-2022/02/25 | 20038 | macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
-2022/02/25 | 19746 | macros/luatex/generic/luaotfload/luaotfload-init.lua
-2022/02/25 | 494376 | macros/luatex/generic/luaotfload/luaotfload-latex.pdf
-2022/02/25 | 16675 | macros/luatex/generic/luaotfload/luaotfload-latex.tex
-2022/02/25 | 20268 | macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
-2022/02/25 | 8840 | macros/luatex/generic/luaotfload/luaotfload-loaders.lua
-2022/02/25 | 11323 | macros/luatex/generic/luaotfload/luaotfload-log.lua
-2022/02/25 | 13565 | macros/luatex/generic/luaotfload/luaotfload.lua
-2022/02/25 | 275 | macros/luatex/generic/luaotfload/luaotfload-main.lua
-2022/02/25 | 100061 | macros/luatex/generic/luaotfload/luaotfload-main.tex
-2022/02/25 | 15068 | macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
-2022/02/25 | 12224 | macros/luatex/generic/luaotfload/luaotfload-notdef.lua
-2022/02/25 | 31007 | macros/luatex/generic/luaotfload/luaotfload-parsers.lua
-2022/02/25 | 10984 | macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
-2022/02/25 | 2506 | macros/luatex/generic/luaotfload/luaotfload-scripts.lua
-2022/02/25 | 6317 | macros/luatex/generic/luaotfload/luaotfload-status.lua
-2022/02/25 | 1812 | macros/luatex/generic/luaotfload/luaotfload.sty
-2022/02/25 | 2582 | macros/luatex/generic/luaotfload/luaotfload-suppress.lua
-2022/02/25 | 6309 | macros/luatex/generic/luaotfload/luaotfload-szss.lua
-2022/02/25 | 4930 | macros/luatex/generic/luaotfload/luaotfload-t3.lua
-2022/02/25 | 12829 | macros/luatex/generic/luaotfload/luaotfload-tool.1
-2022/02/25 | 54080 | macros/luatex/generic/luaotfload/luaotfload-tool.lua
-2022/02/25 | 76959 | macros/luatex/generic/luaotfload/luaotfload-tool.pdf
-2022/02/25 | 16116 | macros/luatex/generic/luaotfload/luaotfload-tool.rst
-2022/02/25 | 7528 | macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
-2022/02/25 | 7589 | macros/luatex/generic/luaotfload/luaotfload-unicode.lua
-2022/02/25 | 21113 | macros/luatex/generic/luaotfload/NEWS
-2022/02/25 | 3784 | macros/luatex/generic/luaotfload/README.md
-2022/02/25 | 22075 | macros/luatex/generic/luaotfload/scripts-demo.pdf
-2022/02/25 | 699 | macros/luatex/generic/luaotfload/scripts-demo.tex
-2022/02/25 | 8560 | macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
-2022/02/25 | 191 | macros/luatex/generic/luaotfload/shaper-demo-graphite.tex
-2022/02/25 | 8481 | macros/luatex/generic/luaotfload/shaper-demo.pdf
-2022/02/25 | 182 | macros/luatex/generic/luaotfload/shaper-demo.tex
-2022/02/25 | 1958779 | macros/luatex/generic/luaotfload.zip
+2022/02/27 | 18714 | macros/luatex/generic/luaotfload/COPYING
+2022/02/27 | 40007 | macros/luatex/generic/luaotfload/filegraph.pdf
+2022/02/27 | 8597 | macros/luatex/generic/luaotfload/filegraph.tex
+2022/02/27 | 879568 | macros/luatex/generic/luaotfload/fontloader-2022-02-24.lua
+2022/02/27 | 48728 | macros/luatex/generic/luaotfload/fontloader-basics-chr.lua
+2022/02/27 | 12745 | macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
+2022/02/27 | 10207 | macros/luatex/generic/luaotfload/fontloader-basics-nod.lua
+2022/02/27 | 5388 | macros/luatex/generic/luaotfload/fontloader-data-con.lua
+2022/02/27 | 6866 | macros/luatex/generic/luaotfload/fontloader-font-afk.lua
+2022/02/27 | 92210 | macros/luatex/generic/luaotfload/fontloader-font-cff.lua
+2022/02/27 | 5502 | macros/luatex/generic/luaotfload/fontloader-font-cid.lua
+2022/02/27 | 63211 | macros/luatex/generic/luaotfload/fontloader-font-con.lua
+2022/02/27 | 19944 | macros/luatex/generic/luaotfload/fontloader-font-def.lua
+2022/02/27 | 154203 | macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
+2022/02/27 | 12704 | macros/luatex/generic/luaotfload/fontloader-font-imp-effects.lua
+2022/02/27 | 3693 | macros/luatex/generic/luaotfload/fontloader-font-imp-italics.lua
+2022/02/27 | 3580 | macros/luatex/generic/luaotfload/fontloader-font-imp-ligatures.lua
+2022/02/27 | 3406 | macros/luatex/generic/luaotfload/fontloader-font-imp-tex.lua
+2022/02/27 | 1794 | macros/luatex/generic/luaotfload/fontloader-font-ini.lua
+2022/02/27 | 1449 | macros/luatex/generic/luaotfload/fontloader-font-lua.lua
+2022/02/27 | 19570 | macros/luatex/generic/luaotfload/fontloader-font-map.lua
+2022/02/27 | 25264 | macros/luatex/generic/luaotfload/fontloader-font-ocl.lua
+2022/02/27 | 31349 | macros/luatex/generic/luaotfload/fontloader-font-one.lua
+2022/02/27 | 18717 | macros/luatex/generic/luaotfload/fontloader-font-onr.lua
+2022/02/27 | 118105 | macros/luatex/generic/luaotfload/fontloader-font-osd.lua
+2022/02/27 | 18411 | macros/luatex/generic/luaotfload/fontloader-font-ota.lua
+2022/02/27 | 34476 | macros/luatex/generic/luaotfload/fontloader-font-otc.lua
+2022/02/27 | 7904 | macros/luatex/generic/luaotfload/fontloader-font-oti.lua
+2022/02/27 | 65279 | macros/luatex/generic/luaotfload/fontloader-font-otj.lua
+2022/02/27 | 33960 | macros/luatex/generic/luaotfload/fontloader-font-otl.lua
+2022/02/27 | 23238 | macros/luatex/generic/luaotfload/fontloader-font-oto.lua
+2022/02/27 | 94451 | macros/luatex/generic/luaotfload/fontloader-font-otr.lua
+2022/02/27 | 186209 | macros/luatex/generic/luaotfload/fontloader-font-ots.lua
+2022/02/27 | 34922 | macros/luatex/generic/luaotfload/fontloader-font-ott.lua
+2022/02/27 | 123210 | macros/luatex/generic/luaotfload/fontloader-font-oup.lua
+2022/02/27 | 3821 | macros/luatex/generic/luaotfload/fontloader-fonts-def.lua
+2022/02/27 | 2625 | macros/luatex/generic/luaotfload/fontloader-fonts-enc.lua
+2022/02/27 | 7260 | macros/luatex/generic/luaotfload/fontloader-fonts-ext.lua
+2022/02/27 | 9881 | macros/luatex/generic/luaotfload/fontloader-fonts-gbn.lua
+2022/02/27 | 13525 | macros/luatex/generic/luaotfload/fontloader-font-shp.lua
+2022/02/27 | 57342 | macros/luatex/generic/luaotfload/fontloader-fonts-lig.lua
+2022/02/27 | 912 | macros/luatex/generic/luaotfload/fontloader-fonts-mis.lua
+2022/02/27 | 3674 | macros/luatex/generic/luaotfload/fontloader-fonts-syn.lua
+2022/02/27 | 23399 | macros/luatex/generic/luaotfload/fontloader-fonts-tfm.lua
+2022/02/27 | 64282 | macros/luatex/generic/luaotfload/fontloader-font-ttf.lua
+2022/02/27 | 2667 | macros/luatex/generic/luaotfload/fontloader-font-vfc.lua
+2022/02/27 | 1850 | macros/luatex/generic/luaotfload/fontloader-l-boolean.lua
+2022/02/27 | 22186 | macros/luatex/generic/luaotfload/fontloader-l-file.lua
+2022/02/27 | 361 | macros/luatex/generic/luaotfload/fontloader-l-function.lua
+2022/02/27 | 11988 | macros/luatex/generic/luaotfload/fontloader-l-io.lua
+2022/02/27 | 38742 | macros/luatex/generic/luaotfload/fontloader-l-lpeg.lua
+2022/02/27 | 6405 | macros/luatex/generic/luaotfload/fontloader-l-lua.lua
+2022/02/27 | 2549 | macros/luatex/generic/luaotfload/fontloader-l-math.lua
+2022/02/27 | 6644 | macros/luatex/generic/luaotfload/fontloader-l-string.lua
+2022/02/27 | 41758 | macros/luatex/generic/luaotfload/fontloader-l-table.lua
+2022/02/27 | 41303 | macros/luatex/generic/luaotfload/fontloader-l-unicode.lua
+2022/02/27 | 15196 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.lua
+2022/02/27 | 5885 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.tex
+2022/02/27 | 981511 | macros/luatex/generic/luaotfload/fontloader-reference.lua
+2022/02/27 | 11474 | macros/luatex/generic/luaotfload/fontloader-util-fil.lua
+2022/02/27 | 46322 | macros/luatex/generic/luaotfload/fontloader-util-str.lua
+2022/02/27 | 32597 | macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
+2022/02/27 | 52 | macros/luatex/generic/luaotfload/luaotfload-blacklist.cnf
+2022/02/27 | 6809 | macros/luatex/generic/luaotfload/luaotfload-case.lua
+2022/02/27 | 3287334 | macros/luatex/generic/luaotfload/luaotfload-characters.lua
+2022/02/27 | 15954 | macros/luatex/generic/luaotfload/luaotfload-colors.lua
+2022/02/27 | 16794 | macros/luatex/generic/luaotfload/luaotfload.conf.5
+2022/02/27 | 735 | macros/luatex/generic/luaotfload/luaotfload.conf.example
+2022/02/27 | 31223 | macros/luatex/generic/luaotfload/luaotfload-configuration.lua
+2022/02/27 | 77520 | macros/luatex/generic/luaotfload/luaotfload-conf.pdf
+2022/02/27 | 18378 | macros/luatex/generic/luaotfload/luaotfload.conf.rst
+2022/02/27 | 134114 | macros/luatex/generic/luaotfload/luaotfload-database.lua
+2022/02/27 | 21858 | macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
+2022/02/27 | 4956 | macros/luatex/generic/luaotfload/luaotfload-dvi.lua
+2022/02/27 | 1004 | macros/luatex/generic/luaotfload/luaotfload-embolden.lua
+2022/02/27 | 4047 | macros/luatex/generic/luaotfload/luaotfload-fallback.lua
+2022/02/27 | 33155 | macros/luatex/generic/luaotfload/luaotfload-features.lua
+2022/02/27 | 25336 | macros/luatex/generic/luaotfload/luaotfload-filelist.lua
+2022/02/27 | 102502 | macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
+2022/02/27 | 18741 | macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
+2022/02/27 | 42240 | macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
+2022/02/27 | 14279 | macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
+2022/02/27 | 4050 | macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
+2022/02/27 | 20038 | macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
+2022/02/27 | 19746 | macros/luatex/generic/luaotfload/luaotfload-init.lua
+2022/02/27 | 493487 | macros/luatex/generic/luaotfload/luaotfload-latex.pdf
+2022/02/27 | 16675 | macros/luatex/generic/luaotfload/luaotfload-latex.tex
+2022/02/27 | 20268 | macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
+2022/02/27 | 8840 | macros/luatex/generic/luaotfload/luaotfload-loaders.lua
+2022/02/27 | 11323 | macros/luatex/generic/luaotfload/luaotfload-log.lua
+2022/02/27 | 13565 | macros/luatex/generic/luaotfload/luaotfload.lua
+2022/02/27 | 275 | macros/luatex/generic/luaotfload/luaotfload-main.lua
+2022/02/27 | 100352 | macros/luatex/generic/luaotfload/luaotfload-main.tex
+2022/02/27 | 15068 | macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
+2022/02/27 | 12224 | macros/luatex/generic/luaotfload/luaotfload-notdef.lua
+2022/02/27 | 31007 | macros/luatex/generic/luaotfload/luaotfload-parsers.lua
+2022/02/27 | 10984 | macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
+2022/02/27 | 2506 | macros/luatex/generic/luaotfload/luaotfload-scripts.lua
+2022/02/27 | 6317 | macros/luatex/generic/luaotfload/luaotfload-status.lua
+2022/02/27 | 1812 | macros/luatex/generic/luaotfload/luaotfload.sty
+2022/02/27 | 2582 | macros/luatex/generic/luaotfload/luaotfload-suppress.lua
+2022/02/27 | 6309 | macros/luatex/generic/luaotfload/luaotfload-szss.lua
+2022/02/27 | 12829 | macros/luatex/generic/luaotfload/luaotfload-tool.1
+2022/02/27 | 54080 | macros/luatex/generic/luaotfload/luaotfload-tool.lua
+2022/02/27 | 76788 | macros/luatex/generic/luaotfload/luaotfload-tool.pdf
+2022/02/27 | 16116 | macros/luatex/generic/luaotfload/luaotfload-tool.rst
+2022/02/27 | 7528 | macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
+2022/02/27 | 7589 | macros/luatex/generic/luaotfload/luaotfload-unicode.lua
+2022/02/27 | 21315 | macros/luatex/generic/luaotfload/NEWS
+2022/02/27 | 3784 | macros/luatex/generic/luaotfload/README.md
+2022/02/27 | 21673 | macros/luatex/generic/luaotfload/scripts-demo.pdf
+2022/02/27 | 699 | macros/luatex/generic/luaotfload/scripts-demo.tex
+2022/02/27 | 8548 | macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
+2022/02/27 | 191 | macros/luatex/generic/luaotfload/shaper-demo-graphite.tex
+2022/02/27 | 8469 | macros/luatex/generic/luaotfload/shaper-demo.pdf
+2022/02/27 | 182 | macros/luatex/generic/luaotfload/shaper-demo.tex
+2022/02/27 | 1955764 | macros/luatex/generic/luaotfload.zip
2019/12/22 | 2475 | macros/luatex/generic/luapackageloader/luapackageloader.lua
2019/12/22 | 33904 | macros/luatex/generic/luapackageloader/luapackageloader.pdf
2019/12/22 | 1014 | macros/luatex/generic/luapackageloader/luapackageloader.sty
@@ -236524,12 +236540,12 @@
2021/10/07 | 9854 | macros/luatex/generic/luaxml/luaxml-transform.lua
2021/10/07 | 1155 | macros/luatex/generic/luaxml/README
2021/10/07 | 161975 | macros/luatex/generic/luaxml.zip
-2021/11/07 | 9314 | macros/luatex/generic/lutabulartools/lutabulartools.lua
-2021/11/07 | 59544 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
-2021/11/07 | 7353 | macros/luatex/generic/lutabulartools/lutabulartools.sty
-2021/11/07 | 8345 | macros/luatex/generic/lutabulartools/lutabulartools.tex
-2021/11/07 | 1396 | macros/luatex/generic/lutabulartools/README.md
-2021/11/08 | 63546 | macros/luatex/generic/lutabulartools.zip
+2022/02/27 | 8697 | macros/luatex/generic/lutabulartools/lutabulartools.lua
+2022/02/27 | 83452 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
+2022/02/27 | 7637 | macros/luatex/generic/lutabulartools/lutabulartools.sty
+2022/02/27 | 12097 | macros/luatex/generic/lutabulartools/lutabulartools.tex
+2022/02/27 | 1571 | macros/luatex/generic/lutabulartools/README.md
+2022/02/27 | 85847 | macros/luatex/generic/lutabulartools.zip
2020/03/06 | 13827 | macros/luatex/generic/minim/EUPL-1.2-EN.txt
2020/03/06 | 13827 | macros/luatex/generic/minim-math/EUPL-1.2-EN.txt
2021/06/08 | 11663 | macros/luatex/generic/minim-math/minim-math.doc
@@ -236597,13 +236613,13 @@
2021/09/17 | 9358 | macros/luatex/generic/pdfextra/pdfextra.tex
2021/09/17 | 1101 | macros/luatex/generic/pdfextra/README.md
2021/09/18 | 714993 | macros/luatex/generic/pdfextra.zip
-2021/12/15 | 9717 | macros/luatex/generic/penlight/penlightextras.lua
-2021/12/15 | 406992 | macros/luatex/generic/penlight/penlight.lua
-2021/12/15 | 29642 | macros/luatex/generic/penlight/penlight.pdf
-2021/12/15 | 1723 | macros/luatex/generic/penlight/penlight.sty
-2021/12/15 | 4971 | macros/luatex/generic/penlight/penlight.tex
-2021/12/15 | 1259 | macros/luatex/generic/penlight/README.md
-2021/12/15 | 145039 | macros/luatex/generic/penlight.zip
+2022/02/27 | 19064 | macros/luatex/generic/penlight/penlightextras.lua
+2022/02/27 | 421831 | macros/luatex/generic/penlight/penlight.lua
+2022/02/27 | 38237 | macros/luatex/generic/penlight/penlight.pdf
+2022/02/27 | 1838 | macros/luatex/generic/penlight/penlight.sty
+2022/02/27 | 7745 | macros/luatex/generic/penlight/penlight.tex
+2022/02/27 | 1259 | macros/luatex/generic/penlight/README.md
+2022/02/27 | 160321 | macros/luatex/generic/penlight.zip
2013/05/25 | 2280 | macros/luatex/generic/spelling/CHANGES
2012/11/26 | 19106 | macros/luatex/generic/spelling/LICENSE
2013/05/25 | 1606 | macros/luatex/generic/spelling/README
@@ -245001,6 +245017,11 @@
2021/12/17 | 19106 | macros/unicodetex/latex/beaulivre/LICENSE
2021/12/17 | 1096 | macros/unicodetex/latex/beaulivre/README.md
2021/12/17 | 780820 | macros/unicodetex/latex/beaulivre.zip
+2022/02/26 | 128251 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
+2022/02/26 | 6771 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.sty
+2022/02/26 | 17327 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.tex
+2022/02/26 | 863 | macros/unicodetex/latex/book-of-common-prayer/README.md
+2022/02/27 | 131645 | macros/unicodetex/latex/book-of-common-prayer.zip
2021/12/16 | 22697 | macros/unicodetex/latex/chhaya/chhaya.dtx
2021/12/14 | 3360 | macros/unicodetex/latex/chhaya/chhaya.ins
2021/12/16 | 99043 | macros/unicodetex/latex/chhaya/chhaya.pdf
@@ -245767,11 +245788,6 @@
2014/07/16 | 2436 | macros/xetex/latex/bidishadowtext/bidishadowtext.sty
2014/07/16 | 120948 | macros/xetex/latex/bidishadowtext.zip
2022/02/18 | 3963137 | macros/xetex/latex/bidi.zip
-2021/06/27 | 95265 | macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
-2021/06/27 | 6011 | macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.sty
-2021/06/27 | 15511 | macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.tex
-2021/06/27 | 851 | macros/xetex/latex/book-of-common-prayer/README.md
-2021/06/27 | 99072 | macros/xetex/latex/book-of-common-prayer.zip
2018/08/15 | 10902 | macros/xetex/latex/businesscard-qrcode/businesscard-qrcode.cls
2018/08/15 | 51983 | macros/xetex/latex/businesscard-qrcode/examples/example.pdf
2018/08/15 | 932 | macros/xetex/latex/businesscard-qrcode/examples/example.tex
@@ -269076,116 +269092,116 @@
2011/05/01 | 29792 | support/ant-worker-tasks/lib/worker-tools.jar
2011/05/01 | 1107 | support/ant-worker-tasks/README
2011/05/02 | 2079536 | support/ant-worker-tasks.zip
-2021/12/21 | 1727 | support/arara/doc/arara.1
-2021/12/21 | 1971116 | support/arara/doc/arara-manual.pdf
-2021/12/21 | 3362 | support/arara/doc/arara-manual.tex
-2021/12/21 | 250045 | support/arara/doc/arara-quickstart.pdf
-2021/12/21 | 40086 | support/arara/doc/arara-quickstart.tex
-2021/12/21 | 39 | support/arara/doc/arararc.yaml
-2021/12/21 | 33026 | support/arara/doc/arara.sty
-2021/12/21 | 12065 | support/arara/doc/chapters/building.tex
-2021/12/21 | 26880 | support/arara/doc/chapters/cli.tex
-2021/12/21 | 37238 | support/arara/doc/chapters/concepts.tex
-2021/12/21 | 20201 | support/arara/doc/chapters/configuration.tex
-2021/12/21 | 14613 | support/arara/doc/chapters/deploying.tex
-2021/12/21 | 12528 | support/arara/doc/chapters/introduction.tex
-2021/12/21 | 2108 | support/arara/doc/chapters/license.tex
-2021/12/21 | 11976 | support/arara/doc/chapters/logging.tex
-2021/12/21 | 81117 | support/arara/doc/chapters/methods.tex
-2021/12/21 | 13532 | support/arara/doc/chapters/mvel.tex
-2021/12/21 | 138933 | support/arara/doc/chapters/rules.tex
-2021/12/21 | 7353 | support/arara/doc/chapters/yaml.tex
-2021/12/21 | 140957 | support/arara/doc/figures/arara.png
-2021/12/21 | 60850 | support/arara/doc/figures/dropdown1.pdf
-2021/12/21 | 59101 | support/arara/doc/figures/dropdown2.pdf
-2021/12/21 | 1347 | support/arara/doc/figures/gl.pdf
-2021/12/21 | 59941 | support/arara/doc/figures/inputbox1.pdf
-2021/12/21 | 58249 | support/arara/doc/figures/inputbox2.pdf
-2021/12/21 | 54949 | support/arara/doc/figures/messagebox1.pdf
-2021/12/21 | 53224 | support/arara/doc/figures/messagebox2.pdf
-2021/12/21 | 61172 | support/arara/doc/figures/optionbox1.pdf
-2021/12/21 | 59540 | support/arara/doc/figures/optionbox2.pdf
-2021/12/21 | 3026 | support/arara/doc/logos/bird.pdf
-2021/12/21 | 14215 | support/arara/doc/logos/logo1.pdf
-2021/12/21 | 14166 | support/arara/doc/logos/logo2.pdf
-2021/12/21 | 1032 | support/arara/doc/rules/manual.yaml
-2021/12/21 | 1046 | support/arara/doc/rules/quickstart.yaml
-2021/12/21 | 5 | support/arara/doc/version.tex
-2021/12/21 | 4722 | support/arara/README.md
-2021/12/21 | 11851284 | support/arara/scripts/arara.jar
-2021/12/21 | 576 | support/arara/scripts/arara.sh
-2021/12/21 | 1107 | support/arara/scripts/rules/arara-rule-animate.yaml
-2021/12/21 | 1478 | support/arara/scripts/rules/arara-rule-asymptote.yaml
-2021/12/21 | 1105 | support/arara/scripts/rules/arara-rule-authorindex.yaml
-2021/12/21 | 5789 | support/arara/scripts/rules/arara-rule-bib2gls.yaml
-2021/12/21 | 839 | support/arara/scripts/rules/arara-rule-biber.yaml
-2021/12/21 | 621 | support/arara/scripts/rules/arara-rule-bibtex8.yaml
-2021/12/21 | 621 | support/arara/scripts/rules/arara-rule-bibtexu.yaml
-2021/12/21 | 592 | support/arara/scripts/rules/arara-rule-bibtex.yaml
-2021/12/21 | 1341 | support/arara/scripts/rules/arara-rule-clean.yaml
-2021/12/21 | 4254 | support/arara/scripts/rules/arara-rule-context.yaml
-2021/12/21 | 647 | support/arara/scripts/rules/arara-rule-convert.yaml
-2021/12/21 | 796 | support/arara/scripts/rules/arara-rule-copy.yaml
-2021/12/21 | 1272 | support/arara/scripts/rules/arara-rule-csplain.yaml
-2021/12/21 | 4074 | support/arara/scripts/rules/arara-rule-datatooltk.yaml
-2021/12/21 | 1837 | support/arara/scripts/rules/arara-rule-detex.yaml
-2021/12/21 | 812 | support/arara/scripts/rules/arara-rule-dvipdfmx.yaml
-2021/12/21 | 808 | support/arara/scripts/rules/arara-rule-dvipdfm.yaml
-2021/12/21 | 1278 | support/arara/scripts/rules/arara-rule-dvipspdf.yaml
-2021/12/21 | 799 | support/arara/scripts/rules/arara-rule-dvips.yaml
-2021/12/21 | 1448 | support/arara/scripts/rules/arara-rule-dvisvgm.yaml
-2021/12/21 | 1062 | support/arara/scripts/rules/arara-rule-etex.yaml
-2021/12/21 | 1672 | support/arara/scripts/rules/arara-rule-fig2dev.yaml
-2021/12/21 | 1989 | support/arara/scripts/rules/arara-rule-frontespizio.yaml
-2021/12/21 | 878 | support/arara/scripts/rules/arara-rule-ghostscript.yaml
-2021/12/21 | 950 | support/arara/scripts/rules/arara-rule-gnuplot.yaml
-2021/12/21 | 320 | support/arara/scripts/rules/arara-rule-halt.yaml
-2021/12/21 | 2990 | support/arara/scripts/rules/arara-rule-indent.yaml
-2021/12/21 | 1470 | support/arara/scripts/rules/arara-rule-knitr.yaml
-2021/12/21 | 1884 | support/arara/scripts/rules/arara-rule-latexmk.yaml
-2021/12/21 | 1610 | support/arara/scripts/rules/arara-rule-latex.yaml
-2021/12/21 | 1282 | support/arara/scripts/rules/arara-rule-llmk.yaml
-2021/12/21 | 2544 | support/arara/scripts/rules/arara-rule-ltx2any.yaml
-2021/12/21 | 1276 | support/arara/scripts/rules/arara-rule-luahbtex.yaml
-2021/12/21 | 1625 | support/arara/scripts/rules/arara-rule-lualatex.yaml
-2021/12/21 | 1268 | support/arara/scripts/rules/arara-rule-luatex.yaml
-2021/12/21 | 647 | support/arara/scripts/rules/arara-rule-makeglossarieslite.yaml
-2021/12/21 | 2435 | support/arara/scripts/rules/arara-rule-makeglossaries.yaml
-2021/12/21 | 1503 | support/arara/scripts/rules/arara-rule-makeindex.yaml
-2021/12/21 | 984 | support/arara/scripts/rules/arara-rule-make.yaml
-2021/12/21 | 1274 | support/arara/scripts/rules/arara-rule-metapost.yaml
-2021/12/21 | 923 | support/arara/scripts/rules/arara-rule-move.yaml
-2021/12/21 | 832 | support/arara/scripts/rules/arara-rule-nomencl.yaml
-2021/12/21 | 596 | support/arara/scripts/rules/arara-rule-pbibtex.yaml
-2021/12/21 | 3253 | support/arara/scripts/rules/arara-rule-pdfcrop.yaml
-2021/12/21 | 1284 | support/arara/scripts/rules/arara-rule-pdfcsplain.yaml
-2021/12/21 | 1625 | support/arara/scripts/rules/arara-rule-pdflatex.yaml
-2021/12/21 | 1268 | support/arara/scripts/rules/arara-rule-pdftex.yaml
-2021/12/21 | 588 | support/arara/scripts/rules/arara-rule-pdftk.yaml
-2021/12/21 | 2100 | support/arara/scripts/rules/arara-rule-perltex.yaml
-2021/12/21 | 1517 | support/arara/scripts/rules/arara-rule-platex.yaml
-2021/12/21 | 809 | support/arara/scripts/rules/arara-rule-ps2pdf.yaml
-2021/12/21 | 1162 | support/arara/scripts/rules/arara-rule-ptex.yaml
-2021/12/21 | 1722 | support/arara/scripts/rules/arara-rule-pythontex.yaml
-2021/12/21 | 546 | support/arara/scripts/rules/arara-rule-qpdf.yaml
-2021/12/21 | 1324 | support/arara/scripts/rules/arara-rule-sage.yaml
-2021/12/21 | 682 | support/arara/scripts/rules/arara-rule-sketch.yaml
-2021/12/21 | 812 | support/arara/scripts/rules/arara-rule-songidx.yaml
-2021/12/21 | 651 | support/arara/scripts/rules/arara-rule-spix.yaml
-2021/12/21 | 1709 | support/arara/scripts/rules/arara-rule-texcount.yaml
-2021/12/21 | 1974 | support/arara/scripts/rules/arara-rule-texindy.yaml
-2021/12/21 | 1050 | support/arara/scripts/rules/arara-rule-tex.yaml
-2021/12/21 | 842 | support/arara/scripts/rules/arara-rule-tikzmake.yaml
-2021/12/21 | 626 | support/arara/scripts/rules/arara-rule-upbibtex.yaml
-2021/12/21 | 1522 | support/arara/scripts/rules/arara-rule-uplatex.yaml
-2021/12/21 | 1166 | support/arara/scripts/rules/arara-rule-uptex.yaml
-2021/12/21 | 1111 | support/arara/scripts/rules/arara-rule-xdvipdfmx.yaml
-2021/12/21 | 1522 | support/arara/scripts/rules/arara-rule-xelatex.yaml
-2021/12/21 | 1166 | support/arara/scripts/rules/arara-rule-xetex.yaml
-2021/12/21 | 910 | support/arara/scripts/rules/arara-rule-xindex.yaml
-2021/12/21 | 1975 | support/arara/scripts/rules/arara-rule-xindy.yaml
-2021/12/21 | 131975 | support/arara/source/arara-6.1.5-src.zip
-2021/12/21 | 13752305 | support/arara.zip
+2022/02/27 | 1727 | support/arara/doc/arara.1
+2022/02/27 | 1971107 | support/arara/doc/arara-manual.pdf
+2022/02/27 | 3362 | support/arara/doc/arara-manual.tex
+2022/02/27 | 250058 | support/arara/doc/arara-quickstart.pdf
+2022/02/27 | 40086 | support/arara/doc/arara-quickstart.tex
+2022/02/27 | 39 | support/arara/doc/arararc.yaml
+2022/02/27 | 33026 | support/arara/doc/arara.sty
+2022/02/27 | 12065 | support/arara/doc/chapters/building.tex
+2022/02/27 | 26880 | support/arara/doc/chapters/cli.tex
+2022/02/27 | 37238 | support/arara/doc/chapters/concepts.tex
+2022/02/27 | 20201 | support/arara/doc/chapters/configuration.tex
+2022/02/27 | 14613 | support/arara/doc/chapters/deploying.tex
+2022/02/27 | 12528 | support/arara/doc/chapters/introduction.tex
+2022/02/27 | 2108 | support/arara/doc/chapters/license.tex
+2022/02/27 | 11976 | support/arara/doc/chapters/logging.tex
+2022/02/27 | 81117 | support/arara/doc/chapters/methods.tex
+2022/02/27 | 13532 | support/arara/doc/chapters/mvel.tex
+2022/02/27 | 138933 | support/arara/doc/chapters/rules.tex
+2022/02/27 | 7353 | support/arara/doc/chapters/yaml.tex
+2022/02/27 | 140957 | support/arara/doc/figures/arara.png
+2022/02/27 | 60850 | support/arara/doc/figures/dropdown1.pdf
+2022/02/27 | 59101 | support/arara/doc/figures/dropdown2.pdf
+2022/02/27 | 1347 | support/arara/doc/figures/gl.pdf
+2022/02/27 | 59941 | support/arara/doc/figures/inputbox1.pdf
+2022/02/27 | 58249 | support/arara/doc/figures/inputbox2.pdf
+2022/02/27 | 54949 | support/arara/doc/figures/messagebox1.pdf
+2022/02/27 | 53224 | support/arara/doc/figures/messagebox2.pdf
+2022/02/27 | 61172 | support/arara/doc/figures/optionbox1.pdf
+2022/02/27 | 59540 | support/arara/doc/figures/optionbox2.pdf
+2022/02/27 | 3026 | support/arara/doc/logos/bird.pdf
+2022/02/27 | 14215 | support/arara/doc/logos/logo1.pdf
+2022/02/27 | 14166 | support/arara/doc/logos/logo2.pdf
+2022/02/27 | 1032 | support/arara/doc/rules/manual.yaml
+2022/02/27 | 1046 | support/arara/doc/rules/quickstart.yaml
+2022/02/27 | 5 | support/arara/doc/version.tex
+2022/02/27 | 4722 | support/arara/README.md
+2022/02/27 | 11876220 | support/arara/scripts/arara.jar
+2022/02/27 | 576 | support/arara/scripts/arara.sh
+2022/02/27 | 1107 | support/arara/scripts/rules/arara-rule-animate.yaml
+2022/02/27 | 1478 | support/arara/scripts/rules/arara-rule-asymptote.yaml
+2022/02/27 | 1105 | support/arara/scripts/rules/arara-rule-authorindex.yaml
+2022/02/27 | 5789 | support/arara/scripts/rules/arara-rule-bib2gls.yaml
+2022/02/27 | 839 | support/arara/scripts/rules/arara-rule-biber.yaml
+2022/02/27 | 621 | support/arara/scripts/rules/arara-rule-bibtex8.yaml
+2022/02/27 | 621 | support/arara/scripts/rules/arara-rule-bibtexu.yaml
+2022/02/27 | 592 | support/arara/scripts/rules/arara-rule-bibtex.yaml
+2022/02/27 | 1341 | support/arara/scripts/rules/arara-rule-clean.yaml
+2022/02/27 | 4254 | support/arara/scripts/rules/arara-rule-context.yaml
+2022/02/27 | 647 | support/arara/scripts/rules/arara-rule-convert.yaml
+2022/02/27 | 796 | support/arara/scripts/rules/arara-rule-copy.yaml
+2022/02/27 | 1272 | support/arara/scripts/rules/arara-rule-csplain.yaml
+2022/02/27 | 4074 | support/arara/scripts/rules/arara-rule-datatooltk.yaml
+2022/02/27 | 1837 | support/arara/scripts/rules/arara-rule-detex.yaml
+2022/02/27 | 812 | support/arara/scripts/rules/arara-rule-dvipdfmx.yaml
+2022/02/27 | 808 | support/arara/scripts/rules/arara-rule-dvipdfm.yaml
+2022/02/27 | 1278 | support/arara/scripts/rules/arara-rule-dvipspdf.yaml
+2022/02/27 | 799 | support/arara/scripts/rules/arara-rule-dvips.yaml
+2022/02/27 | 1448 | support/arara/scripts/rules/arara-rule-dvisvgm.yaml
+2022/02/27 | 1062 | support/arara/scripts/rules/arara-rule-etex.yaml
+2022/02/27 | 1672 | support/arara/scripts/rules/arara-rule-fig2dev.yaml
+2022/02/27 | 1989 | support/arara/scripts/rules/arara-rule-frontespizio.yaml
+2022/02/27 | 878 | support/arara/scripts/rules/arara-rule-ghostscript.yaml
+2022/02/27 | 950 | support/arara/scripts/rules/arara-rule-gnuplot.yaml
+2022/02/27 | 320 | support/arara/scripts/rules/arara-rule-halt.yaml
+2022/02/27 | 2990 | support/arara/scripts/rules/arara-rule-indent.yaml
+2022/02/27 | 1470 | support/arara/scripts/rules/arara-rule-knitr.yaml
+2022/02/27 | 1884 | support/arara/scripts/rules/arara-rule-latexmk.yaml
+2022/02/27 | 1610 | support/arara/scripts/rules/arara-rule-latex.yaml
+2022/02/27 | 1282 | support/arara/scripts/rules/arara-rule-llmk.yaml
+2022/02/27 | 2544 | support/arara/scripts/rules/arara-rule-ltx2any.yaml
+2022/02/27 | 1276 | support/arara/scripts/rules/arara-rule-luahbtex.yaml
+2022/02/27 | 1625 | support/arara/scripts/rules/arara-rule-lualatex.yaml
+2022/02/27 | 1268 | support/arara/scripts/rules/arara-rule-luatex.yaml
+2022/02/27 | 647 | support/arara/scripts/rules/arara-rule-makeglossarieslite.yaml
+2022/02/27 | 2435 | support/arara/scripts/rules/arara-rule-makeglossaries.yaml
+2022/02/27 | 1503 | support/arara/scripts/rules/arara-rule-makeindex.yaml
+2022/02/27 | 984 | support/arara/scripts/rules/arara-rule-make.yaml
+2022/02/27 | 1274 | support/arara/scripts/rules/arara-rule-metapost.yaml
+2022/02/27 | 923 | support/arara/scripts/rules/arara-rule-move.yaml
+2022/02/27 | 832 | support/arara/scripts/rules/arara-rule-nomencl.yaml
+2022/02/27 | 596 | support/arara/scripts/rules/arara-rule-pbibtex.yaml
+2022/02/27 | 3253 | support/arara/scripts/rules/arara-rule-pdfcrop.yaml
+2022/02/27 | 1284 | support/arara/scripts/rules/arara-rule-pdfcsplain.yaml
+2022/02/27 | 1625 | support/arara/scripts/rules/arara-rule-pdflatex.yaml
+2022/02/27 | 1268 | support/arara/scripts/rules/arara-rule-pdftex.yaml
+2022/02/27 | 588 | support/arara/scripts/rules/arara-rule-pdftk.yaml
+2022/02/27 | 2100 | support/arara/scripts/rules/arara-rule-perltex.yaml
+2022/02/27 | 1517 | support/arara/scripts/rules/arara-rule-platex.yaml
+2022/02/27 | 809 | support/arara/scripts/rules/arara-rule-ps2pdf.yaml
+2022/02/27 | 1162 | support/arara/scripts/rules/arara-rule-ptex.yaml
+2022/02/27 | 1722 | support/arara/scripts/rules/arara-rule-pythontex.yaml
+2022/02/27 | 546 | support/arara/scripts/rules/arara-rule-qpdf.yaml
+2022/02/27 | 1324 | support/arara/scripts/rules/arara-rule-sage.yaml
+2022/02/27 | 682 | support/arara/scripts/rules/arara-rule-sketch.yaml
+2022/02/27 | 812 | support/arara/scripts/rules/arara-rule-songidx.yaml
+2022/02/27 | 651 | support/arara/scripts/rules/arara-rule-spix.yaml
+2022/02/27 | 1709 | support/arara/scripts/rules/arara-rule-texcount.yaml
+2022/02/27 | 1974 | support/arara/scripts/rules/arara-rule-texindy.yaml
+2022/02/27 | 1050 | support/arara/scripts/rules/arara-rule-tex.yaml
+2022/02/27 | 842 | support/arara/scripts/rules/arara-rule-tikzmake.yaml
+2022/02/27 | 626 | support/arara/scripts/rules/arara-rule-upbibtex.yaml
+2022/02/27 | 1522 | support/arara/scripts/rules/arara-rule-uplatex.yaml
+2022/02/27 | 1166 | support/arara/scripts/rules/arara-rule-uptex.yaml
+2022/02/27 | 1111 | support/arara/scripts/rules/arara-rule-xdvipdfmx.yaml
+2022/02/27 | 1522 | support/arara/scripts/rules/arara-rule-xelatex.yaml
+2022/02/27 | 1166 | support/arara/scripts/rules/arara-rule-xetex.yaml
+2022/02/27 | 910 | support/arara/scripts/rules/arara-rule-xindex.yaml
+2022/02/27 | 1975 | support/arara/scripts/rules/arara-rule-xindy.yaml
+2022/02/27 | 131975 | support/arara/source/arara-6.1.6-src.zip
+2022/02/27 | 13775102 | support/arara.zip
2001/08/10 | 19878 | support/arraymaker/arraymaker
2001/08/11 | 1352 | support/arraymaker/README
1995/02/22 | 13087 | support/artex/artex
@@ -280472,7 +280488,7 @@
2021/02/07 | 136588 | systems/texlive/tlnet/archive/babel-danish.doc.r57642.tar.xz
2021/02/07 | 2488 | systems/texlive/tlnet/archive/babel-danish.r57642.tar.xz
2021/02/07 | 5792 | systems/texlive/tlnet/archive/babel-danish.source.r57642.tar.xz
-2022/02/25 | 842684 | systems/texlive/tlnet/archive/babel.doc.r62166.tar.xz
+2022/02/27 | 842860 | systems/texlive/tlnet/archive/babel.doc.r62203.tar.xz
2021/08/30 | 157392 | systems/texlive/tlnet/archive/babel-dutch.doc.r60362.tar.xz
2021/08/30 | 2920 | systems/texlive/tlnet/archive/babel-dutch.r60362.tar.xz
2021/08/30 | 7968 | systems/texlive/tlnet/archive/babel-dutch.source.r60362.tar.xz
@@ -280558,7 +280574,7 @@
2021/07/10 | 146580 | systems/texlive/tlnet/archive/babel-portuges.doc.r59883.tar.xz
2021/07/10 | 2828 | systems/texlive/tlnet/archive/babel-portuges.r59883.tar.xz
2021/07/10 | 6692 | systems/texlive/tlnet/archive/babel-portuges.source.r59883.tar.xz
-2022/02/25 | 183932 | systems/texlive/tlnet/archive/babel.r62166.tar.xz
+2022/02/27 | 184200 | systems/texlive/tlnet/archive/babel.r62203.tar.xz
2021/04/07 | 113056 | systems/texlive/tlnet/archive/babel-romanian.doc.r58776.tar.xz
2021/04/07 | 2124 | systems/texlive/tlnet/archive/babel-romanian.r58776.tar.xz
2021/04/07 | 4308 | systems/texlive/tlnet/archive/babel-romanian.source.r58776.tar.xz
@@ -280589,7 +280605,7 @@
2021/11/07 | 209804 | systems/texlive/tlnet/archive/babel-sorbian.doc.r60975.tar.xz
2021/11/07 | 3156 | systems/texlive/tlnet/archive/babel-sorbian.r60975.tar.xz
2021/11/07 | 6328 | systems/texlive/tlnet/archive/babel-sorbian.source.r60975.tar.xz
-2022/02/25 | 698920 | systems/texlive/tlnet/archive/babel.source.r62166.tar.xz
+2022/02/27 | 698900 | systems/texlive/tlnet/archive/babel.source.r62203.tar.xz
2021/05/28 | 183140 | systems/texlive/tlnet/archive/babel-spanish.doc.r59367.tar.xz
2021/05/28 | 8876 | systems/texlive/tlnet/archive/babel-spanish.r59367.tar.xz
2021/05/28 | 29800 | systems/texlive/tlnet/archive/babel-spanish.source.r59367.tar.xz
@@ -280760,7 +280776,7 @@
2020/04/22 | 5992 | systems/texlive/tlnet/archive/bearwear.source.r54826.tar.xz
2021/12/18 | 703476 | systems/texlive/tlnet/archive/beaulivre.doc.r61338.tar.xz
2021/12/18 | 3944 | systems/texlive/tlnet/archive/beaulivre.r61338.tar.xz
-2022/02/21 | 889496 | systems/texlive/tlnet/archive/beebe.r62093.tar.xz
+2022/02/27 | 889472 | systems/texlive/tlnet/archive/beebe.r62180.tar.xz
2019/02/28 | 709916 | systems/texlive/tlnet/archive/begingreek.doc.r36294.tar.xz
2019/02/28 | 1664 | systems/texlive/tlnet/archive/begingreek.r36294.tar.xz
2019/02/28 | 7448 | systems/texlive/tlnet/archive/begingreek.source.r36294.tar.xz
@@ -286761,14 +286777,14 @@
2019/02/28 | 352 | systems/texlive/tlnet/archive/luaotfload.amd64-freebsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.amd64-netbsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.armhf-linux.r34647.tar.xz
-2022/02/26 | 624892 | systems/texlive/tlnet/archive/luaotfload.doc.r62175.tar.xz
+2022/02/27 | 624896 | systems/texlive/tlnet/archive/luaotfload.doc.r62198.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/luaotfload.i386-cygwin.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-freebsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-linux.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-netbsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-solaris.r34647.tar.xz
-2022/02/26 | 611380 | systems/texlive/tlnet/archive/luaotfload.r62175.tar.xz
-2022/02/26 | 7296 | systems/texlive/tlnet/archive/luaotfload.source.r62175.tar.xz
+2022/02/27 | 611384 | systems/texlive/tlnet/archive/luaotfload.r62198.tar.xz
+2022/02/27 | 7292 | systems/texlive/tlnet/archive/luaotfload.source.r62198.tar.xz
2021/02/25 | 348 | systems/texlive/tlnet/archive/luaotfload.universal-darwin.r57908.tar.xz
2019/02/28 | 692 | systems/texlive/tlnet/archive/luaotfload.win32.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.x86_64-cygwin.r34647.tar.xz
@@ -286833,8 +286849,8 @@
2021/05/14 | 100604 | systems/texlive/tlnet/archive/lua-ul.doc.r59186.tar.xz
2021/05/14 | 6676 | systems/texlive/tlnet/archive/lua-ul.r59186.tar.xz
2021/05/14 | 10640 | systems/texlive/tlnet/archive/lua-ul.source.r59186.tar.xz
-2021/08/09 | 73924 | systems/texlive/tlnet/archive/lua-uni-algos.doc.r60194.tar.xz
-2021/08/09 | 7696 | systems/texlive/tlnet/archive/lua-uni-algos.r60194.tar.xz
+2022/02/27 | 73920 | systems/texlive/tlnet/archive/lua-uni-algos.doc.r62205.tar.xz
+2022/02/27 | 7688 | systems/texlive/tlnet/archive/lua-uni-algos.r62205.tar.xz
2021/01/08 | 289376 | systems/texlive/tlnet/archive/lua-visual-debug.doc.r57349.tar.xz
2021/01/08 | 3476 | systems/texlive/tlnet/archive/lua-visual-debug.r57349.tar.xz
2021/03/04 | 95132 | systems/texlive/tlnet/archive/luavlna.doc.r58087.tar.xz
@@ -291146,7 +291162,7 @@
2021/03/23 | 276 | systems/texlive/tlnet/archive/texlive-it.r58653.tar.xz
2021/03/22 | 1845596 | systems/texlive/tlnet/archive/texlive-ja.doc.r58581.tar.xz
2021/03/22 | 276 | systems/texlive/tlnet/archive/texlive-ja.r58581.tar.xz
-2022/02/23 | 146380 | systems/texlive/tlnet/archive/texlive-msg-translations.r62135.tar.xz
+2022/02/27 | 146364 | systems/texlive/tlnet/archive/texlive-msg-translations.r62192.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/texliveonfly.aarch64-linux.r46208.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/texliveonfly.amd64-freebsd.r24062.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/texliveonfly.amd64-netbsd.r30191.tar.xz
@@ -291173,7 +291189,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
-2022/02/26 | 404232 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62171.tar.xz
+2022/02/27 | 404188 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62196.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
@@ -291197,7 +291213,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
-2022/02/26 | 108812 | systems/texlive/tlnet/archive/texlive-scripts.r62171.tar.xz
+2022/02/27 | 108788 | systems/texlive/tlnet/archive/texlive-scripts.r62196.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
@@ -292547,10 +292563,10 @@
2020/01/19 | 364224 | systems/texlive/tlnet/archive/xbmks.doc.r53448.tar.xz
2020/01/19 | 4124 | systems/texlive/tlnet/archive/xbmks.r53448.tar.xz
2020/01/19 | 8024 | systems/texlive/tlnet/archive/xbmks.source.r53448.tar.xz
-2022/02/02 | 483688 | systems/texlive/tlnet/archive/xcharter.doc.r61837.tar.xz
+2022/02/27 | 220788 | systems/texlive/tlnet/archive/xcharter.doc.r62200.tar.xz
2022/02/18 | 1944448 | systems/texlive/tlnet/archive/xcharter-math.doc.r62057.tar.xz
2022/02/18 | 201280 | systems/texlive/tlnet/archive/xcharter-math.r62057.tar.xz
-2022/02/02 | 2135600 | systems/texlive/tlnet/archive/xcharter.r61837.tar.xz
+2022/02/27 | 2198460 | systems/texlive/tlnet/archive/xcharter.r62200.tar.xz
2020/01/22 | 159256 | systems/texlive/tlnet/archive/xcite.doc.r53486.tar.xz
2020/01/22 | 1048 | systems/texlive/tlnet/archive/xcite.r53486.tar.xz
2020/01/22 | 1664 | systems/texlive/tlnet/archive/xcite.source.r53486.tar.xz
@@ -292996,16 +293012,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
2022/02/22 | 106745 | systems/texlive/tlnet/install-tl
-2022/02/26 | 6809871 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/02/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/02/26 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/02/27 | 6809876 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/02/27 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/02/27 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/02/26 | 20873111 | systems/texlive/tlnet/install-tl-windows.exe
-2022/02/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/02/26 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/02/26 | 25628758 | systems/texlive/tlnet/install-tl.zip
-2022/02/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/02/26 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/02/27 | 20874389 | systems/texlive/tlnet/install-tl-windows.exe
+2022/02/27 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/02/27 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/02/27 | 25628823 | systems/texlive/tlnet/install-tl.zip
+2022/02/27 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/02/27 | 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/07/03 | 7181 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -293015,8 +293031,8 @@
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/01/12 | 49482 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/02/25 | 7434 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
-2022/02/05 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
+2022/02/27 | 7337 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/02/27 | 213092 | 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
2021/02/27 | 5390 | systems/texlive/tlnet/tlpkg/installer/install-menu-extl.pl
@@ -293024,8 +293040,8 @@
2021/04/07 | 65140 | systems/texlive/tlnet/tlpkg/installer/install-tl-gui.tcl
2020/03/16 | 240640 | systems/texlive/tlnet/tlpkg/installer/tar.exe
2018/07/06 | 26224 | systems/texlive/tlnet/tlpkg/installer/texlion.gif
-2016/04/07 | 423 | systems/texlive/tlnet/tlpkg/installer/tl-cmd.bat
-2019/08/30 | 1435 | systems/texlive/tlnet/tlpkg/installer/tl-tray-menu.ini
+2019/12/10 | 423 | systems/texlive/tlnet/tlpkg/installer/tl-cmd.bat
+2019/12/10 | 1435 | systems/texlive/tlnet/tlpkg/installer/tl-tray-menu.ini
2016/04/27 | 643552 | systems/texlive/tlnet/tlpkg/installer/wget/wget.amd64-freebsd
2021/04/24 | 2078256 | systems/texlive/tlnet/tlpkg/installer/wget/wget.amd64-netbsd
2021/09/13 | 3247630 | systems/texlive/tlnet/tlpkg/installer/wget/wget.exe
@@ -293057,12 +293073,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/02/26 | 17138896 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/02/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/02/27 | 17173296 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/02/27 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/12/21 | 86654 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/02/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/02/26 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/02/26 | 2353376 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/02/27 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/02/27 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/02/27 | 2355256 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/12/21 | 42112 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -294718,7 +294734,7 @@
2021/03/02 | 2040 | systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/libtcldde14.dll.a
2021/03/02 | 310 | systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/pkgIndex.tcl
2021/03/02 | 32782 | systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/tcldde14.dll
-2021/03/02 | 336910 | systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.1/itcl421.dll
+2021/03/04 | 336910 | systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.1/itcl421.dll
2021/03/02 | 3108 | systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.1/itclConfig.sh
2021/03/02 | 21056 | systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.1/itclHullCmds.tcl
2021/03/02 | 5153 | systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.1/itcl.tcl
@@ -295571,20 +295587,20 @@
2020/03/17 | 773 | systems/texlive/tlnet/tlpkg/tltcl/lib/tclooConfig.sh
2021/03/02 | 1690 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.2/libtdbcstub112.a
2021/03/02 | 546 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.2/pkgIndex.tcl
-2021/03/02 | 18446 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.2/tdbc112.dll
+2021/03/04 | 18446 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.2/tdbc112.dll
2021/03/02 | 3597 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.2/tdbcConfig.sh
2021/03/02 | 26761 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.2/tdbc.tcl
2021/03/02 | 251 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.2/pkgIndex.tcl
-2021/03/02 | 74254 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.2/tdbcmysql112.dll
+2021/03/04 | 74254 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.2/tdbcmysql112.dll
2021/03/02 | 6623 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.2/tdbcmysql.tcl
2021/03/02 | 246 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.2/pkgIndex.tcl
-2021/03/02 | 86030 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.2/tdbcodbc112.dll
+2021/03/04 | 86030 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.2/tdbcodbc112.dll
2021/03/02 | 15620 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.2/tdbcodbc.tcl
2021/03/02 | 266 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.2/pkgIndex.tcl
-2021/03/02 | 104462 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.2/tdbcpostgres112.dll
+2021/03/04 | 104462 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.2/tdbcpostgres112.dll
2021/03/02 | 4363 | systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.2/tdbcpostgres.tcl
2021/03/02 | 2390 | systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.6/pkgIndex.tcl
-2021/03/02 | 157198 | systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.6/thread286.dll
+2021/03/04 | 157198 | systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.6/thread286.dll
2021/03/02 | 29530 | systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.6/ttrace.tcl
2021/03/02 | 8534 | systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/bgerror.tcl
2020/03/17 | 20830 | systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/button.tcl
@@ -295760,27 +295776,27 @@
2021/03/02 | 3531 | systems/texlive/tlnet/tlpkg/tltcl/lib/tkConfig.sh
2018/11/30 | 1310 | systems/texlive/tlnet/tlpkg/tltcl/tlmgr.gif
2021/10/13 | 25696 | systems/texlive/tlnet/tlpkg/tltcl/tltcl.tcl
-2022/02/21 | 81661 | systems/texlive/tlnet/tlpkg/translations/cs.po
-2022/02/21 | 57238 | systems/texlive/tlnet/tlpkg/translations/da.po
-2022/02/21 | 89150 | systems/texlive/tlnet/tlpkg/translations/de.po
-2022/02/21 | 79116 | systems/texlive/tlnet/tlpkg/translations/es.po
-2022/02/22 | 93738 | systems/texlive/tlnet/tlpkg/translations/fr.po
-2022/02/21 | 87449 | systems/texlive/tlnet/tlpkg/translations/it.po
-2022/02/21 | 62088 | systems/texlive/tlnet/tlpkg/translations/ja.po
-2022/02/21 | 46805 | systems/texlive/tlnet/tlpkg/translations/messages.pot
-2022/02/21 | 57512 | systems/texlive/tlnet/tlpkg/translations/nl.po
-2022/02/21 | 66647 | systems/texlive/tlnet/tlpkg/translations/pl.po
-2022/02/21 | 82301 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
+2022/02/26 | 81767 | systems/texlive/tlnet/tlpkg/translations/cs.po
+2022/02/26 | 57344 | systems/texlive/tlnet/tlpkg/translations/da.po
+2022/02/26 | 89256 | systems/texlive/tlnet/tlpkg/translations/de.po
+2022/02/26 | 79222 | systems/texlive/tlnet/tlpkg/translations/es.po
+2022/02/26 | 93844 | systems/texlive/tlnet/tlpkg/translations/fr.po
+2022/02/26 | 87555 | systems/texlive/tlnet/tlpkg/translations/it.po
+2022/02/26 | 62194 | systems/texlive/tlnet/tlpkg/translations/ja.po
+2022/02/27 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/02/26 | 57618 | systems/texlive/tlnet/tlpkg/translations/nl.po
+2022/02/26 | 66753 | systems/texlive/tlnet/tlpkg/translations/pl.po
+2022/02/26 | 82407 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
2019/03/25 | 430 | systems/texlive/tlnet/tlpkg/translations/README
2021/03/10 | 105281 | systems/texlive/tlnet/tlpkg/translations/ru.po
-2022/02/21 | 88496 | systems/texlive/tlnet/tlpkg/translations/sk.po
-2022/02/21 | 69304 | systems/texlive/tlnet/tlpkg/translations/sl.po
-2022/02/21 | 103025 | systems/texlive/tlnet/tlpkg/translations/sr.po
+2022/02/26 | 88602 | systems/texlive/tlnet/tlpkg/translations/sk.po
+2022/02/26 | 69410 | systems/texlive/tlnet/tlpkg/translations/sl.po
+2022/02/26 | 103131 | systems/texlive/tlnet/tlpkg/translations/sr.po
2019/03/28 | 847 | systems/texlive/tlnet/tlpkg/translations/translators
-2022/02/21 | 80130 | systems/texlive/tlnet/tlpkg/translations/uk.po
-2022/02/21 | 90134 | systems/texlive/tlnet/tlpkg/translations/vi.po
-2022/02/21 | 63102 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
-2022/02/21 | 53033 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
+2022/02/26 | 80236 | systems/texlive/tlnet/tlpkg/translations/uk.po
+2022/02/26 | 90240 | systems/texlive/tlnet/tlpkg/translations/vi.po
+2022/02/26 | 63208 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
+2022/02/26 | 53139 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
2022/02/23 | 4080180 | systems/texlive/tlnet/update-tlmgr-r62112.exe
2022/02/23 | 154 | systems/texlive/tlnet/update-tlmgr-r62112.exe.sha512
2022/02/23 | 455 | systems/texlive/tlnet/update-tlmgr-r62112.exe.sha512.asc
@@ -298202,7 +298218,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
-2022/02/26 | 640179 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/02/27 | 640179 | 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
@@ -299745,9 +299761,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/01/29 | 39717 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/01/29 | 43173 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/26 | 267522 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/02/26 | 1425231 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/02/26 | 1318306 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/02/27 | 267514 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/02/27 | 1425902 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/02/27 | 1318149 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/01/29 | 13505 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/01/29 | 14408 | 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
@@ -299971,191 +299987,191 @@
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
-2022/02/26 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/02/26 | 51514 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/02/26 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/02/26 | 1020251 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/02/26 | 1156086 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/02/26 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/02/26 | 31570 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/02/26 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/02/26 | 35234 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/02/26 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/02/26 | 65099 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/02/26 | 86484 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/02/26 | 95314 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/02/26 | 68890 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/02/26 | 77078 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/02/26 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/02/26 | 31334 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/02/26 | 332516 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/02/26 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/02/26 | 32936 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/02/26 | 37087 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/02/26 | 51466 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/02/26 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/02/26 | 256393 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/02/26 | 281707 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/02/26 | 180014 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/02/26 | 196183 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/02/26 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/02/26 | 103057 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/02/26 | 21320 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/02/26 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/02/26 | 479431 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/02/26 | 46090 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/02/26 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/02/26 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/02/26 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/02/26 | 41316 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/02/26 | 45700 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/02/26 | 120468 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/02/26 | 135256 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/02/26 | 1306310 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/02/26 | 1454269 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/02/26 | 99711 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/02/26 | 113012 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/02/26 | 43642 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/02/26 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/02/26 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/02/26 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/02/26 | 57043 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/02/26 | 63391 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/02/26 | 136110 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/02/26 | 155453 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/02/26 | 73593 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/02/26 | 78964 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/02/26 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/02/26 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/02/26 | 259094 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/02/26 | 296016 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/02/26 | 22162 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/02/26 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/02/26 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/02/26 | 112475 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/02/26 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/02/26 | 73203 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/02/26 | 96599 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/02/26 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/02/26 | 38480 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/02/26 | 43804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/02/26 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/02/26 | 566553 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/02/26 | 188209 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/02/26 | 229950 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/02/26 | 152069 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/02/26 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/02/26 | 95463 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/02/26 | 109517 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/02/26 | 16505 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/02/26 | 18358 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/02/26 | 28417 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/02/26 | 30526 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/02/26 | 633941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/02/26 | 682351 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/02/26 | 532217 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/02/26 | 599044 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/02/26 | 477759 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/02/26 | 527877 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/02/26 | 93957 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/02/26 | 103394 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/02/26 | 1753743 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/02/26 | 1983662 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/02/26 | 68007 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/02/26 | 74063 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/02/26 | 27630 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/02/26 | 32137 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/02/26 | 7758 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/02/26 | 8786 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/02/26 | 197455 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/02/26 | 216061 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/02/26 | 251337 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/02/26 | 286545 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/02/26 | 99249 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/02/26 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/02/26 | 126757 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/02/26 | 139419 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/02/26 | 254981 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/02/26 | 286873 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/02/26 | 199569 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/02/26 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/02/26 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/02/26 | 76232 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/02/26 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/02/26 | 35189 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/02/26 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/02/26 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/02/26 | 43370 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/02/26 | 48015 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/02/26 | 45941 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/02/26 | 52311 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/02/26 | 198684 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/02/26 | 213206 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/02/26 | 36063 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/02/26 | 41280 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/02/26 | 759645 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/02/26 | 825811 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/02/26 | 200075 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/02/26 | 202534 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/02/26 | 210200 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/02/26 | 244865 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/02/26 | 78982 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/02/26 | 88125 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/02/26 | 1180914 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/02/26 | 1322724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/02/26 | 20190 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/02/26 | 23933 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/02/26 | 31567 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/02/26 | 37393 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/02/26 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/02/26 | 73011 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/02/26 | 50825 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/02/26 | 58654 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/02/26 | 688941 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/02/26 | 762605 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/02/26 | 1355330 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/02/26 | 1499051 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/02/26 | 42745 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/02/26 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/02/26 | 57474 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/02/26 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/02/26 | 25457 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/02/26 | 27590 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/02/26 | 16570 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/02/26 | 18499 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/02/26 | 64475 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/02/26 | 71001 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/02/26 | 156732 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/02/26 | 172561 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/02/26 | 58685 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/02/26 | 67225 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/02/26 | 101442 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/02/26 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/02/26 | 2696293 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/02/26 | 2816622 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/02/26 | 55413 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/02/26 | 62129 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/02/26 | 37181 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/02/26 | 41227 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/02/26 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/02/26 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/02/26 | 67651 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/02/26 | 73502 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/02/26 | 316655 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/02/26 | 351832 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/02/26 | 55765 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/02/26 | 57445 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/02/26 | 591470 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/02/26 | 629481 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/02/26 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/02/26 | 43665 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/26 | 267660 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/02/26 | 1426822 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/02/26 | 1317876 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/02/26 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/02/26 | 14410 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/02/27 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/02/27 | 51513 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/02/27 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/02/27 | 1020252 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/02/27 | 1156085 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/02/27 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/02/27 | 31567 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/02/27 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/02/27 | 35234 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/02/27 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/02/27 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/02/27 | 86482 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/02/27 | 95315 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/02/27 | 68889 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/02/27 | 77077 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/02/27 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/02/27 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/02/27 | 332515 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/02/27 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/02/27 | 32935 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/02/27 | 37088 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/02/27 | 51466 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/02/27 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/02/27 | 256390 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/02/27 | 281708 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/02/27 | 180013 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/02/27 | 196184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/27 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/02/27 | 103056 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/02/27 | 21318 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/02/27 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/02/27 | 479430 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/02/27 | 46088 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/02/27 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/02/27 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/02/27 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/02/27 | 41315 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/02/27 | 45701 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/02/27 | 120466 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/02/27 | 135254 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/02/27 | 1306315 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/02/27 | 1454268 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/02/27 | 99712 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/02/27 | 113013 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/02/27 | 43641 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/02/27 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/02/27 | 25105 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/02/27 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/02/27 | 57044 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/02/27 | 63390 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/02/27 | 136111 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/02/27 | 155454 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/02/27 | 73595 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/02/27 | 78965 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/02/27 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/02/27 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/02/27 | 259091 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/02/27 | 296017 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/02/27 | 22162 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/02/27 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/02/27 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/02/27 | 112476 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/02/27 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/02/27 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/02/27 | 96600 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/02/27 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/02/27 | 38479 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/02/27 | 43804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/02/27 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/02/27 | 566552 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/02/27 | 188216 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/02/27 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/02/27 | 152070 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/02/27 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/02/27 | 95462 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/02/27 | 109517 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/02/27 | 16506 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/02/27 | 18358 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/02/27 | 28418 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/02/27 | 30526 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/02/27 | 633939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/02/27 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/02/27 | 532218 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/02/27 | 599044 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/02/27 | 477760 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/02/27 | 527876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/02/27 | 93957 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/02/27 | 103392 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/02/27 | 1753742 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/02/27 | 1983665 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/02/27 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/02/27 | 74064 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/02/27 | 27627 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/02/27 | 32138 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/02/27 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/02/27 | 8788 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/02/27 | 197456 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/02/27 | 216062 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/02/27 | 251337 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/02/27 | 286547 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/02/27 | 99246 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/27 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/02/27 | 126756 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/02/27 | 139420 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/02/27 | 254982 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/02/27 | 286873 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/02/27 | 199568 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/02/27 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/02/27 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/02/27 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/02/27 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/02/27 | 35187 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/02/27 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/02/27 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/02/27 | 43369 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/02/27 | 48018 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/02/27 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/02/27 | 52312 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/02/27 | 198683 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/02/27 | 213208 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/02/27 | 36062 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/02/27 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/02/27 | 759643 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/02/27 | 825810 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/02/27 | 200074 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/02/27 | 202535 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/02/27 | 210196 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/02/27 | 244866 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/02/27 | 78981 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/02/27 | 88124 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/02/27 | 1180913 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/02/27 | 1322724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/02/27 | 20191 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/02/27 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/02/27 | 31566 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/02/27 | 37394 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/02/27 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/02/27 | 73012 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/02/27 | 50823 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/02/27 | 58654 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/02/27 | 688940 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/02/27 | 762607 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/02/27 | 1355330 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/02/27 | 1499050 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/02/27 | 42744 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/02/27 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/02/27 | 57473 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/02/27 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/02/27 | 25457 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/02/27 | 27590 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/02/27 | 16569 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/02/27 | 18498 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/02/27 | 64473 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/02/27 | 71000 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/02/27 | 156731 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/02/27 | 172562 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/02/27 | 58685 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/02/27 | 67226 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/02/27 | 101439 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/02/27 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/02/27 | 2696291 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/02/27 | 2816621 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/02/27 | 55412 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/02/27 | 62127 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/02/27 | 37182 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/02/27 | 41226 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/02/27 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/02/27 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/02/27 | 67650 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/02/27 | 73502 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/02/27 | 316654 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/02/27 | 351833 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/02/27 | 55763 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/02/27 | 57446 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/02/27 | 591472 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/02/27 | 629481 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/27 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/02/27 | 43666 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/02/27 | 267669 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/02/27 | 1427844 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/02/27 | 1319340 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/02/27 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/02/27 | 14412 | 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
-2022/02/26 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/02/27 | 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
@@ -300611,7 +300627,7 @@
2022/02/22 | 6917 | 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
-2022/02/26 | 928 | systems/win32/miktex/tm/packages/pr.ini
+2022/02/27 | 928 | 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
@@ -302155,7 +302171,7 @@
2007/02/12 | 395234 | systems/win32/texshell32/WinTeXShell32.zip
2021/10/01 | 2480 | systems/win32/TLW64/00README.TLW64
2021/10/01 | 61484773 | systems/win32/TLW64/gs9550w64full-gpl.exe
-2022/02/04 | 98333584 | systems/win32/TLW64/tl-win64.zip
+2022/02/26 | 99128175 | systems/win32/TLW64/tl-win64.zip
1996/11/26 | 1822 | systems/win32/tsconfig/readme
1996/11/26 | 30343 | systems/win32/tsconfig/tsconfig.zip
1998/01/20 | 766976 | systems/win32/util/cmdsh110.exe
@@ -302388,7 +302404,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/02/27 | 186 | timestamp
+2022/02/28 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index f5fc2e4a24..5abe0bb8e7 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 6b7862a8ee..7f26052da6 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,35 +1,558 @@
-2022/02/26 | 99711 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/02/26 | 99249 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/27 | 99712 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/02/27 | 99246 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/27 | 9881 | macros/luatex/generic/luaotfload/fontloader-fonts-gbn.lua
+2022/02/27 | 984 | support/arara/scripts/rules/arara-rule-make.yaml
+2022/02/27 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
+2022/02/27 | 981511 | macros/luatex/generic/luaotfload/fontloader-reference.lua
+2022/02/27 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/02/27 | 968769 | graphics/mcf2graph.zip
+2022/02/27 | 96600 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/02/27 | 95462 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/02/27 | 95315 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/02/27 | 950 | support/arara/scripts/rules/arara-rule-gnuplot.yaml
+2022/02/27 | 94451 | macros/luatex/generic/luaotfload/fontloader-font-otr.lua
+2022/02/27 | 93957 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/02/27 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/02/27 | 928 | systems/win32/miktex/tm/packages/pr.ini
+2022/02/27 | 9255 | macros/latex/contrib/fnpct/fnpct-manual.cls
+2022/02/27 | 923 | support/arara/scripts/rules/arara-rule-move.yaml
+2022/02/27 | 92210 | macros/luatex/generic/luaotfload/fontloader-font-cff.lua
+2022/02/27 | 912 | macros/luatex/generic/luaotfload/fontloader-fonts-mis.lua
+2022/02/27 | 910 | support/arara/scripts/rules/arara-rule-xindex.yaml
+2022/02/27 | 889472 | systems/texlive/tlnet/archive/beebe.r62180.tar.xz
+2022/02/27 | 8840 | macros/luatex/generic/luaotfload/luaotfload-loaders.lua
+2022/02/27 | 88124 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/02/27 | 879568 | macros/luatex/generic/luaotfload/fontloader-2022-02-24.lua
+2022/02/27 | 878 | support/arara/scripts/rules/arara-rule-ghostscript.yaml
+2022/02/27 | 8788 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/02/27 | 8697 | macros/luatex/generic/lutabulartools/lutabulartools.lua
+2022/02/27 | 86482 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/02/27 | 8597 | macros/luatex/generic/luaotfload/filegraph.tex
+2022/02/27 | 85847 | macros/luatex/generic/lutabulartools.zip
+2022/02/27 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
+2022/02/27 | 8548 | macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
+2022/02/27 | 8469 | macros/luatex/generic/luaotfload/shaper-demo.pdf
+2022/02/27 | 842 | support/arara/scripts/rules/arara-rule-tikzmake.yaml
+2022/02/27 | 842860 | systems/texlive/tlnet/archive/babel.doc.r62203.tar.xz
+2022/02/27 | 8413 | dviware/dvisvgm/configure.ac
+2022/02/27 | 839 | support/arara/scripts/rules/arara-rule-biber.yaml
+2022/02/27 | 83452 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
+2022/02/27 | 832 | support/arara/scripts/rules/arara-rule-nomencl.yaml
+2022/02/27 | 825810 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/02/27 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/02/27 | 812 | support/arara/scripts/rules/arara-rule-songidx.yaml
+2022/02/27 | 812 | support/arara/scripts/rules/arara-rule-dvipdfmx.yaml
+2022/02/27 | 81117 | support/arara/doc/chapters/methods.tex
+2022/02/27 | 809 | support/arara/scripts/rules/arara-rule-ps2pdf.yaml
+2022/02/27 | 808 | support/arara/scripts/rules/arara-rule-dvipdfm.yaml
+2022/02/27 | 799 | support/arara/scripts/rules/arara-rule-dvips.yaml
+2022/02/27 | 796 | support/arara/scripts/rules/arara-rule-copy.yaml
+2022/02/27 | 791161 | macros/latex/contrib/projlib.zip
+2022/02/27 | 7904 | macros/luatex/generic/luaotfload/fontloader-font-oti.lua
+2022/02/27 | 78981 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/02/27 | 78965 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/02/27 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/02/27 | 77520 | macros/luatex/generic/luaotfload/luaotfload-conf.pdf
+2022/02/27 | 7745 | macros/luatex/generic/penlight/penlight.tex
+2022/02/27 | 77077 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/02/27 | 7688 | systems/texlive/tlnet/archive/lua-uni-algos.r62205.tar.xz
+2022/02/27 | 76788 | macros/luatex/generic/luaotfload/luaotfload-tool.pdf
+2022/02/27 | 7637 | macros/luatex/generic/lutabulartools/lutabulartools.sty
+2022/02/27 | 762607 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/02/27 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/02/27 | 759643 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/02/27 | 7589 | macros/luatex/generic/luaotfload/luaotfload-unicode.lua
+2022/02/27 | 7528 | macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
+2022/02/27 | 74064 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/02/27 | 73920 | systems/texlive/tlnet/archive/lua-uni-algos.doc.r62205.tar.xz
+2022/02/27 | 735 | macros/luatex/generic/luaotfload/luaotfload.conf.example
+2022/02/27 | 73595 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/02/27 | 7353 | support/arara/doc/chapters/yaml.tex
+2022/02/27 | 73502 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/02/27 | 7337 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/02/27 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/02/27 | 73012 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/02/27 | 7292 | systems/texlive/tlnet/archive/luaotfload.source.r62198.tar.xz
+2022/02/27 | 7260 | macros/luatex/generic/luaotfload/fontloader-fonts-ext.lua
+2022/02/27 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/02/27 | 71000 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/02/27 | 699 | macros/luatex/generic/luaotfload/scripts-demo.tex
+2022/02/27 | 698900 | systems/texlive/tlnet/archive/babel.source.r62203.tar.xz
+2022/02/27 | 69105 | dviware/dvisvgm/doc/dvisvgm.1
+2022/02/27 | 689518 | dviware/dvisvgm/configure
+2022/02/27 | 688940 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/02/27 | 68889 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/02/27 | 6866 | macros/luatex/generic/luaotfload/fontloader-font-afk.lua
+2022/02/27 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/02/27 | 682 | support/arara/scripts/rules/arara-rule-sketch.yaml
+2022/02/27 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/02/27 | 6809 | macros/luatex/generic/luaotfload/luaotfload-case.lua
+2022/02/27 | 6809876 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/02/27 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/02/27 | 67650 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/02/27 | 67226 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/02/27 | 6644 | macros/luatex/generic/luaotfload/fontloader-l-string.lua
+2022/02/27 | 66239 | macros/latex/contrib/create-theorem/create-theorem.sty
+2022/02/27 | 65279 | macros/luatex/generic/luaotfload/fontloader-font-otj.lua
+2022/02/27 | 651 | support/arara/scripts/rules/arara-rule-spix.yaml
+2022/02/27 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/02/27 | 647 | support/arara/scripts/rules/arara-rule-makeglossarieslite.yaml
+2022/02/27 | 647 | support/arara/scripts/rules/arara-rule-convert.yaml
+2022/02/27 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/02/27 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/02/27 | 64473 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/02/27 | 64282 | macros/luatex/generic/luaotfload/fontloader-font-ttf.lua
+2022/02/27 | 6405 | macros/luatex/generic/luaotfload/fontloader-l-lua.lua
+2022/02/27 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/02/27 | 640179 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/02/27 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/02/27 | 634 | dviware/dvisvgm/src/optimizer/Makefile.am
+2022/02/27 | 633939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/02/27 | 63390 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/02/27 | 63211 | macros/luatex/generic/luaotfload/fontloader-font-con.lua
+2022/02/27 | 6317 | macros/luatex/generic/luaotfload/luaotfload-status.lua
+2022/02/27 | 630 | macros/latex/contrib/create-theorem/README.md
+2022/02/27 | 6309 | macros/luatex/generic/luaotfload/luaotfload-szss.lua
+2022/02/27 | 629481 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/27 | 626 | support/arara/scripts/rules/arara-rule-upbibtex.yaml
+2022/02/27 | 624896 | systems/texlive/tlnet/archive/luaotfload.doc.r62198.tar.xz
+2022/02/27 | 621 | support/arara/scripts/rules/arara-rule-bibtexu.yaml
+2022/02/27 | 621 | support/arara/scripts/rules/arara-rule-bibtex8.yaml
+2022/02/27 | 62127 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/02/27 | 61172 | support/arara/doc/figures/optionbox1.pdf
+2022/02/27 | 611384 | systems/texlive/tlnet/archive/luaotfload.r62198.tar.xz
+2022/02/27 | 60850 | support/arara/doc/figures/dropdown1.pdf
+2022/02/27 | 60275 | dviware/dvisvgm/src/Makefile.in
+2022/02/27 | 5 | support/arara/doc/version.tex
+2022/02/27 | 59941 | support/arara/doc/figures/inputbox1.pdf
+2022/02/27 | 599044 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/02/27 | 596 | support/arara/scripts/rules/arara-rule-pbibtex.yaml
+2022/02/27 | 59540 | support/arara/doc/figures/optionbox2.pdf
+2022/02/27 | 592 | support/arara/scripts/rules/arara-rule-bibtex.yaml
+2022/02/27 | 591472 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/02/27 | 59101 | support/arara/doc/figures/dropdown2.pdf
+2022/02/27 | 588 | support/arara/scripts/rules/arara-rule-pdftk.yaml
+2022/02/27 | 5885 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.tex
+2022/02/27 | 58685 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/02/27 | 58654 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/02/27 | 58249 | support/arara/doc/figures/inputbox2.pdf
+2022/02/27 | 5789 | support/arara/scripts/rules/arara-rule-bib2gls.yaml
+2022/02/27 | 576 | support/arara/scripts/arara.sh
+2022/02/27 | 57492 | graphics/mcf2graph/mcf_manual.tex
+2022/02/27 | 57473 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/02/27 | 57446 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/02/27 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/02/27 | 57342 | macros/luatex/generic/luaotfload/fontloader-fonts-lig.lua
+2022/02/27 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/02/27 | 57044 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/02/27 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/02/27 | 56953 | dviware/dvisvgm/aclocal.m4
+2022/02/27 | 566552 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/02/27 | 55763 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/02/27 | 55412 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/02/27 | 5502 | macros/luatex/generic/luaotfload/fontloader-font-cid.lua
+2022/02/27 | 54949 | support/arara/doc/figures/messagebox1.pdf
+2022/02/27 | 546 | support/arara/scripts/rules/arara-rule-qpdf.yaml
+2022/02/27 | 54080 | macros/luatex/generic/luaotfload/luaotfload-tool.lua
+2022/02/27 | 5388 | macros/luatex/generic/luaotfload/fontloader-data-con.lua
+2022/02/27 | 53224 | support/arara/doc/figures/messagebox2.pdf
+2022/02/27 | 532218 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/02/27 | 5318 | macros/latex/contrib/projlib/README.md
+2022/02/27 | 52 | macros/luatex/generic/luaotfload/luaotfload-blacklist.cnf
+2022/02/27 | 527876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/02/27 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/02/27 | 52312 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/02/27 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/02/27 | 520491 | macros/latex/contrib/fnpct.zip
+2022/02/27 | 51513 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/02/27 | 51466 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/02/27 | 50823 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/02/27 | 4956 | macros/luatex/generic/luaotfload/luaotfload-dvi.lua
+2022/02/27 | 494932 | macros/latex/contrib/fnpct/fnpct-manual.pdf
+2022/02/27 | 493487 | macros/luatex/generic/luaotfload/luaotfload-latex.pdf
+2022/02/27 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/02/27 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/02/27 | 48728 | macros/luatex/generic/luaotfload/fontloader-basics-chr.lua
+2022/02/27 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/02/27 | 48018 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/02/27 | 47951 | macros/latex/contrib/fnpct/fnpct.sty
+2022/02/27 | 479430 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/02/27 | 477760 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/02/27 | 4722 | support/arara/README.md
+2022/02/27 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/02/27 | 46322 | macros/luatex/generic/luaotfload/fontloader-util-str.lua
+2022/02/27 | 46088 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/02/27 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/02/27 | 45701 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/02/27 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/02/27 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/02/27 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/02/27 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/02/27 | 447313 | dviware/dvisvgm/ChangeLog
+2022/02/27 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/02/27 | 43804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/02/27 | 4369 | dviware/dvisvgm/config.h.in
+2022/02/27 | 43666 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/02/27 | 43641 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/02/27 | 43369 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/02/27 | 431779 | graphics/mcf2graph/mcf_example.pdf
+2022/02/27 | 42744 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/02/27 | 4254 | support/arara/scripts/rules/arara-rule-context.yaml
+2022/02/27 | 42240 | macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
+2022/02/27 | 421831 | macros/luatex/generic/penlight/penlight.lua
+2022/02/27 | 41758 | macros/luatex/generic/luaotfload/fontloader-l-table.lua
+2022/02/27 | 41315 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/02/27 | 41303 | macros/luatex/generic/luaotfload/fontloader-l-unicode.lua
+2022/02/27 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/02/27 | 41226 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/02/27 | 4074 | support/arara/scripts/rules/arara-rule-datatooltk.yaml
+2022/02/27 | 40582 | dviware/dvisvgm/libs/ff-woff/Makefile.in
+2022/02/27 | 40530 | macros/latex/contrib/fnpct/fnpct-2019-10-05.sty
+2022/02/27 | 4050 | macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
+2022/02/27 | 4047 | macros/luatex/generic/luaotfload/luaotfload-fallback.lua
+2022/02/27 | 404188 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62196.tar.xz
+2022/02/27 | 40086 | support/arara/doc/arara-quickstart.tex
+2022/02/27 | 40007 | macros/luatex/generic/luaotfload/filegraph.pdf
+2022/02/27 | 39 | support/arara/doc/arararc.yaml
+2022/02/27 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/02/27 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/02/27 | 39402 | dviware/dvisvgm/NEWS
+2022/02/27 | 38742 | macros/luatex/generic/luaotfload/fontloader-l-lpeg.lua
+2022/02/27 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/02/27 | 38479 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/02/27 | 38237 | macros/luatex/generic/penlight/penlight.pdf
+2022/02/27 | 3821 | macros/luatex/generic/luaotfload/fontloader-fonts-def.lua
+2022/02/27 | 3784 | macros/luatex/generic/luaotfload/README.md
+2022/02/27 | 37394 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/02/27 | 37238 | support/arara/doc/chapters/concepts.tex
+2022/02/27 | 37182 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/02/27 | 37088 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/02/27 | 3693 | macros/luatex/generic/luaotfload/fontloader-font-imp-italics.lua
+2022/02/27 | 3674 | macros/luatex/generic/luaotfload/fontloader-fonts-syn.lua
+2022/02/27 | 361 | macros/luatex/generic/luaotfload/fontloader-l-function.lua
+2022/02/27 | 36062 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/02/27 | 3593 | graphics/mcf2graph/README
+2022/02/27 | 3580 | macros/luatex/generic/luaotfload/fontloader-font-imp-ligatures.lua
+2022/02/27 | 3571467 | dviware/dvisvgm.zip
+2022/02/27 | 35234 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/02/27 | 35187 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/02/27 | 351833 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/02/27 | 34922 | macros/luatex/generic/luaotfload/fontloader-font-ott.lua
+2022/02/27 | 34476 | macros/luatex/generic/luaotfload/fontloader-font-otc.lua
+2022/02/27 | 3406 | macros/luatex/generic/luaotfload/fontloader-font-imp-tex.lua
+2022/02/27 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/02/27 | 33960 | macros/luatex/generic/luaotfload/fontloader-font-otl.lua
+2022/02/27 | 3362 | support/arara/doc/arara-manual.tex
+2022/02/27 | 33403 | dviware/dvisvgm/libs/brotli/Makefile.in
+2022/02/27 | 332515 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/02/27 | 33155 | macros/luatex/generic/luaotfload/luaotfload-features.lua
+2022/02/27 | 33026 | support/arara/doc/arara.sty
+2022/02/27 | 32935 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/02/27 | 3287334 | macros/luatex/generic/luaotfload/luaotfload-characters.lua
+2022/02/27 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/02/27 | 32597 | macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
+2022/02/27 | 3253 | support/arara/scripts/rules/arara-rule-pdfcrop.yaml
+2022/02/27 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
+2022/02/27 | 32138 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/02/27 | 320 | support/arara/scripts/rules/arara-rule-halt.yaml
+2022/02/27 | 316654 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/02/27 | 31567 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/02/27 | 31566 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/02/27 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/02/27 | 31349 | macros/luatex/generic/luaotfload/fontloader-font-one.lua
+2022/02/27 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/02/27 | 31223 | macros/luatex/generic/luaotfload/luaotfload-configuration.lua
+2022/02/27 | 31007 | macros/luatex/generic/luaotfload/luaotfload-parsers.lua
+2022/02/27 | 30526 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/02/27 | 3026 | support/arara/doc/logos/bird.pdf
+2022/02/27 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/02/27 | 2990 | support/arara/scripts/rules/arara-rule-indent.yaml
+2022/02/27 | 296017 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/02/27 | 289267 | graphics/mcf2graph/mcf_manual.pdf
+2022/02/27 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/02/27 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/02/27 | 286873 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/02/27 | 286547 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/02/27 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/02/27 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/02/27 | 28418 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/02/27 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
+2022/02/27 | 28315 | macros/latex/contrib/fnpct/fnpct-manual.tex
+2022/02/27 | 281708 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/02/27 | 2816621 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/02/27 | 2801 | graphics/mcf2graph/mcf_example.tex
+2022/02/27 | 2796 | macros/latex/contrib/crefthe/README.md
+2022/02/27 | 27920 | dviware/dvisvgm/Makefile.in
+2022/02/27 | 27627 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/02/27 | 275 | macros/luatex/generic/luaotfload/luaotfload-main.lua
+2022/02/27 | 27590 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/02/27 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/02/27 | 2696291 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/02/27 | 26880 | support/arara/doc/chapters/cli.tex
+2022/02/27 | 267669 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/02/27 | 267514 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/02/27 | 2667 | macros/luatex/generic/luaotfload/fontloader-font-vfc.lua
+2022/02/27 | 2625 | macros/luatex/generic/luaotfload/fontloader-fonts-enc.lua
+2022/02/27 | 259091 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/02/27 | 2582 | macros/luatex/generic/luaotfload/luaotfload-suppress.lua
+2022/02/27 | 256390 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/02/27 | 25628823 | systems/texlive/tlnet/install-tl.zip
+2022/02/27 | 256038 | dviware/dvisvgm/tests/Makefile.in
+2022/02/27 | 2549 | macros/luatex/generic/luaotfload/fontloader-l-math.lua
+2022/02/27 | 254982 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/02/27 | 25457 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/02/27 | 2544 | support/arara/scripts/rules/arara-rule-ltx2any.yaml
+2022/02/27 | 25336 | macros/luatex/generic/luaotfload/luaotfload-filelist.lua
+2022/02/27 | 25264 | macros/luatex/generic/luaotfload/fontloader-font-ocl.lua
+2022/02/27 | 251337 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/02/27 | 25105 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/02/27 | 2506 | macros/luatex/generic/luaotfload/luaotfload-scripts.lua
+2022/02/27 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/02/27 | 250058 | support/arara/doc/arara-quickstart.pdf
+2022/02/27 | 24709 | dviware/dvisvgm/libs/woff2/Makefile.in
+2022/02/27 | 244866 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/02/27 | 2435 | support/arara/scripts/rules/arara-rule-makeglossaries.yaml
+2022/02/27 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/02/27 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/02/27 | 2355256 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/02/27 | 23399 | macros/luatex/generic/luaotfload/fontloader-fonts-tfm.lua
+2022/02/27 | 23238 | macros/luatex/generic/luaotfload/fontloader-font-oto.lua
+2022/02/27 | 23211 | dviware/dvisvgm/src/optimizer/Makefile.in
+2022/02/27 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/02/27 | 22186 | macros/luatex/generic/luaotfload/fontloader-l-file.lua
+2022/02/27 | 22162 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/02/27 | 220788 | systems/texlive/tlnet/archive/xcharter.doc.r62200.tar.xz
+2022/02/27 | 2198460 | systems/texlive/tlnet/archive/xcharter.r62200.tar.xz
+2022/02/27 | 21858 | macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
+2022/02/27 | 2168 | graphics/mcf2graph/mcf_exa_soc.mp
+2022/02/27 | 21673 | macros/luatex/generic/luaotfload/scripts-demo.pdf
+2022/02/27 | 216062 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/02/27 | 21375 | dviware/dvisvgm/doc/Makefile.in
+2022/02/27 | 213208 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/02/27 | 21318 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/02/27 | 21315 | macros/luatex/generic/luaotfload/NEWS
+2022/02/27 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
+2022/02/27 | 2108 | support/arara/doc/chapters/license.tex
+2022/02/27 | 210196 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/02/27 | 2100 | support/arara/scripts/rules/arara-rule-perltex.yaml
+2022/02/27 | 20874389 | systems/texlive/tlnet/install-tl-windows.exe
+2022/02/27 | 20832 | dviware/dvisvgm/libs/potrace/Makefile.in
+2022/02/27 | 20366 | dviware/dvisvgm/libs/clipper/Makefile.in
+2022/02/27 | 20268 | macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
+2022/02/27 | 202535 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/02/27 | 20201 | support/arara/doc/chapters/configuration.tex
+2022/02/27 | 20191 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/02/27 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
+2022/02/27 | 20038 | macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
+2022/02/27 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
+2022/02/27 | 200074 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/02/27 | 19964 | dviware/dvisvgm/libs/Makefile.in
+2022/02/27 | 199568 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/02/27 | 19944 | macros/luatex/generic/luaotfload/fontloader-font-def.lua
+2022/02/27 | 1989 | support/arara/scripts/rules/arara-rule-frontespizio.yaml
+2022/02/27 | 198683 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/02/27 | 1983665 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/02/27 | 1975 | support/arara/scripts/rules/arara-rule-xindy.yaml
+2022/02/27 | 1974 | support/arara/scripts/rules/arara-rule-texindy.yaml
+2022/02/27 | 19746 | macros/luatex/generic/luaotfload/luaotfload-init.lua
+2022/02/27 | 197456 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/02/27 | 1971107 | support/arara/doc/arara-manual.pdf
+2022/02/27 | 19678 | dviware/dvisvgm/libs/xxHash/Makefile.in
+2022/02/27 | 196184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/27 | 195943 | graphics/mcf2graph/mcf_mplib_exa.pdf
+2022/02/27 | 19573 | dviware/dvisvgm/libs/md5/Makefile.in
+2022/02/27 | 19570 | macros/luatex/generic/luaotfload/fontloader-font-map.lua
+2022/02/27 | 1956247 | install/macros/luatex/generic/luaotfload.tds.zip
+2022/02/27 | 1955764 | macros/luatex/generic/luaotfload.zip
+2022/02/27 | 191 | macros/luatex/generic/luaotfload/shaper-demo-graphite.tex
+2022/02/27 | 19106 | macros/latex/contrib/projlib/LICENSE
+2022/02/27 | 19106 | macros/latex/contrib/crefthe/LICENSE
+2022/02/27 | 19106 | macros/latex/contrib/create-theorem/LICENSE
+2022/02/27 | 19064 | macros/luatex/generic/penlight/penlightextras.lua
+2022/02/27 | 1884 | support/arara/scripts/rules/arara-rule-latexmk.yaml
+2022/02/27 | 188216 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/02/27 | 18741 | macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
+2022/02/27 | 18717 | macros/luatex/generic/luaotfload/fontloader-font-onr.lua
+2022/02/27 | 18714 | macros/luatex/generic/luaotfload/COPYING
+2022/02/27 | 186209 | macros/luatex/generic/luaotfload/fontloader-font-ots.lua
+2022/02/27 | 1850 | macros/luatex/generic/luaotfload/fontloader-l-boolean.lua
+2022/02/27 | 18498 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/02/27 | 184200 | systems/texlive/tlnet/archive/babel.r62203.tar.xz
+2022/02/27 | 18411 | macros/luatex/generic/luaotfload/fontloader-font-ota.lua
+2022/02/27 | 1838 | macros/luatex/generic/penlight/penlight.sty
+2022/02/27 | 1837 | support/arara/scripts/rules/arara-rule-detex.yaml
+2022/02/27 | 18378 | macros/luatex/generic/luaotfload/luaotfload.conf.rst
+2022/02/27 | 18358 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/02/27 | 182 | macros/luatex/generic/luaotfload/shaper-demo.tex
+2022/02/27 | 18214 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
+2022/02/27 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/02/27 | 1812 | macros/luatex/generic/luaotfload/luaotfload.sty
+2022/02/27 | 180013 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/02/27 | 1794 | macros/luatex/generic/luaotfload/fontloader-font-ini.lua
+2022/02/27 | 1753742 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/02/27 | 17496 | graphics/mcf2graph/CHANGELOG
+2022/02/27 | 1727 | support/arara/doc/arara.1
+2022/02/27 | 172562 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/02/27 | 1722 | support/arara/scripts/rules/arara-rule-pythontex.yaml
+2022/02/27 | 17173296 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/02/27 | 1709 | support/arara/scripts/rules/arara-rule-texcount.yaml
+2022/02/27 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/02/27 | 16794 | macros/luatex/generic/luaotfload/luaotfload.conf.5
+2022/02/27 | 1672 | support/arara/scripts/rules/arara-rule-fig2dev.yaml
+2022/02/27 | 16675 | macros/luatex/generic/luaotfload/luaotfload-latex.tex
+2022/02/27 | 16569 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/02/27 | 16506 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/02/27 | 1625 | support/arara/scripts/rules/arara-rule-pdflatex.yaml
+2022/02/27 | 1625 | support/arara/scripts/rules/arara-rule-lualatex.yaml
+2022/02/27 | 16116 | macros/luatex/generic/luaotfload/luaotfload-tool.rst
+2022/02/27 | 1610 | support/arara/scripts/rules/arara-rule-latex.yaml
+2022/02/27 | 160321 | macros/luatex/generic/penlight.zip
+2022/02/27 | 15954 | macros/luatex/generic/luaotfload/luaotfload-colors.lua
+2022/02/27 | 1577 | macros/latex/contrib/fnpct/README
+2022/02/27 | 1571 | macros/luatex/generic/lutabulartools/README.md
+2022/02/27 | 156731 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/02/27 | 15621 | dviware/dvisvgm/libs/variant/Makefile.in
+2022/02/27 | 155454 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/02/27 | 154203 | macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
+2022/02/27 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/02/27 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/02/27 | 1522 | support/arara/scripts/rules/arara-rule-xelatex.yaml
+2022/02/27 | 1522 | support/arara/scripts/rules/arara-rule-uplatex.yaml
+2022/02/27 | 152070 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/02/27 | 15196 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.lua
+2022/02/27 | 1517 | support/arara/scripts/rules/arara-rule-platex.yaml
+2022/02/27 | 15068 | macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
+2022/02/27 | 1503 | support/arara/scripts/rules/arara-rule-makeindex.yaml
+2022/02/27 | 1499050 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/02/27 | 1478 | support/arara/scripts/rules/arara-rule-asymptote.yaml
+2022/02/27 | 1470 | support/arara/scripts/rules/arara-rule-knitr.yaml
+2022/02/27 | 146364 | systems/texlive/tlnet/archive/texlive-msg-translations.r62192.tar.xz
+2022/02/27 | 14613 | support/arara/doc/chapters/deploying.tex
+2022/02/27 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/02/27 | 1454268 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/02/27 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/02/27 | 1449 | macros/luatex/generic/luaotfload/fontloader-font-lua.lua
+2022/02/27 | 1448 | support/arara/scripts/rules/arara-rule-dvisvgm.yaml
+2022/02/27 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/02/27 | 14279 | macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
+2022/02/27 | 1427844 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/02/27 | 1425902 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/02/27 | 14215 | support/arara/doc/logos/logo1.pdf
+2022/02/27 | 14166 | support/arara/doc/logos/logo2.pdf
+2022/02/27 | 140957 | support/arara/doc/figures/arara.png
+2022/02/27 | 139420 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/02/27 | 138933 | support/arara/doc/chapters/rules.tex
+2022/02/27 | 13775102 | support/arara.zip
+2022/02/27 | 13761857 | install/support/arara.tds.zip
+2022/02/27 | 13740 | dviware/dvisvgm/tests/data/Makefile.in
+2022/02/27 | 136111 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/02/27 | 13565 | macros/luatex/generic/luaotfload/luaotfload.lua
+2022/02/27 | 1355330 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/02/27 | 135371 | macros/latex/contrib/projlib/ProjLib.dtx
+2022/02/27 | 13532 | support/arara/doc/chapters/mvel.tex
+2022/02/27 | 13525 | macros/luatex/generic/luaotfload/fontloader-font-shp.lua
+2022/02/27 | 135254 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/02/27 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/02/27 | 13502 | dviware/dvisvgm/m4/Makefile.in
+2022/02/27 | 1347 | support/arara/doc/figures/gl.pdf
+2022/02/27 | 1341 | support/arara/scripts/rules/arara-rule-clean.yaml
+2022/02/27 | 134114 | macros/luatex/generic/luaotfload/luaotfload-database.lua
+2022/02/27 | 1324 | support/arara/scripts/rules/arara-rule-sage.yaml
+2022/02/27 | 1322724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/02/27 | 131975 | support/arara/source/arara-6.1.6-src.zip
+2022/02/27 | 1319340 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/02/27 | 1318149 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/02/27 | 131645 | macros/unicodetex/latex/book-of-common-prayer.zip
+2022/02/27 | 1306315 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/02/27 | 129781 | macros/latex/contrib/create-theorem.zip
+2022/02/27 | 1284 | support/arara/scripts/rules/arara-rule-pdfcsplain.yaml
+2022/02/27 | 1282 | support/arara/scripts/rules/arara-rule-llmk.yaml
+2022/02/27 | 12829 | macros/luatex/generic/luaotfload/luaotfload-tool.1
+2022/02/27 | 1278 | support/arara/scripts/rules/arara-rule-dvipspdf.yaml
+2022/02/27 | 1276 | support/arara/scripts/rules/arara-rule-luahbtex.yaml
+2022/02/27 | 127687 | macros/latex/contrib/crefthe.zip
+2022/02/27 | 1274 | support/arara/scripts/rules/arara-rule-metapost.yaml
+2022/02/27 | 12745 | macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
+2022/02/27 | 1272 | support/arara/scripts/rules/arara-rule-csplain.yaml
+2022/02/27 | 12704 | macros/luatex/generic/luaotfload/fontloader-font-imp-effects.lua
+2022/02/27 | 1268 | support/arara/scripts/rules/arara-rule-pdftex.yaml
+2022/02/27 | 1268 | support/arara/scripts/rules/arara-rule-luatex.yaml
+2022/02/27 | 126756 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/02/27 | 1259 | macros/luatex/generic/penlight/README.md
+2022/02/27 | 12528 | support/arara/doc/chapters/introduction.tex
+2022/02/27 | 123210 | macros/luatex/generic/luaotfload/fontloader-font-oup.lua
+2022/02/27 | 12224 | macros/luatex/generic/luaotfload/luaotfload-notdef.lua
+2022/02/27 | 12097 | macros/luatex/generic/lutabulartools/lutabulartools.tex
+2022/02/27 | 12065 | support/arara/doc/chapters/building.tex
+2022/02/27 | 120466 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/02/27 | 11988 | macros/luatex/generic/luaotfload/fontloader-l-io.lua
+2022/02/27 | 11976 | support/arara/doc/chapters/logging.tex
+2022/02/27 | 11876220 | support/arara/scripts/arara.jar
+2022/02/27 | 118105 | macros/luatex/generic/luaotfload/fontloader-font-osd.lua
+2022/02/27 | 1180913 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/02/27 | 1166 | support/arara/scripts/rules/arara-rule-xetex.yaml
+2022/02/27 | 1166 | support/arara/scripts/rules/arara-rule-uptex.yaml
+2022/02/27 | 1162 | support/arara/scripts/rules/arara-rule-ptex.yaml
+2022/02/27 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/02/27 | 115616 | macros/latex/contrib/crefthe/crefthe-doc.pdf
+2022/02/27 | 1156085 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/02/27 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/02/27 | 11474 | macros/luatex/generic/luaotfload/fontloader-util-fil.lua
+2022/02/27 | 11323 | macros/luatex/generic/luaotfload/luaotfload-log.lua
+2022/02/27 | 113013 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/02/27 | 112476 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/02/27 | 111285 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+2022/02/27 | 1111 | support/arara/scripts/rules/arara-rule-xdvipdfmx.yaml
+2022/02/27 | 1107 | support/arara/scripts/rules/arara-rule-animate.yaml
+2022/02/27 | 1105 | support/arara/scripts/rules/arara-rule-authorindex.yaml
+2022/02/27 | 10984 | macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
+2022/02/27 | 109517 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/02/27 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/02/27 | 108788 | systems/texlive/tlnet/archive/texlive-scripts.r62196.tar.xz
+2022/02/27 | 10798 | macros/latex/contrib/crefthe/crefthe-doc.tex
+2022/02/27 | 1062 | support/arara/scripts/rules/arara-rule-etex.yaml
+2022/02/27 | 1050 | support/arara/scripts/rules/arara-rule-tex.yaml
+2022/02/27 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/02/27 | 1046 | support/arara/doc/rules/quickstart.yaml
+2022/02/27 | 103392 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/02/27 | 1032 | support/arara/doc/rules/manual.yaml
+2022/02/27 | 103056 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/02/27 | 10283 | macros/latex/contrib/crefthe/crefthe.sty
+2022/02/27 | 102502 | macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
+2022/02/27 | 10207 | macros/luatex/generic/luaotfload/fontloader-basics-nod.lua
+2022/02/27 | 1020252 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/02/27 | 101439 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/02/27 | 101318 | graphics/mcf2graph/mcf2graph.mp
+2022/02/27 | 100635 | graphics/mcf2graph/mcf_data_base.mcf
+2022/02/27 | 1004 | macros/luatex/generic/luaotfload/luaotfload-embolden.lua
+2022/02/27 | 100352 | macros/luatex/generic/luaotfload/luaotfload-main.tex
+2022/02/26 | 99128175 | systems/win32/TLW64/tl-win64.zip
2022/02/26 | 9863 | support/texlab/src/features/cursor.rs
-2022/02/26 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2022/02/26 | 967 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_simple.snap
-2022/02/26 | 96599 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2022/02/26 | 9616 | macros/latex/contrib/stex/doc/stex-docheader.tex
-2022/02/26 | 95463 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/02/26 | 95314 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2022/02/26 | 951 | support/texlab/tests/integration/snapshots/integration__completion__latex__multi_line_key.snap
2022/02/26 | 9501 | macros/luatex/generic/lua-uni-algos/lua-uni-algos.tex
2022/02/26 | 944 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_definition_simple.snap
2022/02/26 | 9420 | support/texlab/tests/integration/snapshots/integration__completion__latex__begin_command.snap
2022/02/26 | 9396 | support/texlab/src/features.rs
-2022/02/26 | 93957 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/02/26 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/02/26 | 928 | systems/win32/miktex/tm/packages/pr.ini
+2022/02/26 | 93844 | systems/texlive/tlnet/tlpkg/translations/fr.po
2022/02/26 | 928 | support/texlab/tests/integration/snapshots/integration__completion__latex__user_environment.snap
2022/02/26 | 923 | support/texlab/src/language.rs
2022/02/26 | 909 | support/texlab/src/features/formatting.rs
+2022/02/26 | 90240 | systems/texlive/tlnet/tlpkg/translations/vi.po
2022/02/26 | 901 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__delimiters.snap
+2022/02/26 | 89256 | systems/texlive/tlnet/tlpkg/translations/de.po
2022/02/26 | 891 | macros/latex/contrib/stex/doc/stex-abstract.tex
2022/02/26 | 88 | support/texlab/tests/integration/snapshots/integration__hover__empty_labtex_document.snap
2022/02/26 | 88 | support/texlab/tests/integration/snapshots/integration__hover__empty_bibtex_document.snap
+2022/02/26 | 88602 | systems/texlive/tlnet/tlpkg/translations/sk.po
2022/02/26 | 883 | support/texlab/src/context.rs
-2022/02/26 | 88125 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/02/26 | 8786 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2022/02/26 | 8762 | support/texlab/src/features/completion/citation.rs
2022/02/26 | 875 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_options.snap
+2022/02/26 | 87555 | systems/texlive/tlnet/tlpkg/translations/it.po
2022/02/26 | 8705 | support/texlab/src/label.rs
2022/02/26 | 869 | support/texlab/src/workspace.rs
-2022/02/26 | 86484 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/02/26 | 863 | macros/unicodetex/latex/book-of-common-prayer/README.md
2022/02/26 | 85 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__empty.snap
2022/02/26 | 855 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error1.snap
2022/02/26 | 855 | support/texlab/src/syntax/bibtex/kind.rs
@@ -39,124 +562,93 @@
2022/02/26 | 839 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_end.snap
2022/02/26 | 833 | support/texlab/src/syntax/latex.rs
2022/02/26 | 83374 | macros/luatex/generic/lua-uni-algos.zip
+2022/02/26 | 8299 | dviware/dvisvgm/src/BoundingBox.cpp
2022/02/26 | 82720 | support/texlab/texlab.pdf
2022/02/26 | 8259 | support/texlab/src/features/build.rs
-2022/02/26 | 825811 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/02/26 | 82407 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
2022/02/26 | 821 | support/texlab/src/features/reference.rs
-2022/02/26 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/02/26 | 81767 | systems/texlive/tlnet/tlpkg/translations/cs.po
2022/02/26 | 808 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_begin.snap
2022/02/26 | 802 | support/texlab/src/syntax/bibtex.rs
+2022/02/26 | 80236 | systems/texlive/tlnet/tlpkg/translations/uk.po
2022/02/26 | 796161 | macros/latex/required/babel/base/locale.zip
-2022/02/26 | 78982 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/02/26 | 78964 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/02/26 | 79222 | systems/texlive/tlnet/tlpkg/translations/es.po
2022/02/26 | 786 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_options.snap
2022/02/26 | 785 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_two_fields_incomplete.snap
2022/02/26 | 778 | support/texlab/tests/integration/snapshots/integration__completion__latex__citation_multi_word.snap
-2022/02/26 | 7758 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2022/02/26 | 772 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_figure.snap
-2022/02/26 | 77078 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2022/02/26 | 76 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__empty.snap
2022/02/26 | 7689988 | support/texlab.zip
2022/02/26 | 765 | support/texlab/tests/integration/snapshots/integration__completion__latex__citation_open_brace.snap
-2022/02/26 | 762605 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/02/26 | 76232 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/02/26 | 759645 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/02/26 | 7644 | dviware/dvisvgm/src/CommandLine.hpp
+2022/02/26 | 7489 | dviware/dvisvgm/tests/EmSpecialTest.cpp
2022/02/26 | 747 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_optional.snap
2022/02/26 | 7461 | macros/latex/required/babel/base/babel.ins
2022/02/26 | 742 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_simple.snap
+2022/02/26 | 7420 | macros/latex/contrib/projlib/new-modules/projlib-math.sty
2022/02/26 | 741 | support/texlab/tests/integration/snapshots/integration__workspace_symbol__filter_type_math.snap
-2022/02/26 | 74063 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/02/26 | 73593 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/02/26 | 73502 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2022/02/26 | 734 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_full.snap
2022/02/26 | 734 | support/texlab/docs/tectonic.md
-2022/02/26 | 73203 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/02/26 | 73011 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/02/26 | 7296 | systems/texlive/tlnet/archive/luaotfload.source.r62175.tar.xz
2022/02/26 | 7281 | support/texlab/src/features/completion/label.rs
2022/02/26 | 727 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_simple.snap
2022/02/26 | 721 | support/texlab/tests/integration/snapshots/integration__workspace_symbol__filter_bibtex.snap
2022/02/26 | 721762 | macros/latex/required/babel/base/babel.dtx
-2022/02/26 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2022/02/26 | 71974 | macros/luatex/generic/lua-uni-algos/lua-uni-algos.pdf
2022/02/26 | 710 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_definition_simple.snap
-2022/02/26 | 71001 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2022/02/26 | 7098 | support/texlab/src/syntax/latex/lexer.rs
2022/02/26 | 7067 | support/texlab/src/features/folding.rs
2022/02/26 | 6 | support/texlab/rust-toolchain
2022/02/26 | 6970534 | support/texlab/data/components.json.gz
2022/02/26 | 696 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_options.snap
2022/02/26 | 6955 | support/texlab/src/features/completion/entry_type.rs
+2022/02/26 | 69410 | systems/texlive/tlnet/tlpkg/translations/sl.po
2022/02/26 | 688 | support/texlab/src/lib.rs
-2022/02/26 | 688941 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/02/26 | 68890 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2022/02/26 | 6888 | support/texlab/src/features/symbol/project_order.rs
-2022/02/26 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
2022/02/26 | 685 | macros/luatex/generic/lua-uni-algos/lua-uni-algos.lua
2022/02/26 | 6843 | support/texlab/src/features/reference/entry.rs
-2022/02/26 | 682351 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/02/26 | 6809871 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/02/26 | 68007 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2022/02/26 | 677 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_siblings.snap
+2022/02/26 | 6771 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.sty
2022/02/26 | 676 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_options.snap
-2022/02/26 | 67651 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/02/26 | 67225 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2022/02/26 | 670 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_one_field_trailing_comma.snap
2022/02/26 | 670569 | macros/latex/contrib/stex/doc/stex-manual.pdf
2022/02/26 | 668 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_options.snap
+2022/02/26 | 66753 | systems/texlive/tlnet/tlpkg/translations/pl.po
2022/02/26 | 6618 | support/texlab/src/features/reference/string.rs
2022/02/26 | 6579 | support/texlab/src/syntax/bibtex/cst.rs
2022/02/26 | 656 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_one_field_number_key.snap
2022/02/26 | 65536 | systems/texlive/tlnet/archive/yamlvars.doc.r62176.tar.xz
2022/02/26 | 653 | support/texlab/src/syntax/latex/analysis/command.rs
-2022/02/26 | 65099 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/02/26 | 6500 | dviware/dvisvgm/src/PSPattern.cpp
2022/02/26 | 648 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_one_field.snap
2022/02/26 | 6485 | support/texlab/src/line_index.rs
-2022/02/26 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/02/26 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/02/26 | 64475 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2022/02/26 | 643 | support/texlab/texlab.1
-2022/02/26 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/02/26 | 640179 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/02/26 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2022/02/26 | 635 | macros/latex/contrib/stex/doc/packages/stex-basics.tex
2022/02/26 | 634 | support/texlab/src/syntax/latex/analysis/label_number.rs
-2022/02/26 | 633941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/02/26 | 63391 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/02/26 | 63208 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
2022/02/26 | 631 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_simple.snap
2022/02/26 | 630 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline_double_dollar.snap
-2022/02/26 | 629481 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/26 | 62519 | dviware/dvisvgm/doc/dvisvgm.txt.in
2022/02/26 | 624 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline.snap
-2022/02/26 | 624892 | systems/texlive/tlnet/archive/luaotfload.doc.r62175.tar.xz
2022/02/26 | 623 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption.snap
2022/02/26 | 621 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_error.snap
-2022/02/26 | 62129 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/02/26 | 62194 | systems/texlive/tlnet/tlpkg/translations/ja.po
2022/02/26 | 6187 | support/texlab/src/features/reference/label.rs
2022/02/26 | 614 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__formula.snap
2022/02/26 | 61484 | support/texlab/src/syntax/build_log.rs
-2022/02/26 | 611380 | systems/texlive/tlnet/archive/luaotfload.r62175.tar.xz
2022/02/26 | 609 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error2.snap
+2022/02/26 | 6078 | dviware/dvisvgm/tests/BoundingBoxTest.cpp
2022/02/26 | 599572 | systems/texlive/tlnet/archive/easybook.doc.r62177.tar.xz
-2022/02/26 | 599044 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/02/26 | 598 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description_and_counter.snap
2022/02/26 | 594 | macros/latex/contrib/stex/tex/ldf/document-structure-ngerman.ldf
-2022/02/26 | 591470 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2022/02/26 | 5896 | support/texlab/src/features/completion/field.rs
-2022/02/26 | 58685 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/02/26 | 58654 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2022/02/26 | 583 | support/texlab/src/syntax/latex/analysis/theorem.rs
2022/02/26 | 5827493 | fonts/xcharter.zip
2022/02/26 | 5809 | macros/latex/contrib/stex/source/stex/stex-metatheory.dtx
-2022/02/26 | 57474 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/02/26 | 57445 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/02/26 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/02/26 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/02/26 | 57618 | systems/texlive/tlnet/tlpkg/translations/nl.po
+2022/02/26 | 57344 | systems/texlive/tlnet/tlpkg/translations/da.po
2022/02/26 | 570 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_parameter.snap
-2022/02/26 | 57043 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
2022/02/26 | 57018 | support/texlab/data/lang_data.json
-2022/02/26 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2022/02/26 | 5679 | support/texlab/src/features/completion/import.rs
-2022/02/26 | 566553 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
2022/02/26 | 565 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__multiple_entries.snap
2022/02/26 | 5650 | support/texlab/src/features/completion/argument.rs
2022/02/26 | 56296 | support/texlab/src/citation/apa.csl
@@ -165,60 +657,48 @@
2022/02/26 | 559 | support/texlab/src/features/semantic.rs
2022/02/26 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_number.snap
2022/02/26 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote_postnote.snap
-2022/02/26 | 55765 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/02/26 | 55413 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2022/02/26 | 55070 | support/texlab/Cargo.lock
2022/02/26 | 549 | support/texlab/tests/integration/snapshots/integration__completion__latex__kernel_command.snap
2022/02/26 | 540 | support/texlab/tests/integration/snapshots/integration__completion__latex__kernel_command_environment.snap
2022/02/26 | 540 | support/texlab/tests/integration/snapshots/integration__completion__latex__class_environment.snap
2022/02/26 | 538 | support/texlab/tests/integration/snapshots/integration__completion__latex__user_command.snap
2022/02/26 | 5361 | support/texlab/src/features/completion/component_command.rs
-2022/02/26 | 532217 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/02/26 | 53139 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
2022/02/26 | 5296 | support/texlab/src/features/definition/string.rs
-2022/02/26 | 527877 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
2022/02/26 | 5267 | support/texlab/src/features/completion/color_model.rs
-2022/02/26 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/02/26 | 52311 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2022/02/26 | 521 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_invalid_nesting.snap
2022/02/26 | 5217 | support/texlab/src/features/completion/include.rs
-2022/02/26 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/02/26 | 519 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__string_complete.snap
2022/02/26 | 519 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__string_casing.snap
2022/02/26 | 517 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__string_missing_quote.snap
2022/02/26 | 517 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__string_incomplete.snap
-2022/02/26 | 51514 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
2022/02/26 | 5150 | support/texlab/docs/previewing.md
-2022/02/26 | 51466 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2022/02/26 | 5083 | macros/latex/contrib/stex/tex/img/stex-cc-by-sa.png
-2022/02/26 | 50825 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2022/02/26 | 5072 | systems/texlive/tlnet/archive/yamlvars.r62176.tar.xz
2022/02/26 | 5041 | support/texlab/src/features/rename/entry.rs
+2022/02/26 | 50001 | dviware/dvisvgm/src/PsSpecialHandler.cpp
2022/02/26 | 4994 | support/texlab/src/capabilities.rs
2022/02/26 | 497 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error3.snap
2022/02/26 | 4948 | support/texlab/tests/integration/snapshots/integration__completion__latex__class_import.snap
2022/02/26 | 4940 | support/texlab/src/features/completion/acronym_ref.rs
+2022/02/26 | 4926 | dviware/dvisvgm/tests/PapersizeSpecialTest.cpp
2022/02/26 | 491 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal.snap
2022/02/26 | 4916 | support/texlab/src/features/highlight/label.rs
2022/02/26 | 490 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_counter.snap
-2022/02/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/02/26 | 48 | macros/latex/contrib/stex/doc/packages/stex-slides.tex
2022/02/26 | 48 | macros/latex/contrib/stex/doc/packages/stex-inheritance.tex
2022/02/26 | 489 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal_error.snap
2022/02/26 | 488 | support/texlab/src/range.rs
-2022/02/26 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/02/26 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2022/02/26 | 4814 | support/texlab/src/features/completion/tikz_library.rs
2022/02/26 | 480 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__preamble_complete.snap
2022/02/26 | 480 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__preamble_casing.snap
-2022/02/26 | 48015 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
2022/02/26 | 47 | macros/latex/contrib/stex/doc/packages/stex-statements.tex
2022/02/26 | 47 | macros/latex/contrib/stex/doc/packages/stex-references.tex
2022/02/26 | 47 | macros/latex/contrib/stex/doc/packages/stex-metatheory.tex
2022/02/26 | 479 | support/texlab/src/features/highlight.rs
-2022/02/26 | 479431 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/02/26 | 477759 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2022/02/26 | 4769 | support/texlab/src/features/completion/component_environment.rs
2022/02/26 | 4756 | support/texlab/src/citation.rs
+2022/02/26 | 4738 | dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
2022/02/26 | 4736 | support/texlab/src/features/rename/label.rs
2022/02/26 | 472 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_simple.snap
2022/02/26 | 4729 | support/texlab/src/citation/bibutils.rs
@@ -230,15 +710,9 @@
2022/02/26 | 464 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_argc.snap
2022/02/26 | 462 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description.snap
2022/02/26 | 46288 | support/texlab/src/syntax/latex/parser.rs
-2022/02/26 | 46090 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/02/26 | 45941 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
2022/02/26 | 458 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_line_break.snap
-2022/02/26 | 45700 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/02/26 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/02/26 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/02/26 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/02/26 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2022/02/26 | 4538 | macros/luatex/generic/lua-uni-algos/lua-uni-graphemes.lua
+2022/02/26 | 4513 | macros/latex/contrib/projlib/new-modules/projlib-font.sty
2022/02/26 | 450 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_multiple.snap
2022/02/26 | 44 | macros/latex/contrib/stex/doc/packages/stex-symbols.tex
2022/02/26 | 44 | macros/latex/contrib/stex/doc/packages/stex-proofs.tex
@@ -249,17 +723,12 @@
2022/02/26 | 440 | macros/latex/contrib/stex/tex/etc/beamernotesthemesTeX.sty
2022/02/26 | 4407 | support/texlab/src/component_db.rs
2022/02/26 | 43 | macros/latex/contrib/stex/doc/packages/stex-hwexam.tex
-2022/02/26 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
2022/02/26 | 4381 | support/texlab/src/syntax/latex/kind.rs
-2022/02/26 | 43804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/02/26 | 43665 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/26 | 43642 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2022/02/26 | 4345 | macros/latex/contrib/stex/doc/packages/stex-mathhub.tex
-2022/02/26 | 43370 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/02/26 | 43257 | graphics/mcf2graph/mcf_man_soc.mp
2022/02/26 | 4314 | support/texlab/src/diagnostics/latex.rs
2022/02/26 | 42 | macros/latex/contrib/stex/doc/packages/stex-terms.tex
2022/02/26 | 428 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_simple.snap
-2022/02/26 | 42745 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2022/02/26 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote.snap
2022/02/26 | 425 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_args.snap
2022/02/26 | 4238 | support/texlab/src/features/completion/glossary_ref.rs
@@ -268,34 +737,25 @@
2022/02/26 | 416 | support/texlab/tests/integration/snapshots/integration__workspace_symbol__filter_type_figure.snap
2022/02/26 | 4165 | support/texlab/tests/integration/snapshots/integration__completion__bibtex__entry_type_empty_name.snap
2022/02/26 | 4165 | support/texlab/src/workspace/storage.rs
-2022/02/26 | 41316 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/02/26 | 41280 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/02/26 | 41227 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
2022/02/26 | 411 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_multiple.snap
2022/02/26 | 4091 | support/texlab/src/features/completion/theorem.rs
2022/02/26 | 4060 | support/texlab/src/features/hover/string_ref.rs
2022/02/26 | 4053 | support/texlab/tests/integration/snapshots/integration__completion__latex__package_import.snap
-2022/02/26 | 404232 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62171.tar.xz
2022/02/26 | 401 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_multiple_keys.snap
2022/02/26 | 4014 | support/texlab/src/features/hover/citation.rs
2022/02/26 | 3997 | support/texlab/src/features/lsp_kinds.rs
2022/02/26 | 3982 | support/texlab/src/features/definition/command.rs
-2022/02/26 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/02/26 | 3970 | dviware/dvisvgm/src/BoundingBox.hpp
2022/02/26 | 39585 | macros/latex/contrib/stex/source/extensions/document-structure.dtx
-2022/02/26 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/02/26 | 3935 | support/texlab/docs/options.md
2022/02/26 | 3928 | support/texlab/src/features/definition/entry.rs
+2022/02/26 | 3928 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp
2022/02/26 | 39137 | macros/latex/contrib/stex/source/extensions/notesslides.dtx
2022/02/26 | 38668 | systems/texlive/tlnet/archive/tkz-euclide.r62178.tar.xz
2022/02/26 | 38583 | macros/latex/contrib/stex/source/stex/stex-symbols.dtx
-2022/02/26 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/02/26 | 38480 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2022/02/26 | 380190 | support/texlab/docs/demo.gif
2022/02/26 | 3778 | support/texlab/src/workspace/parent_expand.rs
-2022/02/26 | 37393 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/02/26 | 37181 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
2022/02/26 | 37095 | macros/latex/contrib/stex/source/stex/stex-proofs.dtx
-2022/02/26 | 37087 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/02/26 | 3707 | support/texlab/src/features/symbol/types.rs
2022/02/26 | 3693 | support/texlab/src/features/hover/field.rs
2022/02/26 | 368 | macros/latex/contrib/stex/source/extensions/Makefile
@@ -305,7 +765,6 @@
2022/02/26 | 361 | support/texlab/src/req_queue.rs
2022/02/26 | 3615 | support/texlab/src/features/definition/document.rs
2022/02/26 | 360 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation.snap
-2022/02/26 | 36063 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2022/02/26 | 358 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_incomplete.snap
2022/02/26 | 357 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_simple.snap
2022/02/26 | 356 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl.snap
@@ -316,9 +775,6 @@
2022/02/26 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl_error.snap
2022/02/26 | 353 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__verbatim_include_simple.snap
2022/02/26 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
-2022/02/26 | 35234 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/02/26 | 35189 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/02/26 | 351832 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2022/02/26 | 35149 | support/texlab/LICENSE
2022/02/26 | 347 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_redundant_comma.snap
2022/02/26 | 3467 | support/texlab/src/features/completion/types.rs
@@ -326,7 +782,6 @@
2022/02/26 | 343 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__pgf_library_import_simple.snap
2022/02/26 | 342 | support/texlab/src/syntax.rs
2022/02/26 | 3409 | support/texlab/src/features/link.rs
-2022/02/26 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2022/02/26 | 3400 | support/texlab/tests/integration/snapshots/integration__completion__latex__kernel_command_glyph.snap
2022/02/26 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_simple.snap
2022/02/26 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__bibtex_include_simple.snap
@@ -334,42 +789,30 @@
2022/02/26 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_simple.snap
2022/02/26 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_simple.snap
2022/02/26 | 3364 | support/texlab/src/features/symbol/bibtex.rs
-2022/02/26 | 332516 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2022/02/26 | 331 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_simple.snap
2022/02/26 | 3317 | support/texlab/src/features/forward_search.rs
2022/02/26 | 3300 | macros/latex/contrib/stex/source/extensions/tikzinput.dtx
2022/02/26 | 329 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_simple.snap
-2022/02/26 | 32936 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/02/26 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/02/26 | 325 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_simple.snap
2022/02/26 | 3243 | support/texlab/src/workspace/document.rs
2022/02/26 | 32238 | macros/latex/contrib/stex/doc/stex-manual.tex
2022/02/26 | 321 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_simple.snap
-2022/02/26 | 32137 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/02/26 | 3181 | support/texlab/tests/integration/workspace_symbol.rs
2022/02/26 | 3167 | support/texlab/src/diagnostics/chktex.rs
-2022/02/26 | 316655 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/02/26 | 31570 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/02/26 | 31567 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
2022/02/26 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_incomplete.snap
2022/02/26 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_simple.snap
-2022/02/26 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
2022/02/26 | 313 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_label_reference_simple.snap
-2022/02/26 | 31334 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/02/26 | 312 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_reference_simple.snap
2022/02/26 | 3122 | support/texlab/src/features/completion/color.rs
2022/02/26 | 310 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_simple.snap
2022/02/26 | 3072 | support/texlab/src/features/rename/command.rs
-2022/02/26 | 30526 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2022/02/26 | 3043 | support/texlab/src/features/hover/component.rs
2022/02/26 | 302 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error4.snap
2022/02/26 | 301 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_simple.snap
2022/02/26 | 3017 | support/texlab/src/options.rs
-2022/02/26 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2022/02/26 | 30141 | macros/latex/contrib/stex/source/extensions/problem.dtx
2022/02/26 | 299 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__wrap_long_lines.snap
2022/02/26 | 297 | support/texlab/tests/integration/snapshots/integration__hover__label_theorem_child_file_mumber.snap
-2022/02/26 | 296016 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/02/26 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_star.snap
2022/02/26 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_simple.snap
2022/02/26 | 2945 | support/texlab/src/workspace/watch.rs
@@ -378,76 +821,48 @@
2022/02/26 | 2903 | support/texlab/tests/integration/snapshots/integration__completion__latex__label.snap
2022/02/26 | 289 | support/texlab/tests/integration/snapshots/integration__hover__label_theorem_child_file.snap
2022/02/26 | 2897 | support/texlab/tests/integration/snapshots/integration__completion__latex__class_command.snap
-2022/02/26 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2022/02/26 | 2880451 | install/macros/latex/required/babel-base.tds.zip
2022/02/26 | 287 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_missing_brace.snap
2022/02/26 | 2878 | support/texlab/src/features/completion/user_environment.rs
2022/02/26 | 2874 | support/texlab/src/features/completion/user_command.rs
2022/02/26 | 2873 | support/texlab/tests/integration/snapshots/integration__completion__latex__package_environment.snap
-2022/02/26 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/02/26 | 286873 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/02/26 | 286545 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
2022/02/26 | 2863 | support/texlab/tests/integration/snapshots/integration__completion__latex__preselect_environment.snap
2022/02/26 | 285 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets_with_group.snap
-2022/02/26 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/02/26 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
2022/02/26 | 28527 | fonts/xcharter/doc/xcharter-doc.tex
-2022/02/26 | 28417 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2022/02/26 | 283 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_simple.snap
2022/02/26 | 2825 | support/texlab/tests/integration/snapshots/integration__completion__latex__pgf_library.snap
2022/02/26 | 28255 | macros/latex/contrib/stex/source/stex/stex-mathhub.dtx
2022/02/26 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_empty.snap
2022/02/26 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_missing_end.snap
-2022/02/26 | 281707 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/02/26 | 2816622 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2022/02/26 | 279 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_empty.snap
2022/02/26 | 277 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_star.snap
2022/02/26 | 2773 | support/texlab/tests/integration/snapshots/integration__completion__latex__package_command.snap
-2022/02/26 | 27630 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/02/26 | 27590 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
2022/02/26 | 2748 | support/texlab/src/workspace/children_expand.rs
2022/02/26 | 2732 | support/texlab/src/config.rs
-2022/02/26 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
2022/02/26 | 2717 | support/texlab/src/features/definition/label.rs
-2022/02/26 | 2696293 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2022/02/26 | 26875 | macros/latex/contrib/stex/source/stex/stex-terms.dtx
-2022/02/26 | 267660 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/02/26 | 267522 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2022/02/26 | 2658 | support/texlab/tests/integration/snapshots/integration__completion__latex__color_name.snap
2022/02/26 | 2657 | support/texlab/tests/integration/snapshots/integration__document_symbol__enumerate_nested.snap
2022/02/26 | 2620 | support/texlab/src/distro/miktex.rs
2022/02/26 | 26200 | macros/latex/contrib/stex/source/stex/stex-modules.dtx
2022/02/26 | 261 | support/texlab/src/syntax/snapshots/texlab__syntax__build_log__tests__parse_007.snap
2022/02/26 | 2614 | support/texlab/src/features/formatting/latexindent.rs
-2022/02/26 | 259094 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2022/02/26 | 2586 | support/texlab/texlab.tex
2022/02/26 | 25685 | macros/latex/contrib/stex/source/stex/stex-statements.dtx
-2022/02/26 | 256393 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/02/26 | 25628758 | systems/texlive/tlnet/install-tl.zip
-2022/02/26 | 254981 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/02/26 | 25457 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2022/02/26 | 25246 | macros/latex/contrib/stex/source/stex/stex-features.dtx
-2022/02/26 | 251337 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/02/26 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/02/26 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2022/02/26 | 247 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_no_fields.snap
2022/02/26 | 2478 | support/texlab/tests/integration/snapshots/integration__completion__latex__theorem_environment.snap
2022/02/26 | 2448 | support/texlab/src/syntax/latex/analysis/explicit_link.rs
-2022/02/26 | 244865 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2022/02/26 | 243 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_empty.snap
2022/02/26 | 24334 | support/texlab/src/features/completion.rs
2022/02/26 | 242 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__line_break.snap
-2022/02/26 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/02/26 | 23933 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2022/02/26 | 23693 | macros/latex/contrib/stex/source/extensions/hwexam.dtx
2022/02/26 | 2361 | support/texlab/src/features/semantic/legend.rs
-2022/02/26 | 2353376 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/02/26 | 2351 | support/texlab/src/workspace/api.rs
2022/02/26 | 23516 | support/texlab/tests/integration/completion.rs
2022/02/26 | 234 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__escape_sequence.snap
2022/02/26 | 2337 | support/texlab/src/features/completion/begin_command.rs
2022/02/26 | 23063 | fonts/xcharter/tex/XCharter.sty
-2022/02/26 | 229950 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2022/02/26 | 2264 | support/texlab/tests/integration/issues.rs
2022/02/26 | 225 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_no_fields_missing_comma.snap
2022/02/26 | 2250 | support/texlab/docs/lsp_kinds.md
@@ -456,22 +871,16 @@
2022/02/26 | 2227 | support/texlab/Cargo.toml
2022/02/26 | 2221 | support/texlab/tests/integration/snapshots/integration__completion__bibtex__entry_type_incomplete.snap
2022/02/26 | 2218 | support/texlab/tests/integration/hover.rs
-2022/02/26 | 22162 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2022/02/26 | 2213413 | macros/latex/contrib/stex.zip
2022/02/26 | 2211 | macros/latex/contrib/stex/README.md
2022/02/26 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
2022/02/26 | 2182 | macros/latex/contrib/stex/doc/packages/stex-features.tex
2022/02/26 | 2171 | support/texlab/src/syntax/latex/analysis/distro_file.rs
2022/02/26 | 2167 | support/texlab/src/diagnostics/build_log.rs
-2022/02/26 | 216061 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/02/26 | 21320 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/02/26 | 213206 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
2022/02/26 | 21269 | macros/luatex/generic/lua-uni-algos/lua-uni-normalize.lua
2022/02/26 | 2117 | macros/latex/contrib/stex/tex/img/stex-dangerous-bend.png
2022/02/26 | 2115 | macros/luatex/generic/lua-uni-algos/lua-uni-parse.lua
2022/02/26 | 2108 | support/texlab/src/distro.rs
-2022/02/26 | 210200 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/02/26 | 20873111 | systems/texlive/tlnet/install-tl-windows.exe
2022/02/26 | 2084 | support/texlab/src/dispatch.rs
2022/02/26 | 2083 | macros/latex/required/babel/base/README.md
2022/02/26 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets.snap
@@ -479,50 +888,35 @@
2022/02/26 | 2064382 | systems/doc/luatex.zip
2022/02/26 | 205 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__hello_world.snap
2022/02/26 | 204755 | fonts/xcharter/doc/xcharter-doc.pdf
-2022/02/26 | 202534 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2022/02/26 | 2021 | support/texlab/docs/custom_messages.md
2022/02/26 | 2019 | support/texlab/src/distro/kpsewhich.rs
-2022/02/26 | 20190 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/02/26 | 200075 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2022/02/26 | 1998 | support/texlab/src/lang_data.rs
-2022/02/26 | 199569 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/02/26 | 198684 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/02/26 | 1983662 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/02/26 | 197455 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/02/26 | 196183 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/26 | 1979 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp
+2022/02/26 | 19533 | dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
2022/02/26 | 1930 | support/texlab/src/syntax/latex/analysis/label_name.rs
2022/02/26 | 1921 | macros/luatex/generic/lua-uni-algos/lua-uni-case.lua
2022/02/26 | 1917 | support/texlab/tests/integration/snapshots/integration__completion__latex__color_model_define_color.snap
2022/02/26 | 1914 | support/texlab/src/main.rs
2022/02/26 | 1899692 | systems/texlive/tlnet/archive/luatex.doc.r62174.tar.xz
2022/02/26 | 1886 | support/texlab/src/uri.rs
-2022/02/26 | 188209 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
2022/02/26 | 1859 | support/texlab/src/syntax/latex/analysis/types.rs
2022/02/26 | 1854 | support/texlab/tests/integration/snapshots/integration__document_symbol__theorem_nested.snap
-2022/02/26 | 18499 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/02/26 | 18430 | macros/latex/contrib/stex/source/stex/stex-inheritance.dtx
2022/02/26 | 1842521 | macros/latex/required/babel/base.zip
2022/02/26 | 183 | support/texlab/CONTRIBUTING.md
-2022/02/26 | 18358 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2022/02/26 | 181 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__junk.snap
-2022/02/26 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/02/26 | 180014 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2022/02/26 | 1791 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_nested.snap
2022/02/26 | 1789 | support/texlab/src/features/completion/util.rs
2022/02/26 | 1780 | support/texlab/src/diagnostics.rs
2022/02/26 | 17653 | support/texlab/CHANGELOG.md
2022/02/26 | 1758 | macros/latex/contrib/stex/tex/etc/beamerthemesTeX.sty
-2022/02/26 | 1753743 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/02/26 | 172561 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/02/26 | 17327 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.tex
2022/02/26 | 17255 | support/texlab/src/syntax/latex/cst.rs
-2022/02/26 | 17138896 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2022/02/26 | 170 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_empty.snap
2022/02/26 | 1687 | support/texlab/tests/integration/snapshots/integration__document_symbol__enumerate_flat.snap
-2022/02/26 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/02/26 | 166 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_escape.snap
+2022/02/26 | 16649 | macros/latex/contrib/projlib/new-modules/projlib-language.sty
2022/02/26 | 1662 | support/texlab/src/syntax/bibtex/lexer.rs
-2022/02/26 | 16570 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/02/26 | 16505 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2022/02/26 | 16480 | systems/texlive/tlnet/archive/easybook.r62177.tar.xz
2022/02/26 | 16380 | systems/texlive/tlnet/archive/easybook.source.r62177.tar.xz
2022/02/26 | 16361 | support/texlab/src/citation/ris.rs
@@ -530,14 +924,8 @@
2022/02/26 | 1593 | support/texlab/src/client.rs
2022/02/26 | 1578 | support/texlab/src/syntax/latex/analysis/implicit_link.rs
2022/02/26 | 15695 | macros/latex/contrib/stex/source/stex/stex-references.dtx
-2022/02/26 | 156732 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/02/26 | 155453 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/02/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/02/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2022/02/26 | 152 | support/texlab/tests/integration/snapshots/integration__completion__latex__citation_after.snap
-2022/02/26 | 152069 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2022/02/26 | 1499 | support/texlab/tests/integration/snapshots/integration__issues__510_completion_with_unmatched_braces.snap
-2022/02/26 | 1499051 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/02/26 | 1494 | support/texlab/tests/integration/snapshots/integration__document_symbol__section_nested.snap
2022/02/26 | 148 | support/texlab/tests/integration/snapshots/integration__completion__latex__empty_document.snap
2022/02/26 | 148 | support/texlab/tests/integration/snapshots/integration__completion__bibtex__junk.snap
@@ -545,36 +933,23 @@
2022/02/26 | 148 | support/texlab/tests/integration/snapshots/integration__completion__bibtex__empty_document.snap
2022/02/26 | 1475 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acronym_declaration.snap
2022/02/26 | 1467004 | macros/latex/contrib/stex/doc/stex-doc.pdf
-2022/02/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/02/26 | 1454269 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/02/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/02/26 | 14549 | graphics/mcf2graph/mcf_mplib_exa.tex
2022/02/26 | 14472 | macros/latex/contrib/stex/source/stex/stex-basics.dtx
-2022/02/26 | 14410 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2022/02/26 | 1426822 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/02/26 | 1425231 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2022/02/26 | 14223 | support/texlab/src/features/symbol/latex.rs
2022/02/26 | 1413 | support/texlab/tests/integration/snapshots/integration__document_symbol__float_nested.snap
2022/02/26 | 1405 | support/texlab/tests/integration/snapshots/integration__document_symbol__equation_nested.snap
2022/02/26 | 1398 | support/texlab/tests/integration/snapshots/integration__document_symbol__theorem_flat.snap
-2022/02/26 | 139419 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/02/26 | 137 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter.snap
2022/02/26 | 1374 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_options.snap
2022/02/26 | 1365 | support/texlab/tests/integration/snapshots/integration__workspace_symbol__filter_type_section.snap
-2022/02/26 | 136110 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
2022/02/26 | 135 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter_error.snap
2022/02/26 | 13574 | fonts/xcharter/README
-2022/02/26 | 1355330 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/02/26 | 135256 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/02/26 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/02/26 | 1322724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/02/26 | 1318306 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/02/26 | 1317876 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/02/26 | 1306310 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/02/26 | 13291 | dviware/dvisvgm/tests/DvisvgmSpecialTest.cpp
2022/02/26 | 1286 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested_missing_braces.snap
2022/02/26 | 12832 | systems/texlive/tlnet/archive/luatex.r62174.tar.xz
2022/02/26 | 1282 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_enum_item.snap
+2022/02/26 | 128251 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
2022/02/26 | 1269 | support/texlab/src/line_index_ext.rs
-2022/02/26 | 126757 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2022/02/26 | 1265 | support/texlab/src/features/hover.rs
2022/02/26 | 125 | support/texlab/tests/integration/main.rs
2022/02/26 | 124 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__concatenation.snap
@@ -583,28 +958,19 @@
2022/02/26 | 1234 | macros/latex/contrib/stex/source/extensions/stex-extensions.ins
2022/02/26 | 1215 | macros/latex/contrib/stex/source/stex/stex.ins
2022/02/26 | 1212 | support/texlab/tests/integration/snapshots/integration__completion__latex__citation.snap
+2022/02/26 | 12106 | dviware/dvisvgm/src/SVGTree.cpp
2022/02/26 | 1209 | support/texlab/tests/integration/snapshots/integration__completion__latex__color_model_define_color_set.snap
-2022/02/26 | 120468 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2022/02/26 | 118 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__invalid_parameter.snap
-2022/02/26 | 1180914 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2022/02/26 | 117 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap
-2022/02/26 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/02/26 | 1156086 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/02/26 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2022/02/26 | 11519 | support/texlab/tests/integration/document_symbol.rs
2022/02/26 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap
2022/02/26 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap
2022/02/26 | 11495 | support/texlab/tests/integration/common.rs
2022/02/26 | 1138 | support/texlab/src/features/rename.rs
2022/02/26 | 1136 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested.snap
-2022/02/26 | 113012 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/02/26 | 112475 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2022/02/26 | 111 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__preamble.snap
2022/02/26 | 1115 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition.snap
2022/02/26 | 1097852 | systems/texlive/tlnet/archive/tkz-euclide.doc.r62178.tar.xz
-2022/02/26 | 109517 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/02/26 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/02/26 | 108812 | systems/texlive/tlnet/archive/texlive-scripts.r62171.tar.xz
2022/02/26 | 1084 | support/texlab/src/features/definition.rs
2022/02/26 | 1082 | macros/latex/contrib/stex/tex/img/stex-cc_somerights.png
2022/02/26 | 1080 | support/texlab/tests/integration/snapshots/integration__completion__bibtex__entry_type_complete.snap
@@ -618,219 +984,94 @@
2022/02/26 | 1051 | support/texlab/tests/integration/snapshots/integration__document_symbol__section_flat.snap
2022/02/26 | 1050 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_options.snap
2022/02/26 | 1048 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_options.snap
-2022/02/26 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2022/02/26 | 10438 | support/texlab/src/features/semantic/bibtex.rs
2022/02/26 | 1038 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__string_concatenation.snap
2022/02/26 | 1035 | support/texlab/tests/integration/snapshots/integration__workspace_symbol__filter_type_item.snap
-2022/02/26 | 103394 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/02/26 | 103057 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/02/26 | 103131 | systems/texlive/tlnet/tlpkg/translations/sr.po
2022/02/26 | 102 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap
-2022/02/26 | 1020251 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/02/26 | 101442 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/02/26 | 100 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__empty.snap
2022/02/26 | 1005 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_complete_parens.snap
-2022/02/25 | 9881 | macros/luatex/generic/luaotfload/fontloader-fonts-gbn.lua
-2022/02/25 | 981511 | macros/luatex/generic/luaotfload/fontloader-reference.lua
-2022/02/25 | 94451 | macros/luatex/generic/luaotfload/fontloader-font-otr.lua
+2022/02/26 | 10025 | dviware/dvisvgm/src/PsSpecialHandler.hpp
2022/02/25 | 9412 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
-2022/02/25 | 92210 | macros/luatex/generic/luaotfload/fontloader-font-cff.lua
2022/02/25 | 91728 | systems/texlive/tlnet/archive/atendofenv.doc.r62164.tar.xz
-2022/02/25 | 912 | macros/luatex/generic/luaotfload/fontloader-fonts-mis.lua
-2022/02/25 | 8840 | macros/luatex/generic/luaotfload/luaotfload-loaders.lua
-2022/02/25 | 879568 | macros/luatex/generic/luaotfload/fontloader-2022-02-24.lua
-2022/02/25 | 8597 | macros/luatex/generic/luaotfload/filegraph.tex
-2022/02/25 | 8560 | macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
2022/02/25 | 8538 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
-2022/02/25 | 8481 | macros/luatex/generic/luaotfload/shaper-demo.pdf
-2022/02/25 | 842684 | systems/texlive/tlnet/archive/babel.doc.r62166.tar.xz
2022/02/25 | 840 | macros/latex/contrib/stex/tex/ldf/hwexam-finnish.ldf
2022/02/25 | 811 | macros/latex/contrib/stex/tex/ldf/hwexam-ngerman.ldf
2022/02/25 | 80914 | macros/latex/contrib/easybook/easybook.tex
-2022/02/25 | 7904 | macros/luatex/generic/luaotfload/fontloader-font-oti.lua
2022/02/25 | 786 | macros/latex/contrib/stex/tex/ldf/hwexam-french.ldf
-2022/02/25 | 77690 | macros/luatex/generic/luaotfload/luaotfload-conf.pdf
-2022/02/25 | 76959 | macros/luatex/generic/luaotfload/luaotfload-tool.pdf
2022/02/25 | 769280 | systems/texlive/tlnet/archive/grading-scheme.doc.r62163.tar.xz
-2022/02/25 | 7589 | macros/luatex/generic/luaotfload/luaotfload-unicode.lua
-2022/02/25 | 7528 | macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
2022/02/25 | 743916 | systems/texlive/tlnet/archive/l3build.doc.r62165.tar.xz
-2022/02/25 | 7434 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/02/25 | 73774 | macros/latex/contrib/easybook/easybook.dtx
-2022/02/25 | 735 | macros/luatex/generic/luaotfload/luaotfload.conf.example
2022/02/25 | 72647 | macros/luatex/latex/yamlvars.zip
-2022/02/25 | 7260 | macros/luatex/generic/luaotfload/fontloader-fonts-ext.lua
2022/02/25 | 71535 | systems/doc/luatex/luatex-math.tex
-2022/02/25 | 699 | macros/luatex/generic/luaotfload/scripts-demo.tex
-2022/02/25 | 698920 | systems/texlive/tlnet/archive/babel.source.r62166.tar.xz
2022/02/25 | 69483 | macros/luatex/latex/yamlvars/yamlvars.pdf
-2022/02/25 | 6866 | macros/luatex/generic/luaotfload/fontloader-font-afk.lua
-2022/02/25 | 6809 | macros/luatex/generic/luaotfload/luaotfload-case.lua
2022/02/25 | 6751 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex
-2022/02/25 | 6644 | macros/luatex/generic/luaotfload/fontloader-l-string.lua
-2022/02/25 | 65279 | macros/luatex/generic/luaotfload/fontloader-font-otj.lua
2022/02/25 | 6434 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex
-2022/02/25 | 64282 | macros/luatex/generic/luaotfload/fontloader-font-ttf.lua
-2022/02/25 | 6405 | macros/luatex/generic/luaotfload/fontloader-l-lua.lua
-2022/02/25 | 63211 | macros/luatex/generic/luaotfload/fontloader-font-con.lua
-2022/02/25 | 6317 | macros/luatex/generic/luaotfload/luaotfload-status.lua
-2022/02/25 | 6309 | macros/luatex/generic/luaotfload/luaotfload-szss.lua
2022/02/25 | 618940 | macros/latex/contrib/easybook.zip
2022/02/25 | 6024 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex
-2022/02/25 | 5885 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.tex
2022/02/25 | 588092 | systems/texlive/tlnet/archive/l3kernel.source.r62165.tar.xz
2022/02/25 | 578301 | macros/latex/contrib/easybook/easybook.pdf
-2022/02/25 | 57342 | macros/luatex/generic/luaotfload/fontloader-fonts-lig.lua
-2022/02/25 | 5502 | macros/luatex/generic/luaotfload/fontloader-font-cid.lua
2022/02/25 | 5479 | macros/latex/contrib/tkz/tkz-euclide/README.md
2022/02/25 | 546 | macros/latex/contrib/stex/tex/ldf/problem-russian.ldf
-2022/02/25 | 54080 | macros/luatex/generic/luaotfload/luaotfload-tool.lua
-2022/02/25 | 5388 | macros/luatex/generic/luaotfload/fontloader-data-con.lua
2022/02/25 | 534 | macros/latex/contrib/stex/tex/ldf/problem-ngerman.ldf
2022/02/25 | 5345 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
-2022/02/25 | 52 | macros/luatex/generic/luaotfload/luaotfload-blacklist.cnf
2022/02/25 | 524 | macros/latex/contrib/stex/tex/ldf/sproof-french.ldf
2022/02/25 | 5196 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
2022/02/25 | 5004 | systems/texlive/tlnet/archive/grading-scheme.r62163.tar.xz
2022/02/25 | 5002 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
2022/02/25 | 499 | macros/latex/contrib/stex/tex/ldf/sproof-finnish.ldf
-2022/02/25 | 4956 | macros/luatex/generic/luaotfload/luaotfload-dvi.lua
-2022/02/25 | 494376 | macros/luatex/generic/luaotfload/luaotfload-latex.pdf
-2022/02/25 | 4930 | macros/luatex/generic/luaotfload/luaotfload-t3.lua
2022/02/25 | 489 | macros/latex/contrib/stex/tex/ldf/sproof-russian.ldf
-2022/02/25 | 48728 | macros/luatex/generic/luaotfload/fontloader-basics-chr.lua
2022/02/25 | 478 | macros/latex/contrib/stex/tex/ldf/problem-french.ldf
2022/02/25 | 474 | macros/latex/contrib/stex/tex/ldf/problem-finnish.ldf
2022/02/25 | 4729 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex
2022/02/25 | 464 | macros/latex/contrib/stex/doc/Makefile
-2022/02/25 | 46322 | macros/luatex/generic/luaotfload/fontloader-util-str.lua
2022/02/25 | 4608 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
2022/02/25 | 4377 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex
2022/02/25 | 434 | macros/latex/contrib/stex/tex/ldf/sproof-ngerman.ldf
2022/02/25 | 4348 | systems/texlive/tlnet/archive/luacensor.r62167.tar.xz
-2022/02/25 | 42240 | macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
-2022/02/25 | 41758 | macros/luatex/generic/luaotfload/fontloader-l-table.lua
-2022/02/25 | 41303 | macros/luatex/generic/luaotfload/fontloader-l-unicode.lua
+2022/02/25 | 4096 | macros/latex/contrib/projlib/new-modules/projlib-paper.sty
2022/02/25 | 4089 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
-2022/02/25 | 4050 | macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
-2022/02/25 | 4047 | macros/luatex/generic/luaotfload/luaotfload-fallback.lua
2022/02/25 | 4008 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
-2022/02/25 | 40019 | macros/luatex/generic/luaotfload/filegraph.pdf
-2022/02/25 | 38742 | macros/luatex/generic/luaotfload/fontloader-l-lpeg.lua
-2022/02/25 | 3821 | macros/luatex/generic/luaotfload/fontloader-fonts-def.lua
2022/02/25 | 3790084 | info/biblio/tugboat.bib
-2022/02/25 | 3784 | macros/luatex/generic/luaotfload/README.md
-2022/02/25 | 3693 | macros/luatex/generic/luaotfload/fontloader-font-imp-italics.lua
-2022/02/25 | 3674 | macros/luatex/generic/luaotfload/fontloader-fonts-syn.lua
2022/02/25 | 362 | macros/latex/contrib/stex/source/stex/Makefile
-2022/02/25 | 361 | macros/luatex/generic/luaotfload/fontloader-l-function.lua
2022/02/25 | 3583 | info/biblio/tugboat.ltx
-2022/02/25 | 3580 | macros/luatex/generic/luaotfload/fontloader-font-imp-ligatures.lua
2022/02/25 | 35608 | systems/texlive/tlnet/archive/l3build.r62165.tar.xz
-2022/02/25 | 34922 | macros/luatex/generic/luaotfload/fontloader-font-ott.lua
2022/02/25 | 3486 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex
2022/02/25 | 3475 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex
-2022/02/25 | 34476 | macros/luatex/generic/luaotfload/fontloader-font-otc.lua
-2022/02/25 | 3406 | macros/luatex/generic/luaotfload/fontloader-font-imp-tex.lua
-2022/02/25 | 33960 | macros/luatex/generic/luaotfload/fontloader-font-otl.lua
-2022/02/25 | 32949 | macros/luatex/generic/luaotfload/luaotfload-features.lua
-2022/02/25 | 3287334 | macros/luatex/generic/luaotfload/luaotfload-characters.lua
-2022/02/25 | 32597 | macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
2022/02/25 | 3248 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex
-2022/02/25 | 31349 | macros/luatex/generic/luaotfload/fontloader-font-one.lua
-2022/02/25 | 31223 | macros/luatex/generic/luaotfload/luaotfload-configuration.lua
2022/02/25 | 3110 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex
2022/02/25 | 3104 | systems/texlive/tlnet/archive/atendofenv.source.r62164.tar.xz
-2022/02/25 | 31007 | macros/luatex/generic/luaotfload/luaotfload-parsers.lua
2022/02/25 | 30792 | systems/texlive/tlnet/archive/l3build.source.r62165.tar.xz
2022/02/25 | 2980 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex
2022/02/25 | 2807 | macros/luatex/latex/yamlvars/yamlvars.sty
-2022/02/25 | 275 | macros/luatex/generic/luaotfload/luaotfload-main.lua
2022/02/25 | 2748 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex
-2022/02/25 | 2667 | macros/luatex/generic/luaotfload/fontloader-font-vfc.lua
-2022/02/25 | 2625 | macros/luatex/generic/luaotfload/fontloader-fonts-enc.lua
-2022/02/25 | 2582 | macros/luatex/generic/luaotfload/luaotfload-suppress.lua
-2022/02/25 | 2549 | macros/luatex/generic/luaotfload/fontloader-l-math.lua
-2022/02/25 | 25336 | macros/luatex/generic/luaotfload/luaotfload-filelist.lua
-2022/02/25 | 25264 | macros/luatex/generic/luaotfload/fontloader-font-ocl.lua
-2022/02/25 | 2506 | macros/luatex/generic/luaotfload/luaotfload-scripts.lua
-2022/02/25 | 23399 | macros/luatex/generic/luaotfload/fontloader-fonts-tfm.lua
-2022/02/25 | 23238 | macros/luatex/generic/luaotfload/fontloader-font-oto.lua
2022/02/25 | 2270 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex
2022/02/25 | 22486 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex
2022/02/25 | 22279 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex
-2022/02/25 | 22186 | macros/luatex/generic/luaotfload/fontloader-l-file.lua
-2022/02/25 | 22075 | macros/luatex/generic/luaotfload/scripts-demo.pdf
-2022/02/25 | 21858 | macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
2022/02/25 | 2180 | macros/latex/contrib/stex/tex/etc/lststex.sty
-2022/02/25 | 21113 | macros/luatex/generic/luaotfload/NEWS
-2022/02/25 | 20268 | macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
2022/02/25 | 2006 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex
-2022/02/25 | 20038 | macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
-2022/02/25 | 19944 | macros/luatex/generic/luaotfload/fontloader-font-def.lua
-2022/02/25 | 19746 | macros/luatex/generic/luaotfload/luaotfload-init.lua
-2022/02/25 | 1959295 | install/macros/luatex/generic/luaotfload.tds.zip
-2022/02/25 | 1958779 | macros/luatex/generic/luaotfload.zip
-2022/02/25 | 19570 | macros/luatex/generic/luaotfload/fontloader-font-map.lua
-2022/02/25 | 191 | macros/luatex/generic/luaotfload/shaper-demo-graphite.tex
-2022/02/25 | 18741 | macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
-2022/02/25 | 18717 | macros/luatex/generic/luaotfload/fontloader-font-onr.lua
-2022/02/25 | 18714 | macros/luatex/generic/luaotfload/COPYING
-2022/02/25 | 186209 | macros/luatex/generic/luaotfload/fontloader-font-ots.lua
-2022/02/25 | 1850 | macros/luatex/generic/luaotfload/fontloader-l-boolean.lua
2022/02/25 | 18427 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
-2022/02/25 | 18411 | macros/luatex/generic/luaotfload/fontloader-font-ota.lua
-2022/02/25 | 183932 | systems/texlive/tlnet/archive/babel.r62166.tar.xz
-2022/02/25 | 18378 | macros/luatex/generic/luaotfload/luaotfload.conf.rst
-2022/02/25 | 182 | macros/luatex/generic/luaotfload/shaper-demo.tex
-2022/02/25 | 1812 | macros/luatex/generic/luaotfload/luaotfload.sty
-2022/02/25 | 1794 | macros/luatex/generic/luaotfload/fontloader-font-ini.lua
2022/02/25 | 1784731 | systems/doc/luatex/luatex.pdf
2022/02/25 | 170512 | systems/texlive/tlnet/archive/l3kernel.r62165.tar.xz
2022/02/25 | 16935 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
-2022/02/25 | 16794 | macros/luatex/generic/luaotfload/luaotfload.conf.5
-2022/02/25 | 16675 | macros/luatex/generic/luaotfload/luaotfload-latex.tex
2022/02/25 | 164092 | systems/texlive/tlnet/archive/luacensor.doc.r62167.tar.xz
2022/02/25 | 1629 | macros/latex/contrib/stex/tex/etc/stexthm.sty
-2022/02/25 | 16116 | macros/luatex/generic/luaotfload/luaotfload-tool.rst
-2022/02/25 | 15954 | macros/luatex/generic/luaotfload/luaotfload-colors.lua
2022/02/25 | 1584 | systems/texlive/tlnet/archive/atendofenv.r62164.tar.xz
-2022/02/25 | 154203 | macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
2022/02/25 | 15320 | systems/texlive/tlnet/archive/grading-scheme.source.r62163.tar.xz
-2022/02/25 | 15196 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.lua
-2022/02/25 | 15068 | macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
2022/02/25 | 14541 | macros/luatex/latex/yamlvars/yamlvars.lua
-2022/02/25 | 1449 | macros/luatex/generic/luaotfload/fontloader-font-lua.lua
2022/02/25 | 14445 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
2022/02/25 | 1428 | macros/luatex/latex/yamlvars/README.md
-2022/02/25 | 14279 | macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
2022/02/25 | 13600 | macros/luatex/latex/yamlvars/yamlvars.tex
-2022/02/25 | 13565 | macros/luatex/generic/luaotfload/luaotfload.lua
-2022/02/25 | 13525 | macros/luatex/generic/luaotfload/fontloader-font-shp.lua
-2022/02/25 | 134114 | macros/luatex/generic/luaotfload/luaotfload-database.lua
2022/02/25 | 13274 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
2022/02/25 | 13205 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
-2022/02/25 | 12829 | macros/luatex/generic/luaotfload/luaotfload-tool.1
-2022/02/25 | 12749 | macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
-2022/02/25 | 12704 | macros/luatex/generic/luaotfload/fontloader-font-imp-effects.lua
-2022/02/25 | 123210 | macros/luatex/generic/luaotfload/fontloader-font-oup.lua
2022/02/25 | 1226 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex
-2022/02/25 | 12224 | macros/luatex/generic/luaotfload/luaotfload-notdef.lua
2022/02/25 | 1200312 | macros/latex/contrib/tkz/tkz-euclide.zip
-2022/02/25 | 11988 | macros/luatex/generic/luaotfload/fontloader-l-io.lua
-2022/02/25 | 118105 | macros/luatex/generic/luaotfload/fontloader-font-osd.lua
2022/02/25 | 11577640 | systems/texlive/tlnet/archive/l3kernel.doc.r62165.tar.xz
-2022/02/25 | 11474 | macros/luatex/generic/luaotfload/fontloader-util-fil.lua
2022/02/25 | 11451 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
-2022/02/25 | 11323 | macros/luatex/generic/luaotfload/luaotfload-log.lua
2022/02/25 | 11038 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
-2022/02/25 | 10984 | macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
2022/02/25 | 10654 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
2022/02/25 | 10313 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
-2022/02/25 | 102502 | macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
-2022/02/25 | 10207 | macros/luatex/generic/luaotfload/fontloader-basics-nod.lua
2022/02/25 | 1005 | macros/latex/contrib/stex/tex/ldf/hwexam-russian.ldf
-2022/02/25 | 1004 | macros/luatex/generic/luaotfload/luaotfload-embolden.lua
-2022/02/25 | 100061 | macros/luatex/generic/luaotfload/luaotfload-main.tex
2022/02/24 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex
2022/02/24 | 996 | fonts/xcharter/vf/XCharter-BoldSlanted-tosf-sc-ot1.vf
2022/02/24 | 996 | fonts/xcharter/vf/XCharter-BoldSlanted-tlf-sc-ot1.vf
@@ -1169,6 +1410,7 @@
2022/02/24 | 56716 | systems/texlive/tlnet/archive/acmart.source.r62157.tar.xz
2022/02/24 | 55784 | systems/texlive/tlnet/archive/microtype.r62157.tar.xz
2022/02/24 | 551310 | macros/latex/contrib/l3kernel/l3doc.pdf
+2022/02/24 | 55015 | macros/latex/contrib/projlib/new-modules/projlib-datetime.sty
2022/02/24 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex
2022/02/24 | 5397 | macros/latex/contrib/l3build/l3build-aux.lua
2022/02/24 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r62157.tar.xz
@@ -1186,6 +1428,7 @@
2022/02/24 | 474276 | systems/texlive/tlnet/archive/andika.doc.r62157.tar.xz
2022/02/24 | 47217 | macros/latex/contrib/l3kernel/l3fp-aux.dtx
2022/02/24 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex
+2022/02/24 | 4682 | macros/latex/contrib/projlib/new-modules/projlib-draft.sty
2022/02/24 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua
2022/02/24 | 43203 | macros/latex/contrib/l3kernel/l3debug.dtx
2022/02/24 | 42796 | macros/latex/contrib/l3kernel/l3prefixes.csv
@@ -1430,6 +1673,7 @@
2022/02/24 | 26736 | fonts/xcharter/tfm/XCharter-BoldItalic-tosf-sc-ly1.tfm
2022/02/24 | 26566 | macros/latex/contrib/stex/tex/img/sTeX-logo.png
2022/02/24 | 2646640 | systems/texlive/tlnet/archive/microtype.doc.r62157.tar.xz
+2022/02/24 | 2643 | macros/latex/contrib/projlib/new-modules/projlib-logo.sty
2022/02/24 | 26384 | fonts/xcharter/tfm/XCharter-Bold-osf-ly1.tfm
2022/02/24 | 26376 | fonts/xcharter/tfm/XCharter-Bold-lf-ly1.tfm
2022/02/24 | 26360 | fonts/xcharter/tfm/XCharter-Bold-tosf-ly1.tfm
@@ -2322,6 +2566,7 @@
2022/02/24 | 113422 | macros/latex/contrib/l3kernel/l3str-convert.dtx
2022/02/24 | 112487 | macros/latex/contrib/l3kernel/l3news05.pdf
2022/02/24 | 110979 | macros/latex/contrib/l3build/l3build.dtx
+2022/02/24 | 11084 | macros/latex/contrib/projlib/new-modules/projlib-author.sty
2022/02/24 | 109496 | systems/texlive/tlnet/archive/texlogsieve.doc.r62157.tar.xz
2022/02/24 | 10830 | macros/latex/contrib/l3build/l3build-install.lua
2022/02/24 | 10786 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
@@ -2349,7 +2594,6 @@
2022/02/23 | 90464 | systems/texlive/tlnet/archive/hyperref.r62142.tar.xz
2022/02/23 | 8676 | systems/texlive/tlnet/archive/mltex.doc.r62145.tar.xz
2022/02/23 | 863525 | macros/latex/contrib/acmart/acmart.pdf
-2022/02/23 | 8413 | dviware/dvisvgm/configure.ac
2022/02/23 | 817 | macros/luatex/latex/luacensor/README
2022/02/23 | 781211 | macros/latex/contrib/acmart/samples/sample-lualatex.pdf
2022/02/23 | 7784 | systems/texlive/tlnet/archive/xetex.r62145.tar.xz
@@ -2358,9 +2602,7 @@
2022/02/23 | 7304 | systems/texlive/tlnet/archive/handoutwithnotes.source.r62140.tar.xz
2022/02/23 | 7080 | systems/texlive/tlnet/archive/lua-widow-control.r62144.tar.xz
2022/02/23 | 692 | systems/texlive/tlnet/archive/ptex.r62145.tar.xz
-2022/02/23 | 689518 | dviware/dvisvgm/configure
2022/02/23 | 6884 | macros/latex/contrib/microtype/microtype.ins
-2022/02/23 | 68834 | dviware/dvisvgm/doc/dvisvgm.1
2022/02/23 | 68830 | macros/latex/contrib/microtype/microtype-utf.dtx
2022/02/23 | 687188 | systems/texlive/tlnet/archive/biblatex-mla.doc.r62138.tar.xz
2022/02/23 | 676 | systems/texlive/tlnet/archive/latex-bin-dev.r62145.tar.xz
@@ -2373,8 +2615,6 @@
2022/02/23 | 620 | systems/texlive/tlnet/archive/latex-bin.r62145.tar.xz
2022/02/23 | 620122 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
2022/02/23 | 610121 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
-2022/02/23 | 60275 | dviware/dvisvgm/src/Makefile.in
-2022/02/23 | 56953 | dviware/dvisvgm/aclocal.m4
2022/02/23 | 567307 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
2022/02/23 | 53816 | systems/texlive/tlnet/archive/latex-bin.doc.r62145.tar.xz
2022/02/23 | 50748 | systems/texlive/tlnet/archive/uplatex.source.r62145.tar.xz
@@ -2382,24 +2622,18 @@
2022/02/23 | 455 | systems/texlive/tlnet/update-tlmgr-r62112.sh.sha512.asc
2022/02/23 | 455 | systems/texlive/tlnet/update-tlmgr-r62112.exe.sha512.asc
2022/02/23 | 448360 | systems/texlive/tlnet/archive/hyperref.source.r62142.tar.xz
-2022/02/23 | 446117 | dviware/dvisvgm/ChangeLog
2022/02/23 | 43832 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r62139.tar.xz
-2022/02/23 | 4369 | dviware/dvisvgm/config.h.in
2022/02/23 | 42280 | systems/texlive/tlnet/archive/eplain.r62145.tar.xz
2022/02/23 | 420338 | macros/latex/contrib/acmart/acmguide.pdf
2022/02/23 | 41920 | systems/texlive/tlnet/archive/platex.r62145.tar.xz
2022/02/23 | 4172 | fonts/xcharter/doc/altone.py
2022/02/23 | 4080180 | systems/texlive/tlnet/update-tlmgr-r62112.exe
-2022/02/23 | 40582 | dviware/dvisvgm/libs/ff-woff/Makefile.in
2022/02/23 | 396576 | systems/texlive/tlnet/archive/eplain.source.r62145.tar.xz
-2022/02/23 | 39022 | dviware/dvisvgm/NEWS
2022/02/23 | 3792 | systems/texlive/tlnet/archive/rutitlepage.source.r62143.tar.xz
2022/02/23 | 36956 | systems/texlive/tlnet/archive/pdftex.r62145.tar.xz
2022/02/23 | 3644 | systems/texlive/tlnet/archive/handoutwithnotes.r62140.tar.xz
-2022/02/23 | 3568424 | dviware/dvisvgm.zip
2022/02/23 | 348520 | systems/texlive/tlnet/archive/texlive.infra.r62112.tar.xz
2022/02/23 | 3393 | macros/latex/contrib/microtype/README.md
-2022/02/23 | 33403 | dviware/dvisvgm/libs/brotli/Makefile.in
2022/02/23 | 3250152 | systems/texlive/tlnet/archive/hyperref.doc.r62142.tar.xz
2022/02/23 | 319168 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62144.tar.xz
2022/02/23 | 31788 | systems/texlive/tlnet/archive/jadetex.doc.r62145.tar.xz
@@ -2407,28 +2641,18 @@
2022/02/23 | 3022721 | install/macros/latex/contrib/microtype.tds.zip
2022/02/23 | 29904 | systems/texlive/tlnet/archive/jadetex.r62145.tar.xz
2022/02/23 | 2902456 | macros/latex/contrib/microtype.zip
-2022/02/23 | 27920 | dviware/dvisvgm/Makefile.in
2022/02/23 | 27205 | macros/luatex/latex/luacensor/luacensor.tex
2022/02/23 | 2658324 | systems/texlive/tlnet/archive/rutitlepage.r62143.tar.xz
2022/02/23 | 262214 | macros/latex/contrib/acmart/acmart.dtx
2022/02/23 | 25604 | systems/texlive/tlnet/archive/bfh-ci.r62136.tar.xz
-2022/02/23 | 256038 | dviware/dvisvgm/tests/Makefile.in
2022/02/23 | 24920 | systems/texlive/tlnet/archive/biblatex-mla.r62138.tar.xz
-2022/02/23 | 24709 | dviware/dvisvgm/libs/woff2/Makefile.in
2022/02/23 | 241568 | systems/texlive/tlnet/archive/uptex.doc.r62145.tar.xz
2022/02/23 | 24036 | systems/texlive/tlnet/archive/cslatex.source.r62145.tar.xz
2022/02/23 | 232680 | systems/texlive/tlnet/archive/citation-style-language.doc.r62134.tar.xz
2022/02/23 | 232532 | systems/texlive/tlnet/archive/bfh-ci.doc.r62136.tar.xz
-2022/02/23 | 22194 | dviware/dvisvgm/src/optimizer/Makefile.in
2022/02/23 | 2157678 | macros/latex/contrib/microtype/microtype-code.pdf
-2022/02/23 | 21375 | dviware/dvisvgm/doc/Makefile.in
2022/02/23 | 208488 | systems/texlive/tlnet/archive/texlive.infra.doc.r62112.tar.xz
-2022/02/23 | 20832 | dviware/dvisvgm/libs/potrace/Makefile.in
-2022/02/23 | 20366 | dviware/dvisvgm/libs/clipper/Makefile.in
-2022/02/23 | 19964 | dviware/dvisvgm/libs/Makefile.in
2022/02/23 | 198592 | systems/texlive/tlnet/archive/rutitlepage.doc.r62143.tar.xz
-2022/02/23 | 19678 | dviware/dvisvgm/libs/xxHash/Makefile.in
-2022/02/23 | 19573 | dviware/dvisvgm/libs/md5/Makefile.in
2022/02/23 | 19312 | systems/texlive/tlnet/archive/jadetex.source.r62145.tar.xz
2022/02/23 | 18996 | systems/texlive/tlnet/archive/cslatex.doc.r62145.tar.xz
2022/02/23 | 184070 | support/TeX4ht/source/ChangeLog
@@ -2437,21 +2661,17 @@
2022/02/23 | 167523 | macros/luatex/latex/luacensor.zip
2022/02/23 | 1629784 | systems/texlive/tlnet/archive/pdftex.doc.r62145.tar.xz
2022/02/23 | 158771 | macros/luatex/latex/luacensor/luacensor.pdf
-2022/02/23 | 15621 | dviware/dvisvgm/libs/variant/Makefile.in
2022/02/23 | 154 | systems/texlive/tlnet/update-tlmgr-r62112.exe.sha512
2022/02/23 | 153 | systems/texlive/tlnet/update-tlmgr-r62112.sh.sha512
2022/02/23 | 1499036 | systems/texlive/tlnet/archive/platex.doc.r62145.tar.xz
2022/02/23 | 14828 | systems/texlive/tlnet/archive/uplatex.r62145.tar.xz
2022/02/23 | 1471892 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r62139.tar.xz
-2022/02/23 | 146380 | systems/texlive/tlnet/archive/texlive-msg-translations.r62135.tar.xz
2022/02/23 | 14334 | macros/luatex/latex/luacensor/luacensor.sty
2022/02/23 | 1410 | fonts/xcharter/tex/TS1XCharter-OsF.fd
2022/02/23 | 13972 | systems/texlive/tlnet/archive/latex-bin-dev.doc.r62145.tar.xz
2022/02/23 | 1395 | fonts/xcharter/tex/TS1XCharter-LF.fd
2022/02/23 | 139168 | systems/texlive/tlnet/archive/platex.source.r62145.tar.xz
-2022/02/23 | 13740 | dviware/dvisvgm/tests/data/Makefile.in
2022/02/23 | 136380 | systems/texlive/tlnet/archive/tex4ht.doc.r62147.tar.xz
-2022/02/23 | 13502 | dviware/dvisvgm/m4/Makefile.in
2022/02/23 | 12744 | systems/texlive/tlnet/archive/cslatex.r62145.tar.xz
2022/02/23 | 1235612 | systems/texlive/tlnet/archive/tex4ht.source.r62147.tar.xz
2022/02/23 | 121228 | systems/texlive/tlnet/archive/ptex.doc.r62145.tar.xz
@@ -2468,7 +2688,6 @@
2022/02/23 | 103116 | systems/texlive/tlnet/archive/citation-style-language.r62134.tar.xz
2022/02/23 | 10068306 | systems/texlive/tlnet/update-tlmgr-r62112.sh
2022/02/22 | 9440 | macros/latex/contrib/biblatex-contrib/biblatex-mla/spanish-mla.lbx
-2022/02/22 | 93738 | systems/texlive/tlnet/tlpkg/translations/fr.po
2022/02/22 | 92294 | macros/latex/contrib/bfh-ci/doc/DEMO-BFHPub.pdf
2022/02/22 | 914930 | systems/win32/miktex/tm/packages/mcf2graph__doc.tar.lzma
2022/02/22 | 91228 | systems/win32/miktex/tm/packages/tex4ebook__doc.tar.lzma
@@ -2480,12 +2699,10 @@
2022/02/22 | 808829 | systems/win32/miktex/tm/packages/biblatex-mla__source.tar.lzma
2022/02/22 | 8057 | systems/win32/miktex/tm/packages/make4ht__source.tar.lzma
2022/02/22 | 7915 | systems/win32/miktex/tm/packages/flashcards__source.tar.lzma
-2022/02/22 | 7860 | dviware/dvisvgm/src/BoundingBox.cpp
2022/02/22 | 7656 | macros/latex/contrib/bfh-ci/example/DEMO-BFHSciPoster.tex
2022/02/22 | 753745 | macros/latex/contrib/biblatex-contrib/biblatex-mla.zip
2022/02/22 | 75334 | systems/win32/miktex/tm/packages/memoir.tar.lzma
2022/02/22 | 75226 | systems/win32/miktex/tm/packages/xepersian__source.tar.lzma
-2022/02/22 | 7489 | dviware/dvisvgm/tests/EmSpecialTest.cpp
2022/02/22 | 73950 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
2022/02/22 | 739000 | systems/win32/miktex/tm/packages/caption__doc.tar.lzma
2022/02/22 | 72244 | systems/win32/miktex/tm/packages/spectralsequences.tar.lzma
@@ -2497,13 +2714,11 @@
2022/02/22 | 6780 | systems/win32/miktex/tm/packages/luacensor__source.tar.lzma
2022/02/22 | 67638 | macros/latex/contrib/hvfloat/latex/hvfloat.sty
2022/02/22 | 6607 | systems/win32/miktex/tm/packages/proflycee.tar.lzma
-2022/02/22 | 6500 | dviware/dvisvgm/src/PSPattern.cpp
2022/02/22 | 6484 | systems/win32/miktex/tm/packages/tipauni.tar.lzma
2022/02/22 | 6469 | macros/latex/contrib/rutitlepage/rutitlepage-logo.pdf
2022/02/22 | 645290 | systems/win32/miktex/tm/packages/biblatex-mla__doc.tar.lzma
2022/02/22 | 6373 | macros/latex/contrib/bfh-ci/tex/bfhthesis.cls
2022/02/22 | 6276 | systems/texlive/tlnet/archive/tipauni.r62131.tar.xz
-2022/02/22 | 6078 | dviware/dvisvgm/tests/BoundingBoxTest.cpp
2022/02/22 | 59599 | systems/win32/miktex/tm/packages/xepersian.tar.lzma
2022/02/22 | 5957 | systems/win32/miktex/tm/packages/tex4ebook__source.tar.lzma
2022/02/22 | 59527 | systems/win32/miktex/tm/packages/caption.tar.lzma
@@ -2520,11 +2735,9 @@
2022/02/22 | 508288 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.pdf
2022/02/22 | 50515 | macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer-Sidebar.pdf
2022/02/22 | 50171 | macros/latex/contrib/bfh-ci/doc/DEMO-BFHFactsheet.pdf
-2022/02/22 | 49954 | dviware/dvisvgm/src/PsSpecialHandler.cpp
2022/02/22 | 49626 | systems/win32/miktex/tm/packages/nwejm__source.tar.lzma
2022/02/22 | 494520 | systems/texlive/tlnet/archive/beamertheme-focus.doc.r62122.tar.xz
2022/02/22 | 49332 | systems/texlive/tlnet/archive/nwejm.source.r62129.tar.xz
-2022/02/22 | 4926 | dviware/dvisvgm/tests/PapersizeSpecialTest.cpp
2022/02/22 | 4925 | macros/latex/contrib/bfh-ci/tex/bfh-layout-terminal.cfg
2022/02/22 | 4833 | systems/win32/miktex/tm/packages/beamertheme-focus.tar.lzma
2022/02/22 | 47640 | systems/texlive/tlnet/archive/fbox.doc.r62126.tar.xz
@@ -2547,7 +2760,6 @@
2022/02/22 | 40747 | macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer.pdf
2022/02/22 | 396332 | systems/texlive/tlnet/archive/tipauni.doc.r62131.tar.xz
2022/02/22 | 396000 | systems/win32/miktex/tm/packages/tipauni__doc.tar.lzma
-2022/02/22 | 3916 | dviware/dvisvgm/src/BoundingBox.hpp
2022/02/22 | 3912 | macros/luatex/generic/lua-widow-control/lwc-sample.tex
2022/02/22 | 3901 | macros/latex/contrib/bfh-ci/tex/bfhlettersize9.5pt.clo
2022/02/22 | 3880394 | macros/latex/contrib/hyperref.zip
@@ -2640,7 +2852,6 @@
2022/02/22 | 20017 | macros/latex/contrib/biblatex-contrib/biblatex-mla/CHANGES
2022/02/22 | 1968615 | systems/win32/miktex/tm/packages/erewhon-math__doc.tar.lzma
2022/02/22 | 195439 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
-2022/02/22 | 19533 | dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
2022/02/22 | 1881 | macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer.tex
2022/02/22 | 1856 | systems/texlive/tlnet/archive/fbox.r62126.tar.xz
2022/02/22 | 18492 | macros/latex/contrib/bfh-ci/tex/bfhsciposter.cls
@@ -2676,7 +2887,6 @@
2022/02/22 | 13660 | macros/latex/contrib/bfh-ci/doc/DEMO-BFHLetter.pdf
2022/02/22 | 135116 | systems/win32/miktex/tm/packages/bidi__source.tar.lzma
2022/02/22 | 1336 | macros/latex/contrib/bfh-ci/example/DEMO-BFHThesis.tex
-2022/02/22 | 13291 | dviware/dvisvgm/tests/DvisvgmSpecialTest.cpp
2022/02/22 | 1321604 | systems/win32/miktex/tm/packages/nwejm__doc.tar.lzma
2022/02/22 | 13212 | systems/win32/miktex/tm/packages/erewhon-math__source.tar.lzma
2022/02/22 | 1321156 | systems/texlive/tlnet/archive/nwejm.doc.r62129.tar.xz
@@ -2684,7 +2894,6 @@
2022/02/22 | 12948 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-footnotes.cbx
2022/02/22 | 128262 | systems/win32/miktex/tm/packages/luacensor__doc.tar.lzma
2022/02/22 | 127682 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.tex
-2022/02/22 | 12106 | dviware/dvisvgm/src/SVGTree.cpp
2022/02/22 | 120700 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
2022/02/22 | 11859 | systems/win32/miktex/tm/packages/proflycee__source.tar.lzma
2022/02/22 | 118208 | systems/win32/miktex/tm/packages/crefthe__doc.tar.lzma
@@ -2719,13 +2928,8 @@
2022/02/21 | 9379 | macros/latex/contrib/moderncv/moderncvbodyv.sty
2022/02/21 | 9357 | macros/latex/contrib/moderncv/moderncvheadiv.sty
2022/02/21 | 908 | macros/latex/contrib/hyperref/doc/hyperref-doc2.html
-2022/02/21 | 90134 | systems/texlive/tlnet/tlpkg/translations/vi.po
2022/02/21 | 8930 | macros/latex/contrib/moderncv/moderncvheadi.sty
-2022/02/21 | 89150 | systems/texlive/tlnet/tlpkg/translations/de.po
-2022/02/21 | 889496 | systems/texlive/tlnet/archive/beebe.r62093.tar.xz
-2022/02/21 | 88496 | systems/texlive/tlnet/tlpkg/translations/sk.po
2022/02/21 | 880455 | macros/latex/contrib/hyperref/hyperref.dtx
-2022/02/21 | 87449 | systems/texlive/tlnet/tlpkg/translations/it.po
2022/02/21 | 86616 | macros/latex/contrib/nwejm/doc/french/nwejm-fr.tex
2022/02/21 | 862 | macros/latex/contrib/acmart/samples/samples.ins
2022/02/21 | 858 | macros/latex/contrib/hyperref/doc/hyperref-doc5.html
@@ -2733,12 +2937,8 @@
2022/02/21 | 84115 | macros/latex/contrib/animate/animate.tex
2022/02/21 | 8325 | macros/latex/contrib/moderncv/moderncvheadvi.sty
2022/02/21 | 823 | macros/latex/contrib/moderncv/publications.bib
-2022/02/21 | 82301 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
-2022/02/21 | 81661 | systems/texlive/tlnet/tlpkg/translations/cs.po
-2022/02/21 | 80130 | systems/texlive/tlnet/tlpkg/translations/uk.po
2022/02/21 | 7990 | macros/latex/contrib/moderncv/moderncvheadv.sty
2022/02/21 | 792 | systems/texlive/tlnet/archive/collection-luatex.r62106.tar.xz
-2022/02/21 | 79116 | systems/texlive/tlnet/tlpkg/translations/es.po
2022/02/21 | 7755210 | install/macros/latex/contrib/nwejm.tds.zip
2022/02/21 | 7735 | macros/latex/contrib/moderncv/moderncvheadiii.sty
2022/02/21 | 771 | macros/latex/contrib/hyperref/doc/hyperref-doc3.html
@@ -2754,27 +2954,19 @@
2022/02/21 | 7220 | macros/latex/contrib/moderncv/moderncvbodyiv.sty
2022/02/21 | 7149 | macros/latex/contrib/moderncv/moderncvfooti.sty
2022/02/21 | 69720 | macros/unicodetex/latex/tipauni/tipauni-commands.pdf
-2022/02/21 | 69304 | systems/texlive/tlnet/tlpkg/translations/sl.po
2022/02/21 | 69080 | macros/latex/contrib/moderncv/moderncvskillmatrix.sty
2022/02/21 | 67432 | systems/texlive/tlnet/archive/japanese-otf.source.r62094.tar.xz
-2022/02/21 | 66647 | systems/texlive/tlnet/tlpkg/translations/pl.po
-2022/02/21 | 63102 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
-2022/02/21 | 62088 | systems/texlive/tlnet/tlpkg/translations/ja.po
2022/02/21 | 602 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
2022/02/21 | 59532 | systems/texlive/tlnet/archive/caption.r62097.tar.xz
2022/02/21 | 59464 | systems/texlive/tlnet/archive/xepersian.r62109.tar.xz
2022/02/21 | 59416 | macros/latex/contrib/moderncv/picture.eps
2022/02/21 | 58 | systems/mac/mactex/MacTeXtras-20220221.zip.md5
2022/02/21 | 57942 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
-2022/02/21 | 57512 | systems/texlive/tlnet/tlpkg/translations/nl.po
2022/02/21 | 5736 | macros/latex/contrib/hyperref/xr-hyper.sty
-2022/02/21 | 57238 | systems/texlive/tlnet/tlpkg/translations/da.po
2022/02/21 | 56920 | macros/unicodetex/latex/tipauni/tipauni.dtx
2022/02/21 | 5660 | systems/texlive/tlnet/archive/linebreaker.r62106.tar.xz
2022/02/21 | 55232 | systems/texlive/tlnet/archive/japanese-otf.doc.r62094.tar.xz
2022/02/21 | 544 | systems/texlive/tlnet/archive/collection-games.r62102.tar.xz
-2022/02/21 | 53302 | macros/latex/contrib/acmart/samples/sample-base.bib
-2022/02/21 | 53033 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
2022/02/21 | 52752 | systems/texlive/tlnet/archive/linebreaker.doc.r62106.tar.xz
2022/02/21 | 508062 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus.zip
2022/02/21 | 50274 | macros/latex/contrib/hyperref/hluatex.dtx
@@ -2786,7 +2978,6 @@
2022/02/21 | 474 | macros/latex/contrib/nwejm/README.md
2022/02/21 | 470786 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
2022/02/21 | 46900 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
-2022/02/21 | 46805 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/02/21 | 4591 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
2022/02/21 | 457 | macros/unicodetex/latex/tipauni/README.txt
2022/02/21 | 4509 | macros/unicodetex/latex/tipauni/tipauni-commands.tex
@@ -2828,7 +3019,6 @@
2022/02/21 | 2988 | macros/latex/contrib/moderncv/moderncviconsletters.sty
2022/02/21 | 293528 | systems/texlive/tlnet/archive/babel-serbianc.doc.r62110.tar.xz
2022/02/21 | 28408 | macros/latex/contrib/hyperref/backref.dtx
-2022/02/21 | 281241 | fonts/xcharter/afm/XCharter-Roman.afm
2022/02/21 | 279 | macros/latex/contrib/hyperref/ntheorem-hyper.sty
2022/02/21 | 275 | macros/latex/contrib/hyperref/minitoc-hyper.sty
2022/02/21 | 275772 | systems/texlive/tlnet/archive/hexboard.doc.r62102.tar.xz
@@ -2849,7 +3039,6 @@
2022/02/21 | 242252 | systems/texlive/tlnet/archive/memoir.source.r62105.tar.xz
2022/02/21 | 2373591 | macros/latex/contrib/hyperref/doc/hyperref.pdf
2022/02/21 | 23652 | macros/latex/contrib/hyperref/nameref.dtx
-2022/02/21 | 235932 | fonts/xcharter/type1/XCharter-Roman.pfb
2022/02/21 | 234988 | systems/texlive/tlnet/archive/erewhon-math.r62098.tar.xz
2022/02/21 | 2320 | macros/latex/contrib/moderncv/moderncvstylecasual.sty
2022/02/21 | 2309 | macros/latex/contrib/nwejm/doc/french/nwejm-fr.bib
@@ -2884,7 +3073,6 @@
2022/02/21 | 15605 | macros/latex/contrib/moderncv/template.tex
2022/02/21 | 1552 | macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
2022/02/21 | 15509 | macros/latex/contrib/moderncv/manual/moderncv_userguide.tex
-2022/02/21 | 149640 | fonts/xcharter/opentype/XCharter-Roman.otf
2022/02/21 | 14793 | macros/latex/contrib/hyperref/doc/hyperref-doc.css
2022/02/21 | 139716 | macros/latex/contrib/animate/animate.sty
2022/02/21 | 13349 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
@@ -2908,194 +3096,6 @@
2022/02/21 | 10536 | macros/latex/contrib/moderncv/moderncvbodyiii.sty
2022/02/21 | 1052 | macros/latex/contrib/moderncv/moderncvcolorred.sty
2022/02/21 | 1040 | macros/latex/contrib/moderncv/moderncvcolorblack.sty
-2022/02/21 | 103025 | systems/texlive/tlnet/tlpkg/translations/sr.po
2022/02/21 | 100 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
2022/02/21 | 1006 | macros/latex/contrib/hyperref/doc/hyperref-doc4.html
2022/02/21 | 1005636 | systems/texlive/tlnet/archive/xepersian.doc.r62109.tar.xz
-2022/02/20 | 972970 | graphics/mcf2graph.zip
-2022/02/20 | 93723 | macros/latex/contrib/caption/subcaption.dtx
-2022/02/20 | 9302 | macros/latex/contrib/caption/caption-ams-smf.dtx
-2022/02/20 | 926256 | support/auctex/13.1-extra/ChangeLog.1
-2022/02/20 | 9257 | macros/latex/contrib/crefthe/crefthe.sty
-2022/02/20 | 9033 | macros/latex/contrib/caption/CHANGELOG
-2022/02/20 | 89996 | macros/latex/contrib/caption/ltcaption.pdf
-2022/02/20 | 8144 | fonts/erewhon-math/fourier-otf.sty
-2022/02/20 | 80454 | macros/latex/contrib/preview/preview.dtx
-2022/02/20 | 7890 | macros/latex/contrib/caption/caption-thesis.dtx
-2022/02/20 | 77411 | macros/latex/contrib/caption/caption2.pdf
-2022/02/20 | 7724 | macros/latex/contrib/caption/caption-ntg.dtx
-2022/02/20 | 766381 | macros/xetex/latex/xepersian/xepersian.pdf
-2022/02/20 | 7614 | macros/latex/contrib/caption/caption-elsarticle.dtx
-2022/02/20 | 7423 | macros/latex/contrib/memoir/doc-src/memnoidxnum.tex
-2022/02/20 | 7175 | graphics/pgf/contrib/spectralsequences/src/sseqcheckdefinitions.code.tex
-2022/02/20 | 71644 | macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
-2022/02/20 | 7159 | graphics/pgf/contrib/spectralsequences/README.md
-2022/02/20 | 699308 | support/auctex/13.1-extra/auctex.pdf
-2022/02/20 | 67305 | macros/latex/contrib/caption/caption-light.pdf
-2022/02/20 | 66477 | macros/latex/contrib/caption/bicaption.dtx
-2022/02/20 | 6618872 | fonts/haranoaji/HaranoAjiMincho-Bold.otf
-2022/02/20 | 6473480 | fonts/haranoaji-extra/HaranoAjiMincho-Heavy.otf
-2022/02/20 | 6450604 | fonts/haranoaji-extra/HaranoAjiMincho-SemiBold.otf
-2022/02/20 | 6419272 | fonts/haranoaji-extra/HaranoAjiMincho-Medium.otf
-2022/02/20 | 6355800 | fonts/haranoaji/HaranoAjiMincho-Regular.otf
-2022/02/20 | 6276992 | fonts/haranoaji/HaranoAjiMincho-Light.otf
-2022/02/20 | 608 | systems/texlive/tlnet/archive/graphics-def.doc.r62085.tar.xz
-2022/02/20 | 6065 | macros/latex/contrib/fbox/doc/fbox.tex
-2022/02/20 | 586 | macros/latex/contrib/memoir/doc-src/trims-example.tex
-2022/02/20 | 5813388 | fonts/haranoaji-extra/HaranoAjiMincho-ExtraLight.otf
-2022/02/20 | 5684 | fonts/erewhon-math/README.md
-2022/02/20 | 566 | support/auctex/RELEASE-13.1.sig
-2022/02/20 | 566 | support/auctex/auctex-13.1.tar.gz.sig
-2022/02/20 | 566 | support/auctex/13.1-extra/tex-ref.ps.sig
-2022/02/20 | 566 | support/auctex/13.1-extra/tex-ref.pdf.sig
-2022/02/20 | 566 | support/auctex/13.1-extra/CHANGES.sig
-2022/02/20 | 566 | support/auctex/13.1-extra/ChangeLog.1.sig
-2022/02/20 | 566 | support/auctex/13.1-extra/auctex.ps.sig
-2022/02/20 | 566 | support/auctex/13.1-extra/auctex.pdf.sig
-2022/02/20 | 5519 | macros/latex/contrib/memoir/doc-src/memfonts.sty
-2022/02/20 | 5447 | macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
-2022/02/20 | 52566 | support/auctex/13.1-extra/CHANGES
-2022/02/20 | 50904 | macros/latex/contrib/caption/caption2.dtx
-2022/02/20 | 4994048 | fonts/haranoaji/HaranoAjiGothic-Heavy.otf
-2022/02/20 | 49316 | macros/latex/contrib/fbox.zip
-2022/02/20 | 48652 | macros/latex/contrib/memoir/README
-2022/02/20 | 4797892 | fonts/haranoaji/HaranoAjiGothic-Bold.otf
-2022/02/20 | 46949 | macros/latex/contrib/caption/fallback/v2.1/caption2.dtx
-2022/02/20 | 4689988 | fonts/haranoaji/HaranoAjiGothic-Medium.otf
-2022/02/20 | 4672628 | fonts/haranoaji/HaranoAjiGothic-Regular.otf
-2022/02/20 | 4668600 | fonts/haranoaji-extra/HaranoAjiGothic-Normal.otf
-2022/02/20 | 4655752 | fonts/haranoaji-extra/HaranoAjiGothic-Light.otf
-2022/02/20 | 46291 | macros/latex/contrib/fbox/doc/fbox.pdf
-2022/02/20 | 454 | macros/xetex/latex/xepersian/xepersian-doc.ltx
-2022/02/20 | 4376408 | fonts/haranoaji-extra/HaranoAjiGothic-ExtraLight.otf
-2022/02/20 | 432 | macros/latex/contrib/memoir/doc-src/memman.gst
-2022/02/20 | 431593 | graphics/mcf2graph/mcf_example.pdf
-2022/02/20 | 42878 | graphics/mcf2graph/mcf_man_soc.mp
-2022/02/20 | 427518 | macros/latex/contrib/caption/caption.pdf
-2022/02/20 | 42186 | macros/latex/contrib/memoir/doc-src/memsty.sty
-2022/02/20 | 4149 | macros/xetex/latex/xepersian/xepersian-doc-preamble.ltx
-2022/02/20 | 410 | macros/xetex/latex/xepersian/xepersian-doc-boolean.ltx
-2022/02/20 | 4019 | macros/latex/contrib/fbox/latex/fbox.sty
-2022/02/20 | 399325 | graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.pdf
-2022/02/20 | 3977 | macros/latex/contrib/memoir/memoir.ins
-2022/02/20 | 3922 | macros/latex/contrib/caption/caption.ins
-2022/02/20 | 389 | macros/latex/contrib/memoir/doc-src/memman.ist
-2022/02/20 | 38725 | macros/xetex/latex/xepersian/ftxe-0.12.py
-2022/02/20 | 38371 | macros/latex/contrib/memoir/mempatch.dtx
-2022/02/20 | 379488 | fonts/erewhon-math/Erewhon-Math.otf
-2022/02/20 | 3655680 | install/macros/latex/contrib/memoir.tds.zip
-2022/02/20 | 3593 | graphics/mcf2graph/README
-2022/02/20 | 3549221 | macros/latex/contrib/memoir.zip
-2022/02/20 | 349133 | macros/latex/contrib/preview.zip
-2022/02/20 | 33928 | graphics/pgf/contrib/spectralsequences/src/sseqmessages.code.tex
-2022/02/20 | 33908283 | systems/win32/miktex/tm/packages/biber-darwin-x86_64.tar.lzma
-2022/02/20 | 337424 | macros/latex/contrib/caption/caption.dtx
-2022/02/20 | 337296 | macros/xetex/latex/xepersian/xepersian.dtx
-2022/02/20 | 332076 | macros/latex/contrib/preview/preview.pdf
-2022/02/20 | 32834506 | fonts/haranoaji-extra.zip
-2022/02/20 | 32688740 | fonts/haranoaji.zip
-2022/02/20 | 3193 | fonts/haranoaji/README
-2022/02/20 | 3193 | fonts/haranoaji-extra/README
-2022/02/20 | 316361 | support/auctex/13.1-extra/tex-ref.ps
-2022/02/20 | 3099 | macros/xetex/latex/xepersian/xepersian-doc-captions.ltx
-2022/02/20 | 3067 | macros/latex/contrib/caption/README
-2022/02/20 | 30017 | macros/latex/contrib/caption/ltcaption.dtx
-2022/02/20 | 292313 | graphics/mcf2graph/mcf_manual.pdf
-2022/02/20 | 291007 | macros/latex/contrib/caption/fallback/v3.1/caption.dtx
-2022/02/20 | 2852 | macros/latex/contrib/memoir/mempatch.ins
-2022/02/20 | 2838424 | macros/latex/contrib/memoir/memman.pdf
-2022/02/20 | 282 | macros/latex/contrib/fbox/CHANGELOG
-2022/02/20 | 2801 | graphics/mcf2graph/mcf_example.tex
-2022/02/20 | 2796 | macros/latex/contrib/crefthe/README.md
-2022/02/20 | 27874 | macros/latex/contrib/flashcards/flashcards.dtx
-2022/02/20 | 2773 | macros/latex/contrib/acmart/acmart.bib
-2022/02/20 | 27134 | fonts/erewhon-math/Erewhon-Math.ltx
-2022/02/20 | 2683 | macros/unicodetex/latex/njuthesis/njuthesis.ins
-2022/02/20 | 263296 | fonts/xcharter/afm/XCharter-Bold.afm
-2022/02/20 | 2628 | macros/latex/contrib/flashcards/README
-2022/02/20 | 2622 | macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
-2022/02/20 | 261094 | macros/latex/contrib/flashcards.zip
-2022/02/20 | 260432 | fonts/xcharter/afm/XCharter-Slanted.afm
-2022/02/20 | 25946 | macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
-2022/02/20 | 2576 | macros/latex/contrib/preview/README
-2022/02/20 | 254430 | fonts/xcharter/afm/XCharter-BoldSlanted.afm
-2022/02/20 | 246934 | macros/latex/contrib/flashcards/flashcards.pdf
-2022/02/20 | 246578 | macros/xetex/latex/xepersian/xepersian-doc.pdf
-2022/02/20 | 235843 | fonts/xcharter/type1/XCharter-Bold.pfb
-2022/02/20 | 2251366 | fonts/erewhon-math.zip
-2022/02/20 | 221744 | macros/latex/contrib/caption/subcaption.pdf
-2022/02/20 | 221478 | fonts/xcharter/type1/XCharter-BoldSlanted.pfb
-2022/02/20 | 2166 | graphics/mcf2graph/mcf_exa_soc.mp
-2022/02/20 | 2150 | macros/xetex/latex/xepersian/xepersian-doc-title.ltx
-2022/02/20 | 21420 | macros/latex/contrib/caption/fallback/v2.0/caption2.dtx
-2022/02/20 | 21191 | macros/latex/contrib/caption/elephant.eps
-2022/02/20 | 208185 | fonts/xcharter/type1/XCharter-Slanted.pfb
-2022/02/20 | 206 | macros/latex/contrib/memoir/doc-src/Makeidxglo
-2022/02/20 | 203838 | macros/latex/contrib/memoir/doc-src/setpage-example.pdf
-2022/02/20 | 197089 | graphics/mcf2graph/mcf_mplib_exa.pdf
-2022/02/20 | 19457 | macros/latex/contrib/caption/caption-koma.dtx
-2022/02/20 | 19106 | macros/latex/contrib/crefthe/LICENSE
-2022/02/20 | 19105 | macros/unicodetex/latex/njuthesis/LICENSE
-2022/02/20 | 19008 | macros/latex/contrib/caption/fallback/v1/caption.dtx
-2022/02/20 | 190026 | macros/latex/contrib/caption/caption3.dtx
-2022/02/20 | 186929 | macros/unicodetex/latex/njuthesis/njuthesis.dtx
-2022/02/20 | 186484 | fonts/xcharter/type1/XCharter-BoldItalic.pfb
-2022/02/20 | 1847239 | fonts/erewhon-math/unimath-erewhon.pdf
-2022/02/20 | 18304 | macros/xetex/latex/xepersian/img/ireland.jpg
-2022/02/20 | 182084 | macros/latex/contrib/caption/fallback/v3.0/caption.dtx
-2022/02/20 | 181048 | macros/latex/contrib/caption/fallback/v3.3/caption.dtx
-2022/02/20 | 178837 | macros/latex/contrib/caption/fallback/v3.5/caption3.dtx
-2022/02/20 | 176487 | fonts/erewhon-math/Erewhon-Math.pdf
-2022/02/20 | 17396 | macros/latex/contrib/memoir/doc-src/titlepages.sty
-2022/02/20 | 16947 | fonts/erewhon-math/unimath-erewhon.ltx
-2022/02/20 | 169192 | macros/latex/contrib/caption/fallback/v3.4/caption.dtx
-2022/02/20 | 1680829 | install/macros/latex/contrib/caption.tds.zip
-2022/02/20 | 164933 | macros/latex/contrib/caption/fallback/v3.2/caption.dtx
-2022/02/20 | 161734 | macros/latex/contrib/caption/fallback/v3.5/caption.dtx
-2022/02/20 | 1600209 | support/auctex/auctex-13.1.tar.gz
-2022/02/20 | 15976 | macros/xetex/latex/xepersian/dkun-0.3.py
-2022/02/20 | 1594 | macros/latex/contrib/preview/preview.ins
-2022/02/20 | 15867 | macros/xetex/latex/xepersian/dkun-0.4.py
-2022/02/20 | 15737 | macros/latex/contrib/caption/cat.eps
-2022/02/20 | 157253 | macros/latex/contrib/caption/fallback/v3.4/caption3.dtx
-2022/02/20 | 153316 | macros/latex/contrib/caption/fallback/v3.3/caption3.dtx
-2022/02/20 | 153261 | support/auctex/13.1-extra/tex-ref.pdf
-2022/02/20 | 152354 | systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
-2022/02/20 | 1518 | macros/latex/contrib/memoir/doc-src/anvil2.mps
-2022/02/20 | 1514107 | macros/latex/contrib/memoir/doc-src/memman.tex
-2022/02/20 | 14993 | macros/latex/contrib/caption/caption-beamer.dtx
-2022/02/20 | 149792 | macros/latex/contrib/caption/bicaption.pdf
-2022/02/20 | 1478106 | macros/latex/contrib/caption.zip
-2022/02/20 | 14616 | macros/xetex/latex/xepersian/img/weather/rain.jpg
-2022/02/20 | 14597 | macros/latex/contrib/memoir/doc-src/memlays.sty
-2022/02/20 | 14549 | graphics/mcf2graph/mcf_mplib_exa.tex
-2022/02/20 | 1422 | macros/xetex/latex/xepersian/README
-2022/02/20 | 1399536 | support/auctex/13.1-extra/auctex.ps
-2022/02/20 | 13804 | macros/xetex/latex/xepersian/undk-0.6.py
-2022/02/20 | 136468 | fonts/xcharter/opentype/XCharter-BoldSlanted.otf
-2022/02/20 | 135023 | macros/latex/contrib/caption/fallback/v3.2/caption3.dtx
-2022/02/20 | 134920 | fonts/xcharter/opentype/XCharter-Bold.otf
-2022/02/20 | 13417 | macros/latex/contrib/caption/caption-light.dtx
-2022/02/20 | 133448 | fonts/xcharter/opentype/XCharter-Slanted.otf
-2022/02/20 | 13088 | macros/xetex/latex/xepersian/img/weather/clouds.jpg
-2022/02/20 | 1287056 | install/macros/xetex/latex/xepersian.tds.zip
-2022/02/20 | 1260289 | macros/latex/contrib/memoir/memoir.dtx
-2022/02/20 | 12559 | macros/latex/contrib/caption/caption-memoir.dtx
-2022/02/20 | 123879 | macros/latex/contrib/crefthe.zip
-2022/02/20 | 12348 | macros/xetex/latex/xepersian/unldk-0.2.py
-2022/02/20 | 1220 | macros/latex/contrib/flashcards/flashcards.ins
-2022/02/20 | 12167 | systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
-2022/02/20 | 11690 | graphics/pgf/contrib/spectralsequences/src/spectralsequences.sty
-2022/02/20 | 115708 | fonts/xcharter/opentype/XCharter-BoldItalic.otf
-2022/02/20 | 1154081 | macros/unicodetex/latex/njuthesis.zip
-2022/02/20 | 112 | macros/latex/contrib/caption/SUMMARY
-2022/02/20 | 1125058 | macros/xetex/latex/xepersian.zip
-2022/02/20 | 112174 | macros/latex/contrib/crefthe/crefthe-doc.pdf
-2022/02/20 | 1103774 | macros/unicodetex/latex/njuthesis/njuthesis.pdf
-2022/02/20 | 10980 | systems/texlive/tlnet/archive/graphics-def.r62085.tar.xz
-2022/02/20 | 10896 | macros/xetex/latex/xepersian/img/weather/sun.jpg
-2022/02/20 | 1052 | macros/unicodetex/latex/njuthesis/README.md
-2022/02/20 | 10362 | macros/latex/contrib/crefthe/crefthe-doc.tex
-2022/02/20 | 10292 | support/auctex/RELEASE-13.1
-2022/02/20 | 102120 | graphics/mcf2graph/mcf2graph.mp
-2022/02/20 | 100635 | graphics/mcf2graph/mcf_data_base.mcf
diff --git a/dviware/dvisvgm/ChangeLog b/dviware/dvisvgm/ChangeLog
index 69220afffe..d426c37756 100644
--- a/dviware/dvisvgm/ChangeLog
+++ b/dviware/dvisvgm/ChangeLog
@@ -1,3 +1,42 @@
+2022-02-27 Martin Gieseking <martin.gieseking@uos.de>
+
+ * .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile,
+ src/version.hpp:
+ set version to 2.13.3
+
+ * NEWS:
+ updated NEWS
+
+2022-02-26 Martin Gieseking <martin.gieseking@uos.de>
+
+ * doc/dvisvgm.1, doc/dvisvgm.txt.in, src/optimizer/ClipPathReassigner.cpp,
+ src/optimizer/ClipPathReassigner.hpp, src/optimizer/Makefile.am,
+ src/optimizer/SVGOptimizer.cpp:
+ added optimizer module to remove identical clipPath elements
+
+ * doc/dvisvgm.1, doc/dvisvgm.txt.in, src/optimizer/SVGOptimizer.cpp:
+ renamed optimizer module 'remove-clippath' to 'remove-clippaths'
+
+ * src/optimizer/Makefile.am:
+ added missing include path
+
+2022-02-25 Martin Gieseking <martin.gieseking@uos.de>
+
+ * src/BoundingBox.cpp, src/BoundingBox.hpp, src/PsSpecialHandler.cpp,
+ src/PsSpecialHandler.hpp:
+ avoid adding clip-path attributes to all elements created from EPS/PDF
+ files
+
+2022-02-24 Martin Gieseking <martin.gieseking@uos.de>
+
+ * src/PsSpecialHandler.cpp:
+ moved 'transform' attribute of 'svg' element to wrapping group
+closes
+ #178
+
+ * src/PsSpecialHandler.cpp:
+ properly wrap 'svg' element with group
+
2022-02-22 Martin Gieseking <martin.gieseking@uos.de>
* .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile,
diff --git a/dviware/dvisvgm/NEWS b/dviware/dvisvgm/NEWS
index cd62713981..a0cc6867ab 100644
--- a/dviware/dvisvgm/NEWS
+++ b/dviware/dvisvgm/NEWS
@@ -1,3 +1,10 @@
+dvisvgm-2.13.3 (2022-02-27)
+- added SVG optimizer module 'reassign-clippaths' that searches for duplicate
+ clipPath elements, removes them, and updates the clip-path references
+- replaced method to clip embedded EPS/PDF graphics that usually results in
+ faster rendering of the affected SVG sections
+- fixed a regression regarding transformations of embedded EPS/PDF graphics
+
dvisvgm-2.13.2 (2022-02-23)
- improved clipping of embedded EPS/PDF graphics (GH issue #176)
diff --git a/dviware/dvisvgm/ar-lib b/dviware/dvisvgm/ar-lib
index 0baa4f6076..1e9388e2ae 100755
--- a/dviware/dvisvgm/ar-lib
+++ b/dviware/dvisvgm/ar-lib
@@ -2,9 +2,9 @@
# Wrapper for Microsoft lib.exe
me=ar-lib
-scriptversion=2012-03-01.08; # UTC
+scriptversion=2019-07-04.01; # UTC
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 Free Software Foundation, Inc.
# Written by Peter Rosin <peda@lysator.liu.se>.
#
# This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@ func_file_conv ()
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -65,7 +65,7 @@ func_file_conv ()
mingw)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin)
+ cygwin | msys)
file=`cygpath -m "$file" || echo "$file"`
;;
wine)
@@ -224,10 +224,11 @@ elif test -n "$extract"; then
esac
done
else
- $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
- do
- $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
- done
+ $AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \
+ | while read member
+ do
+ $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+ done
fi
elif test -n "$quick$replace"; then
diff --git a/dviware/dvisvgm/compile b/dviware/dvisvgm/compile
index 99e50524b3..23fcba0113 100755
--- a/dviware/dvisvgm/compile
+++ b/dviware/dvisvgm/compile
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@ func_file_conv ()
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -67,7 +67,7 @@ func_file_conv ()
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin/*)
+ cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
diff --git a/dviware/dvisvgm/config.guess b/dviware/dvisvgm/config.guess
index 256083a70d..b33c9e890e 100755
--- a/dviware/dvisvgm/config.guess
+++ b/dviware/dvisvgm/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2018-03-08'
+timestamp='2018-08-29'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -84,8 +84,6 @@ if test $# != 0; then
exit 1
fi
-trap 'exit 1' 1 2 15
-
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
@@ -96,34 +94,39 @@ trap 'exit 1' 1 2 15
# Portable tmp directory creation inspired by the Autoconf team.
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > "$dummy.c" ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15
+trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0
+
+set_cc_for_build() {
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$driver"
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
@@ -138,7 +141,7 @@ Linux|GNU|GNU/*)
# We could probably try harder.
LIBC=gnu
- eval "$set_cc_for_build"
+ set_cc_for_build
cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
@@ -199,7 +202,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval "$set_cc_for_build"
+ set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@@ -237,7 +240,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "$machine-${os}${release}${abi}"
+ echo "$machine-${os}${release}${abi-}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -389,20 +392,15 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo i386-pc-auroraux"$UNAME_RELEASE"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval "$set_cc_for_build"
- SUN_ARCH=i386
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH=x86_64
- fi
- fi
- echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ case `isainfo -b` in
+ 32)
+ echo i386-pc-solaris2"$UNAME_REL"
+ ;;
+ 64)
+ echo x86_64-pc-solaris2"$UNAME_REL"
+ ;;
+ esac
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
@@ -482,7 +480,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo clipper-intergraph-clix"$UNAME_RELEASE"
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval "$set_cc_for_build"
+ set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
@@ -579,7 +577,7 @@ EOF
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval "$set_cc_for_build"
+ set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
@@ -660,7 +658,7 @@ EOF
esac
fi
if [ "$HP_ARCH" = "" ]; then
- eval "$set_cc_for_build"
+ set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
@@ -700,7 +698,7 @@ EOF
esac
if [ "$HP_ARCH" = hppa2.0w ]
then
- eval "$set_cc_for_build"
+ set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -726,7 +724,7 @@ EOF
echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
- eval "$set_cc_for_build"
+ set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
@@ -840,6 +838,17 @@ EOF
*:BSD/OS:*:*)
echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
exit ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ else
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ fi
+ exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
case "$UNAME_PROCESSOR" in
@@ -894,8 +903,8 @@ EOF
# other systems with GNU libc and userland
echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
exit ;;
- i*86:Minix:*:*)
- echo "$UNAME_MACHINE"-pc-minix
+ *:Minix:*:*)
+ echo "$UNAME_MACHINE"-unknown-minix
exit ;;
aarch64:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@@ -922,7 +931,7 @@ EOF
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arm*:Linux:*:*)
- eval "$set_cc_for_build"
+ set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
@@ -971,7 +980,7 @@ EOF
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval "$set_cc_for_build"
+ set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef ${UNAME_MACHINE}
@@ -1285,7 +1294,7 @@ EOF
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval "$set_cc_for_build"
+ set_cc_for_build
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
@@ -1358,6 +1367,7 @@ EOF
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
+ # shellcheck disable=SC2154
if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
diff --git a/dviware/dvisvgm/config.sub b/dviware/dvisvgm/config.sub
index 20f7cf29a9..b51fb8cdb6 100755
--- a/dviware/dvisvgm/config.sub
+++ b/dviware/dvisvgm/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2018-05-05'
+timestamp='2018-08-29'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -110,16 +110,20 @@ case $# in
exit 1;;
esac
-# Spilt fields of configuration type
+# Split fields of configuration type
IFS="-" read -r field1 field2 field3 field4 <<EOF
$1
EOF
# Separate into logical components for further validation
case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
+ ;;
*-*-*-*)
basic_machine=$field1-$field2
- os=-$field3-$field4
+ os=$field3-$field4
;;
*-*-*)
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
@@ -132,1227 +136,1133 @@ case $1 in
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova*)
basic_machine=$field1
- os=-$maybe_os
+ os=$maybe_os
;;
android-linux)
basic_machine=$field1-unknown
- os=-linux-android
+ os=linux-android
;;
*)
basic_machine=$field1-$field2
- os=-$field3
+ os=$field3
;;
esac
;;
*-*)
- basic_machine=$field1
- os=-$field2
+ # A lone config we happen to match not fitting any patern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ os=
+ ;;
+ *)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ esac
+ ;;
+ esac
;;
*)
- basic_machine=$1
- os=
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=sysv3
+ ;;
+ hp300)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=hpux
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=mach
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ os=vsta
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=linux
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=vms
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ os=
+ ;;
+ esac
;;
esac
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
- | avr | avr32 \
- | ba \
- | be32 | be64 \
- | bfin \
- | c4x | c8051 | clipper | csky \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | epiphany \
- | fido | fr30 | frv | ft32 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia16 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nfp \
- | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
- | open8 | or1k | or1knd | or32 \
- | pdp10 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pru \
- | pyramid \
- | riscv32 | riscv64 \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | visium \
- | wasm32 \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- leon|leon[3-9])
- basic_machine=sparc-$basic_machine
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
;;
- m9s12z | m68hcs12z | hcs12z | s12z)
- basic_machine=s12z-unknown
- os=-none
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
;;
- ms1)
- basic_machine=mt-unknown
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
+ ibm*)
+ cpu=i370
+ vendor=ibm
;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
+ orion105)
+ cpu=clipper
+ vendor=highlevel
;;
- xscaleeb)
- basic_machine=armeb-unknown
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
;;
-
- xscaleel)
- basic_machine=armel-unknown
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | ba-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | e2k-* | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
- | ip2k-* | iq2000-* \
- | k1om-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
- | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa32r6-* | mipsisa32r6el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64r6-* | mipsisa64r6el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nfp-* \
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | or1k*-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pru-* \
- | pyramid-* \
- | riscv32-* | riscv64-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | visium-* \
- | wasm32-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-pc
- os=-bsd
- ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
+ cpu=m68000
+ vendor=att
;;
3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- asmjs)
- basic_machine=asmjs-unknown
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=we32k
+ vendor=att
;;
bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
+ cpu=powerpc
+ vendor=ibm
+ os=cnk
;;
decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
+ cpu=pdp10
+ vendor=dec
+ os=tops10
;;
decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
+ cpu=pdp10
+ vendor=dec
+ os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
+ cpu=m68k
+ vendor=motorola
;;
dpx2*)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- e500v[12])
- basic_machine=powerpc-unknown
- os=$os"spe"
- ;;
- e500v[12]-*)
- basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- os=$os"spe"
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
+ cpu=m68k
+ vendor=bull
+ os=sysv3
;;
encore | umax | mmax)
- basic_machine=ns32k-encore
+ cpu=ns32k
+ vendor=encore
;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ os=${os:-bsd}
;;
fx2800)
- basic_machine=i860-alliant
+ cpu=i860
+ vendor=alliant
;;
genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
+ cpu=ns32k
+ vendor=ns
;;
h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
+ cpu=m68000
+ vendor=hp
;;
hp9k3[2-9][0-9])
- basic_machine=m68k-hp
+ cpu=m68k
+ vendor=hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
+ cpu=hppa1.0
+ vendor=hp
;;
i*86v32)
- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
- os=-sysv32
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv32
;;
i*86v4*)
- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
- os=-sysv4
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv4
;;
i*86v)
- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
- os=-sysv
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv
;;
i*86sol2)
- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=solaris2
;;
- vsta)
- basic_machine=i386-unknown
- os=-vsta
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ os=${os:-unicos}
;;
iris | iris4d)
- basic_machine=mips-sgi
+ cpu=mips
+ vendor=sgi
case $os in
- -irix*)
+ irix*)
;;
*)
- os=-irix4
+ os=irix4
;;
esac
;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze*)
- basic_machine=microblaze-xilinx
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
+ cpu=m68000
+ vendor=convergent
;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ os=mint
;;
news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
+ cpu=mips
+ vendor=sony
+ os=newsos
;;
next | m*-next)
- basic_machine=m68k-next
+ cpu=m68k
+ vendor=next
case $os in
- -nextstep* )
+ nextstep* )
;;
- -ns2*)
- os=-nextstep2
+ ns2*)
+ os=nextstep2
;;
*)
- os=-nextstep3
+ os=nextstep3
;;
esac
;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- nsv-tandem)
- basic_machine=nsv-tandem
- ;;
- nsx-tandem)
- basic_machine=nsx-tandem
+ cpu=np1
+ vendor=gould
;;
op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
+ cpu=hppa1.1
+ vendor=oki
+ os=proelf
;;
pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
;;
pbd)
- basic_machine=sparc-tti
+ cpu=sparc
+ vendor=tti
;;
pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
+ cpu=m68k
+ vendor=tti
;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ pc532)
+ cpu=ns32k
+ vendor=pc532
;;
pn)
- basic_machine=pn-gould
+ cpu=pn
+ vendor=gould
;;
- power) basic_machine=power-ibm
+ power)
+ cpu=power
+ vendor=ibm
;;
- ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
+ ps2)
+ cpu=i386
+ vendor=ibm
;;
- ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ rm[46]00)
+ cpu=mips
+ vendor=siemens
;;
- ppc64le | powerpc64little)
- basic_machine=powerpc64le-unknown
+ rtpc | rtpc-*)
+ cpu=romp
+ vendor=ibm
;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+ os=${os:-elf}
;;
- ps2)
- basic_machine=i386-ibm
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ os=vxworks
;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
+ w65)
+ cpu=w65
+ vendor=wdc
;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ os=proelf
;;
- rm[46]00)
- basic_machine=mips-siemens
+ none)
+ cpu=none
+ vendor=none
;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
;;
- s390 | s390-*)
- basic_machine=s390-ibm
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
+
+ *-*)
+ IFS="-" read -r cpu vendor <<EOF
+$basic_machine
+EOF
;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
;;
- sei)
- basic_machine=mips-sei
- os=-seiux
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ os=${os:-unicosmp}
;;
- sequent)
- basic_machine=i386-sequent
+ c90-unknown | c90-cray)
+ vendor=cray
+ os=${os:-unicos}
;;
- sh5el)
- basic_machine=sh5le-unknown
+ fx80-unknown)
+ vendor=alliant
;;
- simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
+ romp-unknown)
+ vendor=ibm
;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
+ mmix-unknown)
+ vendor=knuth
;;
- spur)
- basic_machine=spur-unknown
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
;;
- st2000)
- basic_machine=m68k-tandem
+ rs6000-unknown)
+ vendor=ibm
;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
+ vax-unknown)
+ vendor=dec
;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ pdp11-unknown)
+ vendor=dec
;;
- sun2)
- basic_machine=m68000-sun
+ we32k-unknown)
+ vendor=att
;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
+ cydra-unknown)
+ vendor=cydrome
;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
+ i370-ibm*)
+ vendor=ibm
;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
+ orion-unknown)
+ vendor=highlevel
;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
+
+ # Here we normalize CPU types with a missing or matching vendor
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ os=${os:-bosx}
;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
+ blackfin-*)
+ cpu=bfin
+ os=linux
;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
+ c54x-*)
+ cpu=tic54x
;;
- sun4)
- basic_machine=sparc-sun
+ c55x-*)
+ cpu=tic55x
;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
+ c6x-*)
+ cpu=tic6x
;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
+ e500v[12]-*)
+ cpu=powerpc
+ os=$os"spe"
;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
+ mips3*-*)
+ cpu=mips64
;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
+ ms1-*)
+ cpu=mt
;;
- t90)
- basic_machine=t90-cray
- os=-unicos
+ m68knommu-*)
+ cpu=m68k
+ os=linux
;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
;;
- tx39)
- basic_machine=mipstx39-unknown
+ openrisc-*)
+ cpu=or32
;;
- tx39el)
- basic_machine=mipstx39el-unknown
+ parisc-*)
+ cpu=hppa
+ os=linux
;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
;;
- tower | tower-32)
- basic_machine=m68k-ncr
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ cpu=i686
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
+ pentium4-*)
+ cpu=i786
;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
+ pc98-*)
+ cpu=i386
;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
+ ppc-* | ppcbe-*)
+ cpu=powerpc
;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
;;
- vms)
- basic_machine=vax-dec
- os=-vms
+ ppc64-*)
+ cpu=powerpc64
;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
+ sb1-*)
+ cpu=mipsisa64sb1
;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
+ sb1el-*)
+ cpu=mipsisa64sb1el
;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
;;
- w65*)
- basic_machine=w65-wdc
- os=-none
+ spur-*)
+ cpu=spur
;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
+ strongarm-* | thumb-*)
+ cpu=arm
;;
- x64)
- basic_machine=x86_64-pc
+ tx39-*)
+ cpu=mipstx39
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
+ tx39el-*)
+ cpu=mipstx39el
;;
- xps | xps100)
- basic_machine=xps100-honeywell
+ x64-*)
+ cpu=x86_64
;;
xscale-* | xscalee[bl]-*)
- basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- none)
- basic_machine=none-none
- os=-none
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
+ # Recognize the cannonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ os=${os:-elf}
;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- mmix)
- basic_machine=mmix-knuth
- ;;
- rs6000)
- basic_machine=rs6000-ibm
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
;;
- vax)
- basic_machine=vax-dec
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
;;
- pdp11)
- basic_machine=pdp11-dec
+ crx-*)
+ os=${os:-elf}
;;
- we32k)
- basic_machine=we32k-att
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
;;
- cydra)
- basic_machine=cydra-cydrome
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
;;
- orion)
- basic_machine=orion-highlevel
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
;;
- orion105)
- basic_machine=clipper-highlevel
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
+ s390-*)
+ cpu=s390
+ vendor=ibm
;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
+ s390x-*)
+ cpu=s390x
+ vendor=ibm
;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
+ tile*-*)
+ os=${os:-linux-gnu}
;;
+
*)
- echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
- exit 1
+ # Recognize the cannonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arceb \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv64 \
+ | rl78 | romp | rs6000 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | wasm32 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ exit 1
+ ;;
+ esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
+case $vendor in
+ digital*)
+ vendor=dec
;;
- *-commodore*)
- basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
+ commodore*)
+ vendor=cbm
;;
*)
;;
@@ -1365,200 +1275,240 @@ then
case $os in
# First match some system type aliases that might get confused
# with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
;;
- -solaris1 | -solaris1.*)
+ bluegene*)
+ os=cnk
+ ;;
+ solaris1 | solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
- -solaris)
- os=-solaris2
+ solaris)
+ os=solaris2
;;
- -unixware*)
- os=-sysv4.2uw
+ unixware*)
+ os=sysv4.2uw
;;
- -gnu/linux*)
+ gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# es1800 is here to avoid being matched by es* (a different OS)
- -es1800*)
- os=-ose
+ es1800*)
+ os=ose
+ ;;
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
+ ;;
+ isc)
+ os=isc2.2
+ ;;
+ sco6)
+ os=sco5v6
+ ;;
+ sco5)
+ os=sco3.2v5
+ ;;
+ sco4)
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ scout)
+ # Don't match below
+ ;;
+ sco*)
+ os=sco3.2v2
+ ;;
+ psos*)
+ os=psos
;;
# Now accept the basic system types.
# The portable systems comes first.
# Each alternative MUST end in a * to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* | -cloudabi* | -sortix* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
- | -midnightbsd*)
+ # sysv* is not here because it comes later, after sysvr4.
+ gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | kopensolaris* | plan9* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | knetbsd* | mirbsd* | netbsd* \
+ | bitrig* | openbsd* | solidbsd* | libertybsd* \
+ | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+ | linux-newlib* | linux-musl* | linux-uclibc* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* \
+ | morphos* | superux* | rtmk* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
+ qnx*)
+ case $cpu in
+ x86 | i*86)
;;
*)
- os=-nto$os
+ os=nto-$os
;;
esac
;;
- -nto-qnx*)
+ hiux*)
+ os=hiuxwe2
;;
- -nto*)
+ nto-qnx*)
+ ;;
+ nto*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
- -sim | -xray | -os68k* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ sim | xray | os68k* | v88r* \
+ | windows* | osx | abug | netware* | os9* \
+ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
+ ;;
+ linux-dietlibc)
+ os=linux-dietlibc
+ ;;
+ linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ lynx*178)
+ os=lynxos178
+ ;;
+ lynx*5)
+ os=lynxos5
+ ;;
+ lynx*)
+ os=lynxos
;;
- -mac*)
+ mac*)
os=`echo "$os" | sed -e 's|mac|macos|'`
;;
- -linux-dietlibc)
- os=-linux-dietlibc
+ opened*)
+ os=openedition
;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ os400*)
+ os=os400
;;
- -sunos5*)
+ sunos5*)
os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
- -sunos6*)
+ sunos6*)
os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
- -opened*)
- os=-openedition
- ;;
- -os400*)
- os=-os400
+ wince*)
+ os=wince
;;
- -wince*)
- os=-wince
+ utek*)
+ os=bsd
;;
- -utek*)
- os=-bsd
+ dynix*)
+ os=bsd
;;
- -dynix*)
- os=-bsd
+ acis*)
+ os=aos
;;
- -acis*)
- os=-aos
+ atheos*)
+ os=atheos
;;
- -atheos*)
- os=-atheos
+ syllable*)
+ os=syllable
;;
- -syllable*)
- os=-syllable
- ;;
- -386bsd)
- os=-bsd
+ 386bsd)
+ os=bsd
;;
- -ctix* | -uts*)
- os=-sysv
+ ctix* | uts*)
+ os=sysv
;;
- -nova*)
- os=-rtmk-nova
+ nova*)
+ os=rtmk-nova
;;
- -ns2)
- os=-nextstep2
+ ns2)
+ os=nextstep2
;;
- -nsk*)
- os=-nsk
+ nsk*)
+ os=nsk
;;
# Preserve the version number of sinix5.
- -sinix5.*)
+ sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
- -sinix*)
- os=-sysv4
+ sinix*)
+ os=sysv4
;;
- -tpf*)
- os=-tpf
+ tpf*)
+ os=tpf
;;
- -triton*)
- os=-sysv3
+ triton*)
+ os=sysv3
;;
- -oss*)
- os=-sysv3
+ oss*)
+ os=sysv3
;;
- -svr4*)
- os=-sysv4
+ svr4*)
+ os=sysv4
;;
- -svr3)
- os=-sysv3
+ svr3)
+ os=sysv3
;;
- -sysvr4)
- os=-sysv4
+ sysvr4)
+ os=sysv4
;;
- # This must come after -sysvr4.
- -sysv*)
+ # This must come after sysvr4.
+ sysv*)
;;
- -ose*)
- os=-ose
+ ose*)
+ os=ose
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
;;
- -zvmoe)
- os=-zvmoe
+ zvmoe)
+ os=zvmoe
;;
- -dicos*)
- os=-dicos
+ dicos*)
+ os=dicos
;;
- -pikeos*)
+ pikeos*)
# Until real need of OS specific support for
# particular features comes up, bare metal
# configurations are quite functional.
- case $basic_machine in
+ case $cpu in
arm*)
- os=-eabi
+ os=eabi
;;
*)
- os=-elf
+ os=elf
;;
esac
;;
- -nacl*)
+ nacl*)
;;
- -ios)
+ ios)
;;
- -none)
+ none)
;;
- -*-eabi)
- case $basic_machine in
- arm*)
- ;;
- esac
+ *-eabi)
;;
*)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
exit 1
;;
@@ -1575,254 +1525,261 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-case $basic_machine in
+case $cpu-$vendor in
score-*)
- os=-elf
+ os=elf
;;
spu-*)
- os=-elf
+ os=elf
;;
*-acorn)
- os=-riscix1.2
+ os=riscix1.2
;;
arm*-rebel)
- os=-linux
+ os=linux
;;
arm*-semi)
- os=-aout
+ os=aout
;;
c4x-* | tic4x-*)
- os=-coff
+ os=coff
;;
c8051-*)
- os=-elf
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
;;
hexagon-*)
- os=-elf
+ os=elf
;;
tic54x-*)
- os=-coff
+ os=coff
;;
tic55x-*)
- os=-coff
+ os=coff
;;
tic6x-*)
- os=-coff
+ os=coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=-tops20
+ os=tops20
;;
pdp11-*)
- os=-none
+ os=none
;;
*-dec | vax-*)
- os=-ultrix4.2
+ os=ultrix4.2
;;
m68*-apollo)
- os=-domain
+ os=domain
;;
i386-sun)
- os=-sunos4.0.2
+ os=sunos4.0.2
;;
m68000-sun)
- os=-sunos3
+ os=sunos3
;;
m68*-cisco)
- os=-aout
+ os=aout
;;
mep-*)
- os=-elf
+ os=elf
;;
mips*-cisco)
- os=-elf
+ os=elf
;;
mips*-*)
- os=-elf
+ os=elf
;;
or32-*)
- os=-coff
+ os=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
+ os=sysv3
;;
sparc-* | *-sun)
- os=-sunos4.1.1
+ os=sunos4.1.1
;;
pru-*)
- os=-elf
+ os=elf
;;
*-be)
- os=-beos
+ os=beos
;;
*-ibm)
- os=-aix
+ os=aix
;;
*-knuth)
- os=-mmixware
+ os=mmixware
;;
*-wec)
- os=-proelf
+ os=proelf
;;
*-winbond)
- os=-proelf
+ os=proelf
;;
*-oki)
- os=-proelf
+ os=proelf
;;
*-hp)
- os=-hpux
+ os=hpux
;;
*-hitachi)
- os=-hiux
+ os=hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
+ os=sysv
;;
*-cbm)
- os=-amigaos
+ os=amigaos
;;
*-dg)
- os=-dgux
+ os=dgux
;;
*-dolphin)
- os=-sysv3
+ os=sysv3
;;
m68k-ccur)
- os=-rtu
+ os=rtu
;;
m88k-omron*)
- os=-luna
+ os=luna
;;
*-next)
- os=-nextstep
+ os=nextstep
;;
*-sequent)
- os=-ptx
+ os=ptx
;;
*-crds)
- os=-unos
+ os=unos
;;
*-ns)
- os=-genix
+ os=genix
;;
i370-*)
- os=-mvs
+ os=mvs
;;
*-gould)
- os=-sysv
+ os=sysv
;;
*-highlevel)
- os=-bsd
+ os=bsd
;;
*-encore)
- os=-bsd
+ os=bsd
;;
*-sgi)
- os=-irix
+ os=irix
;;
*-siemens)
- os=-sysv4
+ os=sysv4
;;
*-masscomp)
- os=-rtu
+ os=rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
+ os=uxpv
;;
*-rom68k)
- os=-coff
+ os=coff
;;
*-*bug)
- os=-coff
+ os=coff
;;
*-apple)
- os=-macos
+ os=macos
;;
*-atari*)
- os=-mint
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
;;
*)
- os=-none
+ os=none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
+case $vendor in
+ unknown)
case $os in
- -riscix*)
+ riscix*)
vendor=acorn
;;
- -sunos*)
+ sunos*)
vendor=sun
;;
- -cnk*|-aix*)
+ cnk*|-aix*)
vendor=ibm
;;
- -beos*)
+ beos*)
vendor=be
;;
- -hpux*)
+ hpux*)
vendor=hp
;;
- -mpeix*)
+ mpeix*)
vendor=hp
;;
- -hiux*)
+ hiux*)
vendor=hitachi
;;
- -unos*)
+ unos*)
vendor=crds
;;
- -dgux*)
+ dgux*)
vendor=dg
;;
- -luna*)
+ luna*)
vendor=omron
;;
- -genix*)
+ genix*)
vendor=ns
;;
- -mvs* | -opened*)
+ clix*)
+ vendor=intergraph
+ ;;
+ mvs* | opened*)
vendor=ibm
;;
- -os400*)
+ os400*)
vendor=ibm
;;
- -ptx*)
+ ptx*)
vendor=sequent
;;
- -tpf*)
+ tpf*)
vendor=ibm
;;
- -vxsim* | -vxworks* | -windiss*)
+ vxsim* | vxworks* | windiss*)
vendor=wrs
;;
- -aux*)
+ aux*)
vendor=apple
;;
- -hms*)
+ hms*)
vendor=hitachi
;;
- -mpw* | -macos*)
+ mpw* | macos*)
vendor=apple
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
vendor=atari
;;
- -vos*)
+ vos*)
vendor=stratus
;;
esac
- basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
;;
esac
-echo "$basic_machine$os"
+echo "$cpu-$vendor-$os"
exit
# Local variables:
diff --git a/dviware/dvisvgm/configure b/dviware/dvisvgm/configure
index fe7f75869e..2bf214692f 100755
--- a/dviware/dvisvgm/configure
+++ b/dviware/dvisvgm/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for dvisvgm 2.13.2.
+# Generated by GNU Autoconf 2.69 for dvisvgm 2.13.3.
#
# Report bugs to <martin.gieseking@uos.de>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='dvisvgm'
PACKAGE_TARNAME='dvisvgm'
-PACKAGE_VERSION='2.13.2'
-PACKAGE_STRING='dvisvgm 2.13.2'
+PACKAGE_VERSION='2.13.3'
+PACKAGE_STRING='dvisvgm 2.13.3'
PACKAGE_BUGREPORT='martin.gieseking@uos.de'
PACKAGE_URL=''
@@ -1417,7 +1417,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures dvisvgm 2.13.2 to adapt to many kinds of systems.
+\`configure' configures dvisvgm 2.13.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1489,7 +1489,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dvisvgm 2.13.2:";;
+ short | recursive ) echo "Configuration of dvisvgm 2.13.3:";;
esac
cat <<\_ACEOF
@@ -1637,7 +1637,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-dvisvgm configure 2.13.2
+dvisvgm configure 2.13.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2181,7 +2181,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by dvisvgm $as_me 2.13.2, which was
+It was created by dvisvgm $as_me 2.13.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3169,7 +3169,7 @@ fi
# Define the identity of the package.
PACKAGE='dvisvgm'
- VERSION='2.13.2'
+ VERSION='2.13.3'
cat >>confdefs.h <<_ACEOF
@@ -20459,7 +20459,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by dvisvgm $as_me 2.13.2, which was
+This file was extended by dvisvgm $as_me 2.13.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20525,7 +20525,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-dvisvgm config.status 2.13.2
+dvisvgm config.status 2.13.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/dviware/dvisvgm/configure.ac b/dviware/dvisvgm/configure.ac
index 0e1a95f704..5c25b9a425 100644
--- a/dviware/dvisvgm/configure.ac
+++ b/dviware/dvisvgm/configure.ac
@@ -4,7 +4,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
-AC_INIT([dvisvgm],[2.13.2],[martin.gieseking@uos.de])
+AC_INIT([dvisvgm],[2.13.3],[martin.gieseking@uos.de])
DATE="February 2022"
AC_CONFIG_SRCDIR(src)
AC_CONFIG_HEADERS([config.h])
diff --git a/dviware/dvisvgm/depcomp b/dviware/dvisvgm/depcomp
index 65cbf7093a..6b391623c4 100755
--- a/dviware/dvisvgm/depcomp
+++ b/dviware/dvisvgm/depcomp
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/dviware/dvisvgm/doc/dvisvgm.1 b/dviware/dvisvgm/doc/dvisvgm.1
index 8d9274bfd7..9356f2910e 100644
--- a/dviware/dvisvgm/doc/dvisvgm.1
+++ b/dviware/dvisvgm/doc/dvisvgm.1
@@ -2,12 +2,12 @@
.\" Title: dvisvgm
.\" Author: Martin Gieseking <martin.gieseking@uos.de>
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 2022-01-18
+.\" Date: 2022-02-26
.\" Manual: dvisvgm Manual
-.\" Source: dvisvgm 2.13.2
+.\" Source: dvisvgm 2.13.3
.\" Language: English
.\"
-.TH "DVISVGM" "1" "2022\-01\-18" "dvisvgm 2\&.13\&.2" "dvisvgm Manual"
+.TH "DVISVGM" "1" "2022\-02\-26" "dvisvgm 2\&.13\&.3" "dvisvgm Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -628,7 +628,16 @@ or
\fBid\fR, prevents this\&.
.RE
.PP
-\fBremove\-clippath\fR
+\fBreassign\-clippaths\fR
+.RS 4
+Collects all
+\fBclipPath\fR
+elements that differ only by their IDs\&. Afterwards, the duplicates are removed so that only one remains\&. All
+\fBclip\-path\fR
+attributes referencing one of the duplicates are updated accordingly\&.
+.RE
+.PP
+\fBremove\-clippaths\fR
.RS 4
Removes all redundant
\fIclipPath\fR
diff --git a/dviware/dvisvgm/doc/dvisvgm.txt.in b/dviware/dvisvgm/doc/dvisvgm.txt.in
index 1fdd5b551b..fcadbee66b 100644
--- a/dviware/dvisvgm/doc/dvisvgm.txt.in
+++ b/dviware/dvisvgm/doc/dvisvgm.txt.in
@@ -22,7 +22,7 @@ Martin Gieseking <@PACKAGE_BUGREPORT@>
:man source: dvisvgm
:man version: @VERSION@
:man manual: dvisvgm Manual
-:revdate: 2022-01-18 10:32 +0100
+:revdate: 2022-02-26 19:08 +0100
Name
----
@@ -436,7 +436,12 @@ The following list describes the currently available optimizer modules.
inheritable properties, such as +fill+ or +stroke-width+, into account and only removes them from
an element if none of the other attributes, like +id+, prevents this.
- *remove-clippath*;;
+ *reassign-clippaths*;;
+ Collects all +clipPath+ elements that differ only by their IDs. Afterwards, the duplicates are
+ removed so that only one remains. All +clip-path+ attributes referencing one of the duplicates
+ are updated accordingly.
+
+ *remove-clippaths*;;
Removes all redundant 'clipPath' elements. This optimization was already present in former versions
of dvisvgm and was always applied by default. This behavior is retained, i.e. dvisvgm executes
this module even if option *--optimize* is not given. You can use argument 'none' to prevent that.
diff --git a/dviware/dvisvgm/install-sh b/dviware/dvisvgm/install-sh
index 8175c640fe..20d8b2eaea 100755
--- a/dviware/dvisvgm/install-sh
+++ b/dviware/dvisvgm/install-sh
@@ -451,7 +451,18 @@ do
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
diff --git a/dviware/dvisvgm/missing b/dviware/dvisvgm/missing
index 625aeb1189..8d0eaad250 100755
--- a/dviware/dvisvgm/missing
+++ b/dviware/dvisvgm/missing
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
diff --git a/dviware/dvisvgm/src/BoundingBox.cpp b/dviware/dvisvgm/src/BoundingBox.cpp
index d79848f8f9..64b24fd233 100644
--- a/dviware/dvisvgm/src/BoundingBox.cpp
+++ b/dviware/dvisvgm/src/BoundingBox.cpp
@@ -23,6 +23,7 @@
#include "BoundingBox.hpp"
#include "Matrix.hpp"
#include "utility.hpp"
+#include "SVGTree.hpp"
#include "XMLNode.hpp"
#include "XMLString.hpp"
@@ -272,3 +273,18 @@ unique_ptr<XMLElement> BoundingBox::createSVGRect () const {
rect->addAttribute("fill", "none");
return rect;
}
+
+
+unique_ptr<XMLElement> BoundingBox::createSVGPath () const {
+ GraphicsPath<double> path;
+ path.moveto(minX(), minY());
+ path.lineto(maxX(), minY());
+ path.lineto(maxX(), maxY());
+ path.lineto(minX(), maxY());
+ path.closepath();
+ ostringstream oss;
+ path.writeSVG(oss, SVGTree::RELATIVE_PATH_CMDS);
+ auto pathElem = util::make_unique<XMLElement>("path");
+ pathElem->addAttribute("d", oss.str());
+ return pathElem;
+} \ No newline at end of file
diff --git a/dviware/dvisvgm/src/BoundingBox.hpp b/dviware/dvisvgm/src/BoundingBox.hpp
index e9ffe2c946..51da4d04fb 100644
--- a/dviware/dvisvgm/src/BoundingBox.hpp
+++ b/dviware/dvisvgm/src/BoundingBox.hpp
@@ -79,6 +79,7 @@ class BoundingBox {
std::string svgViewBoxString () const;
std::ostream& write (std::ostream &os) const;
std::unique_ptr<XMLElement> createSVGRect () const;
+ std::unique_ptr<XMLElement> createSVGPath () const;
private:
double _ulx, _uly; ///< coordinates of upper left vertex (in PS point units)
diff --git a/dviware/dvisvgm/src/PsSpecialHandler.cpp b/dviware/dvisvgm/src/PsSpecialHandler.cpp
index ff853c72ee..45328fbd18 100644
--- a/dviware/dvisvgm/src/PsSpecialHandler.cpp
+++ b/dviware/dvisvgm/src/PsSpecialHandler.cpp
@@ -422,18 +422,8 @@ unique_ptr<SVGElement> PsSpecialHandler::createImageNode (FileType type, const s
node->addAttribute("xlink:href", href);
}
else { // PostScript or PDF
- if (!clip)
- node = util::make_unique<SVGElement>("g");
- else {
- // clip image to its bounding box if flag 'clip' is given
- node = util::make_unique<SVGElement>("svg");
- node->addAttribute("overflow", "hidden");
- node->addAttribute("x", bbox.minX());
- node->addAttribute("y", bbox.minY());
- node->addAttribute("width", bbox.width());
- node->addAttribute("height", bbox.height());
- node->addAttribute("viewBox", bbox.svgViewBoxString());
- }
+ node = util::make_unique<SVGElement>("g"); // put SVG nodes created from the EPS/PDF file in this group
+
_xmlnode = node.get();
_psi.execute(
"\n@beginspecial @setspecial" // enter special environment
@@ -447,6 +437,14 @@ unique_ptr<SVGElement> PsSpecialHandler::createImageNode (FileType type, const s
);
if (node->empty())
node.reset(nullptr);
+ else if (clip) {
+ // clip image to its bounding box if flag 'clip' is given
+ auto clippath = util::make_unique<SVGElement>("clipPath");
+ clippath->addAttribute("id", "imgclip"+ to_string(_imgClipCount));
+ clippath->append(bbox.createSVGPath());
+ node->setClipPathUrl("imgclip"+ to_string(_imgClipCount++));
+ _actions->svgTree().appendToDefs(std::move(clippath));
+ }
_xmlnode = nullptr; // append following elements to page group again
}
return node;
@@ -485,6 +483,7 @@ static bool transform_box_extents (const Matrix &matrix, double &w, double &h, d
void PsSpecialHandler::dviBeginPage (unsigned int pageno, SpecialActions &actions) {
_psi.execute("/@imgbase("+image_base_path(actions)+")store\n"); // path and basename of image files
+ _imgClipCount = 0;
}
diff --git a/dviware/dvisvgm/src/PsSpecialHandler.hpp b/dviware/dvisvgm/src/PsSpecialHandler.hpp
index f4a9b333f4..6a35052b27 100644
--- a/dviware/dvisvgm/src/PsSpecialHandler.hpp
+++ b/dviware/dvisvgm/src/PsSpecialHandler.hpp
@@ -184,6 +184,7 @@ class PsSpecialHandler : public SpecialHandler, protected PSActions {
double _dashoffset; ///< current dash offset
std::vector<double> _dashpattern;
ClippingStack _clipStack;
+ int _imgClipCount=0; ///< current number of clip paths assigned to images
bool _makingPattern=false; ///< true if executing makepattern operator
std::map<int, std::unique_ptr<PSPattern>> _patterns;
PSTilingPattern *_pattern; ///< current pattern
diff --git a/dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp b/dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp
new file mode 100644
index 0000000000..0f684cd7eb
--- /dev/null
+++ b/dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp
@@ -0,0 +1,94 @@
+/*************************************************************************
+** ClipPathReassigner.cpp **
+** **
+** This file is part of dvisvgm -- a fast DVI to SVG converter **
+** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking@uos.de> **
+** **
+** This program is free software; you can redistribute it and/or **
+** modify it under the terms of the GNU General Public License as **
+** published by the Free Software Foundation; either version 3 of **
+** the License, or (at your option) any later version. **
+** **
+** This program is distributed in the hope that it will be useful, but **
+** WITHOUT ANY WARRANTY; without even the implied warranty of **
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
+** GNU General Public License for more details. **
+** **
+** You should have received a copy of the GNU General Public License **
+** along with this program; if not, see <http://www.gnu.org/licenses/>. **
+*************************************************************************/
+
+#include <algorithm>
+#include <set>
+#include <sstream>
+#include "ClipPathReassigner.hpp"
+#include "../XMLNode.hpp"
+#include "../XXHashFunction.hpp"
+
+using namespace std;
+
+const char* ClipPathReassigner::info () const {
+ return "remove duplicate clip paths and update the references";
+}
+
+
+/** Returns a hash value for an XML element where the id attribute is not taken into account.
+ * Two elements that differ only by their id attribute get the same hash value. */
+static uint64_t hash_value (XMLElement *elem) {
+ const char *id = elem->getAttributeValue("id");
+ elem->removeAttribute("id");
+ ostringstream oss;
+ elem->write(oss);
+ uint64_t value = XXH64HashFunction(oss.str().data(), oss.str().length()).digestValue();
+ if (id)
+ elem->addAttribute("id", id);
+ return value;
+}
+
+
+/** Extracts the ID from a local URL reference like url(#abcde) */
+static inline string extract_id_from_url (const string &url) {
+ if (url.length() >= 7) {
+ size_t first = url.find('#');
+ size_t last = url.rfind(')');
+ if (first != string::npos && last != string::npos && first < last)
+ return url.substr(first+1, last-first-1);
+ }
+ return "";
+}
+
+
+void ClipPathReassigner::execute (XMLElement *defs, XMLElement *context) {
+ vector<XMLElement*> clipPathElements;
+ if (!defs || !context || !defs->getDescendants("clipPath", nullptr, clipPathElements))
+ return;
+ map<uint64_t, vector<XMLElement*>> clipPathMap;
+ for (XMLElement *clipPathElement: clipPathElements) {
+ uint64_t hash = hash_value(clipPathElement);
+ clipPathMap[hash].push_back(clipPathElement); // put identical clipPath elements into a common vector
+ }
+ // replace clip path references
+ vector<XMLElement*> descendants;
+ context->getDescendants(nullptr, "clip-path", descendants);
+ for (auto &mapEntry : clipPathMap) {
+ vector<XMLElement*> &identicalClipPathElements = mapEntry.second;
+ set<string> ids;
+ for (auto elem : identicalClipPathElements)
+ ids.insert(elem->getAttributeValue("id"));
+ for (auto it = descendants.begin(); it != descendants.end();) {
+ string id = extract_id_from_url((*it)->getAttributeValue("clip-path"));
+ if (ids.find(id) == ids.end())
+ ++it;
+ else {
+ (*it)->addAttribute("clip-path", string("url(#") + (*ids.begin()) + ")");
+ it = descendants.erase(it); // no need to process this element again
+ }
+ }
+ }
+ // remove redundant clipPath elements
+ for (auto mapEntry : clipPathMap) {
+ auto it = mapEntry.second.begin();
+ for (++it; it != mapEntry.second.end(); ++it)
+ XMLElement::detach(*it);
+ }
+}
diff --git a/dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp b/dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp
new file mode 100644
index 0000000000..6abe6d1e00
--- /dev/null
+++ b/dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp
@@ -0,0 +1,43 @@
+/*************************************************************************
+** ClipPathReassigner.hpp **
+** **
+** This file is part of dvisvgm -- a fast DVI to SVG converter **
+** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking@uos.de> **
+** **
+** This program is free software; you can redistribute it and/or **
+** modify it under the terms of the GNU General Public License as **
+** published by the Free Software Foundation; either version 3 of **
+** the License, or (at your option) any later version. **
+** **
+** This program is distributed in the hope that it will be useful, but **
+** WITHOUT ANY WARRANTY; without even the implied warranty of **
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
+** GNU General Public License for more details. **
+** **
+** You should have received a copy of the GNU General Public License **
+** along with this program; if not, see <http://www.gnu.org/licenses/>. **
+*************************************************************************/
+
+#pragma once
+
+#include <string>
+#include <vector>
+#include "OptimizerModule.hpp"
+
+class ClipPathReassigner : public OptimizerModule {
+ struct NamedPathString {
+ NamedPathString () =default;
+ NamedPathString (const std::string &svgPathName, const char *svgPathString) : name(svgPathName), pathString(svgPathString) {}
+ std::string name;
+ const char *pathString = nullptr;
+ };
+
+ public:
+ void execute (XMLElement*, XMLElement *context) override;
+ const char* info () const override;
+
+ private:
+ std::vector<NamedPathString> _namedPathStrings;
+
+};
+
diff --git a/dviware/dvisvgm/src/optimizer/Makefile.am b/dviware/dvisvgm/src/optimizer/Makefile.am
index 1039627843..af23fd22a7 100644
--- a/dviware/dvisvgm/src/optimizer/Makefile.am
+++ b/dviware/dvisvgm/src/optimizer/Makefile.am
@@ -2,6 +2,7 @@ noinst_LTLIBRARIES = liboptimizer.la
liboptimizer_la_SOURCES = \
AttributeExtractor.hpp AttributeExtractor.cpp \
+ ClipPathReassigner.hpp ClipPathReassigner.cpp \
DependencyGraph.hpp \
GroupCollapser.hpp GroupCollapser.cpp \
OptimizerModule.hpp \
@@ -11,4 +12,7 @@ liboptimizer_la_SOURCES = \
TransformSimplifier.hpp TransformSimplifier.cpp \
WSNodeRemover.hpp WSNodeRemover.cpp
-AM_CXXFLAGS = -I$(dvisvgm_srcdir)/libs/variant/include
+include ../../libs/defs.am
+
+AM_CXXFLAGS = -I$(dvisvgm_srcdir)/libs/variant/include $(XXHASH_CFLAGS)
+
diff --git a/dviware/dvisvgm/src/optimizer/Makefile.in b/dviware/dvisvgm/src/optimizer/Makefile.in
index 26731769a2..3d7cf25df6 100644
--- a/dviware/dvisvgm/src/optimizer/Makefile.in
+++ b/dviware/dvisvgm/src/optimizer/Makefile.in
@@ -89,6 +89,10 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
+@HAVE_BROTLI_FALSE@am__append_1 = -I$(dvisvgm_srcdir)/libs/brotli/include
+@HAVE_BROTLI_FALSE@am__append_2 = ../libs/brotli/libbrotli.a
+@HAVE_WOFF2_FALSE@am__append_3 = -I$(dvisvgm_srcdir)/libs/woff2/include
+@HAVE_WOFF2_FALSE@am__append_4 = ../libs/woff2/libwoff2.a
subdir = src/optimizer
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
@@ -106,7 +110,8 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
liboptimizer_la_LIBADD =
-am_liboptimizer_la_OBJECTS = AttributeExtractor.lo GroupCollapser.lo \
+am_liboptimizer_la_OBJECTS = AttributeExtractor.lo \
+ ClipPathReassigner.lo GroupCollapser.lo \
RedundantElementRemover.lo SVGOptimizer.lo TextSimplifier.lo \
TransformSimplifier.lo WSNodeRemover.lo
liboptimizer_la_OBJECTS = $(am_liboptimizer_la_OBJECTS)
@@ -130,6 +135,7 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/AttributeExtractor.Plo \
+ ./$(DEPDIR)/ClipPathReassigner.Plo \
./$(DEPDIR)/GroupCollapser.Plo \
./$(DEPDIR)/RedundantElementRemover.Plo \
./$(DEPDIR)/SVGOptimizer.Plo ./$(DEPDIR)/TextSimplifier.Plo \
@@ -198,7 +204,8 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+am__DIST_COMMON = $(srcdir)/../../libs/defs.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -211,8 +218,8 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BROTLI_CFLAGS = @BROTLI_CFLAGS@
-BROTLI_LIBS = @BROTLI_LIBS@
+BROTLI_CFLAGS = @BROTLI_CFLAGS@ $(am__append_1)
+BROTLI_LIBS = @BROTLI_LIBS@ $(am__append_2)
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -294,8 +301,8 @@ STRIP = @STRIP@
TTFAUTOHINT_CFLAGS = @TTFAUTOHINT_CFLAGS@
TTFAUTOHINT_LIBS = @TTFAUTOHINT_LIBS@
VERSION = @VERSION@
-WOFF2_CFLAGS = @WOFF2_CFLAGS@
-WOFF2_LIBS = @WOFF2_LIBS@
+WOFF2_CFLAGS = @WOFF2_CFLAGS@ $(am__append_3)
+WOFF2_LIBS = @WOFF2_LIBS@ $(am__append_4)
XMLTO = @XMLTO@
XSLTPROC = @XSLTPROC@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
@@ -362,6 +369,7 @@ top_srcdir = @top_srcdir@
noinst_LTLIBRARIES = liboptimizer.la
liboptimizer_la_SOURCES = \
AttributeExtractor.hpp AttributeExtractor.cpp \
+ ClipPathReassigner.hpp ClipPathReassigner.cpp \
DependencyGraph.hpp \
GroupCollapser.hpp GroupCollapser.cpp \
OptimizerModule.hpp \
@@ -371,12 +379,16 @@ liboptimizer_la_SOURCES = \
TransformSimplifier.hpp TransformSimplifier.cpp \
WSNodeRemover.hpp WSNodeRemover.cpp
-AM_CXXFLAGS = -I$(dvisvgm_srcdir)/libs/variant/include
+@HAVE_POTRACE_FALSE@POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace
+@HAVE_POTRACE_FALSE@POTRACE_LIBS = ../libs/potrace/libpotrace.a
+@HAVE_XXHASH_FALSE@XXHASH_CFLAGS = -I$(dvisvgm_srcdir)/libs/xxHash
+@HAVE_XXHASH_FALSE@XXHASH_LIBS = ../libs/xxHash/libxxhash.a
+AM_CXXFLAGS = -I$(dvisvgm_srcdir)/libs/variant/include $(XXHASH_CFLAGS)
all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../../libs/defs.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -396,6 +408,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
+$(srcdir)/../../libs/defs.am $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -427,6 +440,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AttributeExtractor.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClipPathReassigner.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GroupCollapser.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RedundantElementRemover.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SVGOptimizer.Plo@am__quote@ # am--include-marker
@@ -596,6 +610,7 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
distclean: distclean-am
-rm -f ./$(DEPDIR)/AttributeExtractor.Plo
+ -rm -f ./$(DEPDIR)/ClipPathReassigner.Plo
-rm -f ./$(DEPDIR)/GroupCollapser.Plo
-rm -f ./$(DEPDIR)/RedundantElementRemover.Plo
-rm -f ./$(DEPDIR)/SVGOptimizer.Plo
@@ -648,6 +663,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/AttributeExtractor.Plo
+ -rm -f ./$(DEPDIR)/ClipPathReassigner.Plo
-rm -f ./$(DEPDIR)/GroupCollapser.Plo
-rm -f ./$(DEPDIR)/RedundantElementRemover.Plo
-rm -f ./$(DEPDIR)/SVGOptimizer.Plo
diff --git a/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp b/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
index 9ff1b8163f..4809439c8e 100644
--- a/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
+++ b/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
@@ -25,6 +25,7 @@
#include "../SVGTree.hpp"
#include "AttributeExtractor.hpp"
+#include "ClipPathReassigner.hpp"
#include "GroupCollapser.hpp"
#include "RedundantElementRemover.hpp"
#include "TextSimplifier.hpp"
@@ -42,7 +43,8 @@ SVGOptimizer::SVGOptimizer (SVGTree *svg) : _svg(svg) {
_moduleEntries.emplace_back(ModuleEntry("simplify-transform", util::make_unique<TransformSimplifier>()));
_moduleEntries.emplace_back(ModuleEntry("group-attributes", util::make_unique<AttributeExtractor>()));
_moduleEntries.emplace_back(ModuleEntry("collapse-groups", util::make_unique<GroupCollapser>()));
- _moduleEntries.emplace_back(ModuleEntry("remove-clippath", util::make_unique<RedundantElementRemover>()));
+ _moduleEntries.emplace_back(ModuleEntry("remove-clippaths", util::make_unique<RedundantElementRemover>()));
+ _moduleEntries.emplace_back(ModuleEntry("reassign-clippaths", util::make_unique<ClipPathReassigner>()));
}
diff --git a/dviware/dvisvgm/test-driver b/dviware/dvisvgm/test-driver
index b8521a482e..89dba1e075 100755
--- a/dviware/dvisvgm/test-driver
+++ b/dviware/dvisvgm/test-driver
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG
index 5ef0c1644d..a6625b3c3e 100644
--- a/graphics/mcf2graph/CHANGELOG
+++ b/graphics/mcf2graph/CHANGELOG
@@ -1,6 +1,10 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2022-02-20
+ Changelog of mcf2graph software package by Akira Yamaji 2022-02-27
*******************************************************************************
+[ver. 4.81 / 2022-02-27]
+ -update mcf2graph.mp
+ -update MCF manual
+
[ver. 4.80 / 2022-02-20]
-update mcf2graph.mp
-update mcf_data_base.mcf
diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README
index 7cf9d4cbbc..b3fe39068e 100644
--- a/graphics/mcf2graph/README
+++ b/graphics/mcf2graph/README
@@ -1,7 +1,7 @@
********************************************************************************
mcf2graph : Convert Molecular Coding Format to graphics with MetaPost
Author : Akira Yamaji
- version : 4.80 2022-02-20
+ version : 4.81 2022-02-27
E-mail : mcf2graph@gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
@@ -46,7 +46,7 @@
(11) >mpost -s ahlength=7 FILENAME => output report file
4. License
- mcf2graph ver 4.80 Copyright (c) 2013-2022 Akira Yamaji
+ mcf2graph ver 4.81 Copyright (c) 2013-2022 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
diff --git a/graphics/mcf2graph/mcf2graph.mp b/graphics/mcf2graph/mcf2graph.mp
index b440e07e06..a34c4a9054 100644
--- a/graphics/mcf2graph/mcf2graph.mp
+++ b/graphics/mcf2graph/mcf2graph.mp
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.80 Copyright (c) 2013-2022 Akira Yamaji
+% mcf2graph ver 4.81 Copyright (c) 2013-2022 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,
@@ -33,18 +33,14 @@
% Set output MOL file (V3000) : mpost -s ahlength=6 FILENAME
% Set output report : mpost -s ahlength=7 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-tracingstats:=1;
-message "* This is mcf2graph ver 4.80 2022.02.20";
+message "* This is mcf2graph ver 4.81 2022.02.27";
+tracingstats:=1; prologues:=3; warningcheck:=0;
%-------------------------------------------------------------------------------------------------
-newinternal numeric nA,nB,nC,nD,nE,nF,nH,nN,nL,nR,nS,nU,nP,nW,nX,nY,mc_row;
-newinternal string tempc,temps,blanks,aux_delimiter,atomfont,sC,sI,sS,sT,sV,cC,cH,cO,cN,cS,cF,cP,
- file_input,file_output;
-numeric save_num[],comD[][],parD[][],adrD[][],cntD[],tbl_atom[],tbl_group[][],tbl_atom_wt[],
+numeric save_num[],parts_com[][],parts_par[][],parts_cnt[],tbl_atom[],tbl_group[][],tbl_atom_wt[],
tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[];
-string mc[],mc,save_str[],tbl_atom_str[],strD[],tag[],default_data_file,default_temp_file,mpfont;
-pair save_pair[],msize,mposition,fsize,fmargin,dum,mpos;
-picture mol_pic[];
-color color_list[];
+string save_str[],tbl_atom_str[],str_tbl[],tag[],aux_delimiter,default_data_file,
+ default_temp_file,mpfont,atomfont,tempc,temps,blanks;
+pair save_pair[],msize,mposition,fsize,fmargin,dum,save_mposition;
%-------------------------------------------------------------------------------------------------
fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_expand:=sw_frame:=sw_trimming:=sw_ext_all:=0;
sw_abbreviate:=sw_numbering:=sw_output:=0; numbering_start:=1; numbering_end:=4095;
@@ -60,7 +56,6 @@ a_ast:=ASCII("*"); a_sls:=ASCII("/"); a_gtn:=ASCII("<"); a_ltn:=ASCII(">"); a_an
a_dol:=ASCII("$"); a_hsh:=ASCII("#"); a_hat:=ASCII("^"); a_tld:=ASCII("~"); a_bqt:=ASCII("`");
a_cln:=ASCII(":"); a_amk:=ASCII("@"); a_zero:=ASCII("0"); a_nine:=ASCII("9"); a_qut:=ASCII("'");
a_bar:=ASCII("|"); a_plus:=ASCII("+"); a_minus:=ASCII("-");
-cC:="C"; cH:="H"; cO:="O"; cN:="N"; cS:="S"; cF:="F"; cP:="P";
%-------------------------------------------------------------------------------------------------
let DIV= /; let MUL= *; let LT= <; let GT= >; let AND= &; let :: = : ; let == = =; let ef=elseif;
let ISP=intersectionpoint; def ]]]=] ] ] enddef;
@@ -84,8 +79,6 @@ vardef fdl(expr n)(expr s)= fsl(n)(decimal(s)) enddef;
def printf expr s= write s to file_output enddef;
def warning(expr s)= message "% "&decimal(fig_num)&fdr(3)(incr warning_cnt)&")"&s; enddef;
%=================================================================================================
-prologues:=3;
-warningcheck:=0;
default_data_file:="mcf_data_base.mcf"; default_temp_file:="temp.mcf";
mpfont:="uhvr8r"; atomfont:="draw"; defaultfont:=mpfont;
%--default ahangle=45---------------------------------------------------------------------
@@ -109,35 +102,25 @@ fi
if bboxmargin=3: ext(defaultfont:=mpfont; defaultscale:=.3; label.rt(inf_EN,(0,0));)
ef bboxmargin=4: sw_output:=Fig+Calc;
ext(defaultfont:=mpfont; defaultscale:=.3;
- label.rt(inf_EN&" / "&cal_MW&" / "&decimal(num_MW-scantokens(inf_MW)),(0,0));)
-fi
+ label.rt(inf_EN&" / "&cal_MW&" / "&decimal(num_MW-scantokens(inf_MW)),(0,0));) fi
%--default outputtemplate:="%j-%3c."&"mps"------------------------------------------------
if (outputformat="eps")and(ahangle<>3): outputtemplate:="%j-%3c."&"mps";
-else: outputtemplate:="%j-%3c."&outputformat;
-fi
+else: outputtemplate:="%j-%3c."&outputformat; fi
%-----------------------------------------------------------------------------------------
if sw_output>=Info:
- message "* jobname="&jobname;
- message "* numbersystem="&numbersystem;
+ message "* jobname="&jobname; message "* numbersystem="&numbersystem;
if (ahlength=1)or(ahlength=2):
- message "* output information file";
- message "* file name="&jobname&"-info.aux";
+ message "* output information file"; message "* file name="&jobname&"-info.aux";
message "* info delimiter="&aux_delimiter;
- ef ahlength=3: message "* output data-base file";
+ ef ahlength=3: message "* output data-base file";
message "* data-base file name="&jobname&"-data.aux";
- ef ahlength=5: message "* output MOL file(V2000)";
- message "* "&jobname&"-nnn-"&"inf_EN"&".mol";
- ef ahlength=6: message "* output MOL file(V3000)";
- message "* "&jobname&"-nnn-"&"inf_EN"&".mol";
- ef ahlength=7: message "* output report file";
- message "* file name="&jobname&"-report.txt";
- fi
+ ef ahlength=5: message "* output MOL file(V2000)"; message "* "&jobname&"-nnn-"&"inf_EN"&".mol";
+ ef ahlength=6: message "* output MOL file(V3000)"; message "* "&jobname&"-nnn-"&"inf_EN"&".mol";
+ ef ahlength=7: message "* output report file"; message "* file name="&jobname&"-report.txt"; fi
message "* outputformat="&outputformat;
if outputformat="png": message "* hppp="&decimal(hppp)&"/vppp="&decimal(vppp); fi
message "* outputtemplate="&outputtemplate;
- message "* atomfont="&atomfont;
- message "* defaultfont="&defaultfont;
-fi
+ message "* atomfont="&atomfont; message "* defaultfont="&defaultfont; fi
clearit;
%--------------------------------------------------------------------------------------------------
?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1;
@@ -149,10 +132,9 @@ offset_wedge:=0.4; thickness_frame:=0.2;
max_blength:=10mm; blength:=mangle:=0; max_labelsize:=20mm; dottedline_gap:=1.5;
%--------------------------------------------------------------------------------------------------
fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5);
-%==================================================================================================
-bboxmargin:=0; % 2bp => 0
+%=== bboxmargin:=0; % 2bp => 0 ====================================================================
ahangle:=45; ahlength:=4; defaultsize:=8; defaultscale:=1; labeloffset:=3; ext_defaultline:=0.5;
-lonepairdiam:=lonepairspace:=circlediam:=circlepen:=0;
+lonepairdiam:=lonepairspace:=circlediam:=circlepen:=bboxmargin:=0;
%==================================================================================================
parts_emb_start:=1000; % 1001 => 2000 for embedded parts (max 1900)
parts_emi_start:=1900; % 1901 => 2000 for embedded internal parts (max 100)
@@ -160,8 +142,9 @@ parts_usr_start:=2000; % 2001 => 3000 for user parts (max 1000)
parts_int_start:=3000; % 3001 => 4000 for internal parts (max 1000)
%--------------------------------------------------------------------------------------------------
def def_com(expr n)(text tx)= nA:=n; forsuffixes list=tx:: list:=nA; nA:=nA+1; endfor enddef;
-def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_tmp_line,
- _chg_len,_get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB, _group_si,_group_dm,_group_wf,_group_zf,_set_adr,_mk_bond,_set_atom,_arrange_ang,_chg_atom,
+def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_tmp_line,_chg_len,
+ _get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB,
+ _group_si,_group_dm,_group_wf,_group_zf,_set_adr,_mk_bond,_set_atom,_arrange_ang,_chg_atom,
_tmp_rot,_fuse,_size_atom,_numeric,_jump_at,_set_add,_chg_add,_nop,_mark,_moff,_term,_len_s,
_len_e,_len_ss,_len_ee,_group_s,_group_e,_rest,_charge,_from,_until,
si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,wf_r,wb_r,bd_r,
@@ -179,52 +162,52 @@ enddef;
%--------------------------------------------------------------------------------------------------
def init_par(text t)=
nA:=nB:=nC:=0;
- for list=t:
- if numeric list: nA:=nA+1; save_num[nA]:=list;
- ef pair list: nB:=nB+1; save_pair[nB]:=list;
- ef string list: nC:=nC+1; save_str[nC]:=list;
- fi
+ for list=t: if numeric list: nA:=nA+1; save_num[nA]:=list;
+ ef pair list: nB:=nB+1; save_pair[nB]:=list;
+ ef string list: nC:=nC+1; save_str[nC]:=list; fi
endfor
enddef;
%--------------------------------------------------------------------------------------------------
def store_par(text t)=
nA:=nB:=nC:=0;
- for list=t:
- if numeric list: nA:=nA+1; if save_num[nA]<>list: save_num[nA]:=list; fi
- ef pair list: nB:=nB+1; if save_pair[nB]<>list: save_pair[nB]:=list; fi
- ef string list: nC:=nC+1; if save_str[nC]<>list: save_str[nC]:=list; fi
- fi
+ for list=t: if numeric list: nA:=nA+1; if save_num[nA]<>list: save_num[nA]:=list; fi
+ ef pair list: nB:=nB+1; if save_pair[nB]<>list: save_pair[nB]:=list; fi
+ ef string list: nC:=nC+1; if save_str[nC]<>list: save_str[nC]:=list; fi fi
endfor
enddef;
%--------------------------------------------------------------------------------------------------
def restore_par(text t)=
nA:=nB:=nC:=0;
- forsuffixes list=t:
- if numeric list: nA:=nA+1; if list<>save_num[nA]: list:=save_num[nA]; fi
- ef pair list: nB:=nB+1; if list<>save_pair[nB]: list:=save_pair[nB]; fi
- ef string list: nC:=nC+1; if list<>save_str[nC]: list:=save_str[nC]; fi
- fi
+ forsuffixes list=t: if numeric list: nA:=nA+1; if list<>save_num[nA]: list:=save_num[nA]; fi
+ ef pair list: nB:=nB+1; if list<>save_pair[nB]: list:=save_pair[nB]; fi
+ ef string list: nC:=nC+1; if list<>save_str[nC]: list:=save_str[nC]; fi fi
endfor
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def beginfigm(text s)=
begingroup
- save ',f_ext,blen,ext,add,ang_br,fw_n,bw_n,at_colon,info_cnt,group_num,info_s,bond_cntA,
- warning_cnt,hideH_cnt,filter_s,mc_indent,cntM,cntA,cntB,minX,minY,maxX,maxY,posA,posM,hideH, lineB,sB,eB,angB,angA,lenB,angX,numS,sumA,bond_num,wdM,htM,chargeA,addA,add_rot,cal_FM,
- cal_MW,cal_MI,inf_Cat,inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW;
- numeric mc_indent[],hideH[],lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],numS[],sumA[],
- bond_num[],wdM[],htM[],chargeA[],addA[],add_rot[];
+ save ',mc,f_ext,blen,ext,add,ang_br,fw_n,bw_n,at_colon,info_cnt,group_num,info_s,bond_cntA,
+ warning_cnt,hideH_cnt,filter_s,mc_indent,cntM,cntA,cntB,minX,minY,maxX,maxY,posA,posM,
+ hideH,lineB,sB,eB,angB,angA,lenB,angX,numS,sumA,bond_num,wdM,htM,chargeA,addA,add_rot,
+ file_input,file_output,cal_FM,cal_MW,cal_MI,inf_Cat,inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,
+ inf_USE,inf_EXA,inf_EXB,inf_MW,mol_pic,sC,sI,sS,sT,sV,color_list,
+ unit_cnt,f_end,semic_cnt,f_match,var_n,tag_a,var_a,at_semic;
+ numeric mc_indent[],hideH[],lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],strA[],sumA[],
+ bond_num[],wdM[],htM[],chargeA[],addA[],add_rot[],at_semic[];
pair posA[],posM[][];
- string info_s[],filter_s,cal_FM,cal_MW,cal_MI,inf_Cat,inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,
- inf_USE,inf_EXA,inf_EXB,inf_MW;
+ string info_s[],mc[],tag_a[],var_a[],mc,filter_s,file_input,file_output,cal_FM,cal_MW,cal_MI,
+ inf_Cat,inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW,
+ sC,sI,sS,sT,sV;
+ picture mol_pic[];
+ color color_list[];
%------------------------------------------------------------------------------------------------
- def ext=ext_to_fig enddef; def add=add_to_molecule enddef; def '=read_ud enddef;
+ let ext=ext_to_fig; let add=add_to_molecule; def '=read_ud enddef;
%------------------------------------------------------------------------------------------------
inf_NO:=inf_EN:=inf_JN:=inf_MW:=inf_FM:=inf_CAS:=inf_Cat:=inf_EXA:=inf_EXB:="-";
mc:=temps:=cal_MW:=cal_MI:=cal_FM:=filter_s:="";
file_input:=default_data_file;
%------------------------------------------------------------------------------------------------
- parts_cnt:=parts_usr_start; parts_int:=parts_int_start;
+ parts_num:=parts_usr_start; parts_int:=parts_int_start;
%------------------------------------------------------------------------------------------------
store_par(parameter_list);
fig_num:=fig_num+1; f_ext:=cntM:=mc_row:=info_cnt:=f_EOF:=0;
@@ -242,9 +225,7 @@ def beginfigm(text s)=
ef sT="t": temps:=sV;
ef sT="v": pickup_data_unit(temps,sV,1);
ef sT="v+": pickup_data_unit(temps,sV,0);
- else: if known scantokens("inf_"&sT): scantokens("inf_"&sT):=sV; fi
- fi
- fi
+ else: if known scantokens("inf_"&sT): scantokens("inf_"&sT):=sV; fi fi fi
endfor
%------------------------------------------------------------------------------------------------
mol_pic[0]:=nullpicture;
@@ -266,8 +247,7 @@ def endfigm=
if ypart(posM[1][i])<nC: nC:=ypart(posM[1][i]); fi
if ypart(posM[2][i])>nD: nD:=ypart(posM[2][i]); fi
endfor
- fig_wd:=nB-nA+2margin_lr; fig_ht:=nD-nC+2margin_tb;
- fsize:=(fig_wd,fig_ht);
+ fig_wd:=nB-nA+2margin_lr; fig_ht:=nD-nC+2margin_tb; fsize:=(fig_wd,fig_ht);
for i=1 upto cntM:
posM[0][i]:=posM[0][i]+(margin_lr-nA,margin_tb-nC);
posM[1][i]:=posM[1][i]+(margin_lr-nA,margin_tb-nC);
@@ -305,7 +285,7 @@ def endfigm=
if scan_bit(sw_output,MOL2k): proc_mol_out(1); fi
if scan_bit(sw_output,MOL3k): proc_mol_out(2); fi
%-------------------------------------------------------------------------------------------
- %% message "* parts_cnt (0)="& decimal(parts_cnt) &" "& decimal(parts_usr-parts_usr_start);
+ %% message "* parts_num (0)="& decimal(parts_num) &" "& decimal(parts_usr-parts_usr_start);
%% message "* parts_int (0)="& decimal(parts_int) &" "& decimal(parts_int-parts_int_start);
%-------------------------------------------------------------------------------------------
fi
@@ -315,10 +295,6 @@ def endfigm=
enddef;
%-------------------------------------------------------------------------------------------------
def pickup_data_unit(expr t,v,f)=
- begingroup
- save unit_cnt,f_end,semic_cnt,f_match,var_n,tag_a,var_a,at_semic;
- string tag_a[],var_a[];
- numeric at_semic[];
f_end:=unit_cnt:=semic_cnt:=f_match:=inf_num:=0;
if t="n": var_n:=scantokens(v); fi
forever:
@@ -332,8 +308,7 @@ def pickup_data_unit(expr t,v,f)=
if sS=EOF: f_EOF:=1; fi exitif sS=EOF; exitif subc(1,sS)="+";
if subc(1,sS)<>"%":
fw_n:=scan_char(" ",sS,1,1); mc_row:=mc_row+1; mc_indent[mc_row]:=fw_n-1;
- mc[mc_row]:=substring(fw_n-1,length(sS)) of sS; mc:=mc&mc[mc_row];
- fi
+ mc[mc_row]:=substring(fw_n-1,length(sS)) of sS; mc:=mc&mc[mc_row]; fi
endfor
for i=1 upto inf_num:
if known scantokens("inf_"&tag_a[i]): scantokens("inf_"&tag_a[i]):=var_a[i]; fi
@@ -349,8 +324,7 @@ def pickup_data_unit(expr t,v,f)=
semic_cnt:=split_semic(sS); inf_num:=semic_cnt+1;
for i=1 upto inf_num:
if i<=semic_cnt: sI:=substring(at_semic[i-1],at_semic[i]-1) of sS;
- else: sI:=substring(at_semic[semic_cnt],length(sS)) of sS;
- fi
+ else: sI:=substring(at_semic[semic_cnt],length(sS)) of sS; fi
nA:=scan_char(":",sI,0,1);
tag_a[i]:=substring(0,nA-1) of sI; var_a[i]:=substring(nA,length(sI)) of sI;
if t=tag_a[i]: if v=var_a[i]: f_match:=1; fi fi
@@ -359,7 +333,6 @@ def pickup_data_unit(expr t,v,f)=
exitif f_end=1;
endfor
if f=1: closefrom file_input; fi
- endgroup;
enddef;
%--------------------------------------------------------------------------------------------------
vardef scan_bit(expr n,b)= if b>=1: odd(floor(n/b)) else: odd(floor((frac n)/b)) fi enddef;
@@ -368,14 +341,12 @@ vardef scan_char(expr c,s,d,n)=
nN:=0;
if d=0: for i=n upto length(s): if subc(i,s)=c: nN:=i; fi exitif nN>0; endfor
ef d=1: for i=n upto length(s): if subc(i,s)<>c: nN:=i; fi exitif nN>0; endfor
- ef d=-1: for i=length(s) downto n: if subc(i,s)<>c: nN:=i; fi exitif nN>0; endfor
- fi
- nN
+ ef d=-1: for i=length(s) downto n: if subc(i,s)<>c: nN:=i; fi exitif nN>0; endfor fi nN
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-vardef '(text t)= parts_cnt:=parts_cnt+1; read_mcf(parts_cnt)(t); parts_cnt enddef;
-vardef read_id(text t)=read_mcf(incr parts_cnt)(|,#rate_cr,t,##,(_com,_rest)); parts_cnt enddef;
-vardef read_ud(text t)=read_mcf(incr parts_cnt)(dum,dum,|,t,(_com,_rest)); parts_cnt enddef;
+vardef '(text t)= parts_num:=parts_num+1; read_mcf(parts_num)(t); parts_num enddef;
+vardef read_id(text t)=read_mcf(incr parts_num)(|,#rate_cr,t,##,(_com,_rest)); parts_num enddef;
+vardef read_ud(text t)=read_mcf(incr parts_num)(dum,dum,|,t,(_com,_rest)); parts_num enddef;
vardef abs_adress primary n = if n LT 0:: (n+360)-4095 else:: n-4095 fi enddef;
primarydef a from_until b = (_from,a),(_until,b) enddef;
tertiarydef a op_equ b = if (known a)and(known b):: change_bond(a,b) else:: _nop fi enddef;
@@ -384,15 +355,14 @@ tertiarydef a op_hat b = if known b:: (_tmp_rot,b),a else:: _nop,a fi enddef;
tertiarydef a op_til b = if known b:: (_tmp_line,b),a else:: _nop,a fi enddef;
tertiarydef a op_lt b = if known b:: (_tmp_env,b),a else:: _nop,a fi enddef;
tertiarydef a op_bq b = if known b:: (_tmp_len,b),a else:: _nop,a fi enddef;
-def rot_angle primary n = (_rot_ang,n) enddef;
-def cyc_atom primary n = (_cyc,n) enddef;
+def rot_angle primary n = (_rot_ang,n) enddef; def cyc_atom primary n = (_cyc,n) enddef;
def jump_atom_abs primary a =
if numeric a:: (_jp_atom,$a) ef pair a:: (_jp_atom,$1),<$0,angle(a)~0`length(a),<$0 fi
enddef;
def jump_atom primary a =
if numeric a:: (_jp_atom,a) ef pair a:: <$0,angle(a)~0`length(a),<$0 fi
enddef;
-def chg_length primary n = (_com,_len_s),(_chg_len,n) enddef;
+def chg_length primary n = (_com,_len_s),(_chg_len,n) enddef;
def group_si secondary n = if known n:: (_group_si,n) else:: _nop fi enddef;
def group_dm secondary n = if known n:: (_group_dm,n) else:: _nop fi enddef;
def group_wf secondary n = if known n:: (_group_wf,n) else:: _nop fi enddef;
@@ -407,39 +377,34 @@ def read_mcf(expr n)(text t)=
save nCP;
if unknown inside_MC::
save /,//,/*,*/,**,*/*,~,^,',`,<,>,:,=,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_,inside_MC;
- pair |,||,##;
- | :=(_com,_mark); || := (_com,_moff); ##:=(_com,_len_e);
- _:=Me; \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv;
- let = ==op_equ; let : == op_col; let ^ ==op_hat; let ~ ==op_til; let > ==op_lt; let ` ==op_bq;
- def { == read_number( enddef; let } == );
- def @$ == jump_atom_abs enddef; def ' == read_id enddef;
- def < == rot_angle enddef; def @ == jump_atom enddef; def & == cyc_atom enddef;
- def # == chg_length enddef; def $ == abs_adress enddef; def &$ == &.$ enddef;
- def / == group_si enddef; def // == group_dm enddef; def */ == group_wf enddef;
- def /* == group_zf enddef; def */* == group_wv enddef; def ** == group_nb enddef;
+ | :=mark_adress; || :=reset_adress; ##:=reset_length; _:=Me;
+ \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv;
+ let = ==op_equ; let : ==op_col; let ^==op_hat; let ~==op_til; let > ==op_lt; let `==op_bq;
+ def $==abs_adress enddef; def &$==&.$ enddef; def '==read_id enddef;
+ def {==read_number( enddef;
+ let }==); let @$==jump_atom_abs; let < ==rot_angle; let @==jump_atom; let &==cyc_atom;
+ let #==chg_length; let /==group_si; let //==group_dm; let */==group_wf; let /*==group_zf;
+ let */*==group_wv; let **==group_nb;
inside_MC:=1;
fi
%----------------------------------------------------------------------------------------------
nCP:=0;
for list==t::
if known list::
- if pair list:: nCP:=nCP+1; comD[n][nCP]:=xpart(list); parD[n][nCP]:=ypart(list);
+ if pair list:: nCP:=nCP+1; parts_com[n][nCP]:=xpart(list); parts_par[n][nCP]:=ypart(list);
ef numeric list::
if list==_nop:: message "unknown command in "AND decimal(n);
ef list>=parts_emb_start::
- for i==1 upto cntD[list]::
- nCP:=nCP+1; comD[n][nCP]:=comD[list][i]; parD[n][nCP]:=parD[list][i];
+ for i==1 upto parts_cnt[list]::
+ nCP:=nCP+1;
+ parts_com[n][nCP]:=parts_com[list][i]; parts_par[n][nCP]:=parts_par[list][i];
endfor
- else:: nCP:=nCP+1; comD[n][nCP]:=_mk_bond; parD[n][nCP]:=list;
+ else:: nCP:=nCP+1; parts_com[n][nCP]:=_mk_bond; parts_par[n][nCP]:=list; fi
fi
- ef string list::
- str_cnt:=str_cnt+1; strD[str_cnt]:=list;
- nCP:=nCP+1; comD[n][nCP]:=_set_atom; parD[n][nCP]:=str_cnt;
- fi
else:: message "unknown command in "AND decimal(n);
fi
endfor
- cntD[n]:=nCP;
+ parts_cnt[n]:=nCP;
endgroup
enddef;
%-------------------------------------------------------------------------------------------------
@@ -451,21 +416,22 @@ vardef read_number(text t)=
if known list::
if numeric list::
if list==_nop:: message "unknown command in "AND decimal(parts_int);
- else:: nA:=nA+1; comD[parts_int][nA]:=_numeric; parD[parts_int][nA]:=list;
+ else:: nA:=nA+1; parts_com[parts_int][nA]:=_numeric; parts_par[parts_int][nA]:=list;
fi
ef pair list::
if xpart(list)==_from:: nB:=ypart(list);
ef xpart(list)==_until:: nC:=ypart(list);
for i==nB upto nC::
- nA:=nA+1; comD[parts_int][nA]:=_numeric; parD[parts_int][nA]:=i;
+ nA:=nA+1; parts_com[parts_int][nA]:=_numeric; parts_par[parts_int][nA]:=i;
endfor
- else:: nA:=nA+1; comD[parts_int][nA]:=xpart(list); parD[parts_int][nA]:=ypart(list);
+ else:: nA:=nA+1;
+ parts_com[parts_int][nA]:=xpart(list); parts_par[parts_int][nA]:=ypart(list);
fi
fi
else:: message "unknown command in "AND decimal(parts_int);
fi
endfor
- cntD[parts_int]:=nA; parts_int
+ parts_cnt[parts_int]:=nA; parts_int
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def fuse_ring(expr a,b) =
@@ -498,54 +464,54 @@ vardef change_bond(expr a,b) =
if numeric b::
if (b>=si)and(b<=bd_)::
if a>=parts_int_start::
- for i==1 upto cntD[a]::
- if comD[a][i]==_numeric::
- if frac parD[a][i]==0:: com_par(_set_adr,parD[a][i]) com_par(_set_line,b)
- ef b==dl:: com_par(_set_adr,floor parD[a][i]) com_par(_set_line,dr)
- ef b==dr:: com_par(_set_adr,floor parD[a][i]) com_par(_set_line,dl)
- else:: com_par(_set_adr,floor parD[a][i]) com_par(_set_line,b)
- fi
- fi
+ for i==1 upto parts_cnt[a]::
+ if parts_com[a][i]==_numeric::
+ if frac parts_par[a][i]==0:: com_par(_set_adr,parts_par[a][i]) com_par(_set_line,b)
+ ef b==dl:: com_par(_set_adr,floor parts_par[a][i]) com_par(_set_line,dr)
+ ef b==dr:: com_par(_set_adr,floor parts_par[a][i]) com_par(_set_line,dl)
+ else:: com_par(_set_adr,floor parts_par[a][i]) com_par(_set_line,b) fi fi
endfor
else:: com_par(_set_adr,a) com_par(_set_line,b)
fi
elseif (b>=?3)and(b<=?8[15])::
if numeric a::
if a>=parts_int_start::
- for i==1 upto cntD[a]::
- if comD[a][i]==_numeric::
- if b==Ph1:: fuse_ring(parD[a][i],6)
+ for i==1 upto parts_cnt[a]::
+ if parts_com[a][i]==_numeric::
+ if b==Ph1:: fuse_ring(parts_par[a][i],6)
CP(_set_adr,-2) CP(_set_line,dl) CP(_set_adr,-4) CP(_set_line,dl)
- ef b==Ph2:: fuse_ring(parD[a][i],6)
+ ef b==Ph2:: fuse_ring(parts_par[a][i],6)
CP(_set_adr,-1) CP(_set_line,dl) CP(_set_adr,-3) CP(_set_line,dl)
CP(_set_adr,-5) CP(_set_line,dl)
ef (b>=?5[11])and(b<=?5[15]):: fuse_ring_size(a,5,b-?5[11]+11)
ef (b>=?6[11])and(b<=?6[15]):: fuse_ring_size(a,6,b-?6[11]+11)
ef (b>=?7[11])and(b<=?7[15]):: fuse_ring_size(a,7,b-?7[11]+11)
ef (b>=?8[11])and(b<=?8[15]):: fuse_ring_size(a,8,b-?8[11]+11)
- else:: fuse_ring(parD[a][i],b-?3+3)
- fi
+ else:: fuse_ring(parts_par[a][i],b-?3+3) fi
else::
if b==?6::
- if (frac comD[a][i]==0)and(frac parD[a][i]==0)::
- fuse_ring_bonds((comD[a][i],parD[a][i]),6,4)
- ef frac comD[a][i]==0:: fuse_ring_bonds((comD[a][i],floor parD[a][i]),6,3)
- ef frac parD[a][i]==0:: fuse_ring_bonds((floor comD[a][i],parD[a][i]),6,3)
- else:: fuse_ring_bonds((floor comD[a][i],floor parD[a][i]),6,2)
- fi
+ if (frac parts_com[a][i]==0)and(frac parts_par[a][i]==0)::
+ fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),6,4)
+ ef frac parts_com[a][i]==0::
+ fuse_ring_bonds((parts_com[a][i],floor parts_par[a][i]),6,3)
+ ef frac parts_par[a][i]==0::
+ fuse_ring_bonds((floor parts_com[a][i],parts_par[a][i]),6,3)
+ else:: fuse_ring_bonds((floor parts_com[a][i],floor parts_par[a][i]),6,2) fi
ef b==?5::
- if (frac comD[a][i]==0)and(frac parD[a][i]==0)::
- fuse_ring_bonds((comD[a][i],parD[a][i]),5,3)
- ef frac comD[a][i]==0:: fuse_ring_bonds((comD[a][i],floor parD[a][i]),5,2)
- ef frac parD[a][i]==0:: fuse_ring_bonds((floor comD[a][i],floor parD[a][i]),5,2)
+ if (frac parts_com[a][i]==0)and(frac parts_par[a][i]==0)::
+ fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),5,3)
+ ef frac parts_com[a][i]==0::
+ fuse_ring_bonds((parts_com[a][i],floor parts_par[a][i]),5,2)
+ ef frac parts_par[a][i]==0::
+ fuse_ring_bonds((floor parts_com[a][i],floor parts_par[a][i]),5,2)
fi
- ef b==?4:: fuse_ring_bonds((comD[a][i],parD[a][i]),4,2)
- ef b==?6[3]:: fuse_ring_bonds((comD[a][i],parD[a][i]),6,3)
- ef b==?6[2]:: fuse_ring_bonds((comD[a][i],parD[a][i]),6,2)
- ef b==?5[2]:: fuse_ring_bonds((comD[a][i],parD[a][i]),5,2)
- ef b==Ph1:: fuse_ring_bonds((comD[a][i],parD[a][i]),6,4)
+ ef b==?4:: fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),4,2)
+ ef b==?6[3]:: fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),6,3)
+ ef b==?6[2]:: fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),6,2)
+ ef b==?5[2]:: fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),5,2)
+ ef b==Ph1:: fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),6,4)
CP(_set_adr,-1) CP(_set_line,dl) CP(_set_adr,-3) CP(_set_line,dl)
- ef b==Ph2:: fuse_ring_bonds((comD[a][i],parD[a][i]),6,4)
+ ef b==Ph2:: fuse_ring_bonds((parts_com[a][i],parts_par[a][i]),6,4)
CP(_set_adr,-2) CP(_set_line,dl) CP(_set_adr,-4) CP(_set_line,dl)
fi
fi
@@ -559,9 +525,7 @@ vardef change_bond(expr a,b) =
ef (b>=?6[11])and(b<=?6[15]):: fuse_ring_size(a,6,b-?6[11]+11)
ef (b>=?7[11])and(b<=?7[15]):: fuse_ring_size(a,7,b-?7[11]+11)
ef (b>=?8[11])and(b<=?8[15]):: fuse_ring_size(a,8,b-?8[11]+11)
- else:: fuse_ring(a,b-?3+3)
- fi
- fi
+ else:: fuse_ring(a,b-?3+3) fi fi
ef pair a::
if b==?6:: fuse_ring_bonds(a,6,4)
ef b==?5:: fuse_ring_bonds(a,5,3)
@@ -572,13 +536,11 @@ vardef change_bond(expr a,b) =
ef b==Ph1:: fuse_ring_bonds(a,6,4)
CP(_set_adr,-1) CP(_set_line,dl) CP(_set_adr,-3) CP(_set_line,dl)
ef b==Ph2:: fuse_ring_bonds(a,6,4)
- CP(_set_adr,-2) CP(_set_line,dl) CP(_set_adr,-4) CP(_set_line,dl)
- fi
+ CP(_set_adr,-2) CP(_set_line,dl) CP(_set_adr,-4) CP(_set_line,dl) fi
fi
fi
- elseif color b:: color_list[incr cntC]:=b; CPe(a)(_set_colorB,cntC)
- fi
- cntD[parts_int]:=nC; parts_int
+ elseif color b:: color_list[incr cntC]:=b; CPe(a)(_set_colorB,cntC) fi
+ parts_cnt[parts_int]:=nC; parts_int
fi
enddef;
%-------------------------------------------------------------------------------------------------
@@ -601,33 +563,33 @@ vardef change_atom(expr a,b)=
ef pair b::
CP(_com,_group_s)
if a>=parts_emb_start::
- for i==1 upto cntD[a]::
- if comD[a][i]==_numeric::
+ for i==1 upto parts_cnt[a]::
+ if parts_com[a][i]==_numeric::
if xpart(b)==_group_wf::
- if frac parD[a][i]==0:: CP(_set_adr,parD[a][i]) CP(_group_wf,ypart(b))
- else:: CP(_set_adr,floor parD[a][i]) CP(_group_zf,ypart(b)) fi
+ if frac parts_par[a][i]==0:: CP(_set_adr,parts_par[a][i]) CP(_group_wf,ypart(b))
+ else:: CP(_set_adr,floor parts_par[a][i]) CP(_group_zf,ypart(b)) fi
ef xpart(b)==_group_zf::
- if frac parD[a][i]==0:: CP(_set_adr,parD[a][i]) CP(_group_zf,ypart(b))
- else:: CP(_set_adr,floor parD[a][i]) CP(_group_wf,ypart(b)) fi
- else:: CP(_set_adr,parD[a][i]) CP(xpart(b),ypart(b)) fi
- else:: CP(comD[a][i],parD[a][i]) fi
+ if frac parts_par[a][i]==0:: CP(_set_adr,parts_par[a][i]) CP(_group_zf,ypart(b))
+ else:: CP(_set_adr,floor parts_par[a][i]) CP(_group_wf,ypart(b)) fi
+ else:: CP(_set_adr,parts_par[a][i]) CP(xpart(b),ypart(b)) fi
+ else:: CP(parts_com[a][i],parts_par[a][i]) fi
endfor
else:: CP(_set_adr,a) CP(xpart(b),ypart(b))
fi
CP(_com,_group_e)
ef color b:: color_list[incr cntC]:=b; CPe(a)(_set_colorA,cntC)
fi
- cntD[parts_int]:=nC; parts_int
+ parts_cnt[parts_int]:=nC; parts_int
fi
enddef;
%-------------------------------------------------------------------------------------------------
-def com_par(expr a,b)= nC:=nC+1; comD[parts_int][nC]:=a; parD[parts_int][nC]:=b; enddef;
+def com_par(expr a,b)= nC:=nC+1; parts_com[parts_int][nC]:=a; parts_par[parts_int][nC]:=b; enddef;
%-------------------------------------------------------------------------------------------------
def com_par_ex(expr f)(expr c)(expr a,b)=
if c>=parts_emb_start::
- for i==1 upto cntD[c]::
- if comD[c][i]==_numeric:: com_par(_set_adr,parD[c][i]) com_par(a,b)
- ef f==1:: com_par(comD[c][i],parD[c][i]) fi
+ for i==1 upto parts_cnt[c]::
+ if parts_com[c][i]==_numeric:: com_par(_set_adr,parts_par[c][i]) com_par(a,b)
+ ef f==1:: com_par(parts_com[c][i],parts_par[c][i]) fi
endfor
else:: com_par(_set_adr,c) com_par(a,b)
fi
@@ -691,22 +653,27 @@ vardef lone_pair_add expr n=
image(draw (0,0) wpcs lonepairdiam; draw ((0,lonepairspace) rotated n) wpcs lonepairdiam;)
enddef;
%=================================================================================================
-def MCat(expr w,h)(text t)= mpos:=mposition; mposition:=(w,h); MC(t) mposition:=mpos; enddef;
+def MCat(expr w,h)(text t)=
+ save_mposition:=mposition; mposition:=(w,h); MC(t) mposition:=save_mposition;
+enddef;
%-------------------------------------------------------------------------------------------------
def MC(text t)=
begingroup
- save f_bra,strAT,temp_lenE,temp_lenF,temp_cntB,f_term,f_at,f_lineT,f_rotT,angL,lenL,cpos,tpos,
- f_lenT,f_envT,factor,m_wd,m_ht,raise_pos,slen,sdir,char_wd,char_ht,tcol,f_col,knownA,
+ save f_bra,temp_strA,temp_lenE,temp_lenF,temp_cntB,f_term,f_at,f_lineT,f_rotT,angL,lenL,cpos,
+ tpos,f_lenT,f_envT,factor,m_wd,m_ht,raise_pos,slen,sdir,char_wd,char_ht,tcol,f_col,knownA,
markA,markB,saveA,saveB,bondL,lenT,lineT,angT,rotT,envT,envB,rate_cr,posBs,posBe,
- f_char,group_par,group_cnt,group_com,colorA,colorB;
- numeric f_char[],group_com[][],group_par[][],group_cnt[],colorA[],colorB[];
- pair cpos,tpos,raise_pos,posBs,posBe;
- path frameA[];
+ group_par,group_cnt,group_com,colorA,colorB,aW,aH,fW,fH,hW,hW,hH,qH,fP,hP,
+ ww,aw,ap,am,Ls,Le,pA,zA,zL,cC,cH,cO,cN,cS,cF,cP;
+ numeric group_com[][],group_par[][],group_cnt[],colorA[],colorB[];
+ string cC,cH,cO,cN,cS,cF,cP;
+ pair cpos,tpos,raise_pos,posBs,posBe,pA,Ls,Le;
+ path frameA[],zA,zL;
%-----------------------------------------------------------------------------------------------
if (sw_expand=1)or(scan_bit(sw_output,MOL2k))or(scan_bit(sw_output,MOL3k)):
expand_set; rate_cr:=1; else: rate_cr:=-ratio_chain_ring;
fi
- cntA:=cntB:=cntC:=group_num:=0; strD[0]:=cC; str_cnt:=2000;
+ cC:="C"; cH:="H"; cO:="O"; cN:="N"; cS:="S"; cF:="F"; cP:="P";
+ cntA:=cntB:=cntC:=group_num:=0; str_tbl[0]:=cC; str_cnt:=2000;
%-----------------------------------------------------------------------------------------------
fig_wd:=xpart(fsize); fig_ht:=ypart(fsize);
margin_lr:=xpart(fmargin); margin_tb:=ypart(fmargin);
@@ -714,7 +681,6 @@ def MC(text t)=
read_mcf(0)(t,(_com,_term));
proc_bond_atom(0)(1);
if (group_num>0)and(not scan_bit(sw_abbreviate,Group)): read_group(0)(1); fi
- char_use_check;
%-scaling---------------------------------------------------------------------------------------
if blength>1: blen:=blength; proc_size_setup; proc_skeleton(0); proc_scaling;
elseif blength>0: blen:=fig_wd*blength; proc_size_setup; proc_skeleton(0); proc_scaling;
@@ -749,13 +715,13 @@ def MC(text t)=
%===============================================================================================
if scan_bit(sw_output,Fig):
%-draw atom-----------------------------------------------------------------------------------
- if sw_numbering=0: for i=1 upto cntA: if numS[i]<>0: draw_atom(i); fi endfor fi
+ if sw_numbering=0: for i=1 upto cntA: if strA[i]<>0: draw_atom(i); fi endfor fi
%-draw add to atom----------------------------------------------------------------------------
if (not scan_bit(sw_numbering,Atom))and(not scan_bit(sw_numbering,Bond)):
for i=1 upto cntA:
if addA[i]<>0:
- nA:=angX[i]+add_rot[i]; nC:=nA mod 90;
- if numS[i]=0: nB:=.5atom_wd; else: nB:=atom_wd; fi
+ nA:=angX[i]+add_rot[i]; nC:=nA mod 90;
+ if strA[i]=0: nB:=.5atom_wd; else: nB:=atom_wd; fi
draw_char(char(addA[i]),sfrt(posA[i],nB,nA));
fi
endfor
@@ -816,7 +782,7 @@ def add_group=
if envT<>hz: store_group(_chg_env,envT) fi
if lineT=nl: store_group(_chg_len,_size_atom) store_group(_adj_ang,0) fi
if lineT<>nb: store_group(_mk_bond,0) fi
- for i=1 upto cntD[nP]: store_group(comD[nP][i],parD[nP][i]) endfor
+ for i=1 upto parts_cnt[nP]: store_group(parts_com[nP][i],parts_par[nP][i]) endfor
store_group(_com,_len_e) store_group(_chg_env,hz) store_group(_com,_term)
if f_lineT=0: lineT:=si; fi
if f_lenT=0: lenT:=rate_cr; fi
@@ -830,10 +796,11 @@ def store_group(expr a,b)=
enddef;
%=================================================================================================
def read_group(expr a)(expr n)=
- save_group_cnt:=group_num; save_cntD:=cntD[a];
+ save_group_cnt:=group_num; save_cntD:=parts_cnt[a];
for i=n upto group_num:
for j=1 upto group_cnt[i]:
- cntD[a]:=cntD[a]+1; comD[a][cntD[a]]:=group_com[i][j]; parD[a][cntD[a]]:=group_par[i][j];
+ parts_cnt[a]:=parts_cnt[a]+1;
+ parts_com[a][parts_cnt[a]]:=group_com[i][j]; parts_par[a][parts_cnt[a]]:=group_par[i][j];
endfor
endfor
proc_bond_atom(a)(save_cntD+1);
@@ -861,10 +828,10 @@ def proc_scaling=
minX:=minY:=4095; maxX:=maxY:=-4095;
for i=1 upto cntA:
nX:=xpart(posA[i]); nY:=ypart(posA[i]);
- if numS[i]<>0:
+ if strA[i]<>0:
nU:=nD:=nP:=nL:=nR:=0;
- for j=1 upto length(strD[numS[i]]):
- tempc:=subc(j,strD[numS[i]]);
+ for j=1 upto length(str_tbl[strA[i]]):
+ tempc:=subc(j,str_tbl[strA[i]]);
if tempc="^": nU:=.5atom_wd;
ef tempc="_": nD:=.5atom_wd;
ef (tempc<>"{")and(tempc<>"}"): nP:=nP+atom_wd*tbl_char_wd[ASCII(tempc)];
@@ -881,25 +848,13 @@ def proc_scaling=
endfor
mol_wd:=maxX-minX; mol_ht:=maxY-minY;
enddef;
-%-------------------------------------------------------------------------------------------------
-def char_use_check=
- for i=1 upto 128: f_char[i]:=0; endfor
- if sw_numbering>=1: for j=a_zero upto a_nine: f_char[j]:=1; endfor
- else:
- for i=1 upto cntA:
- if numS[i]<>0:
- for j=1 upto length(strD[numS[i]]): f_char[ASCII(subc(j,strD[numS[i]]))]:=1; endfor
- fi
- endfor
- fi
-enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def proc_bond_atom(expr a)(expr n)=
- f_bra:=f_term:=rotT:=f_lineT:=f_rotT:=f_lenT:=f_envT:=envT:=envB:=strAT:=f_at:=0;
+ f_bra:=f_term:=rotT:=f_lineT:=f_rotT:=f_lenT:=f_envT:=envT:=envB:=temp_strA:=f_at:=0;
bondL:=rate_cr; lenT:=rate_cr; sB[0]:=0; eB[0]:=1; lineT:=si;
addAT:=markA:=markB:=saveA:=saveB:=0;
%-----------------------------------------------------------------------------------------------
- for i=n upto cntD[a]: nC:=comD[a][i]; nP:=parD[a][i];
+ for i=n upto parts_cnt[a]: nC:=parts_com[a][i]; nP:=parts_par[a][i];
if nC=_mk_bond: if (nP=0)and(rotT<>0): rotT:=0; fi add_atom(0);
ef nC=_set_adr: adrT:=nP;
ef nC=_com: if nP=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB;
@@ -911,9 +866,8 @@ def proc_bond_atom(expr a)(expr n)=
ef nP=_group_s: f_at:=1; if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi
if lenT<>rate_cr: f_lenT:=1; fi if envT<>hz: f_envT:=1; fi
ef nP=_group_e: f_at:=0; f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0;
- lineT:=si; lenT:=rate_cr;
- fi
- ef nC=_set_atom: strAT:=nP;
+ lineT:=si; lenT:=rate_cr; fi
+ ef nC=_set_atom: temp_strA:=nP;
ef nC=_group_si: add_group;
ef nC=_group_dm: lineT:=dm; add_group;
ef nC=_group_wf: lineT:=wf; add_group;
@@ -921,7 +875,7 @@ def proc_bond_atom(expr a)(expr n)=
ef nC=_jp_bond: termA; nA:=getB(nP); check_adrB(nA); sB[cntB+1]:=sB[nA]; f_bra:=1;
ef nC=_jp_atom: termA; nA:=getA(nP); check_adrA(nA); sB[cntB+1]:=nA; f_bra:=1;
ef nC=_jp_absA: sB[cntB+1]:=nP; f_bra:=1; temp_cntB:=cntB;
- ef nC=_chg_atom: numS[getA(adrT)]:=parD[nP][1];
+ ef nC=_chg_atom: strA[getA(adrT)]:=parts_par[nP][1];
ef nC=_chg_len: if nP=_ring_len: bondL:=ringL; else: bondL:=nP; fi
ef nC=_get_len: if nP=_tmp_len: if bondL=rate_cr: bondL:=lenT; fi
ef nP=_ring_len:
@@ -948,8 +902,8 @@ enddef;
def add_atom(expr n)=
cntB:=cntB+1; lineB[cntB]:=lineT; lineT:=si;
if lenT=rate_cr: lenB[cntB]:=bondL; else: lenB[cntB]:=lenT; lenT:=rate_cr; fi
- if f_bra=0: cntA:=cntA+1; sB[cntB]:=cntA; numS[cntA]:=strAT;
- addA[cntA]:=addAT; addAT:=strAT:=add_rot[cntA]:=0;
+ if f_bra=0: cntA:=cntA+1; sB[cntB]:=cntA; strA[cntA]:=temp_strA;
+ addA[cntA]:=addAT; addAT:=temp_strA:=add_rot[cntA]:=0;
if rotT<>0: add_rot[cntA]:=rotT; rotT:=0; fi
else: f_bra:=0; fi
if n=0: eB[cntB]:=cntA+1; f_term:=0; else: eB[cntB]:=n; f_term:=1; fi
@@ -965,13 +919,12 @@ def proc_skeleton(expr n)=
envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0; lineT:=si; angT:=mangle;
angA[0]:=angB[0]:=angX[0]:=0; posA[0]:=posBs:=posBe:=(0,0);
%-----------------------------------------------------------------------------------------------
- for i=1 upto cntD[n]: nC:=comD[n][i]; nP:=parD[n][i];
+ for i=1 upto parts_cnt[n]: nC:=parts_com[n][i]; nP:=parts_par[n][i];
if nC=_mk_bond: if (nP=0)and(rotT<>0):nP:=rotT; rotT:=0; fi add_bond(nP,1);
ef nC=_com: if nP=_mark: saveA:=markA; saveB:=markB; markA:=cntA; markB:=cntB;
ef nP=_rest: markA:=saveA; markB:=saveB;
ef nP=_moff: markA:=markB:=0; ef nP=_term: termB;
- ef nP=_group_e: lineT:=si; lenT:=rate_cr; rotT:=envT:=0;
- fi
+ ef nP=_group_e: lineT:=si; lenT:=rate_cr; rotT:=envT:=0; fi
ef nC=_jp_bond: termB; nA:=getB(nP); posBs:=posA[sB[nA]]; angT:=angB[nA]; f_bra:=1; rotT:=0;
ef nC=_jp_atom: termB; adrT:=getA(nP); posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0;
ef nC=_jp_absA: adrT:=nP; posBs:=posA[adrT]; angT:=angX[adrT];
@@ -996,31 +949,25 @@ def add_bond(expr n,f)=
if f_bra=0:
adrT:=cntA:=cntA+1; posA[cntA]:=posBs; angA[cntA]:=angT;
angX[cntA]:=(angT+nA/2+iif(nA>=0,-90,90)) mod 360;
- else: f_bra:=0;
- fi
+ else: f_bra:=0; fi
cntB:=cntB+1;
if nA>-3700: angB[cntB]:=angT:=(angT+nA) mod 360; else: angB[cntB]:=angT:=nA+4095; fi
if f=1:
if lenB[cntB]=_size_atom: posBe:=sfrt(posBs,atom_wd,angT);
else:
nA:=lenB[cntB]; if nA<0: nB:=glu_atom(adrT)+glu_atom(cntA+1); nA:=abs(nA); else: nB:=0; fi
- posBe:=sfrt(posBs,nA*blen+nB,angT);
- fi
+ posBe:=sfrt(posBs,nA*blen+nB,angT); fi
posA[cntA+1]:=posBe; f_term:=0;
- else: f_term:=1;
- fi
+ else: f_term:=1; fi
posBs:=posBe;
enddef;
%-------------------------------------------------------------------------------------------------
vardef arrange_ang(expr n)=
if cntB=0: angT:=(angT-180) mod 360; 180
- else:
- if envB>=parts_emb_start: parD[envB][cntB-temp_cntB+3]
- else: if envB=hz: if n=0: 60 ef n<=90: -60 ef n<=180: 60 ef n<270: -60 else: 60 fi
- ef envB=vt: if n=0: -60 ef n<90: 60 ef n<=180: -60 ef n<=270: 60 else: -60 fi
- ef abs(envB)<=180: envB fi
- fi
- fi
+ else: if envB>=parts_emb_start: parts_par[envB][cntB-temp_cntB+3]
+ else: if envB=hz: if n=0: 60 ef n<=90: -60 ef n<=180: 60 ef n<270: -60 else: 60 fi
+ ef envB=vt: if n=0: -60 ef n<90: 60 ef n<=180: -60 ef n<=270: 60 else: -60 fi
+ ef abs(envB)<=180: envB fi fi fi
enddef;
%-------------------------------------------------------------------------------------------------
vardef adjust_ang(expr n)= if (n<40)or(n>320): 0 ef n<140: 90 ef n<220: 180 else: 270 fi enddef;
@@ -1031,12 +978,10 @@ vardef getB(expr n)= if n>=0: markB+n ef n>=-999: cntB+n+1 else: n+4095 fi endde
def termA=
if f_term=0:
if f_bra=0:
- cntA:=cntA+1; numS[cntA]:=strAT; addA[cntA]:=addAT; add_rot[cntA]:=rotT;
- addAT:=strAT:=rotT:=0;
- else: f_bra:=0;
- fi
- f_term:=1;
- fi
+ cntA:=cntA+1; strA[cntA]:=temp_strA; addA[cntA]:=addAT; add_rot[cntA]:=rotT;
+ addAT:=temp_strA:=rotT:=0;
+ else: f_bra:=0; fi
+ f_term:=1; fi
enddef;
%-------------------------------------------------------------------------------------------------
def termB=
@@ -1044,58 +989,46 @@ def termB=
enddef;
%-------------------------------------------------------------------------------------------------
vardef glu_atom(expr n)=
- if numS[n]<>0: nE:=angT mod 90; nF:=0.5atom_wd; (iif(nE<45,sind nE,cosd nE)*nF)++nF else: 0 fi
+ if strA[n]<>0: nE:=angT mod 90; nF:=0.5atom_wd; (iif(nE<45,sind nE,cosd nE)*nF)++nF else: 0 fi
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def draw_atom(expr n)=
if atomfont<>"draw": defaultfont:=atomfont; defaultsize:=atom_wd; fi
- temps:=strD[numS[n]]; slen:=length(temps); nC:=nS:=0; raise_pos:=(0,0); tpos:=posA[n];
+ temps:=str_tbl[strA[n]]; slen:=length(temps); nC:=nS:=0; raise_pos:=(0,0); tpos:=posA[n];
if (angX[n]<=90)or(angX[n]>=270): sdir:=1; else: sdir:=-1; fi
for i=1 upto slen:
if nC=0:
tempc:=subc(i,temps);
if (sdir=-1)and(tempc="{"):
- nD:=i; nC:=0; for j=nD upto slen: nC:=nC+1; exitif subc(j,temps)="}"; endfor
- fi
- else: nC:=nC-1; tempc:=subc(nD+nC,temps);
- fi
+ nD:=i; nC:=0; for j=nD upto slen: nC:=nC+1; exitif subc(j,temps)="}"; endfor fi
+ else: nC:=nC-1; tempc:=subc(nD+nC,temps); fi
if tempc="_": raise_pos:=iif(raise_pos=(0,0),(0,-.5atom_wd),(0,0));
ef tempc="^": raise_pos:=iif(raise_pos=(0,0),(0, .5atom_wd),(0,0));
ef (tempc<>"{")and(tempc<>"}"):
- nS:=nS+1;
- char_wd:=atom_wd*tbl_char_wd[ASCII(tempc)]; char_ht:=atom_wd;
+ nS:=nS+1; char_wd:=atom_wd*tbl_char_wd[ASCII(tempc)]; char_ht:=atom_wd;
if nS=1: if (sdir=-1)and(char_wd<atom_wd): tpos:=tpos+((atom_wd-char_wd)/2,0); fi
- else: tpos:=tpos+(.5char_wd*sdir,0);
- fi
+ else: tpos:=tpos+(.5char_wd*sdir,0); fi
tcol:=colorA[n]; f_col:=0;
if known tcol: if tcol<>0: drawoptions(withcolor color_list[tcol]); f_col:=1; fi fi
if atomfont="draw": draw_char(tempc,tpos+raise_pos); else: label(tempc,tpos+raise_pos); fi
if f_col=1: drawoptions(); fi
- tpos:=tpos+(.5char_wd*sdir,0);
- fi
+ tpos:=tpos+(.5char_wd*sdir,0); fi
endfor
nA:=0.56atom_wd; nB:=0.06atom_wd;
if sdir=1: frameA[n]:=posA[n]-(nA,nA)--tpos+(nB,-nA)--tpos+(nB,nA)--posA[n]+(-nA,nA)--cycle;
- else: frameA[n]:=tpos-(nB,nA)--posA[n]+(nA,-nA)--posA[n]+(nA,nA)--tpos+(-nB,nA)--cycle;
- fi
+ else: frameA[n]:=tpos-(nB,nA)--posA[n]+(nA,-nA)--posA[n]+(nA,nA)--tpos+(-nB,nA)--cycle; fi
if scan_bit(sw_frame,Atom): draw frameA[n] wpcs thickness_frame; fi
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def draw_bond(expr n)=
- begingroup
- save ww,aw,ap,am,Ls,Le,pA,zA,zL;
- pair pA,Ls,Le;
- path zA,zL;
- %-----------------------------------------------------------------------------------------------
nL:=lineB[n]; angL:=angB[n]; nS:=sB[n]; nE:=eB[n]; f_col:=0;
tcol:=colorB[n]; zL:=posA[nS]--posA[nE]; ww:=wedge_wd; ap:=angL+90; am:=angL-90; aw:=atom_wd;
%-----------------------------------------------------------------------------------------------
- if (numS[nS]=0)and(numS[nE]=0)or(sw_numbering>=1):
+ if (strA[nS]=0)and(strA[nE]=0)or(sw_numbering>=1):
Ls:=posA[nS]; Le:=posA[nE]; pA:=(.1,.9);
- ef numS[nS]=0: Ls:=posA[nS]; Le:=zL ISP frameA[nE]; pA:=(.15,1);
- ef numS[nE]=0: Ls:=zL ISP frameA[nS]; Le:=posA[nE]; pA:=(0,.85);
- else: Ls:=zL ISP frameA[nS]; Le:=zL ISP frameA[nE]; pA:=(0,1);
- fi
+ ef strA[nS]=0: Ls:=posA[nS]; Le:=zL ISP frameA[nE]; pA:=(.15,1);
+ ef strA[nE]=0: Ls:=zL ISP frameA[nS]; Le:=posA[nE]; pA:=(0,.85);
+ else: Ls:=zL ISP frameA[nS]; Le:=zL ISP frameA[nE]; pA:=(0,1); fi
zA:=Ls--Le; lenL:=length(Le-Ls);
%-----------------------------------------------------------------------------------------------
if known tcol: if tcol<>0: drawoptions(withcolor color_list[tcol]); f_col:=1;fi fi
@@ -1150,16 +1083,15 @@ def draw_bond(expr n)=
%-- bond type for glycan ----------------------------------------------------------------------
ef nL=arc_lb: draw Ls--Ls-(0,aw)..posA[nE]+(-1.2aw,0)..posA[nE]-(.6aw,0);
ef nL=arc_br: draw posA[nS]+(.6aw,0)..posA[nS]+(1.2aw,0)..Le-(0,aw)--Le;
- ef nL=arc_lbr: draw posA[nS]+(0,iif(numS[nS]=0,0,-.6aw))--posA[nS]+(0,-.8aw)
+ ef nL=arc_lbr: draw posA[nS]+(0,iif(strA[nS]=0,0,-.6aw))--posA[nS]+(0,-.8aw)
..0.5[posA[nS],posA[nE]]+(0,-1.7aw)..posA[nE]+(0,-.8aw)
- --posA[nE]+(0,iif(numS[nE]=0,0,-.6aw));
- ef nL=arc_ltr: draw posA[nS]+(0,iif(numS[nS]=0,0,0.6aw))--posA[nS]+(0,.8aw)
+ --posA[nE]+(0,iif(strA[nE]=0,0,-.6aw));
+ ef nL=arc_ltr: draw posA[nS]+(0,iif(strA[nS]=0,0,0.6aw))--posA[nS]+(0,.8aw)
..0.5[posA[nS],posA[nE]]+(0,1.7aw)..posA[nE]+(0,.8aw)
- --posA[nE]+(0,iif(numS[nE]=0,0,.6aw));
+ --posA[nE]+(0,iif(strA[nE]=0,0,.6aw));
%----------------------------------------------------------------------------------------------
fi
if f_col=1: drawoptions(); fi
- endgroup
enddef;
%------------------------------------------------------------------------------------------------
def wz_put(expr a,b,c)=
@@ -1214,9 +1146,6 @@ def circ_Oh = (hP,qH)..Z_x..(fW,qH)..Z_y..cycle enddef;
def circ_Oa = (hP,0.35aH)..Z_x..(fW,0.35aH)..(hW,.7aH)..cycle enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def draw_char(expr s,p)=
-begingroup
-save aW,aH,fW,fH,hW,hW,hH,qH,fP,hP;
-%-------------------------------------------------------------------------------------------------
aW:=atom_wd*tbl_char_wd[ASCII(s)]*(1-2ratio_atomgap_atom);
aH:=atom_wd*tbl_char_ht[ASCII(s)]*(1-2ratio_atomgap_atom);
cpos:=p-(aW/2,atom_wd/2*(1-2ratio_atomgap_atom));
@@ -1294,13 +1223,11 @@ ef s="-": dwh Z_m--Z_o;
ef s="+": dwv Z_x--Z_s; dwh Z_m--Z_o;
else:
fi
-endgroup
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def warning_bond(expr a)=
if addA[a]=0:
- warning("A"&decimal(a)&" ( "&fsl(8)(strD[numS[a]])&") has"&fdr(2)(bond_cntA)&" bonds");
- fi
+ warning("A"&decimal(a)&" ( "&fsl(8)(str_tbl[strA[a]])&") has"&fdr(2)(bond_cntA)&" bonds"); fi
enddef;
%-------------------------------------------------------------------------------------------------
vardef erase_brace(expr s)=
@@ -1309,10 +1236,8 @@ vardef erase_brace(expr s)=
for i=1 upto length(s):
sC:=subc(i,s);
if (sC<>"{")and(sC<>"}")and(sC<>"_")and(sC<>"^")and(sC<>"+")and(sC<>"-"): sS:=sS&sC; fi
- endfor
- sS
- else: s
- fi
+ endfor sS
+ else: s fi
enddef;
%-------------------------------------------------------------------------------------------------
vardef erase_space(expr t)=
@@ -1325,7 +1250,7 @@ def proc_calc(expr n)=
for i=1 upto tbl_atom_end: sumA[i]:=0; endfor
for i=1 upto cntA:
knownA:=bond_cntA:=0;
- nS:=numS[i];
+ nS:=strA[i];
for j=1 upto cntB:
bond_num[j]:=bond_type(lineB[j]);
if (sB[j]=i)or(eB[j]=i): bond_cntA:=bond_cntA+bond_num[j]; fi
@@ -1350,19 +1275,17 @@ def proc_calc(expr n)=
ef nS=(Br-nE): if bond_cntA<>1: warning_bond(i) fi
fi
for j=1 upto tbl_group_end:
- if strD[nS]=tbl_atom_str[j]:
+ if str_tbl[nS]=tbl_atom_str[j]:
if tbl_atom[j]=0: sumA[j]:=sumA[j]+1; if j>tbl_atom_max: tbl_atom_max:=j; fi
else:
for k=1 upto tbl_atom[j]:
sumA[tbl_group[j][k]]:=sumA[tbl_group[j][k]]+1;
if tbl_group[j][k]>tbl_atom_max: tbl_atom_max:=tbl_group[j][k]; fi
- endfor
- fi
- knownA:=1;
- fi
+ endfor fi
+ knownA:=1; fi
exitif knownA=1;
endfor
- if knownA=0: warning(" Unknown Str("&strD[numS[i]]&") is used "&decimal(i)); fi
+ if knownA=0: warning(" Unknown Str("&str_tbl[strA[i]]&") is used "&decimal(i)); fi
endfor
%-------------------------------------------------------------------------------------
sumA[2]:=sumA[2]+hideH_cnt;
@@ -1370,8 +1293,7 @@ def proc_calc(expr n)=
for i=1 upto tbl_atom_max:
if sumA[i]>=1:
num_MW:= num_MW+tbl_atom_wt[i]*sumA[i]; num_MI:= num_MI+tbl_atom_mi[i]*sumA[i];
- cal_FM:=cal_FM&erase_brace(tbl_atom_str[i]) if sumA[i]>=2: &decimal(sumA[i]) fi;
- fi
+ cal_FM:=cal_FM&erase_brace(tbl_atom_str[i]) if sumA[i]>=2: &decimal(sumA[i]) fi; fi
endfor
cal_MW:=substring(0,8) of decimal(num_MW); cal_MI:=substring(0,10) of decimal(num_MI);
enddef;
@@ -1380,8 +1302,7 @@ def proc_info_out(expr f)=
message "["&decimal(fig_num)&"]:"&inf_EN;
if (f=1)or(f=2): file_output:=jobname&"-info.aux"; ef f=3: file_output:=jobname&"-data.aux"; fi
if (fig_num=1)and(f=2):
- printf tag[1] for i=2 upto aux_max: exitif tag[i]=""; &aux_delimiter&tag[i] endfor ;
- fi
+ 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
@@ -1398,8 +1319,7 @@ def proc_info_out(expr f)=
ef tag[i]="JN": & inf_JN ef tag[i]="MW": & inf_MW
ef tag[i]="MI": & inf_MI ef tag[i]="FM": & inf_FM
ef tag[i]="CAS": & inf_CAS ef tag[i]="USE": & inf_USE
- ef tag[i]="EXA": & inf_EXA ef tag[i]="EXB": & inf_EXB
- fi
+ ef tag[i]="EXA": & inf_EXA ef tag[i]="EXB": & inf_EXB fi
endfor ;
if f=3: printf "+";
for i=1 upto mc_row: printf (substring(0,mc_indent[i]) of blanks)&mc[i]; endfor
@@ -1419,10 +1339,9 @@ def proc_report_out(expr f)=
printf " row="&fdr(3)(mc_row)&" / length="&fdr(4)(length(mc))&" / commands="&fdr(3)(cnt_cmm);
printf " {}=X ="&fdr(3)(cnt_chgB)&" / {}:X ="&fdr(3)(cnt_chgA)&
" / '() ="&fdr(3)(cnt_inline_def)&" / @ ="&fdr(3)(cnt_at)&
- " / & ="&fdr(3)(cnt_and)&" / < ="&fdr(3)(cnt_gtn);
- fi
+ " / & ="&fdr(3)(cnt_and)&" / < ="&fdr(3)(cnt_gtn); fi
printf "---------------------------------------------------------------------------";
- printf " Warnings = "&fdr(3)(warning_cnt)&" / Code= "&decimal(cntD[0]);
+ printf " Warnings = "&fdr(3)(warning_cnt)&" / Code= "&decimal(parts_cnt[0]);
printf " Width * Height = " & fdr(10)(mol_wd)&" * "&fdr(10)(mol_ht);
printf " Shift width * height = "& fdr(10)(minX)&" * "&fdr(10)(minY);
printf " Bond length = "&fdr(3)(blen)&" Atom size = "&fdr(3)(atom_wd);
@@ -1431,7 +1350,7 @@ def proc_report_out(expr f)=
printf "---------------------------------------------------------------------------";
printf "< NO. ><atom(s) >( x axis , y axis )<bond><hideH><chg>";
for i=1 upto cntA:
- printf " A"&fdl(6)(i)&fsl(8)(erase_brace(strD[numS[i]]))&
+ printf " A"&fdl(6)(i)&fsl(8)(erase_brace(str_tbl[strA[i]]))&
" ("&fdr(10)(round(xpart(posA[i])/blen))&" , "&
fdr(10)(round(ypart(posA[i])/blen))&" ) "&fdr(4)(Bcnt[i])&
iif(hideH[i]>0,fdr(6)(hideH[i])," ")
@@ -1441,23 +1360,19 @@ def proc_report_out(expr f)=
printf "< NO. >< bond (sdt)><angle +( +- )><length ( pt )>";
for i=1 upto cntB:
nC:=lenB[i]; if nC=_size_atom: nC:=ratio_atom_bond; elseif nC<0: nC:=-nC; fi
- nB:=angB[i]; if nB>180: nB:=nB-360; fi
- printf " B"&fdl(4)(i)&fdr(3)(sB[i])&" -> "&fdr(3)(eB[i])&
- " ("&fdr(3)(bond_num[i])&")"&fdr(8)(round(angB[i]))&
- " ("&fdr(6)(round(nB))&")"&fdr(8)(nC)&" ("&fdr(8)(round(nC*blen))&")";
+ nB:=angB[i]; if nB>180: nB:=nB-360; fi
+ printf " B"&fdl(4)(i)&fdr(3)(sB[i])&" -> "&fdr(3)(eB[i])&
+ " ("&fdr(3)(bond_num[i])&")"&fdr(8)(round(angB[i]))&
+ " ("&fdr(6)(round(nB))&")"&fdr(8)(nC)&" ("&fdr(8)(round(nC*blen))&")";
endfor
printf "---------------------------------------------------------------------------";
printf "<atom>( atom wt )[ mi wt ] < cnt > < sum wt >[ sum mi wt ]";
for i=1 upto tbl_atom_max:
if sumA[i]>=1:
- nA:=tbl_atom_wt[i]/100*sumA[i]; nB:=tbl_atom_mi[i]/100*sumA[i];
- printf " "&
- fsl(5)(erase_brace(tbl_atom_str[i]))&
- "("&fdr(9)(tbl_atom_wt[i])&")"&"["&fdr(9)(tbl_atom_mi[i])&"]"&" * "&fdr(4)(sumA[i])
- if nA<40: &fdr(15)(tbl_atom_wt[i]*sumA[i])&"["&fdr(12)(tbl_atom_mi[i]*sumA[i])&"]";
- else: &fdr(11)(nA)&"*100"&"["&fdr(9)(nB)&"*100"&"]";
- fi
- fi
+ printf " "&fsl(5)(erase_brace(tbl_atom_str[i]))&
+ "("&fdr(9)(tbl_atom_wt[i])&")"&"["&fdr(9)(tbl_atom_mi[i])&"]"&" * "&fdr(4)(sumA[i])
+ &fdr(15)(tbl_atom_wt[i]*sumA[i])&"["&fdr(12)(tbl_atom_mi[i]*sumA[i])&"]";
+ fi
endfor
printf " Molecular Weight [Mono Isotopic] = "&fsr(12)(cal_MW)&"["&fsr(12)(cal_MI)&"]";
printf "---------------------------------------------------------------------------";
@@ -1478,12 +1393,11 @@ def proc_mol_out(expr n)=
printf fdr(3)(cntA)&fdr(3)(cntB)&" 0 0 0 0 0 0 0 0999 V2000";
for i=1 upto cntA:
printf fdr(10)(xpart(posA[i])/blen)& fdr(10)(ypart(posA[i])/blen)&fdr(10)(0)&" "&
- fsl(2)(erase_brace(strD[numS[i]]))&" 0"&fdr(3)(bond_charge(chargeA[i]))&" 0 0";
+ fsl(2)(erase_brace(str_tbl[strA[i]]))&" 0"&fdr(3)(bond_charge(chargeA[i]))&" 0 0";
endfor
for i=1 upto cntB:
if lineB[i]<>0: printf fdr(3)(sB[i])&fdr(3)(eB[i])&fdr(3)(bond_type(lineB[i]))&
- fdr(3)(bond_stereo(lineB[i]))&" 0 0";
- fi
+ fdr(3)(bond_stereo(lineB[i]))&" 0 0"; fi
endfor
printf "M END";
%-V3000---------------------------------------------------------------------------------------
@@ -1494,7 +1408,7 @@ def proc_mol_out(expr n)=
printf "M V30 COUNTS "&decimal(cntA)&" "&decimal(cntB)&" 0 0 0";
printf "M V30 BEGIN ATOM";
for i=1 upto cntA:
- printf "M V30 "&decimal(i)&" "&erase_brace(strD[numS[i]])&" "&
+ printf "M V30 "&decimal(i)&" "&erase_brace(str_tbl[strA[i]])&" "&
decimal(xpart(posA[i])/blen)&" "&decimal(ypart(posA[i])/blen)&" 0 0"
if chargeA[i]<>0: &" CHG="&decimal(chargeA[i]) fi;
endfor
@@ -1503,8 +1417,7 @@ def proc_mol_out(expr n)=
if lineB[i]<>0:
printf "M V30 "&decimal(i)&" "&decimal(bond_type(lineB[i]))&
" "&decimal(sB[i])&" "&decimal(eB[i])
- if bond_stereo(lineB[i])<>0: &" CFG="&decimal(bond_config(lineB[i])) fi;
- fi
+ if bond_stereo(lineB[i])<>0: &" CFG="&decimal(bond_config(lineB[i])) fi; fi
endfor
printf "M V30 END BOND"; printf "M V30 END CTAB"; printf "M END";
fi
@@ -1526,25 +1439,25 @@ vardef bond_config(expr n)=
if (n=wf)or(n=zb)or(n=bd): 1 ef (n=zf)or(n=wb)or(n=dt): 3 ef n=wv: 2 else: 0 fi enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
vardef STa(expr s,WT,MI)=
- str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; parts_cnt:=parts_cnt+1;
- comD[parts_cnt][1]:=_set_atom; parD[parts_cnt][1]:=str_cnt; cntD[parts_cnt]:=1;
- strD[str_cnt]:=tbl_atom_str[tbl_cnt]:=s;
+ str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; parts_num:=parts_num+1;
+ parts_com[parts_num][1]:=_set_atom; parts_par[parts_num][1]:=str_cnt; parts_cnt[parts_num]:=1;
+ str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s;
tbl_atom[tbl_cnt]:=0; tbl_atom_wt[tbl_cnt]:=WT; tbl_atom_mi[tbl_cnt]:=MI;
- parts_cnt
+ parts_num
enddef;
%-------------------------------------------------------------------------------------------------
vardef STb(expr s)(text t)=
- str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; parts_cnt:=parts_cnt+1;
- comD[parts_cnt][1]:=_set_atom; parD[parts_cnt][1]:=str_cnt; cntD[parts_cnt]:=1;
- strD[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
+ str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; parts_num:=parts_num+1;
+ parts_com[parts_num][1]:=_set_atom; parts_par[parts_num][1]:=str_cnt; parts_cnt[parts_num]:=1;
+ str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
for list=t:
tbl_atom[tbl_cnt]:=tbl_atom[tbl_cnt]+1;
tbl_group[tbl_cnt][tbl_atom[tbl_cnt]]:=list-parts_emb_start;
endfor
- parts_cnt
+ parts_num
enddef;
%=================================================================================================
-parts_int:=parts_emi_start; parts_cnt:=parts_emb_start;
+parts_int:=parts_emi_start; parts_num:=parts_emb_start;
%-------------------------------------------------------------------------------------------------
C:= STa("C" ,12.0107, 12.0000000); H:= STa("H" , 1.00794, 1.00782503223);
D:= STa("D" ,2.012, 2.01410177812); Ag:=STa("{Ag}",107.868, 106.905095);
@@ -1575,7 +1488,7 @@ NO:=STb("NO")(N,O); NO2:=STb("N{O_2_}")(N,O,O); NH2:=STb("N{H_2_}")(N,H,H);
SO2H:=STb("S{O_2_}H")(S,O,O,H); SO3H:=STb("S{O_3_}H")(S,O,O,O,H);
ONa:=STb("O{Na}")(O,Na); SO3Na:=STb("S{O_3_}{Na}")(S,O,O,O,Na);
%-------------------------------------------------------------------------------------------------
-tbl_group_end:=tbl_cnt; parts_atom_end:=parts_cnt;
+tbl_group_end:=tbl_cnt; parts_atom_end:=parts_num;
%=================================================================================================
for i=3 upto 20: ?[i]:='((_com,_len_ss),(_get_len,_ring_len),<((-180 DIV i)-90)
for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),(_com,_len_ee)); endfor
@@ -1590,6 +1503,7 @@ endfor
Me:='(); Et:='(!); iPr:=?!:='(/_,!); ?!2:='(/_,!2); tBu:=??!:='(/_,/_^60,60);
!?:='(!,/_); !?!:='(!,/_,!); n_:='((_set_add,a_minus)); p_:='((_set_add,a_plus));
zero_wf:='(0~wf); zero_zf:='(0~zf); zero_dm:='(0~dm); zero_wv:='(0~wv);
+mark_adress:='((_com,_mark)); reset_adress:='((_com,_moff)); reset_length:='((_com,_len_e));
%-------------------------------------------------------------------------------------------------
NH:='(N,/H~nl); N!:='(N,/_); N!2:='(N,/!); SO:='(S,//O); SOO:='(S,//O^-35,//O^35);
O!:='(O,!); O!2:='(O,!,!); O!3:='(O,!,!,!); O!?!:='(O,!,?!); O!??!:='(O,!,??!); OPh:='(O,!,Ph);
@@ -1627,7 +1541,7 @@ xCHO:='(//O^-60,/H^60); xCOOH:='(//O^-60,/xOH^60); xCN:='(/N~tm); xSH:='(S,/H);
%=================================================================================================
init_par(parameter_list);
%-------------------------------------------------------------------------------------------------
-%%%%message "parts_emb =" & decimal(parts_emb_start) &" => " & decimal(parts_cnt);
+%%%%message "parts_emb =" & decimal(parts_emb_start) &" => " & decimal(parts_num);
%%%%message "parts_emi =" & decimal(parts_emi_start) &" => " & decimal(parts_int);
%-------------------------------------------------------------------------------------------------
def expand_set=
@@ -1680,10 +1594,8 @@ vardef check(expr s)=
ef nC=a_hat: if nD= a_cmm: proc_err(7,nA) fi if nB= a_cmm: proc_err(7,nA) fi % x ^ x
ef nC=a_bqt: if nD= a_cmm: proc_err(7,nA) fi if nB= a_cmm: proc_err(7,nA) fi % x ` x
ef nC=a_bar: if nD= a_bar: if mc_char[nA+2]=a_bar: nA:=nA+1; % ||
- ef mc_char[nA+2]<>a_cmm: proc_err(8,nA) % | a
- fi
- if nB<>a_cmm: proc_err(8,nA) fi % a |
- fi
+ ef mc_char[nA+2]<>a_cmm: proc_err(8,nA) fi % | a
+ if nB<>a_cmm: proc_err(8,nA) fi fi % a |
ef nC=a_prn_s: if nD= a_cmm: proc_err(7,nA) fi % ( x
cnt_prn_s:=cnt_prn_s+1; f_depth:=1;
if nB=a_qut: cnt_inline_def:=cnt_inline_def+1; fi
@@ -1716,8 +1628,9 @@ enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def query(text s)=
begingroup
- save f_mcf,f_line,unit_row,unit_cnt,line_s,row_cnt,semic_cnt,info_cnt,order,min_n,key_cnt,info_s, sign_at,sign_n,filter_n,filter_tag,filter_var,filter_sign,filter_cnt,filter_p,at_semic,
- at_colon,at_equal,at_less,at_greater,at_n,sort_all,key_s,sort_s;
+ save f_mcf,f_line,unit_row,unit_cnt,line_s,row_cnt,semic_cnt,info_cnt,order,min_n,key_cnt,
+ info_s,sign_at,sign_n,filter_n,filter_tag,filter_var,filter_sign,filter_cnt,filter_p,
+ at_semic,at_colon,at_equal,at_less,at_greater,at_n,sort_all,key_s,sort_s;
string line_s[][],sort_s[],sort_all[],key_s[],filter_tag[],filter_var[],info_s[];
numeric row_cnt[],order[],order_tbl[],filter_sign[],filter_p[],at_semic[];
unit_row:=f_mcf:=mc_row:=info_cnt:=key_cnt:=filter_cnt:=0; unit_cnt:=1;
@@ -1733,20 +1646,17 @@ def query(text s)=
else: sign_at:=at_equal; sign_n:=1; at_n:=1; fi
ef at_greater>=2: if (at_greater-1)=at_less: sign_at:=at_greater; sign_n:=2; at_n:=2;
else: sign_at:=at_greater; sign_n:=4; at_n:=1; fi
- ef at_less>=2: sign_at:=at_less; sign_n:=3; at_n:=1;
- fi
+ ef at_less>=2: sign_at:=at_less; sign_n:=3; at_n:=1; fi
sT:=substring(0,sign_at-at_n) of list; sV:=substring(sign_at,length(list)) of list;
%---------------------------------------------------------------------------------------------
if sign_n=0:
if sT="f": if scan_char(".",sV,0,1)=0: file_input:=sV&".mcf"; else: file_input:=sV; fi
ef sT="o": if scan_char(".",sV,0,1)=0: file_output:=sV&".aux"; else: file_output:=sV; fi
- ef sT="s": key_cnt:=key_cnt+1; key_s[key_cnt]:=sV;
- fi
+ ef sT="s": key_cnt:=key_cnt+1; key_s[key_cnt]:=sV; fi
else:
filter_cnt:=filter_cnt+1; filter_tag[filter_cnt]:=sT; filter_sign[filter_cnt]:=sign_n;
if (sign_n>=3)and(is_num(sV)=1): filter_var[filter_cnt]:=fix_num(sV);
- else: filter_var[filter_cnt]:=sV;
- fi
+ else: filter_var[filter_cnt]:=sV; fi
fi
endfor
%-----------------------------------------------------------------------------------------------
@@ -1773,8 +1683,7 @@ def query(text s)=
ef filter_sign[j]=3: if not(temps< filter_var[j]): filter_n:=0; fi
ef filter_sign[j]=4: if not(temps> filter_var[j]): filter_n:=0; fi
ef filter_sign[j]=5: if not(temps<=filter_var[j]): filter_n:=0; fi
- ef filter_sign[j]=6: if not(temps>=filter_var[j]): filter_n:=0; fi
- fi
+ ef filter_sign[j]=6: if not(temps>=filter_var[j]): filter_n:=0; fi fi
fi
endfor
endfor
@@ -1782,8 +1691,7 @@ def query(text s)=
sort_all[unit_cnt]:="";
for j=1 upto key_cnt:
if j=key_cnt: sort_all[unit_cnt]:=sort_all[unit_cnt]&sort_s[j];
- else: sort_all[unit_cnt]:=fix_str(15,sort_s[1]);
- fi
+ else: sort_all[unit_cnt]:=fix_str(15,sort_s[1]); fi
endfor
info_cnt:=0; if filter_n=1: unit_cnt:=unit_cnt+1; fi
ef subc(1,temps)="+": f_mcf:=1; mc_row:=1;
@@ -1794,8 +1702,7 @@ def query(text s)=
for i=1 upto semic_cnt+1:
info_cnt:=info_cnt+1;
if i<=semic_cnt: info_s[info_cnt]:=substring(at_semic[i-1],at_semic[i]-1) of temps;
- else: info_s[info_cnt]:=substring(at_semic[semic_cnt],length(temps)) of temps;
- fi
+ else: info_s[info_cnt]:=substring(at_semic[semic_cnt],length(temps)) of temps; fi
endfor
fi
fi
@@ -1814,8 +1721,7 @@ def query(text s)=
for i=1 upto unit_cnt:
for j=1 upto row_cnt[order_tbl[i]]: printf line_s[order_tbl[i]][j]; endfor
endfor
- else:
- for i=1 upto unit_cnt: for j=1 upto row_cnt[i]: printf line_s[i][j]; endfor endfor
+ else: for i=1 upto unit_cnt: for j=1 upto row_cnt[i]: printf line_s[i][j]; endfor endfor
fi
closefrom file_input; closefrom file_output;
endgroup;
@@ -1825,13 +1731,13 @@ vardef fix_str(expr n,s)=
if length(s)<n: sS:=s&substring(0,n-length(s)) of blanks;
ef length(s)>n: sS:=substring(0,n) of s; fi sS
enddef;
-%---------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
vardef fix_num(expr s)=
sS:=s; nN:=scan_char(".",sS,0,1);
if nN=0: sS:=fsr(4)(sS); ef nN=1: sS:=" 0"&sS;
ef nN=2: sS:=" "&sS; ef nN=3: sS:=" "&sS; ef nN=4: sS:=" "&sS; fi sS
enddef;
-%---------------------------------------------------------------------------------------------
+%-------------------------------------------------------------------------------------------------
vardef is_num(expr s)=
for i=1 upto length(s):
if ((subc(i,s)>="0")and(subc(i,s)<="9"))or(subc(i,s)="."): nN:=1; else: nN:=0; fi endfor nN
diff --git a/graphics/mcf2graph/mcf_data_base.mcf b/graphics/mcf2graph/mcf_data_base.mcf
index 5f94cc711c..6635993fc1 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 2022.02.20
+% molecular data base file mcf_data_base.mcf by Akira Yamaji 2022.02.27
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tag1:var1;tag2:var2;tag3:var3 .....
% first character of line "%" comment out
diff --git a/graphics/mcf2graph/mcf_exa_soc.mp b/graphics/mcf2graph/mcf_exa_soc.mp
index 1e8edddf01..65f884e412 100644
--- a/graphics/mcf2graph/mcf_exa_soc.mp
+++ b/graphics/mcf2graph/mcf_exa_soc.mp
@@ -1,8 +1,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format by Akira Yamaji 2022.02.20
+% Molecular Coding Format by Akira Yamaji 2022.02.27
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph; %%% it must be version 4.80
-message "* mcf_exa_soc 2022.02.20";
+input mcf2graph; %%% it must be version 4.81
+message "* mcf_exa_soc 2022.02.27";
message "";
%------------------------------------------------------------------------------
%%%%sw_frame:=Outside;
@@ -29,7 +29,7 @@ max_blength:=4mm;
%%%% beginfigm("t:EN","v:Caffeine") % select EN=Caffeine
forever:
%%%% beginfigm("f:mcf_data_base","v+:*") % 'mcf_data_base.mcf'(default)
-%%%%beginfigm("f:temp","v+:*") % use query output 'temp.mcf'
+%%%% beginfigm("f:temp","v+:*") % use query output 'temp.mcf'
%%%% beginfigm("v+:*") % select all
beginfigm("t:EXA","v+:1") % 'v+:1': select EXA=1
if f_EOF=0: if check(mc)=0: MC(scantokens(mc)) fi fi
diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf
index 0996b2358a..f322a774e4 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 de26f8df1d..b4239bfccd 100644
--- a/graphics/mcf2graph/mcf_example.tex
+++ b/graphics/mcf2graph/mcf_example.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2022.02.20
+% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2022.02.27
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.80
+% ** mcf2graph.mf must be version 4.81
% ** use mcf_data_base.mcf
% ** typeset by LuaLaTeX(luamplib)
\documentclass{article}
diff --git a/graphics/mcf2graph/mcf_man_soc.mp b/graphics/mcf2graph/mcf_man_soc.mp
index 219f78c5a9..f77f6bf94c 100644
--- a/graphics/mcf2graph/mcf_man_soc.mp
+++ b/graphics/mcf2graph/mcf_man_soc.mp
@@ -1,9 +1,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2022.02.20
+% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2022.02.27
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph; %% it must be version 4.80
+input mcf2graph; %% it must be version 4.81
% ** use data base file 'mcf_data_base.mcf'
-message "mcf_man_soc 2022.02.20"; message "";
+message "mcf_man_soc 2022.02.27"; message "";
%------------------------------------------------------------------------
sw_mframe:=0;
sw_expand:=0;
@@ -533,9 +533,16 @@ beginfigm("EN:chain strech direction mode 1")
fsize:=(50mm,25mm);
sw_trimming:=1;
ratio_chain_ring:=1;
- MC(
- ?4,{3^-90,3^-30,3^90}:/'(!3,"{hz}")>hz,
- {1^-60,1,1^60}:/'(!3,"{vt}")>vt
+ MC(?4,{3^-90,3^-30,3^90}:/!3>hz,
+ {1^-60,1,1^60}:/!3>vt
+ )
+ add(defaultscale:=0.5; labeloffset:=2bp;
+ label.rt(">hz",A8);
+ label.top(">hz",A12);
+ label.top(">hz",A16);
+ label.rt(">vt",A20);
+ label.top(">vt",A24);
+ label.rt(">vt",A28);
)
endfigm
%***********************************************************************
@@ -543,9 +550,16 @@ beginfigm("EN:chain strech direction mode 2")
fsize:=(60mm,20mm);
sw_trimming:=1;
ratio_chain_ring:=1;
- MC(
- <-30,!6,{3^-30,3,3^30}:/'(!,!,!,"{lr}")>lr,
- {5^-30,5,5^30}:/'(!,!,!,"{rl}")>rl
+ MC(<-30,!6,{3^-30,3,3^30}:/!3>lr,
+ {5^-30,5,5^30}:/!3>rl
+ )
+ add(defaultscale:=0.6; labeloffset:=2bp;
+ label.lft(">lr",A11);
+ label.lft(">lr",A15);
+ label.top(">lr",A19);
+ label.top(">rl",A23);
+ label.rt(">rl",A27);
+ label.rt(">rl",A31);
)
endfigm
%***********************************************************************
diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf
index 021454e35d..1b00d2848b 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 123b478879..0dd00f333a 100644
--- a/graphics/mcf2graph/mcf_manual.tex
+++ b/graphics/mcf2graph/mcf_manual.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2022.02.13
+% Molecular Coding Format manual by Akira Yamaji 2022.02.27
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage[pdftex]{graphicx}
@@ -566,8 +566,8 @@ attached bond length
>vt : vertical environment
?4,
-{3^-90,3^-30,3^90}:/'(!3,"{hz}")>hz,
-{1^-60,1,1^60}:/'(!3,"{vt}")>vt
+{3^-90,3^-30,3^90}:/!3>hz,
+{1^-60,1,1^60}:/!3>vt
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
@@ -579,8 +579,8 @@ attached bond length
>rl : right-left environment
<-30,!6,
-{3^-30,3,3^30}:/'(!3,"{lr}")>lr,
-{5^-30,5,5^30}:/'(!3,"{rl}")>rl
+{3^-30,3,3^30}:/!3>lr,
+{5^-30,5,5^30}:/!3>rl
\end{verbatim}
\MCFgraph
%-----------------------------------------------------------------------------
diff --git a/graphics/mcf2graph/mcf_mplib_exa.pdf b/graphics/mcf2graph/mcf_mplib_exa.pdf
index e72c689015..a4e6396a01 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 998d7378b4..be3e077f28 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.tex
+++ b/graphics/mcf2graph/mcf_mplib_exa.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2022.02.20
+% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2022.02.27
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mp must be version 4.80
+% ** mcf2graph.mp must be version 4.81
% ** use mcf_data_base.mcf
\documentclass{article}
%------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/create-theorem/LICENSE b/macros/latex/contrib/create-theorem/LICENSE
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/create-theorem/LICENSE
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `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 Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/create-theorem/README.md b/macros/latex/contrib/create-theorem/README.md
new file mode 100644
index 0000000000..80f2a02181
--- /dev/null
+++ b/macros/latex/contrib/create-theorem/README.md
@@ -0,0 +1,11 @@
+<!-- Copyright (C) 2021-2022 by Jinwen XU -->
+
+# `create-theorem` - Initializing theorem-like environments with multilingual support
+
+The package `create-theorem` provides the commands `\NameTheorem` and `\CreateTheorem` for naming and initializing theorem-like environments. They both have key-value based interface and are especially useful in multi-language documents, allowing you to easily declare theorem-like environments that automatically adapt to the language settings.
+
+*For more information, please refer to its documentation.*
+
+# License
+
+This work is released under the LaTeX Project Public License, v1.3c or later.
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
new file mode 100644
index 0000000000..52d4bd1e93
--- /dev/null
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.tex b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
new file mode 100644
index 0000000000..c077649309
--- /dev/null
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
@@ -0,0 +1,385 @@
+%! TEX program = xelatex
+\documentclass[classical]{einfart}
+
+% \linenumbers
+
+\usepackage{ProjLib}
+
+\makeatletter
+\pretocmd{\@maketitle}{\vspace*{-2.5\baselineskip}}{}{}
+\makeatother
+
+%%================================
+%% For typesetting code
+%%================================
+\usepackage{listings}
+\definecolor{maintheme}{RGB}{70,130,180}
+\definecolor{forestgreen}{RGB}{21,122,81}
+\definecolor{lightergray}{gray}{0.99}
+\lstset{language=[LaTeX]TeX,
+ keywordstyle=\color{maintheme},
+ basicstyle=\ttfamily,
+ commentstyle=\color{forestgreen}\ttfamily,
+ stringstyle=\rmfamily,
+ showstringspaces=false,
+ breaklines=true,
+ frame=lines,
+ backgroundcolor=\color{lightergray},
+ flexiblecolumns=true,
+ escapeinside={(*}{*)},
+ % numbers=left,
+ numberstyle=\scriptsize, stepnumber=1, numbersep=5pt,
+ % firstnumber=last,
+}
+\providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
+\lstset{moretexcs=%
+ {
+ cref,crefname,
+ Cref,Crefname,
+ crefformat,
+ crefthe,crefthename,crefthemark,
+ Crefthe,Crefthename,
+ selectlanguage,
+ theoremstyle,
+ NameTheorem, CreateTheorem,
+ regexpatchcmd,
+ }
+}
+\lstnewenvironment{code}%
+{\setstretch{1.07}\LocallyStopLineNumbers%
+\setkeys{lst}{columns=fullflexible,keepspaces=true}%
+}
+{\ResumeLineNumbers\vspace{-.25\baselineskip}}
+\lstnewenvironment{code*}%
+{\setstretch{1.07}\LocallyStopLineNumbers%
+\setkeys{lst}{numbers=left,columns=fullflexible,keepspaces=true}%
+}
+{\ResumeLineNumbers}
+
+%%================================
+%% tip
+%%================================
+\usepackage[many]{tcolorbox}
+\newenvironment{tip}[1][Tip]{%
+ \LocallyStopLineNumbers%
+ \begin{tcolorbox}[breakable,
+ enhanced,
+ width = \textwidth,
+ colback = paper, colbacktitle = paper,
+ colframe = gray!50, boxrule=0.2mm,
+ coltitle = black,
+ fonttitle = \sffamily,
+ attach boxed title to top left = {yshift=-\tcboxedtitleheight/2, xshift=.5cm},
+ boxed title style = {boxrule=0pt, colframe=paper},
+ before skip = 3mm,
+ after skip = 3mm,
+ top = 2.5mm,
+ bottom = 1.5mm,
+ title={\scshape\sffamily #1}]%
+}{\end{tcolorbox}\ResumeLineNumbers}
+
+
+\newcommand{\packageoption}[1]{\texttt{\textcolor{black!67!green}{#1}}}
+\newcommand{\commandoption}[1]{\texttt{\textcolor{black!67!cyan}{#1}}}
+
+
+\newcommand{\createtheorempackage}{\textsf{create-theorem}}
+
+\begin{document}
+
+\title{\createtheorempackage{}\\\smallskip\itshape Initializing theorem-like environments with multilingual support}
+\author{Jinwen XU}
+\thanks{Corresponding to: \texttt{\createtheorempackage{} 2022/02/27}}
+\date{February 2022, in Paris}
+
+\maketitle
+
+\begin{abstract}
+ \raggedleft
+ The package \createtheorempackage{} provides the commands \lstinline|\NameTheorem| and \lstinline|\CreateTheorem| for naming and initializing theorem-like environments. They both have key-value based interface and are especially useful in multi-language documents, allowing you to easily declare theorem-like environments that automatically adapt to the language settings.
+\end{abstract}
+
+\vspace{-.5\baselineskip}
+
+% \section*{Before everything}
+
+% Make sure that the package \textsf{crefthe} is correctly installed. If you are using TeX Live 2022 or newer, or the newest version of MikTeX, then nothing needs to be worried.
+
+\section{How to load it}
+
+First, you need a backend to provide the command \lstinline|\newtheorem| with the usual behaviour, for example, \textsf{amsthm}. After that, you can simply load the current package with:
+
+\begin{code}
+\usepackage{create-theorem}
+\end{code}
+
+\begin{tip}
+ Since \createtheorempackage{} uses \textsf{cleveref} internally, it should usually be placed near the last of your preamble --- notably, it needs to be loaded after \textsf{varioref} and \textsf{hyperref}.
+\end{tip}
+
+It has the following options:
+\begin{itemize}
+ \item \packageoption{draft} or \packageoption{fast}
+ \begin{itemize}
+ \item Fast mode. The functionality will be appropriately reduced to get faster compilation speed, recommended to use during the writing stage.
+ \end{itemize}
+ \item \packageoption{name as context}
+ \begin{itemize}
+ \item When referencing, the names correspond to the current language context. For example, the English names will be displayed when referencing a theorem-like environment in English context, no matter which language context the original environment is in.
+ \item Synonymous names: \packageoption{name-as-context} \,$|$\, \packageoption{nameascontext} \,$|$\, \packageoption{regionalref}
+ \end{itemize}
+ \item \packageoption{name as is}
+ \begin{itemize}
+ \item When referencing, the names correspond to the language contexts in which the environments are defined. For example, if the environment is defined in English context, then the English names will be displayed when referencing it, regardless of the current language context.
+ \item Synonymous names: \packageoption{name-as-is} \,$|$\, \packageoption{nameasis} \,$|$\, \packageoption{originalref}
+ \end{itemize}
+ \item \packageoption{name in link}
+ \begin{itemize}
+ \item Include the names in the hyperlinks when referencing.
+ \item Synonymous names: \packageoption{name-in-link} \,$|$\, \packageoption{nameinlink}
+ \end{itemize}
+ \item \packageoption{no preset names}
+ \begin{itemize}
+ \item Disable preset names. Use this option if you want to define you own name set.
+ \item Synonymous names: \packageoption{no-preset-names} \,$|$\, \packageoption{nopresetnames}
+ \end{itemize}
+\end{itemize}
+
+\section{How to use it}
+
+\subsection[Naming theorem-like environments]{Naming theorem-like environments with \texttt{\textbackslash\textcolor{maintheme}{NameTheorem}}}
+
+The syntax of \lstinline|\NameTheorem| is as follows:
+\begin{code}
+\NameTheorem{(*\meta{name of environment}*)}{(*\meta{key-value configuration}*)}
+\end{code}
+
+Supported keys are:
+\vspace{-.2\baselineskip}
+\begin{itemize}
+ \item \commandoption{heading}\lstinline| = |\meta{configuration}
+ \begin{itemize}
+ \item The heading of the environment, where \meta{configuration} can be:
+ \begin{itemize}
+ \item a single string in monolingual documents: \commandoption{heading}\lstinline| = |\meta{string};
+ \item a key-value name list in multilingual documents:
+\begin{code}
+(*\commandoption{heading}*) = {
+ (*\meta{language name}*) = (*\meta{string}*)
+}
+\end{code}
+ \end{itemize}
+ \end{itemize}
+ \item \commandoption{crefname}\lstinline| = |\meta{configuration}
+ \begin{itemize}
+ \item The name for \lstinline|\cref| the environment, where \meta{configuration} can be:
+ \begin{itemize}
+ \item a single string in monolingual documents: \commandoption{crefname}\lstinline| = {name}{names}|;
+ \item a key-value name list in multilingual documents:
+\begin{code}
+(*\commandoption{crefname}*) = {
+ (*\meta{language name}*) = {(*\meta{singular name}*)}{(*\meta{plural name}*)}
+}
+\end{code}
+ \end{itemize}
+ \item Also supports the syntax of \lstinline|\crefthename|, thus you can assign names of the form:
+\begin{code}
+[(*\meta{singular definite article}*)]{(*\meta{singular name}*)}[(*\meta{plural definite article}*)]{(*\meta{plural name}*)}
+\end{code}
+ \end{itemize}
+ \item \commandoption{Crefname}
+ \begin{itemize}
+ \item The name for \lstinline|\Cref| the environment, its syntax is the same as that of \commandoption{crefname}.
+ \item Also supports the syntax of \lstinline|\Crefthename|.
+ \end{itemize}
+\end{itemize}
+
+\begin{center}
+ \itshape
+ If you're feeling confused, don't worry, there is an Examples section later illustrating its usage.
+\end{center}
+
+\begin{tip}
+ You can also define the names within \lstinline|\CreateTheorem| while initializing the theorem-like environments. \lstinline|\NameTheorem| is especially useful for package or class authors who wish to preset suitable names (with styles) in their packages or classes.
+\end{tip}
+
+
+\subsection[Initializing theorem-like environments]{Initializing theorem-like environments with \texttt{\textbackslash\textcolor{maintheme}{CreateTheorem}}}
+
+The syntax of \lstinline|\CreateTheorem| is as follows:
+\begin{code}
+\CreateTheorem{(*\meta{name of environment}*)}{(*\meta{key-value configuration}*)}
+\end{code}
+
+Supported keys are:
+\vspace{-.2\baselineskip}
+\begin{itemize}
+ \item \commandoption{name}\lstinline| = |\meta{configuration}
+ \begin{itemize}
+ \item Same as \lstinline|\NameTheorem{|\meta{name of environment}\lstinline|}{|\meta{configuration}\lstinline|}|.
+ \end{itemize}
+ \item \commandoption{style}\lstinline| = |\meta{theorem style}
+ \begin{itemize}
+ \item Specifying the \lstinline|\theoremstyle| for the current environment.
+ \item Synonymous names: \commandoption{apply style} \,$|$\, \commandoption{apply-style} \,$|$\, \commandoption{applystyle}
+ \end{itemize}
+ \item \commandoption{parent counter}\lstinline| = |\meta{parent counter}
+ \begin{itemize}
+ \item Specifying the \meta{parent counter} for the current environment, \emph{i.e.}, numbering will restart whenever that sectional level is encountered.
+ \item Synonymous names: \commandoption{parent-counter} \,$|$\, \commandoption{parentcounter} \,$|$\, \\\phantom{Synonymous names: }\commandoption{number within} \,$|$\, \commandoption{number-within} \,$|$\, \commandoption{numberwithin}
+ \end{itemize}
+ \item \commandoption{shared counter}\lstinline| = |\meta{shared counter}
+ \begin{itemize}
+ \item Specifying the \meta{shared counter} for the current environment, \emph{i.e.}, numbering will progress sequentially for all theorem-like environments using this counter.
+ \item Synonymous names: \commandoption{shared-counter} \,$|$\, \commandoption{sharedcounter} \,$|$\, \\\phantom{Synonymous names: }\commandoption{number like} \,$|$\, \commandoption{number-like} \,$|$\, \commandoption{numberlike}
+ \end{itemize}
+ \item \commandoption{numberless}
+ \begin{itemize}
+ \item Defining the current environment to be unnumbered.
+ \end{itemize}
+ \item \commandoption{create starred version}
+ \begin{itemize}
+ \item Defining a corresponding starred (unnumbered) version of the current environment.
+ \item Synonymous names: \commandoption{create-starred-version} \,$|$\, \commandoption{createstarredversion} \,$|$\, \\\phantom{Synonymous names: }\commandoption{create numberless version} \,$|$\, \commandoption{create-numberless-version} \\\phantom{Synonymous names: }\,$|$ \commandoption{createnumberlessversion}
+ \end{itemize}
+ \item \commandoption{copy existed}\lstinline| = |\meta{existed environment}
+ \begin{itemize}
+ \item Defining the current environment to be the same as \meta{existed environment}.
+ \item This key is usually useful in the following two situations:
+ \begin{enumerate}
+ \item To use a more concise name. For example, with \lstinline|\CreateTheorem{thm}{|\commandoption{copy \\existed} \lstinline|= theorem}|, one can then use the name \texttt{thm} to write theorems.
+ \item To remove the numbering of some environments. For example, one can remove the numbering of the \texttt{remark} environment with \lstinline|\CreateTheorem{remark}{|\commandoption{copy existed} \lstinline|= remark*}|.
+ \end{enumerate}
+ \item Synonymous names: \commandoption{copy-existed} \,$|$\, \commandoption{copyexisted}
+ \end{itemize}
+\end{itemize}
+
+\begin{center}
+ \itshape
+ If you're feeling confused, don't worry, check out the Examples section below.
+\end{center}
+
+\begin{tip}
+ The names for the following environments have been preset: \texttt{assertion}, \texttt{assumption}, \texttt{axiom}, \texttt{conclusion}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{postulate}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark} and \texttt{theorem}. If you are fine with the preset names, then you don't need to specify the key ``\commandoption{name}'' while creating them, otherwise you shall have to use the package option ``\packageoption{no preset names}'' to disable the presets and define your own ones.
+\end{tip}
+
+\medskip
+
+Please note that, by default, an normal environment \meta{env} and its starred relative \meta{env}\texttt{*} do not share the same set of names, for the sake of generality. However, with proper usage of \commandoption{create starred version} and \commandoption{copy existed}, you are already able to produce all of the following combinations that shares the same set of names: 1$)$ numbered \meta{env}, numbered \meta{env}\texttt{*} ; 2$)$ numbered \meta{env}, unnumbered \meta{env}\texttt{*} ; 3$)$ unnumbered \meta{env}, numbered \meta{env}\texttt{*} ; and 4$)$ unnumbered \meta{env}, unnumbered \meta{env}\texttt{*}. I left it as an easy exercise for you ;-)
+
+\section{Examples}
+
+\subsection{The environment \texttt{idea}}
+
+First, let's getting familiar with these two commands by creating the environment \texttt{idea}.
+
+\begin{code}
+\NameTheorem{idea}{
+ (*\commandoption{heading}*) = Idea,
+ (*\commandoption{crefname}*) = {idea}{ideas},
+ (*\commandoption{Crefname}*) = {Idea}{Ideas},
+}
+\CreateTheorem{idea}{ parent counter = section }
+\end{code}
+
+or to do it in one turn:
+
+\begin{code}
+ \CreateTheorem{idea}{
+ (*\commandoption{name}*) = {
+ (*\commandoption{heading}*) = Idea,
+ (*\commandoption{crefname}*) = {idea}{ideas},
+ (*\commandoption{Crefname}*) = {Idea}{Ideas},
+ },
+ (*\commandoption{parent counter}*) = section,
+ }
+\end{code}
+
+\smallskip
+This is not exciting at all. Now, let's say we are writing a bilingual note in English and French. (I shall omit the \lstinline|\NameTheorem| version and do it all at once in \lstinline|\CreateTheorem|.)
+
+\begin{code}
+\CreateTheorem{idea}{
+ (*\commandoption{name}*) = {
+ (*\commandoption{heading}*) = { english = Idea,
+ french = Idée, },
+ (*\commandoption{crefname}*) = { english = {idea}{ideas},
+ french = [l']{idée}[les]{idées}, },
+ (*\commandoption{Crefname}*) = { english = {Idea}{Ideas},
+ french = [L']{idée}[Les]{idées}, },
+ },
+ (*\commandoption{parent counter}*) = section,
+}
+\end{code}
+
+With this, if you use \lstinline|\selectlanguage{french}|, the \texttt{idea} environment shall be automatically displayed as ``Idée''. And if you \lstinline|\crefthe| it, the definite article and the name showed up properly just as expected.
+
+\medskip
+Next we shall deal with the numbering problem. Let's continue to use this environment \texttt{idea} for demonstration -- suppose that we have set the names up with \lstinline|\NameTheorem|.
+
+\subsection{Let's play with numbering}
+
+Remember the exercise I left to you at the end of the previous section? Let's do this together.
+
+\subsubsection{Numbered \texttt{idea} and numbered \texttt{idea*}}
+
+This is easy, \commandoption{copy existed} suffices:
+
+\begin{code}
+\CreateTheorem{idea}{(*\commandoption{parent counter}*) = section}
+\CreateTheorem{idea*}{(*\commandoption{copy existed}*) = idea}
+\end{code}
+
+\subsubsection{Numbered \texttt{idea} and unnumbered \texttt{idea*}}
+
+This is the easiest, \commandoption{create starred version} will do.
+
+\begin{code}
+\CreateTheorem{idea}{
+ (*\commandoption{parent counter}*) = section,
+ (*\commandoption{create starred version}*),
+}
+\end{code}
+
+Notice that you cannot use \lstinline|\CreateTheorem{idea*}{|\commandoption{numberless}\lstinline|}| here, since we don't have names defined for \texttt{idea*}.
+
+\subsubsection{Unnumbered \texttt{idea} and numbered \texttt{idea*}}
+
+This is a bit tricky: by default we can only create numbered \texttt{idea} or unnumbered \texttt{idea*}, and the question is how to switch them. We shall need an intermediary.
+
+\begin{code}
+\CreateTheorem{idea}{(*\commandoption{create starred version}*)}
+\CreateTheorem{idea-temp}{(*\commandoption{copy existed}*) = idea*}
+\CreateTheorem{idea*}{(*\commandoption{copy existed}*) = idea}
+\CreateTheorem{idea}{(*\commandoption{copy existed}*) = idea-temp}
+\end{code}
+
+\subsubsection{Unnumbered \texttt{idea} and unnumbered \texttt{idea*}}
+
+This is the combination of the first two cases --- we need to create \texttt{idea*} first and then copy it to \texttt{idea}:
+
+\begin{code}
+\CreateTheorem{idea}{(*\commandoption{create starred version}*)}
+\CreateTheorem{idea}{(*\commandoption{copy existed}*) = idea*}
+\end{code}
+
+\smallskip
+In each case, the two environments \texttt{idea} and \texttt{idea*} share the same set of names.
+
+
+\section{Known issues}
+
+\begin{itemize}
+ \item The current mechanism does not work well for German, a problem originated in the package \textsf{crefthe}. The author plans to adopt a more refined approach in later versions so as to support the various situations in German.
+ \item If the option ``\packageoption{name in link}'' is enabled, the ``\packageoption{name as is}'' mode shall take longer time to produce the final result, for the current implementation uses \lstinline|\regexpatchcmd| to patch some of the referencing formats, which is not very efficient.
+ \item There may be inaccuracies in the translation of those preset names.
+\end{itemize}
+
+\medskip
+If you run into any issues or have ideas for improvement, feel free to discuss on:
+\begin{center}
+ \url{https://github.com/Jinwen-XU/create-theorem/issues}
+\end{center}
+or email me via \href{mailto:ProjLib@outlook.com}{\texttt{ProjLib@outlook.com}}.
+
+\end{document}
diff --git a/macros/latex/contrib/create-theorem/create-theorem.sty b/macros/latex/contrib/create-theorem/create-theorem.sty
new file mode 100644
index 0000000000..22e89a8d8d
--- /dev/null
+++ b/macros/latex/contrib/create-theorem/create-theorem.sty
@@ -0,0 +1,1458 @@
+%%
+%% Copyright (C) 2021-2022 by Jinwen XU
+%% ------------------------------------
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {create-theorem}
+ {2022/02/27} {}
+ {Initializing theorem-like environments with multilingual support}
+
+\keys_define:nn { create-theorem }
+ {
+ , draft .bool_set:N = \l__crthm_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__crthm_fast_bool
+ , name-as-context .bool_set:N = \l__crthm_regionalref_bool
+ , name-as-context .initial:n = { true }
+ , name~as~context .bool_set:N = \l__crthm_regionalref_bool
+ , name as context .bool_set:N = \l__crthm_regionalref_bool
+ , regionalref .bool_set:N = \l__crthm_regionalref_bool
+ , name-as-is .bool_set_inverse:N = \l__crthm_regionalref_bool
+ , name~as~is .bool_set_inverse:N = \l__crthm_regionalref_bool
+ , name as is .bool_set_inverse:N = \l__crthm_regionalref_bool
+ , originalref .bool_set_inverse:N = \l__crthm_regionalref_bool
+ , name-in-link .bool_set:N = \l__crthm_nameinlink_bool
+ , name-in-link .initial:n = { false }
+ , name~in~link .bool_set:N = \l__crthm_nameinlink_bool
+ , name in link .bool_set:N = \l__crthm_nameinlink_bool
+ , no-preset-names .bool_set_inverse:N = \l__crthm_presetname_bool
+ , no-preset-names .initial:n = { false }
+ , no~preset~names .bool_set_inverse:N = \l__crthm_presetname_bool
+ , no preset names .bool_set_inverse:N = \l__crthm_presetname_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { create-theorem }
+
+\RequirePackage { aliascnt }
+
+\bool_if:NT \l__crthm_nameinlink_bool
+ {
+ \PassOptionsToPackage { nameinlink } { cleveref }
+ }
+
+\RequirePackage { crefthe }
+
+
+% Users should consider appending their languages to this list as needed,
+% otherwise the naming functionality may not work in monolingual documents.
+\clist_new:N \g_crthm_supported_language_clist
+\clist_gset:Nn \g_crthm_supported_language_clist
+ {
+ english ,
+ french ,
+ ngerman ,
+ italian ,
+ portuguese ,
+ brazilian ,
+ spanish ,
+ schinese ,
+ tchinese ,
+ japanese ,
+ russian ,
+ }
+
+\cs_new:Nn \crthm_add_to_language_list:n
+ {
+ \clist_gput_right:Nn \g_crthm_supported_language_clist { #1 }
+ }
+
+\NewDocumentCommand \CreateTheoremAddLanguage { m }
+ {
+ \crthm_add_to_language_list:n { #1 }
+ }
+
+
+\tl_new:N \l__crthm_current_env_tl
+
+\keys_define:nn { create-theorem-naming }
+ {
+ , heading .code:n = { \crthm_set_name_heading:ee { \l__crthm_current_env_tl } { #1 } }
+ , heading .value_required:n = true
+ , crefname .code:n = { \crthm_set_name_crefname:ee { \l__crthm_current_env_tl } { #1 } }
+ , crefname .value_required:n = true
+ , Crefname .code:n = { \crthm_set_name_Crefname:ee { \l__crthm_current_env_tl } { #1 } }
+ , Crefname .value_required:n = true
+ , unknown .code:n = {}
+ }
+
+\cs_new:Nn \crthm_set_name_heading:nn
+ % #1 = env name
+ % #2 = the settings
+ {
+ \str_if_in:nnTF { #2 } { = }
+ {% key-value definition
+ \keyval_parse:nnn
+ {}
+ { \__crthm_set_name_heading:nnn { #1 } }
+ { #2 }
+ }
+ {% simple definition
+ \clist_map_inline:Nn \g_crthm_supported_language_clist
+ {
+ \__crthm_set_name_heading:nnn { #1 } { ##1 } { #2 }
+ }
+ }
+ }
+\cs_generate_variant:Nn \crthm_set_name_heading:nn { ee }
+
+\cs_new:Nn \__crthm_set_name_heading:nnn
+ % #1 = env name
+ % #2 = language name
+ % #3 = corresponding heading name
+ {
+ \tl_gset:cn { g_crthm_name_heading_ #1 _ #2 _tl } { #3 }
+ }
+
+\cs_new:Nn \crthm_set_name_crefname:nn
+ % #1 = env name
+ % #2 = the settings
+ {
+ \crthm_set_name_crefname_generic:nnn { #1 } { #2 } { c }
+ }
+\cs_generate_variant:Nn \crthm_set_name_crefname:nn { ee }
+
+\cs_new:Nn \crthm_set_name_Crefname:nn
+ % #1 = env name
+ % #2 = the settings
+ {
+ \crthm_set_name_crefname_generic:nnn { #1 } { #2 } { C }
+ }
+\cs_generate_variant:Nn \crthm_set_name_Crefname:nn { ee }
+
+\cs_new:Nn \crthm_set_name_crefname_generic:nnn
+ % #1 = env name
+ % #2 = the settings
+ % #3 = c or C
+ {
+ \str_if_in:nnTF { #2 } { = }
+ {% key-value definition
+ \keyval_parse:nnn
+ {}
+ { \use:c { __crthm_set_name_ #3 refname:nnn } { #1 } }
+ { #2 }
+ }
+ {% simple definition
+ \clist_map_inline:Nn \g_crthm_supported_language_clist
+ {
+ \use:c { __crthm_set_name_ #3 refname:nnn } { #1 } { ##1 } { #2 }
+ }
+ }
+ }
+
+\cs_new:Nn \__crthm_set_name_crefname:nnn
+ % #1 = env name
+ % #2 = language name
+ % #3 = corresponding crefname {..}{..} or [..]{..}[..]{..}
+ {
+ \__crthm_set_name_crefname_generic:w { #1 } { #2 } #3 { c }
+ }
+
+\cs_new:Nn \__crthm_set_name_Crefname:nnn
+ % #1 = env name
+ % #2 = language name
+ % #3 = corresponding Crefname {..}{..} or [..]{..}[..]{..}
+ {
+ \__crthm_set_name_crefname_generic:w { #1 } { #2 } #3 { C }
+ }
+
+\NewExpandableDocumentCommand \__crthm_set_name_crefname_generic:w { m m O{} m O{} m m }
+ % #1 = env name
+ % #2 = language name
+ % #7 = c or C
+ {
+ \tl_if_blank:eTF { #3 }
+ {
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark{ \!\! } }
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark{ \!\! } }
+ }
+ {
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark { #3 } }
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark { #5 } }
+ }
+ \tl_gset:cn { g_crthm_name_ #7 ref_singular_ #1 _ #2 _tl } { #4 }
+ \tl_gset:cn { g_crthm_name_ #7 ref_plural_ #1 _ #2 _tl } { #6 }
+
+ \bool_if:NTF \l__crthm_regionalref_bool
+ {% "regionalref" mode
+ \use:c { __crthm_set_name_ #7 refname_do:nnn } { #1 _crthm_regional } { #1 } { \languagename }
+ }
+ {% "originalref" mode
+ \tl_if_exist:cF { c@ #1 _crthm_original_ #2 } { \newaliascnt { #1 _crthm_original_ #2 } { #1 } }
+ \use:c { __crthm_set_name_ #7 refname_do:nnn } { #1 _crthm_original_ #2 } { #1 } { #2 }
+ }
+ }
+
+\cs_new:Nn \__crthm_set_name_crefname_do:nnn
+ % #1 = counter name
+ % #2 = env name
+ % #3 = language name
+ {
+ \__crthm_set_name_crefname_do_generic:nnnn { #1 } { #2 } { #3 } { c }
+ }
+
+\cs_new:Nn \__crthm_set_name_Crefname_do:nnn
+ % #1 = counter name
+ % #2 = env name
+ % #3 = language name
+ {
+ \__crthm_set_name_crefname_do_generic:nnnn { #1 } { #2 } { #3 } { C }
+ }
+
+\seq_new:N \g__crthm_format_already_set_seq
+
+\cs_new:Nn \__crthm_set_name_crefname_do_generic:nnnn
+ % #1 = counter name
+ % #2 = env name
+ % #3 = language name
+ % #4 = c or C
+ {
+ \tl_gset:cn { #4 ref@ #1 @name }
+ {
+ \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl }
+ \bool_if:NTF \g__crefthe_has_prep_bool
+ {
+ \tl_use:c { g_crthm_name_ cref_singular_ #2 _ #3 _tl }
+ }
+ {
+ \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+ }
+ }
+ \tl_gset:cn { #4 ref@ #1 @name@plural }
+ { % Use the definite article of the original language, with name's casing depends on the preposition and the article
+ \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl }
+ \bool_if:NTF \g__crefthe_has_prep_bool
+ {
+ \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+ }
+ {
+ \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+ }
+ }
+ %% Use the definite article of the original language, with name's casing correspond to the article
+ % \tl_gset:cn { #4 ref@ #1 @name }
+ % {
+ % \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl }
+ % \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+ % }
+ % \tl_gset:cn { #4 ref@ #1 @name@plural }
+ % {
+ % \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl }
+ % \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+ % }
+ %% Use the definite article of the current language, with name's casing correspond to the article
+ % \tl_gset:cn { #4 ref@ #1 @name }
+ % {
+ % \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ \languagename _tl }
+ % \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+ % }
+ % \tl_gset:cn { #4 ref@ #1 @name@plural }
+ % {
+ % \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl }
+ % \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+ % }
+
+ \seq_if_in:NnF \g__crthm_format_already_set_seq { #2 _ #3 }
+ {
+ \@crefcopyformats { #2 _ #3 } { #1 }
+ \seq_gput_right:Nn \g__crthm_format_already_set_seq { #2 _ #3 }
+ }
+
+ \bool_if:NF \l__crthm_fast_bool
+ { % Patch the cref formats so that definite articles are placed outside the hyperlinks
+ \bool_if:NT \l__crthm_nameinlink_bool
+ { % Use the definite article of the original language, with name's casing depends on the preposition and the article
+ \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format } { #4 ref@ #1 @name }
+ { \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl } }
+ {
+ \bool_if:NTF \g__crefthe_has_prep_bool
+ {
+ \tl_use:c { g_crthm_name_ cref_singular_ #2 _ #3 _tl }
+ }
+ {
+ \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+ }
+ }
+ \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format@first } { #4 ref@ #1 @name@plural }
+ { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+ {
+ \bool_if:NTF \g__crefthe_has_prep_bool
+ {
+ \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+ }
+ {
+ \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+ }
+ }
+ \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format } { #4 ref@ #1 @name@plural }
+ { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+ {
+ \bool_if:NTF \g__crefthe_has_prep_bool
+ {
+ \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+ }
+ {
+ \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+ }
+ }
+ \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format@first } { #4 ref@ #1 @name@plural }
+ { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+ {
+ \bool_if:NTF \g__crefthe_has_prep_bool
+ {
+ \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+ }
+ {
+ \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+ }
+ }
+ %% Use the definite article of the original language, with name's casing correspond to the article
+ % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format } { #4 ref@ #1 @name }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl } }
+ % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format@first } { #4 ref@ #1 @name@plural }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+ % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format } { #4 ref@ #1 @name@plural }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+ % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format@first } { #4 ref@ #1 @name@plural }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+ %% Use the definite article of the current language, with name's casing correspond to the article
+ % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format } { #4 ref@ #1 @name }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ \languagename _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl } }
+ % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format@first } { #4 ref@ #1 @name@plural }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+ % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format } { #4 ref@ #1 @name@plural }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+ % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format@first } { #4 ref@ #1 @name@plural }
+ % { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl } }
+ % { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+ }
+ }
+ }
+
+\NewDocumentCommand \NameTheorem { m m }
+ {
+ \tl_set:Nn \l__crthm_current_env_tl { #1 }
+ \newcounter { #1 }
+ \keys_set:nn { create-theorem-naming } { #2 }
+ }
+
+\bool_new:N \l__crthm_creating_apply_style_bool
+\tl_new:N \l__crthm_creating_apply_style_tl
+\bool_new:N \l__crthm_creating_numberless_bool
+\bool_new:N \l__crthm_creating_create_starred_bool
+\bool_new:N \l__crthm_creating_copy_existed_bool
+\tl_new:N \l__crthm_creating_copy_existed_tl
+\keys_define:nn { create-theorem-creating }
+ {
+ , name .code:n = { \exp_args:Ne \NameTheorem { \l__crthm_current_env_tl } { #1 } }
+ , name .value_required:n = true
+ , style .code:n = { \bool_set_true:N \l__crthm_creating_apply_style_bool
+ \tl_set:Nn \l__crthm_creating_apply_style_tl { #1 } }
+ , style .value_required:n = true
+ , apply~style .meta:n = { style = #1 }
+ , apply~style .value_required:n = true
+ , apply-style .meta:n = { style = #1 }
+ , apply-style .value_required:n = true
+ , apply style .meta:n = { style = #1 }
+ , apply style .value_required:n = true
+ , numberless .bool_set:N = \l__crthm_creating_numberless_bool
+ , create~starred~version .bool_set:N = \l__crthm_creating_create_starred_bool
+ , create-starred-version .meta:n = { create~starred~version }
+ , create starred version .meta:n = { create~starred~version }
+ , create~numberless~version .meta:n = { create~starred~version }
+ , create-numberless-version .meta:n = { create~starred~version }
+ , create numberless version .meta:n = { create~starred~version }
+ , copy~existed .code:n = { \bool_set_true:N \l__crthm_creating_copy_existed_bool
+ \tl_set:Nn \l__crthm_creating_copy_existed_tl { #1 } }
+ , copy~existed .value_required:n = true
+ , copy-existed .meta:n = { copy~existed = #1 }
+ , copy-existed .value_required:n = true
+ , copy existed .meta:n = { copy~existed = #1 }
+ , copy existed .value_required:n = true
+ , unknown .code:n = {}
+ }
+
+\keys_define:nn { create-theorem-creating / counter-management }
+ {
+ , parent~counter .code:n = { \crthm_counter_within:ee { \l__crthm_current_env_tl } { #1 } }
+ , parent~counter .value_required:n = true
+ , parent-counter .meta:n = { parent~counter = #1 }
+ , parent-counter .value_required:n = true
+ , parent counter .meta:n = { parent~counter = #1 }
+ , parent counter .value_required:n = true
+ , number~within .meta:n = { parent~counter = #1 }
+ , number~within .value_required:n = true
+ , number-within .meta:n = { parent~counter = #1 }
+ , number-within .value_required:n = true
+ , number within .meta:n = { parent~counter = #1 }
+ , number within .value_required:n = true
+ , shared~counter .code:n = { \crthm_counter_alias:ee { \l__crthm_current_env_tl } { #1 } }
+ , shared~counter .value_required:n = true
+ , shared-counter .meta:n = { shared~counter = #1 }
+ , shared-counter .value_required:n = true
+ , shared counter .meta:n = { shared~counter = #1 }
+ , shared counter .value_required:n = true
+ , number~like .meta:n = { shared~counter = #1 }
+ , number~like .value_required:n = true
+ , number-like .meta:n = { shared~counter = #1 }
+ , number-like .value_required:n = true
+ , number like .meta:n = { shared~counter = #1 }
+ , number like .value_required:n = true
+ , unknown .code:n = {}
+ }
+
+\NewDocumentCommand \CreateTheorem { m m }
+ {
+ \tl_set:Nn \l__crthm_current_env_tl { #1 }
+ \bool_set_false:N \l__crthm_creating_apply_style_bool
+ \bool_set_false:N \l__crthm_creating_numberless_bool
+ \bool_set_false:N \l__crthm_creating_create_starred_bool
+ \bool_set_false:N \l__crthm_creating_copy_existed_bool
+ \keys_set:nn { create-theorem-creating } { #2 }
+ \bool_if:NTF \l__crthm_creating_copy_existed_bool
+ {
+ \__crthm_define_env:ee { #1 } { \l__crthm_creating_copy_existed_tl }
+ \bool_if:NT \l__crthm_creating_create_starred_bool
+ {
+ \__crthm_define_env:ee { #1 * } { \l__crthm_creating_copy_existed_tl * }
+ }
+ }
+ {
+ \group_begin:
+ \bool_if:NT \l__crthm_creating_apply_style_bool
+ {
+ \exp_after:wN \theoremstyle \exp_after:wN { \l__crthm_creating_apply_style_tl }
+ }
+ \bool_if:NTF \l__crthm_creating_numberless_bool
+ {
+ \newtheorem*{ #1 _crthm_regional } { \tl_use:c { g_crthm_name_heading_ #1 _ \languagename _tl } }
+ }
+ {
+ \newtheorem { #1 _crthm_regional } [#1] { \tl_use:c { g_crthm_name_heading_ #1 _ \languagename _tl } }
+ }
+ \group_end:
+ \NewDocumentEnvironment { #1 } { O{} }
+ % In "regionalref" mode, the counter received by the referencing system is "#1 _crthm_regional"
+ % while in "originalref" mode, the counter received is "#1 _crthm_original_\languagename"
+ {
+ \begin{ #1 _crthm_regional }[##1]
+ \bool_if:NF \l__crthm_regionalref_bool
+ {
+ \addtocounter { #1 _crthm_original_\languagename } { -1 }
+ \refstepcounter { #1 _crthm_original_\languagename }
+ }
+ }
+ {
+ \end{ #1 _crthm_regional }
+ }
+ \bool_if:NT \l__crthm_creating_create_starred_bool
+ {
+ \newtheorem*{ #1 * } { \tl_use:c { g_crthm_name_heading_ #1 _ \languagename _tl } }
+ }
+ \keys_set:nn { create-theorem-creating / counter-management } { #2 }
+ }
+ }
+
+\cs_new:Nn \__crthm_define_env:nn
+ {
+ \cs_set_eq:cc { #1 } { #2 }
+ \cs_set_eq:cc { end #1 } { end #2 }
+ }
+\cs_generate_variant:Nn \__crthm_define_env:nn { ee }
+
+\cs_new:Nn \crthm_counter_within:nn
+ {
+ \counterwithin { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \crthm_counter_within:nn { ee }
+
+\cs_new:Nn \crthm_counter_alias:nn
+ {
+ \cs_set_eq:cc { c@ #1 } { c@ #2 }
+ \cs_set_eq:cc { the #1 } { the #2 }
+ }
+\cs_generate_variant:Nn \crthm_counter_alias:nn { ee }
+
+
+\bool_if:NF \l__crthm_presetname_bool { \endinput }
+
+
+%=============================
+% --- Preset Names ---
+%=============================
+
+\NameTheorem { assertion }
+ {
+ , heading = {
+ , english = Assertion
+ , french = Assertion
+ , ngerman = Behauptung
+ , italian = Asserzione
+ , portuguese = Asserção
+ , brazilian = Asserção
+ , spanish = Aserción
+ , schinese = 断言
+ , tchinese = 斷言
+ , japanese = アサーション
+ , russian = Утверждение
+ }
+ , crefname = {
+ , english = {assertion}{assertions}
+ , french = [l']{assertion}[les]{assertions}
+ , ngerman = {Behauptung}{Behauptungen}
+ , italian = [l']{asserzione}[le]{asserzioni}
+ , portuguese = [a]{asserção}[as]{asserções}
+ , brazilian = [a]{asserção}[as]{asserções}
+ , spanish = [la]{aserción}[las]{aserciones}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {утверждение}{утверждения}
+ }
+ , Crefname = {
+ , english = {Assertion}{Assertions}
+ , french = [L']{assertion}[Les]{assertions}
+ , ngerman = {Behauptung}{Behauptungen}
+ , italian = [L']{asserzione}[Le]{asserzioni}
+ , portuguese = [A]{asserção}[As]{asserções}
+ , brazilian = [A]{asserção}[As]{asserções}
+ , spanish = [La]{aserción}[Las]{aserciones}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждения}
+ }
+ }
+
+\NameTheorem { assumption }
+ {
+ , heading = {
+ , english = Assumption
+ , french = Supposition
+ , ngerman = Annahme
+ , italian = Supposizione
+ , portuguese = Suposição
+ , brazilian = Suposição
+ , spanish = Suposición
+ , schinese = 假定
+ , tchinese = 假定
+ , japanese = 仮定
+ , russian = Предположение
+ }
+ , crefname = {
+ , english = {assumption}{assumptions}
+ , french = [la]{supposition}[les]{suppositions}
+ , ngerman = {Annahme}{Annahmen}
+ , italian = [la]{supposizione}[le]{supposizioni}
+ , portuguese = [a]{suposição}[as]{suposições}
+ , brazilian = [a]{suposição}[as]{suposições}
+ , spanish = [la]{suposición}[las]{suposiciones}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {предположение}{предположения}
+ }
+ , Crefname = {
+ , english = {Assumption}{Assumptions}
+ , french = [La]{supposition}[Les]{suppositions}
+ , ngerman = {Annahme}{Annahmen}
+ , italian = [la]{supposizione}[le]{supposizioni}
+ , portuguese = [A]{suposição}[As]{suposições}
+ , brazilian = [A]{suposição}[As]{suposições}
+ , spanish = [La]{suposición}[Las]{suposiciones}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположения}
+ }
+ }
+
+\NameTheorem { axiom }
+ {
+ , heading = {
+ , english = Axiom
+ , french = Axiome
+ , ngerman = Axiom
+ , italian = Assioma
+ , portuguese = Axioma
+ , brazilian = Axioma
+ , spanish = Axioma
+ , schinese = 公理
+ , tchinese = 公理
+ , japanese = 公理
+ , russian = Аксиома
+ }
+ , crefname = {
+ , english = {axiom}{axioms}
+ , french = [l']{axiome}[les]{axiomes}
+ , ngerman = {Axiom}{Axiome}
+ , italian = [l']{assioma}[gli]{assiomi}
+ , portuguese = [o]{axioma}[os]{axiomas}
+ , brazilian = [o]{axioma}[os]{axiomas}
+ , spanish = [el]{axioma}[los]{axiomas}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {аксиома}{аксиомы}
+ }
+ , Crefname = {
+ , english = {Axiom}{Axioms}
+ , french = [L']{axiome}[Les]{axiomes}
+ , ngerman = {Axiom}{Axiome}
+ , italian = [L']{assioma}[Gli]{assiomi}
+ , portuguese = [O]{axioma}[Os]{axiomas}
+ , brazilian = [O]{axioma}[Os]{axiomas}
+ , spanish = [El]{axioma}[Los]{axiomas}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиомы}
+ }
+ }
+
+\NameTheorem { conclusion }
+ {
+ , heading = {
+ , english = Conclusion
+ , french = Conclusion
+ , ngerman = Schlussfolgerung
+ , italian = Conclusione
+ , portuguese = Conclusão
+ , brazilian = Conclusão
+ , spanish = Conclusión
+ , schinese = 结论
+ , tchinese = 結論
+ , japanese = 結論
+ , russian = Вывод
+ }
+ , crefname = {
+ , english = {conclusion}{conclusions}
+ , french = [la]{conclusion}[Les]{conclusions}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerungen}
+ , italian = [la]{conclusione}[le]{conclusioni}
+ , portuguese = [a]{conclusão}[as]{conclusões}
+ , brazilian = [a]{conclusão}[as]{conclusões}
+ , spanish = [la]{conclusión}[las]{conclusiones}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {вывод}{выводы}
+ }
+ , Crefname = {
+ , english = {Conclusion}{Conclusions}
+ , french = [La]{conclusion}[Les]{conclusions}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerungen}
+ , italian = [La]{conclusione}[Le]{conclusioni}
+ , portuguese = [A]{conclusão}[As]{conclusões}
+ , brazilian = [A]{conclusão}[As]{conclusões}
+ , spanish = [La]{conclusión}[Las]{conclusiones}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Выводы}
+ }
+ }
+
+\NameTheorem { conjecture }
+ {
+ , heading = {
+ , english = Conjecture
+ , french = Conjecture
+ , ngerman = Vermutung
+ , italian = Congettura
+ , portuguese = Conjetura
+ , brazilian = Conjectura
+ , spanish = Conjetura
+ , schinese = 猜想
+ , tchinese = 猜想
+ , japanese = 予想
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {conjecture}{conjectures}
+ , french = [la]{conjecture}[les]{conjectures}
+ , ngerman = {Vermutung}{Vermutungen}
+ , italian = [la]{congettura}[le]{congetture}
+ , portuguese = [a]{conjetura}[as]{conjeturas}
+ , brazilian = [a]{conjectura}[as]{conjecturas}
+ , spanish = [la]{conjetura}[las]{conjeturas}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {гипотеза}{гипотезы}
+ }
+ , Crefname = {
+ , english = {Conjecture}{Conjectures}
+ , french = [La]{conjecture}[Les]{conjectures}
+ , ngerman = {Vermutung}{Vermutungen}
+ , italian = [La]{congettura}[Le]{congetture}
+ , portuguese = [A]{conjetura}[As]{conjeturas}
+ , brazilian = [A]{conjectura}[As]{conjecturas}
+ , spanish = [La]{conjetura}[Las]{conjeturas}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотезы}
+ }
+ }
+
+\NameTheorem { convention }
+ {
+ , heading = {
+ , english = Convention
+ , french = Convention
+ , ngerman = Konvention
+ , italian = Convenzione
+ , portuguese = Convenção
+ , brazilian = Convenção
+ , spanish = Convención
+ , schinese = 约定
+ , tchinese = 約定
+ , japanese = 慣例
+ , russian = Конвенция
+ }
+ , crefname = {
+ , english = {convention}{conventions}
+ , french = [la]{convention}[les]{conventions}
+ , ngerman = {Konvention}{Konventionen}
+ , italian = [la]{convenzione}[le]{convenzioni}
+ , portuguese = [a]{convenção}[as]{convenções}
+ , brazilian = [a]{convenção}[as]{convenções}
+ , spanish = [la]{convención}[las]{convenciones}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {конвенция}{конвенции}
+ }
+ , Crefname = {
+ , english = {Convention}{Conventions}
+ , french = [La]{convention}[Les]{conventions}
+ , ngerman = {Konvention}{Konventionen}
+ , italian = [La]{convenzione}[Le]{convenzioni}
+ , portuguese = [A]{convenção}[As]{convenções}
+ , brazilian = [A]{convenção}[As]{convenções}
+ , spanish = [La]{convención}[Las]{convenciones}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенции}
+ }
+ }
+
+\NameTheorem { corollary }
+ {
+ , heading = {
+ , english = Corollary
+ , french = Corollaire
+ , ngerman = Korollar
+ , italian = Corollario
+ , portuguese = Corolário
+ , brazilian = Corolário
+ , spanish = Corolario
+ , schinese = 推论
+ , tchinese = 推論
+ , japanese = 系
+ , russian = Следствие
+ }
+ , crefname = {
+ , english = {corollary}{corollaries}
+ , french = [le]{corollaire}[les]{corollaires}
+ , ngerman = {Korollar}{Korollare}
+ , italian = [il]{corollario}[i]{corollari}
+ , portuguese = [o]{corolário}[os]{corolários}
+ , brazilian = [o]{corolário}[os]{corolários}
+ , spanish = [el]{corolario}[los]{corolarios}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {следствие}{следствия}
+ }
+ , Crefname = {
+ , english = {Corollary}{Corollaries}
+ , french = [Le]{corollaire}[Les]{corollaires}
+ , ngerman = {Korollar}{Korollare}
+ , italian = [Il]{corollario}[I]{corollari}
+ , portuguese = [O]{corolário}[Os]{corolários}
+ , brazilian = [O]{corolário}[Os]{corolários}
+ , spanish = [El]{corolario}[Los]{corolarios}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствия}
+ }
+ }
+
+\NameTheorem { definition }
+ {
+ , heading = {
+ , english = Definition
+ , french = Définition
+ , ngerman = Definition
+ , italian = Definizione
+ , portuguese = Definição
+ , brazilian = Definição
+ , spanish = Definición
+ , schinese = 定义
+ , tchinese = 定義
+ , japanese = 定義
+ , russian = Определение
+ }
+ , crefname = {
+ , english = {definition}{definitions}
+ , french = [la]{définition}[les]{définitions}
+ , ngerman = {Definition}{Definitionen}
+ , italian = [la]{definizione}[le]{definizioni}
+ , portuguese = [a]{definição}[as]{definições}
+ , brazilian = [a]{definição}[as]{definições}
+ , spanish = [la]{definición}[las]{definiciones}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {определение}{определения}
+ }
+ , Crefname = {
+ , english = {Definition}{Definitions}
+ , french = [La]{définition}[Les]{définitions}
+ , ngerman = {Definition}{Definitionen}
+ , italian = [La]{definizione}[Le]{definizioni}
+ , portuguese = [A]{definição}[As]{definições}
+ , brazilian = [A]{definição}[As]{definições}
+ , spanish = [La]{definición}[Las]{definiciones}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определения}
+ }
+ }
+
+\NameTheorem { example }
+ {
+ , heading = {
+ , english = Example
+ , french = Exemple
+ , ngerman = Beispiel
+ , italian = Esempio
+ , portuguese = Exemplo
+ , brazilian = Exemplo
+ , spanish = Ejemplo
+ , schinese = 例
+ , tchinese = 例
+ , japanese = 例
+ , russian = Пример
+ }
+ , crefname = {
+ , english = {example}{examples}
+ , french = [l']{example}[les]{examples}
+ , ngerman = {Beispiel}{Beispiele}
+ , italian = [l']{esempio}[gli]{esempi}
+ , portuguese = [o]{exemplo}[os]{exemplos}
+ , brazilian = [o]{exemplo}[os]{exemplos}
+ , spanish = [el]{ejemplo}[los]{ejemplos}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {пример}{примеры}
+ }
+ , Crefname = {
+ , english = {Example}{Examples}
+ , french = [L']{example}[Les]{examples}
+ , ngerman = {Beispiel}{Beispiele}
+ , italian = [L']{esempio}[Gli]{esempi}
+ , portuguese = [O]{exemplo}[Os]{exemplos}
+ , brazilian = [O]{exemplo}[Os]{exemplos}
+ , spanish = [El]{ejemplo}[Los]{ejemplos}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Примеры}
+ }
+ }
+
+\NameTheorem { exercise }
+ {
+ , heading = {
+ , english = Exercise
+ , french = Exercice
+ , ngerman = Übung
+ , italian = Esercizio
+ , portuguese = Exercício
+ , brazilian = Exercício
+ , spanish = Ejercicio
+ , schinese = 练习
+ , tchinese = 練習
+ , japanese = 練習
+ , russian = Упражнение
+ }
+ , crefname = {
+ , english = {exercise}{exercises}
+ , french = [l']{exercice}[les]{exercices}
+ , ngerman = {Übung}{Übungen}
+ , italian = [l']{esercizio}[gli]{esercizi}
+ , portuguese = [o]{exercício}[os]{exercícios}
+ , brazilian = [o]{exercício}[os]{exercícios}
+ , spanish = [el]{ejercicio}[los]{ejercicios}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {упражнение}{упражнения}
+ }
+ , Crefname = {
+ , english = {Exercise}{Exercises}
+ , french = [L']{exercice}[Les]{exercices}
+ , ngerman = {Übung}{Übungen}
+ , italian = [L']{esercizio}[Gli]{esercizi}
+ , portuguese = [O]{exercício}[Os]{exercícios}
+ , brazilian = [O]{exercício}[Os]{exercícios}
+ , spanish = [El]{ejercicio}[Los]{ejercicios}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнения}
+ }
+ }
+
+\NameTheorem { fact }
+ {
+ , heading = {
+ , english = Fact
+ , french = Fait
+ , ngerman = Fakt
+ , italian = Fatto
+ , portuguese = Facto
+ , brazilian = Fato
+ , spanish = Hecho
+ , schinese = 事实
+ , tchinese = 事實
+ , japanese = 事実
+ , russian = Факт
+ }
+ , crefname = {
+ , english = {fact}{facts}
+ , french = [le]{fait}[les]{faits}
+ , ngerman = {Fakt}{Fakten}
+ , italian = [il]{fatto}[i]{fatti}
+ , portuguese = [o]{facto}[os]{factos}
+ , brazilian = [o]{fato}[os]{fatos}
+ , spanish = [el]{hecho}[los]{hechos}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {факт}{факты}
+ }
+ , Crefname = {
+ , english = {Fact}{Facts}
+ , french = [Le]{fait}[Les]{faits}
+ , ngerman = {Fakt}{Fakten}
+ , italian = [Il]{fatto}[I]{fatti}
+ , portuguese = [O]{facto}[Os]{factos}
+ , brazilian = [O]{fato}[Os]{fatos}
+ , spanish = [El]{hecho}[Los]{hechos}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факты}
+ }
+ }
+
+\NameTheorem { hypothesis }
+ {
+ , heading = {
+ , english = Hypothesis
+ , french = Hypothèse
+ , ngerman = Hypothese
+ , italian = Ipotesi
+ , portuguese = Hipótese
+ , brazilian = Hipótese
+ , spanish = Hipótesis
+ , schinese = 假设
+ , tchinese = 假設
+ , japanese = 仮設
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {hypothesis}{hypotheses}
+ , french = [l']{hypothèse}[les]{hypothèses}
+ , ngerman = {Hypothese}{Hypothesen}
+ , italian = [l']{ipotesi}[le]{ipotesi}
+ , portuguese = [a]{hipótese}[as]{hipóteses}
+ , brazilian = [a]{hipótese}[as]{hipóteses}
+ , spanish = [la]{hipótesis}[las]{hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {гипотеза}{гипотезы}
+ }
+ , Crefname = {
+ , english = {Hypothesis}{Hypotheses}
+ , french = [L']{hypothèse}[Les]{hypothèses}
+ , ngerman = {Hypothese}{Hypothesen}
+ , italian = [L']{ipotesi}[Le]{ipotesi}
+ , portuguese = [A]{hipótese}[As]{hipóteses}
+ , brazilian = [A]{hipótese}[As]{hipóteses}
+ , spanish = [La]{hipótesis}[Las]{hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотезы}
+ }
+ }
+
+\NameTheorem { lemma }
+ {
+ , heading = {
+ , english = Lemma
+ , french = Lemme
+ , ngerman = Lemma
+ , italian = Lemma
+ , portuguese = Lema
+ , brazilian = Lema
+ , spanish = Lema
+ , schinese = 引理
+ , tchinese = 引理
+ , japanese = 補題
+ , russian = Лемма
+ }
+ , crefname = {
+ , english = {lemma}{Lemmas}
+ , french = [le]{lemme}[les]{lemmes}
+ , ngerman = {Lemma}{Lemmata}
+ , italian = [il]{lemma}[i]{lemmi}
+ , portuguese = [o]{lema}[os]{lemas}
+ , brazilian = [o]{lema}[os]{lemas}
+ , spanish = [el]{lema}[las]{lemas}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {лемма}{леммы}
+ }
+ , Crefname = {
+ , english = {Lemma}{Lemmas}
+ , french = [Le]{lemme}[Les]{lemmes}
+ , ngerman = {Lemma}{Lemmata}
+ , italian = [Il]{lemma}[I]{lemmi}
+ , portuguese = [O]{lema}[Os]{lemas}
+ , brazilian = [O]{lema}[Os]{lemas}
+ , spanish = [el]{lema}[las]{lemas}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Леммы}
+ }
+ }
+
+\NameTheorem { notation }
+ {
+ , heading = {
+ , english = Notation
+ , french = Notation
+ , ngerman = Notation
+ , italian = Notazione
+ , portuguese = Notação
+ , brazilian = Notação
+ , spanish = Notación
+ , schinese = 记号
+ , tchinese = 記號
+ , japanese = 記法
+ , russian = Нотация
+ }
+ , crefname = {
+ , english = {notation}{notations}
+ , french = [la]{notation}[les]{notations}
+ , ngerman = {Notation}{Notationen}
+ , italian = [la]{notazione}[le]{notazioni}
+ , portuguese = [a]{notação}[as]{notações}
+ , brazilian = [a]{notação}[as]{notações}
+ , spanish = [la]{notación}[las]{notaciones}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {нотация}{нотации}
+ }
+ , Crefname = {
+ , english = {Notation}{Notations}
+ , french = [La]{notation}[Les]{notations}
+ , ngerman = {Notation}{Notationen}
+ , italian = [La]{notazione}[Le]{notazioni}
+ , portuguese = [A]{notação}[As]{notações}
+ , brazilian = [A]{notação}[As]{notações}
+ , spanish = [La]{notación}[Las]{notaciones}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотации}
+ }
+ }
+
+\NameTheorem { observation }
+ {
+ , heading = {
+ , english = Observation
+ , french = Observation
+ , ngerman = Beobachtung
+ , italian = Osservazione
+ , portuguese = Observação
+ , brazilian = Observação
+ , spanish = Observación
+ , schinese = 观察
+ , tchinese = 觀察
+ , japanese = 観察
+ , russian = Наблюдение
+ }
+ , crefname = {
+ , english = {observation}{observations}
+ , french = [la]{observation}[les]{observations}
+ , ngerman = {Beobachtung}{Beobachtungen}
+ , italian = [l']{osservazione}[le]{osservazioni}
+ , portuguese = [a]{observação}[as]{observações}
+ , brazilian = [a]{observação}[as]{observações}
+ , spanish = [la]{observación}[las]{observaciones}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {наблюдение}{наблюдения}
+ }
+ , Crefname = {
+ , english = {Observation}{Observations}
+ , french = [La]{observation}[Les]{observations}
+ , ngerman = {Beobachtung}{Beobachtungen}
+ , italian = [L']{osservazione}[Le]{osservazioni}
+ , portuguese = [A]{observação}[As]{observações}
+ , brazilian = [A]{observação}[As]{observações}
+ , spanish = [La]{observación}[Las]{observaciones}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдения}
+ }
+ }
+
+\NameTheorem { postulate }
+ {
+ , heading = {
+ , english = Postulate
+ , french = Postulat
+ , ngerman = Postulat
+ , italian = Postulato
+ , portuguese = Postulado
+ , brazilian = Postulado
+ , spanish = Postulado
+ , schinese = 公设
+ , tchinese = 公設
+ , japanese = 公準
+ , russian = Постулат
+ }
+ , crefname = {
+ , english = {postulate}{postulates}
+ , french = [le]{postulat}[les]{postulats}
+ , ngerman = {Postulat}{Postulate}
+ , italian = [il]{postulato}[i]{postulati}
+ , portuguese = [o]{postulado}[os]{postulados}
+ , brazilian = [o]{postulado}[os]{postulados}
+ , spanish = [el]{postulado}[los]{postulados}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {постулат}{постулаты}
+ }
+ , Crefname = {
+ , english = {Postulate}{Postulates}
+ , french = [Le]{postulat}[Les]{postulats}
+ , ngerman = {Postulat}{Postulate}
+ , italian = [Il]{postulato}[I]{postulati}
+ , portuguese = [O]{postulado}[Os]{postulados}
+ , brazilian = [O]{postulado}[Os]{postulados}
+ , spanish = [El]{postulado}[Los]{postulados}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулаты}
+ }
+ }
+
+\NameTheorem { problem }
+ {
+ , heading = {
+ , english = Problem
+ , french = Problème
+ , ngerman = Problem
+ , italian = Problema
+ , portuguese = Problema
+ , brazilian = Problema
+ , spanish = Problema
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Проблема
+ }
+ , crefname = {
+ , english = {problem}{problems}
+ , french = [le]{problème}[les]{problèmes}
+ , ngerman = {Problem}{Probleme}
+ , italian = [il]{problema}[i]{problemi}
+ , portuguese = [o]{problema}[os]{problemas}
+ , brazilian = [o]{problema}[os]{problemas}
+ , spanish = [el]{problema}[los]{problemas}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {проблема}{проблемы}
+ }
+ , Crefname = {
+ , english = {Problem}{Problems}
+ , french = [Le]{problème}[Les]{problèmes}
+ , ngerman = {Problem}{Probleme}
+ , italian = [Il]{problema}[I]{problemi}
+ , portuguese = [O]{problema}[Os]{problemas}
+ , brazilian = [O]{problema}[Os]{problemas}
+ , spanish = [El]{problema}[Los]{problemas}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблемы}
+ }
+ }
+
+\NameTheorem { property }
+ {
+ , heading = {
+ , english = Property
+ , french = Propriété
+ , ngerman = Eigenschaft
+ , italian = Proprietà
+ , portuguese = Propriedade
+ , brazilian = Propriedade
+ , spanish = Propiedad
+ , schinese = 性质
+ , tchinese = 性質
+ , japanese = 性質
+ , russian = Имущество
+ }
+ , crefname = {
+ , english = {property}{properties}
+ , french = [la]{propriété}[les]{propriétés}
+ , ngerman = {Eigenschaft}{Eigenschaften}
+ , italian = [la]{proprietà}[le]{proprietà}
+ , portuguese = [a]{propriedade}[as]{propriedades}
+ , brazilian = [a]{propriedade}[as]{propriedades}
+ , spanish = [la]{propiedad}[las]{propiedades}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {имущество}{имущества}
+ }
+ , Crefname = {
+ , english = {Property}{Properties}
+ , french = [La]{propriété}[Les]{propriétés}
+ , ngerman = {Eigenschaft}{Eigenschaften}
+ , italian = [La]{proprietà}[Le]{proprietà}
+ , portuguese = [A]{propriedade}[As]{propriedades}
+ , brazilian = [A]{propriedade}[As]{propriedades}
+ , spanish = [La]{propiedad}[Las]{propiedades}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущества}
+ }
+ }
+
+\NameTheorem { proposition }
+ {
+ , heading = {
+ , english = Proposition
+ , french = Proposition
+ , ngerman = Proposition
+ , italian = Proposizione
+ , portuguese = Proposição
+ , brazilian = Proposição
+ , spanish = Proposición
+ , schinese = 命题
+ , tchinese = 命題
+ , japanese = 命題
+ , russian = Предложение
+ }
+ , crefname = {
+ , english = {proposition}{propositions}
+ , french = [la]{proposition}[les]{propositions}
+ , ngerman = {Proposition}{Propositionen}
+ , italian = [la]{proposizione}[le]{proposte}
+ , portuguese = [a]{proposição}[as]{proposições}
+ , brazilian = [a]{proposição}[as]{proposições}
+ , spanish = [la]{proposición}[las]{proposiciones}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {предложение}{предложения}
+ }
+ , Crefname = {
+ , english = {Proposition}{Propositions}
+ , french = [La]{proposition}[Les]{propositions}
+ , ngerman = {Proposition}{Propositionen}
+ , italian = [La]{proposizione}[Le]{proposte}
+ , portuguese = [A]{proposição}[As]{proposições}
+ , brazilian = [A]{proposição}[As]{proposições}
+ , spanish = [La]{proposición}[Las]{proposiciones}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложения}
+ }
+ }
+
+\NameTheorem { question }
+ {
+ , heading = {
+ , english = Question
+ , french = Question
+ , ngerman = Frage
+ , italian = Domanda
+ , portuguese = Pergunta
+ , brazilian = Pergunta
+ , spanish = Pregunta
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Вопрос
+ }
+ , crefname = {
+ , english = {question}{questions}
+ , french = [la]{question}[les]{questions}
+ , ngerman = {Frage}{Fragen}
+ , italian = [la]{domanda}[le]{domande}
+ , portuguese = [a]{pergunta}[as]{perguntas}
+ , brazilian = [a]{pergunta}[as]{perguntas}
+ , spanish = [la]{pregunta}[las]{preguntas}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {вопрос}{вопросы}
+ }
+ , Crefname = {
+ , english = {Question}{Questions}
+ , french = [La]{question}[Les]{questions}
+ , ngerman = {Frage}{Fragen}
+ , italian = [La]{domanda}[Le]{domande}
+ , portuguese = [A]{pergunta}[As]{perguntas}
+ , brazilian = [A]{pergunta}[As]{perguntas}
+ , spanish = [La]{pregunta}[Las]{preguntas}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопросы}
+ }
+ }
+
+\NameTheorem { remark }
+ {
+ , heading = {
+ , english = Remark
+ , french = Remarque
+ , ngerman = Bemerkung
+ , italian = Commento
+ , portuguese = Comentário
+ , brazilian = Comentário
+ , spanish = Comentario
+ , schinese = 备注
+ , tchinese = 備註
+ , japanese = 注釈
+ , russian = Замечание
+ }
+ , crefname = {
+ , english = {remark}{remarks}
+ , french = [la]{remarque}[les]{remarques}
+ , ngerman = {Bemerkung}{Bemerkungen}
+ , italian = [il]{commento}[i]{commenti}
+ , portuguese = [o]{comentário}[os]{comentários}
+ , brazilian = [o]{comentário}[os]{comentários}
+ , spanish = [el]{comentario}[los]{comentarios}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {замечание}{замечания}
+ }
+ , Crefname = {
+ , english = {Remark}{Remarks}
+ , french = [La]{remarque}[Les]{remarques}
+ , ngerman = {Bemerkung}{Bemerkungen}
+ , italian = [Il]{commento}[I]{commenti}
+ , portuguese = [O]{comentário}[Os]{comentários}
+ , brazilian = [O]{comentário}[Os]{comentários}
+ , spanish = [El]{comentario}[Los]{comentarios}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечания}
+ }
+ }
+
+\NameTheorem { theorem }
+ {
+ , heading = {
+ , english = Theorem
+ , french = Théorème
+ , ngerman = Satz
+ , italian = Teorema
+ , portuguese = Teorema
+ , brazilian = Teorema
+ , spanish = Teorema
+ , schinese = 定理
+ , tchinese = 定理
+ , japanese = 定理
+ , russian = Теорема
+ }
+ , crefname = {
+ , english = {theorem}{theorems}
+ , french = [le]{théorème}[les]{théorèmes}
+ , ngerman = {Satz}{Sätze}
+ , italian = [il]{teorema}[i]{teoremi}
+ , portuguese = [o]{teorema}[os]{teoremas}
+ , brazilian = [o]{teorema}[os]{teoremas}
+ , spanish = [el]{teorema}[los]{teoremas}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {теорема}{теоремы}
+ }
+ , Crefname = {
+ , english = {Theorem}{Theorems}
+ , french = [Le]{théorème}[Les]{théorèmes}
+ , ngerman = {Satz}{Sätze}
+ , italian = [Il]{teorema}[I]{teoremi}
+ , portuguese = [O]{teorema}[Os]{teoremas}
+ , brazilian = [O]{teorema}[Os]{teoremas}
+ , spanish = [El]{teorema}[Los]{teoremas}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теоремы}
+ }
+ }
+
+
+\endinput
+%%
+%% End of file `create-theorem.sty'.
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.pdf b/macros/latex/contrib/crefthe/crefthe-doc.pdf
index 4e1a55b9d5..7f4f6ea5e0 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.pdf
+++ b/macros/latex/contrib/crefthe/crefthe-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.tex b/macros/latex/contrib/crefthe/crefthe-doc.tex
index 04051d0f60..70cdc89d92 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.tex
+++ b/macros/latex/contrib/crefthe/crefthe-doc.tex
@@ -77,19 +77,23 @@
\newenvironment{demo}{%
\LocallyStopLineNumbers%
\begin{tcolorbox}[enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=0.5mm,bottom=0mm,
+ left=2.5mm,right=3mm,top=0.5mm,bottom=0mm,
colback=gray!5!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{gray!55!paper},arc=.7mm]%
+ borderline west={1.2mm}{0mm}{gray!55!paper},arc=.7mm]%
}{\end{tcolorbox}\ResumeLineNumbers}
+\newcommand{\packageoption}[1]{\texttt{\textcolor{black!67!green}{#1}}}
+\newcommand{\commandoption}[1]{\texttt{\textcolor{black!67!cyan}{#1}}}
+
+
\newcommand{\crefthepackage}{\textsf{crefthe}}
\begin{document}
-\title{\crefthepackage{} - cross referencing with proper definite articles}
+\title{\crefthepackage{}\\\smallskip\itshape Cross referencing with proper definite articles}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\crefthepackage{} 2022/02/20}}
+\thanks{Corresponding to: \texttt{\crefthepackage{} 2022/02/27}}
\date{February 2022, in Paris}
\maketitle
@@ -231,7 +235,7 @@ To place hyperlinks at the right place, \lstinline|\crefthename| touches the cor
\crefthepackage{} loads \textsf{cleveref} automatically and pass all the options to it. All its commands, used without optional arguments, degenerate to those in \textsf{cleveref}. For example, \lstinline|\crefthe{...}| is the same as \lstinline|\cref{...}|, and \lstinline|\crefthename| is the same as \lstinline|\crefname| if the definite articles are not specified. That said, you can safely use the command \lstinline|\crefthe| everywhere in your document without causing extra trouble.
-With the option \texttt{overwrite}, user commands in \textsf{cleveref} will be replaced by those offered here, thus you can simply write \lstinline|\cref| for \lstinline|\crefthe| -- and similarly with \lstinline|\Cref|, \lstinline|\crefname| and \lstinline|\Crefname|.
+With the package option \packageoption{overwrite}, user commands in \textsf{cleveref} will be replaced by those offered here, thus you can simply write \lstinline|\cref| for \lstinline|\crefthe| -- and similarly with \lstinline|\Cref|, \lstinline|\crefname| and \lstinline|\Crefname|.
\section{Known issues}
@@ -241,5 +245,12 @@ With the option \texttt{overwrite}, user commands in \textsf{cleveref} will be r
\item The names of theorem-like environments are not provided here, you need to define them by yourself. However, users are encouraged to use the \ProjLib{} toolkit (more specifically, the internal package \textsf{create-theorem}), which already handles everything for you.
\end{itemize}
+\medskip
+If you run into any issues or have ideas for improvement, feel free to discuss on:
+\begin{center}
+ \url{https://github.com/Jinwen-XU/crefthe/issues}
+\end{center}
+or email me via \href{mailto:ProjLib@outlook.com}{\texttt{ProjLib@outlook.com}}.
+
\end{document}
diff --git a/macros/latex/contrib/crefthe/crefthe.sty b/macros/latex/contrib/crefthe/crefthe.sty
index 7edf7e1788..213f3d2e60 100644
--- a/macros/latex/contrib/crefthe/crefthe.sty
+++ b/macros/latex/contrib/crefthe/crefthe.sty
@@ -13,7 +13,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{crefthe}
- {2022/02/20} {}
+ {2022/02/27} {}
{Cross referencing with proper definite articles}
\keys_define:nn { crefthe }
@@ -26,6 +26,7 @@
\ProcessKeysOptions { crefthe }
\RequirePackage { cleveref }
+\RequirePackage { regexpatch }
\NewCommandCopy \crefthe_cref_original:w \cref
\NewCommandCopy \crefthe_Cref_original:w \Cref
@@ -41,20 +42,28 @@
\tl_new:N \l__crefthe_prep_once_tl
\tl_new:N \l__crefthe_prep_each_tl
-\bool_new:N \l__crefthe_uppercase_bool
+\bool_new:N \g__crefthe_uppercase_bool
+\bool_new:N \g__crefthe_has_prep_bool
\NewDocumentCommand \crefthe { s t- t+ O{} m }
{
- \bool_set_false:N \l__crefthe_uppercase_bool
+ \bool_gset_false:N \g__crefthe_uppercase_bool
\__crefthe_cref_general:NNNnnN #1 #2 #3 { #4 } { #5 } \crefthe_cref_original:w
}
\NewDocumentCommand \Crefthe { s t- t+ O{} m }
{
- \bool_set_true:N \l__crefthe_uppercase_bool
+ \bool_gset_true:N \g__crefthe_uppercase_bool
\__crefthe_cref_general:NNNnnN #1 #2 #3 { #4 } { #5 } \crefthe_Cref_original:w
}
-\cs_new_protected:Npn \__crefthe_cref_general:NNNnnN #1 #2 #3 #4 #5 #6
+\cs_new_protected:Nn \__crefthe_cref_general:NNNnnN
{
+ \tl_if_blank:eTF #4
+ {
+ \bool_gset_false:N \g__crefthe_has_prep_bool
+ }
+ {
+ \bool_gset_true:N \g__crefthe_has_prep_bool
+ }
\bool_if:NTF #2
{ \tl_set:Nn \l__crefthe_prep_once_tl { #4 } }
{
@@ -78,7 +87,7 @@
}
% \__crefthe_prep_mode: defines the default mode for supported languages
-\cs_new:Npn \__crefthe_prep_mode:
+\cs_new:Nn \__crefthe_prep_mode:
{
\str_case:Vn \languagename
{
@@ -94,51 +103,80 @@
{
\__crefthe_name_general:nnnnnn { #1 } { #2 } { #3 } { #4 } { #5 } { c }
}
+
\NewDocumentCommand \Crefthename { m O{} m O{} m }
{
\__crefthe_name_general:nnnnnn { #1 } { #2 } { #3 } { #4 } { #5 } { C }
}
-\cs_new_protected:Npn \__crefthe_name_general:nnnnnn #1 #2 #3 #4 #5 #6
+
+\cs_new_protected:Nn \__crefthe_name_general:nnnnnn
{
% #6 is c or C
\tl_if_blank:nTF { #2 }
{
- \cs:w crefthe_#6refname_original:w \cs_end: { #1 } { #3 } { #5 }
- \cs_set:cn { #6ref_#1_format:nnn } { ##2 #3 ~ ##1 ##3 }
- \cs_set:cn { #6ref_#1_format_first:nnn } { ##2 #5 ~ ##1 ##3 }
+ \__crefthe_name_general_do:nnnnnn { #1 } {} { #3 } {} { #5 } { #6 }
}
{
- \cs:w crefthe_#6refname_original:w \cs_end: { #1 } { \crefthemark { #2 } #3 } { \crefthemark { #4 } #5 }
- \cs_set:cn { #6ref_#1_format:nnn } { \crefthemark { #2 } ##2 #3 ~ ##1 ##3 }
- \cs_set:cn { #6ref_#1_format_first:nnn } { \crefthemark { #4 } ##2 #5 ~ ##1 ##3 }
+ \__crefthe_name_general_do:nnnnnn { #1 } { \crefthemark { #2 } } { #3 } { \crefthemark { #4 } } { #5 } { #6 }
}
+ }
+
+\cs_new_protected:Nn \__crefthe_name_general_do:nnnnnn
+ {
+ \use:c { crefthe_#6refname_original:w } { #1 } { #2 #3 } { #4 #5 }
\hook_gput_code:nnn { begindocument } { crefthe }
{
- \cs_set_eq:cc { #6ref@ #1 @format } { #6ref_#1_format:nnn }
- \cs_set_eq:cc { #6ref@ #1 @format@first } { #6ref_#1_format_first:nnn }
+ \crefthe_patch_format:nnnnn { 2 } { #6ref@#1@format } { #6ref@#1@name } { #2 } { #3 }
+ \crefthe_patch_format:nnnnn { 2 } { #6ref@#1@format@first } { #6ref@#1@name@plural } { #4 } { #5 }
+ \crefthe_patch_format:nnnnn { 3 } { #6refrange@#1@format } { #6ref@#1@name@plural } { #4 } { #5 }
+ \crefthe_patch_format:nnnnn { 3 } { #6refrange@#1@format@first } { #6ref@#1@name@plural } { #4 } { #5 }
+ }
+ }
+
+\seq_new:N \g__crefthe_already_patched_seq
+
+\cs_new_protected:Nn \crefthe_patch_format:nnnnn
+ % #1 = the # number for the beginning mark of hyperlink
+ % #2 = name of the format command
+ % #3 = name of the command after hyperlink mark
+ % #4 = new content before the mark
+ % #5 = new content after the mark
+ {
+ \seq_if_in:NnF \g__crefthe_already_patched_seq { #2 - #3 }
+ {
+ \makeatletter
+ \tl_set:Nn \l_tmpa_tl { #4 }
+ \tl_set:Nn \l_tmpb_tl { #5 }
+ \exp_args:Nc \regexpatchcmd { #2 }
+ { \cP. #1 \c{ #3 } }
+ { \u{l_tmpa_tl} \cP\# #1 \u{l_tmpb_tl} }
+ { } { \PatchFailed }
+ \makeatother
+ \seq_gput_right:Nn \g__crefthe_already_patched_seq { #2 - #3 }
}
}
+
\cs_generate_variant:Nn \text_lowercase:n { V }
\NewDocumentCommand \crefthemark { m }
{
\crefthe_contraction:Ve \l__crefthe_prep_each_tl
{ \crefthe_contraction:Vn \l__crefthe_prep_once_tl { #1 } }
\tl_gclear:N \l__crefthe_prep_once_tl
- \tl_set:Nx \l__crefthe_prep_each_tl
+ \tl_gset:Nx \l__crefthe_prep_each_tl
{ \text_lowercase:V \l__crefthe_prep_each_tl }
\str_if_eq:eeF { \str_tail:n { #1 } } { ' } { ~ }
- \bool_set_false:N \l__crefthe_uppercase_bool
+ \bool_gset_false:N \g__crefthe_uppercase_bool
}
\prg_generate_conditional_variant:Nnn \str_case_e:nn { nv } { T, F, TF }
-\cs_new:Npn \crefthe_contraction:nn #1#2
+\cs_new:Nn \crefthe_contraction:nn
{
\exp_args:Ne \__crefthe_contraction:nnn
{ \text_lowercase:n { #2 } } { #1 } { #2 }
}
\cs_generate_variant:Nn \crefthe_contraction:nn { V, Ve }
-\cs_new:Npn \__crefthe_contraction:nnn #1 #2 #3
+\cs_new:Nn \__crefthe_contraction:nnn
{
% #1 is \text_lowercase:n { #3 }
% #2 is the preposition
@@ -157,9 +195,9 @@
{ #2~#3 }
}
}
-\cs_new:Npn \__crefthe_conditional_uppercase:n #1
+\cs_new:Nn \__crefthe_conditional_uppercase:n
{
- \bool_if:NTF \l__crefthe_uppercase_bool
+ \bool_if:NTF \g__crefthe_uppercase_bool
{ \text_titlecase_first:n }
{ \use:n }
{ #1 }
diff --git a/macros/latex/contrib/fnpct/README b/macros/latex/contrib/fnpct/README
index 88d9dc33ef..7a6961da7f 100644
--- a/macros/latex/contrib/fnpct/README
+++ b/macros/latex/contrib/fnpct/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the FNPCT package v1.1 2022/02/03
+the FNPCT package v1.1a 2022/02/27
footnotes' interaction with punctuation
@@ -23,8 +23,9 @@ This work has the LPPL maintenance status `maintained'.
The Current Maintainer of this work is Clemens Niederberger.
--------------------------------------------------------------------------
The fnpct package consists of the files
- - fnpct.sty,
- - fnpct_en.tex and fnpct_en.pdf
+ - fnpct.sty, fnpct-2019-10-05.sty
+ - fnpct-check-packages.tex
+ - fnpct-manual.tex, fnpct-manual.cls fnpct-manual.pdf
- README
--------------------------------------------------------------------------
the package is inspired by the following question on TeX.SE:
diff --git a/macros/latex/contrib/fnpct/fnpct-2019-10-05.sty b/macros/latex/contrib/fnpct/fnpct-2019-10-05.sty
new file mode 100644
index 0000000000..e599c1afd3
--- /dev/null
+++ b/macros/latex/contrib/fnpct/fnpct-2019-10-05.sty
@@ -0,0 +1,1191 @@
+% --------------------------------------------------------------------------
+% the FNPCT package
+%
+% footnote kerning
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/fnpct/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2012--2020 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% the package is inspired by the following question on TeX.SE:
+% http://tex.stackexchange.com/q/56094/5049
+% --------------------------------------------------------------------------
+\RequirePackage {xparse,l3keys2e,scrlfile}
+\ExplSyntaxOn
+
+\tl_const:Nn \c_fnpct_date_tl {2019/10/05}
+\tl_const:Nn \c_fnpct_version_major_number_tl {0}
+\tl_const:Nn \c_fnpct_version_minor_number_tl {5}
+\tl_const:Nn \c_fnpct_version_subrelease_tl {}
+\tl_const:Nx \c_fnpct_version_number_tl
+ {
+ \c_fnpct_version_major_number_tl .
+ \c_fnpct_version_minor_number_tl
+ }
+\tl_const:Nx \c_fnpct_version_tl
+ {
+ \c_fnpct_version_number_tl
+ \c_fnpct_version_subrelease_tl
+ }
+\tl_const:Nn \c_fnpct_info_tl {footnote~ kerning}
+
+\ProvidesExplPackage
+ {fnpct}
+ {\c_fnpct_date_tl}
+ {\c_fnpct_version_tl}
+ {\c_fnpct_info_tl}
+
+% --------------------------------------------------------------------------
+% this is plain's \nobreak:
+\cs_new:Npn \fnpct_no_break: { \tex_penalty:D 10000 \scan_stop: }
+
+% --------------------------------------------------------------------------
+% variables:
+\tl_new:N \l__fnpct_tmpa_tl
+\tl_new:N \l__fnpct_tmpb_tl
+
+\dim_new:N \l__fnpct_tmpa_dim
+\dim_new:N \l__fnpct_tmpb_dim
+
+\int_new:N \l__fnpct_tmpa_int
+
+\seq_new:N \l__fnpct_tmpa_seq
+\seq_new:N \l__fnpct_tmpb_seq
+
+\dim_new:N \l__fnpct_after_comma_dim
+\dim_set:Nn \l__fnpct_after_comma_dim {-.06em}
+\dim_new:N \l__fnpct_after_dot_dim
+\dim_set:Nn \l__fnpct_after_dot_dim {-.06em}
+\dim_new:N \l__fnpct_before_comma_dim
+\dim_set:Nn \l__fnpct_before_comma_dim {-.16em}
+\dim_new:N \l__fnpct_before_dot_dim
+\dim_set:Nn \l__fnpct_before_dot_dim {-.16em}
+\dim_new:N \l__fnpct_before_footnote_dim
+\dim_set:Nn \l__fnpct_before_footnote_dim {.06em}
+\dim_new:N \l__fnpct_normal_mark_width_dim
+\dim_set:Nn \l__fnpct_normal_mark_width_dim {1em}
+\dim_new:N \l__fnpct_normal_indent_dim
+\dim_set:Nn \l__fnpct_normal_indent_dim {1.5em}
+\dim_new:N \l__fnpct_normal_parindent_dim
+\dim_set:Nn \l__fnpct_normal_parindent_dim {1em}
+\dim_new:N \l__fnpct_french_before_footnote_space_dim
+\dim_set:Nn \l__fnpct_french_before_footnote_space_dim {.16667em}
+
+\int_new:N \l__fnpct_multiple_notes_int
+
+\tl_new:N \l__fnpct_multiple_footnotes_delimiter_tl
+\tl_set:Nn \l__fnpct_multiple_footnotes_delimiter_tl {;}
+\tl_new:N \l__fnpct_multiple_footnote_separator_tl
+\tl_new:N \l__fnpct_last_punct_mark_tl
+\tl_new:N \l__fnpct_punctuation_marks_tl
+\tl_set:Nn \l__fnpct_punctuation_marks_tl {.,}
+\tl_new:N \l__fnpct_multiple_true_tl
+\tl_new:N \l__fnpct_multiple_false_tl
+
+\bool_new:N \l__fnpct_strict_bool
+\bool_new:N \l__fnpct_punct_after_bool
+\bool_new:N \l__fnpct_dont_mess_around_bool
+\bool_new:N \l__fnpct_multiple_default_bool
+\bool_new:N \l__fnpct_multiple_footnotes_bool
+\bool_new:N \l__fnpct_reverse_switch_bool
+\bool_new:N \l__fnpct_normal_marks_bool
+\bool_new:N \l__fnpct_hyperref_bool
+\bool_new:N \g__fnpct_after_punctuation_bool
+\bool_new:N \g__fnpct_only_text_bool
+\bool_new:N \l__fnpct_makepagenote_bool
+
+\seq_new:N \l__fnpct_multiple_footnotes_seq
+\seq_new:N \l__fnpct_footnote_class_seq
+
+\prop_new:N \l__fnpct_punctuation_marks_after_prop
+\prop_new:N \l__fnpct_punctuation_marks_before_prop
+\prop_new:N \l__fnpct_sepfootnote_foot_classes_prop
+\prop_new:N \l__fnpct_sepfootnote_end_classes_prop
+\prop_new:N \l__fnpct_sepfootnote_symbol_classes_prop
+\prop_new:N \g__fnpct_adapted_notes_prop
+\prop_new:N \g__fnpct_inner_footnote_prop
+\prop_new:N \g__fnpct_inner_footnote_hyperref_prop
+\prop_new:N \l__fnpct_footnote_fixfoot_prop
+
+% --------------------------------------------------------------------------
+% variants:
+\cs_generate_variant:Nn \str_remove_once:Nn {NV}
+\cs_generate_variant:Nn \tl_remove_all:Nn {NV}
+\cs_generate_variant:Nn \tl_put_right:Nn {NV}
+\cs_generate_variant:Nn \seq_set_split:Nnn {NnV,NV}
+\cs_generate_variant:Nn \prop_gput:Nnn {Nx,Nxo}
+\cs_generate_variant:Nn \prop_put:Nnn {Nnx}
+\cs_generate_variant:Nn \prop_if_in:NnTF {Nx}
+
+% --------------------------------------------------------------------------
+% messages:
+\cs_new_protected:Npn \fnpct_dont_mess_around:
+ {
+ \iow_log:n { ................................................. }
+ \iow_log:n { . ~ fnpct~info: }
+ \iow_log:n { . }
+ \iow_log:n { . ~ All~right,~not~messing~around.~:( }
+ \iow_log:n { . ~ But~I'd~really~love~to. }
+ \iow_log:n { . ~ (https://www.youtube.com/results?search_query=mess+around+ray+charles) }
+ \iow_log:n { ................................................. }
+ }
+
+\msg_new:nnn {fnpct} {already-adapted}
+ {
+ The~ command~ \token_to_str:N #1 \c_space_tl has~ already~ been~
+ adapted. \\
+ I~ will~ do~ nothing~ instead.
+ }
+
+\msg_new:nnn {fnpct} {pagenote}
+ {
+ If~ you~ use~ the~ `pagenote'~ package~ with~ `fnpct'~ please~ make~ sure~
+ to~ use~ \token_to_str:N \makepagenote \c_space_tl after~ loading~
+ `fnpct'!
+ }
+
+\msg_new:nnn {fnpct} {deprecated}
+ {
+ You've~ tried~ setting~ #1~ `#2'~ \msg_line_context: .~ However,~
+ #1~ `#2'~ is~ deprecated.~
+ \tl_if_blank:nF {#3} {Please~ use~ #1~ `#3'~ instead.~}
+ Refer~ to~ the~ manual~ for~ details.
+ }
+
+\cs_new_protected:Npn \fnpct_message:nx #1#2
+ {
+ \bool_if:NTF \l__fnpct_strict_bool
+ { \msg_error:nnx {fnpct} {#1} }
+ { \msg_warning:nnx {fnpct} {#1} }
+ {#2}
+ }
+
+% --------------------------------------------------------------------------
+\prg_new_conditional:Npnn \fnpct_if_package_loaded:n #1 {p,T,F,TF}
+ {
+ \@ifpackageloaded {#1}
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+% --------------------------------------------------------------------------
+% multiple footnote input and output variables:
+% check for KOMA-Script's \multfootsep:
+\cs_if_exist:NTF \KOMAClassName
+ { \tl_set:Nn \l__fnpct_multiple_footnote_separator_tl { \multfootsep } }
+ { \tl_set:Nn \l__fnpct_multiple_footnote_separator_tl {,} }
+
+% --------------------------------------------------------------------------
+% #1: before/after
+% #2: punctuation mark
+% #3: dimension
+\cs_new_protected:Npn \fnpct_set_punctuation_dim:nnn #1#2#3
+ {
+ \prop_put:cnx { l__fnpct_punctuation_marks_#1_prop }
+ {#2}
+ { \dim_eval:n {#3} }
+ }
+\cs_generate_variant:Nn \fnpct_set_punctuation_dim:nnn {nV}
+
+\fnpct_set_punctuation_dim:nnn {after} {.} { \l__fnpct_after_dot_dim }
+\fnpct_set_punctuation_dim:nnn {after} {,} { \l__fnpct_after_comma_dim }
+\fnpct_set_punctuation_dim:nnn {before} {.} { \l__fnpct_before_dot_dim }
+\fnpct_set_punctuation_dim:nnn {before} {,} { \l__fnpct_before_comma_dim }
+
+\cs_new_protected:Npn \fnpct_rm_punctuation:n #1
+ {
+ \tl_remove_all:Nn \l__fnpct_punctuation_marks_tl {#1}
+ \prop_del:Nn \l__fnpct_punctuation_marks_after_prop {#1}
+ \prop_del:Nn \l__fnpct_punctuation_marks_before_prop {#1}
+ }
+
+\cs_new_protected:Npn \fnpct_add_punctuation:n #1
+ { \__fnpct_add_punctuation:w #1 [ \q_no_value ] \q_no_value \q_stop }
+\cs_generate_variant:Nn \fnpct_add_punctuation:n {V}
+
+\cs_new_protected:Npn \__fnpct_add_punctuation:w #1[#2]#3 \q_stop
+ {
+ \quark_if_no_value:nTF {#2}
+ {
+ % there is no option at all
+ \tl_map_inline:nn {#1}
+ {
+ \tl_put_right:Nn \l__fnpct_punctuation_marks_tl {##1}
+ \fnpct_set_punctuation_dim:nnn {after} {##1} {0pt}
+ \fnpct_set_punctuation_dim:nnn {before} {##1} {0pt}
+ \tl_set:No \l__fnpct_last_punct_mark_tl {##1}
+ }
+ }
+ {
+ \tl_if_blank:nTF {#1}
+ {
+ % #2 is a second option (= before space)
+ \fnpct_set_punctuation_dim:nVn {before}
+ \l__fnpct_last_punct_mark_tl
+ {#2}
+ }
+ {
+ % #2 is a first option (= after space), #1 might be more than one token:
+ \tl_if_single_token:nTF {#1}
+ {
+ \tl_put_right:Nn \l__fnpct_punctuation_marks_tl {#1}
+ \fnpct_set_punctuation_dim:nnn {after} {#1} {#2}
+ \fnpct_set_punctuation_dim:nnn {before} {#1} {0pt}
+ \tl_set:No \l__fnpct_last_punct_mark_tl {#1}
+ }
+ {
+ \int_zero:N \l__fnpct_tmpa_int
+ \tl_map_inline:nn {#1}
+ {
+ \tl_put_right:Nn \l__fnpct_punctuation_marks_tl {##1}
+ \int_compare:nTF { \l__fnpct_tmpa_int < ( \tl_count:n {#1} - 1 ) }
+ {
+ \fnpct_set_punctuation_dim:nnn {after} {##1} {0pt}
+ \fnpct_set_punctuation_dim:nnn {before} {##1} {0pt}
+ }
+ {
+ \fnpct_set_punctuation_dim:nnn {after} {##1} {#2}
+ \fnpct_set_punctuation_dim:nnn {before} {##1} {0pt}
+ }
+ \tl_set:No \l__fnpct_last_punct_mark_tl {##1}
+ \int_incr:N \l__fnpct_tmpa_int
+ }
+ }
+ }
+ }
+ % is there more?
+ \tl_if_eq:nnF {#3} { [\q_no_value]\q_no_value }
+ {
+ \quark_if_no_value:nF {#3}
+ {
+ \tl_set:Nn \l__fnpct_tmpa_tl {#3}
+ \tl_remove_all:Nn \l__fnpct_tmpa_tl { [\q_no_value]\q_no_value }
+ \fnpct_add_punctuation:V \l__fnpct_tmpa_tl
+ }
+ }
+ }
+
+% --------------------------------------------------------------------------
+% options:
+\keys_define:nn {fnpct}
+ {
+ bigfoot-default-top .code:n =
+ \msg_warning:nnnn {fnpct} {deprecated} {option} {bigfoot-default-top} ,
+ strict .bool_set:N = \l__fnpct_strict_bool ,
+ after-comma-space .code:n =
+ \fnpct_set_punctuation_dim:nnn {after} {,} {#1} ,
+ after-dot-space .code:n =
+ \fnpct_set_punctuation_dim:nnn {after} {.} {#1} ,
+ before-comma-space .code:n =
+ \fnpct_set_punctuation_dim:nnn {before} {,} {#1} ,
+ before-dot-space .code:n =
+ \fnpct_set_punctuation_dim:nnn {before} {.} {#1} ,
+ after-punct-space .code:n =
+ \prop_map_inline:Nn \l__fnpct_punctuation_marks_after_prop
+ { \fnpct_set_punctuation_dim:nnn {after} {##1} {#1} } ,
+ before-punct-space .code:n =
+ \prop_map_inline:Nn \l__fnpct_punctuation_marks_before_prop
+ { \fnpct_set_punctuation_dim:nnn {before} {##1} {#1} } ,
+ before-footnote-space .dim_set:N = \l__fnpct_before_footnote_dim ,
+ french-before-footnote-space .dim_set:N =
+ \l__fnpct_french_before_footnote_space_dim ,
+ punct-after .bool_set:N = \l__fnpct_punct_after_bool ,
+ dont-mess-around .code:n =
+ \prop_map_inline:Nn \l__fnpct_punctuation_marks_after_prop
+ { \fnpct_set_punctuation_dim:nnn {after} {##1} {0pt} }
+ \prop_map_inline:Nn \l__fnpct_punctuation_marks_before_prop
+ { \fnpct_set_punctuation_dim:nnn {before} {##1} {0pt} }
+ \dim_zero:N \l__fnpct_before_footnote_dim
+ \bool_set_true:N \l__fnpct_punct_after_bool
+ \bool_set_true:N \l__fnpct_dont_mess_around_bool
+ \fnpct_dont_mess_around: ,
+ mult-fn-delim .tl_set:N = \l__fnpct_multiple_footnotes_delimiter_tl ,
+ mult-fn-sep .tl_set:N = \l__fnpct_multiple_footnote_separator_tl ,
+ multiple .bool_set:N = \l__fnpct_multiple_default_bool ,
+ normal-marks .bool_set:N = \l__fnpct_normal_marks_bool ,
+ normal-mark-width .dim_set:N = \l__fnpct_normal_mark_width_dim ,
+ normal-indent .dim_set:N = \l__fnpct_normal_indent_dim ,
+ normal-parindent .dim_set:N = \l__fnpct_normal_parindent_dim ,
+ verb-format .tl_set:N = \l__fnpct_verbatim_format_tl ,
+ add-punct-marks .code:n = \fnpct_add_punctuation:n {#1} ,
+ remove-punct-marks .code:n =
+ \tl_map_function:nN {#1} \fnpct_rm_punctuation:n
+ }
+
+\ProcessKeysOptions {fnpct}
+
+% --------------------------------------------------------------------------
+% MAIN INTERNAL FOOTNOTE FUNCTION:
+% write the notes:
+\cs_new:Npn \__fnpct_no_value_or_quark_no_value:nTF #1#2#3
+ {
+ \IfNoValueTF {#1} {#2}
+ { \quark_if_no_value:nTF {#1} {#2} {#3} }
+ }
+
+\cs_new:Npn \fnpct_write_note:Nnnn #1#2#3#4
+ {
+ \__fnpct_no_value_or_quark_no_value:nTF {#2}
+ { #1 {#4} }
+ {
+ \__fnpct_no_value_or_quark_no_value:nTF {#3}
+ { #1 [#2] {#4} }
+ { #1 [#2] [#3] {#4} }
+ }
+ }
+
+\cs_new:Npn \fnpct_write_snote:Nnnn #1#2#3#4
+ {
+ \__fnpct_no_value_or_quark_no_value:nTF {#2}
+ {
+ \__fnpct_no_value_or_quark_no_value:nTF {#3}
+ { #1 {#4} }
+ { #1 [#3] {#4} }
+ }
+ {
+ \__fnpct_no_value_or_quark_no_value:nTF {#3}
+ { #1 (#2) {#4} }
+ { #1 (#2) [#3] {#4} }
+ }
+ }
+
+% check for punctuation:
+\cs_new_protected:Npn \fnpct_check_punctuation:TF #1#2
+ { \__fnpct_check_punctuation:nTF {0} {#1} {#2} }
+
+\cs_new_protected:Npn \__fnpct_check_punctuation:nTF #1#2#3
+ {
+ \__fnpct_get_head:NN
+ \l__fnpct_current_punct_mark_tl
+ \l__fnpct_punctuation_marks_tl
+ \exp_args:NV \peek_meaning_remove:NTF \l__fnpct_current_punct_mark_tl
+ {#2}
+ {
+ \__fnpct_check_punctuation_aux:nnn {#1}
+ { \__fnpct_check_punctuation:VTF \l__fnpct_tmpa_int {#2} {#3} }
+ {#3}
+ }
+ }
+
+\cs_new_protected:Npn \__fnpct_check_punctuation_aux:nnn #1#2#3
+ {
+ \int_set:Nn \l__fnpct_tmpa_int {#1}
+ \int_incr:N \l__fnpct_tmpa_int
+ \tl_set:Nx \l__fnpct_tmpb_tl { \int_to_arabic:n { \l__fnpct_tmpa_int } }
+ \tl_remove_all:NV \l__fnpct_punctuation_marks_tl
+ \l__fnpct_current_punct_mark_tl
+ \tl_put_right:NV \l__fnpct_punctuation_marks_tl
+ \l__fnpct_current_punct_mark_tl
+ \int_compare:nTF { \l__fnpct_tmpa_int < \tl_count:V \l__fnpct_punctuation_marks_tl }
+ {#2}
+ {#3}
+ }
+\cs_generate_variant:Nn \__fnpct_check_punctuation:nTF {V}
+
+\cs_new_protected:Npn \__fnpct_get_head:NN #1#2
+ { \tl_set:Nx #1 { \tl_head:V #2 } }
+
+% check for multiple notes:
+\cs_new_protected:Npn \fnpct_check_multiple:TF #1#2
+ {
+ \tl_set:Nn \l__fnpct_multiple_true_tl {#1}
+ \tl_set:Nn \l__fnpct_multiple_false_tl {#2}
+ \bool_gset_false:N \g__fnpct_after_punctuation_bool
+ \peek_after:Nw \__fnpct_check_multiple:
+ }
+
+\cs_new_protected:Npn \__fnpct_check_multiple:
+ {
+ \prop_map_inline:Nn \g__fnpct_adapted_notes_prop
+ {
+ \tl_set_rescan:Nnn \l__fnpct_tmpb_tl {} {##1}
+ \exp_args:NV
+ \token_if_eq_meaning:NNTF \l__fnpct_tmpb_tl \l_peek_token
+ {
+ \bool_set_true:N \l__fnpct_multiple_footnotes_bool
+ \prop_map_break:
+ }
+ { \bool_set_false:N \l__fnpct_multiple_footnotes_bool }
+ }
+ \bool_if:NTF \l__fnpct_multiple_footnotes_bool
+ { \tl_use:N \l__fnpct_multiple_true_tl }
+ { \tl_use:N \l__fnpct_multiple_false_tl }
+ }
+
+% check which mode is active:
+\prg_new_conditional:Npnn \fnpct_punct_if_after: {T,TF}
+ {
+ \bool_if:nTF
+ {
+ \bool_xor_p:nn
+ { \l__fnpct_punct_after_bool }
+ { \l__fnpct_reverse_switch_bool }
+ }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+% this is where the magic happens:
+\cs_new_protected:Npn \fnpct_handle_punctuation:n #1
+ {
+ \fnpct_check_punctuation:TF
+ {
+ % this is need as some commands like biblatex's \autocite may in turn
+ % call \footnote. It then must not insert the pre-footnote-space:
+ \bool_gset_true:N \g__fnpct_after_punctuation_bool
+ % A: after=1 && reverse=0
+ % after=0 && reverse=1
+ % B: after=1 && reverse=1
+ % after=0 && reverse=0
+ \fnpct_punct_if_after:TF
+ {
+ \fnpct_no_break:
+ \skip_horizontal:N \l__fnpct_before_footnote_dim
+ }
+ {
+ \tl_use:N \l__fnpct_current_punct_mark_tl
+ \prop_get:NVNT \l__fnpct_punctuation_marks_after_prop
+ \l__fnpct_current_punct_mark_tl
+ \l__fnpct_tmpa_tl
+ {
+ \dim_set:Nn \l__fnpct_tmpa_dim { \l__fnpct_tmpa_tl }
+ \fnpct_no_break:
+ \skip_horizontal:N \l__fnpct_tmpa_dim
+ \fnpct_no_break:
+ \skip_horizontal:N \c_zero_skip
+ \fnpct_no_break:
+ }
+ }
+ #1
+ \bool_gset_false:N \g__fnpct_after_punctuation_bool
+ \fnpct_punct_if_after:T
+ {
+ \fnpct_no_break:
+ \prop_get:NVNT \l__fnpct_punctuation_marks_before_prop
+ \l__fnpct_current_punct_mark_tl
+ \l__fnpct_tmpa_tl
+ {
+ \dim_set:Nn \l__fnpct_tmpa_dim { \l__fnpct_tmpa_tl }
+ \fnpct_no_break:
+ \skip_horizontal:N \l__fnpct_tmpa_dim
+ \fnpct_no_break:
+ \skip_horizontal:N \c_zero_skip
+ \fnpct_no_break:
+ }
+ \tl_use:N \l__fnpct_current_punct_mark_tl
+ }
+ \bool_set_false:N \l__fnpct_reverse_switch_bool
+ }
+ {
+ % what about multiple footnotes? (their usage is discouraged with
+ % this package, but anyway...)
+ % this check should probably/maybe be removed (?!)
+ \fnpct_check_multiple:TF
+ {
+ \bool_set_true:N \l__fnpct_multiple_footnotes_bool
+ \fnpct_no_break:
+ \bool_if:NF \g__fnpct_after_punctuation_bool
+ { \skip_horizontal:N \l__fnpct_before_footnote_dim }
+ #1
+ \fnpct_no_break:
+ \textsuperscript { \l__fnpct_multiple_footnote_separator_tl }
+ }
+ {
+ % else insert space and then note
+ \bool_if:NTF \l__fnpct_multiple_footnotes_bool
+ { \bool_set_false:N \l__fnpct_multiple_footnotes_bool }
+ {
+ \fnpct_no_break:
+ \bool_if:NF \g__fnpct_after_punctuation_bool
+ { \skip_horizontal:N \l__fnpct_before_footnote_dim }
+ }
+ #1
+ \bool_set_false:N \l__fnpct_reverse_switch_bool
+ }
+ }
+ }
+
+
+% #1: original command
+% #2: optional argument of original command
+% #3: second optional argument of original command
+% #4: mandatory argument of original command
+% #5: boolean flag for starred version
+\cs_new_protected:Npn \fnpct_handle_note:Nnnnn #1#2#3#4#5
+ {
+ % if a punctuation mark follows remove it, insert dot, skip back
+ % and then insert footnote
+ \bool_if:NF \l__fnpct_dont_mess_around_bool
+ {
+ \IfBooleanT {#5}
+ { \bool_set_true:N \l__fnpct_reverse_switch_bool }
+ }
+ \fnpct_handle_punctuation:n
+ {
+ \fnpct_write_note:Nnnn #1 {#2} {#3} {#4}
+ \fnpct_write_inner:N #1
+ }
+ }
+\cs_generate_variant:Nn \fnpct_handle_note:Nnnnn {c}
+
+\cs_new_protected:Npn \fnpct_handle_snote:Nnnnn #1#2#3#4#5
+ {
+ \bool_if:NF \l__fnpct_dont_mess_around_bool
+ {
+ \IfBooleanT {#5}
+ { \bool_set_true:N \l__fnpct_reverse_switch_bool }
+ }
+ \fnpct_handle_punctuation:n
+ {
+ \fnpct_write_snote:Nnnn #1 {#2} {#3} {#4}
+ \fnpct_write_inner:N #1
+ }
+ }
+\cs_generate_variant:Nn \fnpct_handle_snote:Nnnnn {c}
+
+% --------------------------------------------------------------------------
+% MULTIPLE FOOTNOTES
+% #1: original note command
+% #2: star
+% #3: multiple notes separated by \l__fnpct_multiple_footnotes_delimiter_tl
+\cs_new_protected:Npn \fnpct_mult_note:Nnn #1#2#3
+ {
+ \bool_if:NF \l__fnpct_dont_mess_around_bool
+ {
+ \IfBooleanT {#2}
+ { \bool_set_true:N \l__fnpct_reverse_switch_bool }
+ }
+ % split input:
+ \seq_set_split:NVn \l__fnpct_multiple_footnotes_seq
+ \l__fnpct_multiple_footnotes_delimiter_tl
+ {#3}
+ \fnpct_handle_punctuation:n
+ { \fnpct_write_notes:NN #1 \l__fnpct_multiple_footnotes_seq }
+
+ }
+\cs_generate_variant:Nn \fnpct_mult_note:Nnn {c}
+
+% #1: original note command
+% #2: sequence variable holding the note arguments
+\cs_new_protected:Npn \fnpct_write_notes:NN #1#2
+ {
+ \int_zero:N \l__fnpct_multiple_notes_int
+ \seq_map_inline:Nn #2
+ {
+ \__fnpct_read_note_with_option:w ##1 \q_stop {#1}
+ \int_incr:N \l__fnpct_multiple_notes_int
+ }
+ }
+
+% this shouldn't be a document command but is a really easy way to make
+% biblatex's \footcite et.al. compatible with the `multiple' option
+% #1: optional star => only invoke \footnotetext
+% #2: optional argument to original note command
+% #3: second optional argument to original note command
+% #4: mandatory argument to original note command
+% #5: original note command
+\NewDocumentCommand \__fnpct_read_note_with_option:w { soo+u{\q_stop}m }
+ {
+ \bool_if:nT
+ {
+ \int_compare_p:n { \l__fnpct_multiple_notes_int > 0 }
+ &&
+ \int_compare_p:n
+ {
+ \l__fnpct_multiple_notes_int
+ <
+ \seq_count:N \l__fnpct_multiple_footnotes_seq
+ }
+ }
+ {
+ \IfBooleanTF {#1}
+ { \tex_unskip:D }
+ { \textsuperscript { \l__fnpct_multiple_footnote_separator_tl } }
+ }
+ \IfBooleanTF {#1}
+ {
+ % TODO: maybe provide option to change \footnotetext? Or do it
+ % automatically?
+ \bool_gset_true:N \g__fnpct_only_text_bool
+ \IfNoValueTF {#2}
+ { \footnotetext {#4} }
+ { \footnotetext [#2] {#4} }
+ }
+ { \fnpct_write_note:Nnnn #5 {#2} {#3} {#4} }
+ \fnpct_write_inner:N #5
+ }
+
+% --------------------------------------------------------------------------
+% NESTED FOOTNOTES:
+% 1 layer of nesting...
+% this shouldn't be a document command! But for the time being I'll stick to
+% this easy solution...
+\NewDocumentCommand \fnpct_inner_footnote:w {o+m}
+ {
+ \IfNoValueTF {#1}
+ {
+ % TODO: maybe detect what type of note we're in and use the appropriate mark?
+ % Or provide a user interface to choose the appropriate mark?
+ \fnpct_orig_footnotemark:w
+ \prop_gput:Nxn \g__fnpct_inner_footnote_prop { \thefootnote } {#2}
+ \bool_if:NT \l__fnpct_hyperref_bool
+ {
+ \prop_gput:Nxo \g__fnpct_inner_footnote_hyperref_prop
+ { \thefootnote } { \Hy@footnote@currentHref }
+ }
+ }
+ {
+ \fnpct_orig_footnotemark:w [#1]
+ \prop_gput:Nnn \g__fnpct_inner_footnote_prop {#1} {#2}
+ \bool_if:NT \l__fnpct_hyperref_bool
+ {
+ \prop_gput:Nno \g__fnpct_inner_footnote_hyperref_prop
+ {#1} { \Hy@footnote@currentHref }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \fnpct_write_inner:N #1
+ {
+ \token_if_eq_meaning:NNF #1 \fnpct_inner_footnote:w
+ {
+ \prop_map_inline:Nn \g__fnpct_inner_footnote_prop
+ {
+ \footnotetext [##1]
+ {
+ \bool_if:NT \l__fnpct_hyperref_bool
+ {
+ \prop_get:NnN \g__fnpct_inner_footnote_hyperref_prop
+ {##1} \l__fnpct_tmpa_tl
+ \Hy@raisedlink
+ { \exp_args:NV \hyper@@anchor \l__fnpct_tmpa_tl }
+ }
+ ##2
+ }
+ }
+ \prop_gclear:N \g__fnpct_inner_footnote_prop
+ }
+ }
+
+\NewDocumentCommand \writeinnernotes {}
+ { \fnpct_write_inner:N X }
+
+% --------------------------------------------------------------------------
+% MANUAL KERNING:
+\cs_new_protected:Npn \fnpct_kfp:
+ {
+ \fnpct_no_break:
+ \prop_get:NnNT \l__fnpct_punctuation_marks_before_prop {.}
+ \l__fnpct_tmpa_tl
+ { \dim_set:Nn \l__fnpct_tmpa_dim { \l__fnpct_tmpa_tl } }
+ \prop_get:NnNT \l__fnpct_punctuation_marks_after_prop {.}
+ \l__fnpct_tmpb_tl
+ { \dim_set:Nn \l__fnpct_tmpb_dim { \l__fnpct_tmpb_tl } }
+ \bool_if:NTF \l__fnpct_punct_after_bool
+ { \skip_horizontal:N \l__fnpct_tmpa_dim }
+ { \skip_horizontal:N \l__fnpct_tmpb_dim }
+ }
+
+\cs_new_protected:Npn \fnpct_kfc:
+ {
+ \fnpct_no_break:
+ \prop_get:NnNT \l__fnpct_punctuation_marks_before_prop {,}
+ \l__fnpct_tmpa_tl
+ { \dim_set:Nn \l__fnpct_tmpa_dim { \l__fnpct_tmpa_tl } }
+ \prop_get:NnNT \l__fnpct_punctuation_marks_after_prop {,}
+ \l__fnpct_tmpb_tl
+ { \dim_set:Nn \l__fnpct_tmpb_dim { \l__fnpct_tmpb_tl } }
+ \bool_if:NTF \l__fnpct_punct_after_bool
+ { \skip_horizontal:N \l__fnpct_tmpa_dim }
+ { \skip_horizontal:N \l__fnpct_tmpb_dim }
+ }
+
+\NewDocumentCommand \kfp {} { \fnpct_kfp: }
+\NewDocumentCommand \kfc {} { \fnpct_kfc: }
+
+% --------------------------------------------------------------------------
+% NORMAL MARKS:
+\AtBeginDocument
+ {
+ \bool_if:NT \l__fnpct_normal_marks_bool
+ {
+ \cs_if_exist:NF \KOMAoption
+ { \RequirePackage { scrextend } }
+ \deffootnote
+ [ \l__fnpct_normal_mark_width_dim ]
+ { \l__fnpct_normal_indent_dim }
+ { \l__fnpct_normal_parindent_dim }
+ { \thefootnotemark . \enskip }
+ }
+ }
+
+% --------------------------------------------------------------------------
+% LET'S MAKE IT EASIER TO ADAPT EXISTING FUNCTIONS:
+% COPY, RENEW AND CREATE MULT
+
+\prg_new_conditional:Npnn \fnpct_if_adapted:N #1 {p,T,F,TF}
+ {
+ \prop_if_in:NnTF \g__fnpct_adapted_notes_prop {#1}
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+\cs_new_protected:Npn \fnpct_add_to_adapted:NN #1#2
+ {
+ % \tl_show:n {1:~#1} \tl_show:n {2:~#2}
+ \prop_gput:Nnn \g__fnpct_adapted_notes_prop {#1} {#2}
+ }
+
+% standard \footnote[<mark>]{<text>} like commands
+% #1: old new name
+% #2: internal name of old definition
+% #3: mult-variant
+%
+% \footnote[<mark>]{<text>} like:
+\cs_new_protected:Npn \fnpct_renew_and_mult:NNN #1#2#3
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \fnpct_create_mult_variant:NN #3#2
+ \bool_if:NTF \l__fnpct_multiple_default_bool
+ { \cs_set_eq:NN #1#3 }
+ {
+ \RenewDocumentCommand #1 {so+m}
+ { \fnpct_handle_note:Nnnnn #2 {##2} { \q_no_value } {##3} {##1} }
+ }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_and_mult:NNN {ccc,Nc}
+
+% \footnote{<text>} like:
+\cs_new_protected:Npn \fnpct_renew_and_mult_no_opt:NNN #1#2#3
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \fnpct_create_mult_variant:NN #3#2
+ \bool_if:NTF \l__fnpct_multiple_default_bool
+ { \cs_set_eq:NN #1#3 }
+ {
+ \RenewDocumentCommand #1 {s+m}
+ {
+ \fnpct_handle_note:Nnnnn #2 { \q_no_value } { \q_no_value }
+ {##2} {##1}
+ }
+ }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_and_mult_no_opt:NNN {Nc,ccc}
+
+% renew but don't create mult-variant:
+% \footnote[<mark>]{<text>} like:
+\cs_new_protected:Npn \fnpct_renew:NN #1#2
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \RenewDocumentCommand #1 {so+m}
+ { \fnpct_handle_note:Nnnnn #2 {##2} { \q_no_value } {##3} {##1} }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew:NN {cc,Nc}
+
+% new
+\cs_new_protected:Npn \fnpct_new:NN #1#2
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \NewDocumentCommand #1 {so+m}
+ { \fnpct_handle_note:Nnnnn #2 {##2} { \q_no_value } {##3} {##1} }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_new:NN {cc,Nc}
+
+% \note[<mark>][<oarg>]{<text>} like:
+\cs_new_protected:Npn \fnpct_renew_and_mult_opt:NNN #1#2#3
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \fnpct_create_mult_variant:NN #3#2
+ \bool_if:NTF \l__fnpct_multiple_default_bool
+ { \cs_set_eq:NN #1#3 }
+ {
+ \RenewDocumentCommand #1 {soo+m}
+ { \fnpct_handle_note:Nnnnn #2 {##2} {##3} {##4} {##1} }
+ }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_and_mult_opt:NNN {ccc,Nc}
+
+% \note(<oarg>)[<mark>]{<text>} like:
+\cs_new_protected:Npn \fnpct_renew_and_mult_snotez:NNN #1#2#3
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \fnpct_create_mult_variant:NN #3#2
+ \bool_if:NTF \l__fnpct_multiple_default_bool
+ { \cs_set_eq:NN #1#3 }
+ {
+ \RenewDocumentCommand #1 {sd()o+m}
+ { \fnpct_handle_snote:Nnnnn #2 {##2} {##3} {##4} {##1} }
+ }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_and_mult_snotez:NNN {ccc,Nc}
+
+\cs_new_protected:Npn \fnpct_renew_opt:NN #1#2
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \RenewDocumentCommand #1 {soo+m}
+ { \fnpct_handle_note:Nnnnn #2 {##2} {##3} {##4} {##1} }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_opt:NN {cc,Nc}
+
+% \note{<arg>} like
+\cs_new_protected:Npn \fnpct_renew_no_opt:NN #1#2
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \RenewDocumentCommand #1 {s+m}
+ { \fnpct_handle_note:Nnnnn #2 { \q_no_value } { \q_no_value } {##2} {##1} }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_no_opt:NN {cc,Nc}
+
+% \note like
+\cs_new_protected:Npn \fnpct_renew_no_arg:NN #1#2
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \RenewDocumentCommand #1 {s}
+ { \fnpct_handle_note:Nnnnn #2 { \q_no_value } { \q_no_value } { } {##1} }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_no_arg:NN {cc}
+
+% create mult-variant
+\cs_new_protected:Npn \fnpct_create_mult_variant:NN #1#2
+ {
+ \NewDocumentCommand #1 {s+m}
+ { \fnpct_mult_note:Nnn #2 {##1} {##2} }
+ }
+
+% \footnotemark[<mark>] like commands:
+\cs_new_protected:Npn \fnpct_renew_mark:NN #1#2
+ {
+ \fnpct_if_adapted:NF #1
+ {
+ \fnpct_add_to_adapted:NN #1#2
+ \cs_new_eq:NN #2#1
+ \RenewDocumentCommand #1 {so}
+ { \fnpct_handle_note:Nnnnn #2 {##2} { \q_no_value } { } {##1} }
+ }
+ }
+\cs_generate_variant:Nn \fnpct_renew_mark:NN {cc,Nc}
+
+% user commands:
+\NewDocumentCommand \AdaptNote {mm}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1 :w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew_and_mult:NcN #1 { fnpct_orig_ \cs_to_str:N #1 :w } #2 }
+ }
+
+\NewDocumentCommand \AdaptNoteNoMult {m}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1 :w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew:Nc #1 { fnpct_orig_ \cs_to_str:N #1 :w } }
+ }
+
+\NewDocumentCommand \AdaptNoteOpt {mm}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1 :w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew_and_mult_opt:NcN #1 { fnpct_orig_ \cs_to_str:N #1 :w } #2 }
+ }
+
+\NewDocumentCommand \AdaptSnotez {mm}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1 :w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew_and_mult_snotez:NcN #1 { fnpct_orig_ \cs_to_str:N #1 :w } #2 }
+ }
+
+\NewDocumentCommand \AdaptNoteOptNoMult {m}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1 :w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew_opt:Nc #1 { fnpct_orig_ \cs_to_str:N #1 :w } }
+ }
+
+\NewDocumentCommand \AdaptNoteNoOpt {mm}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1 :w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew_and_mult_no_opt:NcN #1 { fnpct_orig_ \cs_to_str:N #1 :w } #2 }
+ }
+
+\NewDocumentCommand \AdaptNoteNoOptNoMult {m}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1:w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew_no_opt:Nc #1 { fnpct_orig_ \cs_to_str:N #1:w } }
+ }
+
+\NewDocumentCommand \AdaptNoteMark {m}
+ {
+ \cs_if_exist:cTF { fnpct_orig_ \cs_to_str:N #1 :w }
+ { \fnpct_message:nx {already-adapted} {#1} }
+ { \fnpct_renew_mark:Nc #1 { fnpct_orig_ \cs_to_str:N #1 :w } }
+ }
+
+% --------------------------------------------------------------------------
+% DO THE REDEFINING:
+%
+% `bigfoot' loads `manyfoot' which saves its footnote classes in a 2e list:
+\str_const:Nn \c__fnpct_footins_str {\footins}
+\str_remove_once:Nn \c__fnpct_footins_str {~}
+\cs_new_protected:Npn \__fnpct_grab_second:Nnw #1#2#3 \q_stop
+ {
+ \str_set:Nn \l__fnpct_tmpa_str {#3}
+ \str_remove_once:Nn \l__fnpct_tmpa_str {~}
+ \str_remove_once:NV \l__fnpct_tmpa_str \c__fnpct_footins_str
+ \seq_put_right:Nx #1 { \l__fnpct_tmpa_str }
+ }
+
+\cs_new_protected:Npn \__fnpct_get_fnclasses:NN #1#2
+ {
+ \seq_set_split:NnV \l__fnpct_tmpa_seq {\@elt } #1
+ \seq_pop_left:NN \l__fnpct_tmpa_seq \l__fnpct_tmpa_tl
+ \seq_map_inline:Nn \l__fnpct_tmpa_seq
+ { \__fnpct_grab_second:Nnw #2 ##1 \q_stop }
+ \seq_remove_duplicates:N #2
+ }
+
+% before we start make the testing more comfortable:
+\cs_new_protected:Npn \fnpct_treatment:nn #1#2
+ { \fnpct_if_package_loaded:nT {#1} {#2} }
+
+\cs_new_protected:Npn \fnpct_special_treatment:nn #1#2
+ { \fnpct_if_package_loaded:nTF {#1} {#2} { \AfterPackage* {#1} {#2} } }
+
+% and now get going:
+\AtBeginDocument
+ {
+ \fnpct_if_package_loaded:nTF {hyperref}
+ { \bool_set_true:N \l__fnpct_hyperref_bool }
+ {
+ \cs_if_exist:NF \AfterBeginDocument
+ { \cs_new:Npn \AfterBeginDocument #1 {#1} }
+ }
+ \AfterBeginDocument
+ {
+ \AdaptNote \footnote \multfootnote
+ \AdaptNoteMark \footnotemark
+ \cs_if_exist:NT \footref
+ { \AdaptNoteNoOptNoMult \footref }
+ \fnpct_new:NN \innernote \fnpct_inner_footnote:w
+ %% the `endnotes' package:
+ \fnpct_treatment:nn {endnotes}
+ {
+ \AdaptNote \endnote \multendnote
+ \AdaptNoteMark \endnotemark
+ }
+ %% the `enotez' package:
+ \fnpct_treatment:nn {enotez}
+ { \AdaptNote \endnote \multendnote }
+ %% the `snotez' package:
+ \fnpct_treatment:nn {snotez}
+ {
+ \legacy_if:nTF {snotez@dblarg}
+ { \AdaptNoteOpt \sidenote \multsidenote }
+ { \AdaptSnotez \sidenote \multsidenote }
+ \AdaptNoteMark \sidenotemark
+ }
+ %% the `parnotes' package:
+ \fnpct_treatment:nn {parnotes}
+ { \AdaptNote \parnote \multparnote }
+ %% the `pagenote' package:
+ \fnpct_treatment:nn {pagenote}
+ {
+ \bool_if:NTF \l__fnpct_makepagenote_bool
+ { \AdaptNote \pagenote \multpagenote }
+ { \msg_warning:nn {fnpct} {pagenote} }
+ }
+ %% the `tablefootnote' package:
+ \fnpct_treatment:nn {tablefootnote}
+ { \AdaptNote \tablefootnote \multtablefootnote }
+ %% the `manyfoot' package (also loaded by `bigfoot'):
+ \fnpct_treatment:nn {manyfoot}
+ {
+ \__fnpct_get_fnclasses:NN \MFL@list \l__fnpct_footnote_class_seq
+ \seq_map_inline:Nn \l__fnpct_footnote_class_seq
+ {
+ \str_if_eq:nnTF {#1} {default}
+ {
+ \cs_if_exist:NT \footnotedefault
+ {
+ \fnpct_renew_and_mult:ccc {footnote#1}
+ {fnpct_orig_footnote#1:w}
+ {multfootnote#1}
+ \fnpct_renew_mark:cc {footnotemark#1}
+ {fnpct_orig_footnotemark#1:w}
+ }
+ }
+ {
+ \fnpct_renew_and_mult:ccc {footnote#1}
+ {fnpct_orig_footnote#1:w}
+ {multfootnote#1}
+ \fnpct_renew_mark:cc {footnotemark#1}
+ {fnpct_orig_footnotemark#1:w}
+ }
+ }
+ }
+ %% the `bigfoot' package:
+ \fnpct_special_treatment:nn {bigfoot}
+ {
+ \cs_if_exist:NT \footnotedefault
+ {
+ % re-set basics:
+ \cs_set_eq:NN \footnote \footnotedefault
+ \cs_set_eq:NN \footnotemark \footnotemarkdefault
+ \cs_set_eq:NN \multfootnote \multfootnotedefault
+ }
+ }
+ %% the `fixfoot' package:
+ \fnpct_treatment:nn {fixfoot}
+ {
+ \prop_map_inline:Nn \l__fnpct_footnote_fixfoot_prop
+ { \fnpct_renew_no_arg:cc {#2} {fnpct_orig_fix_#2:w} }
+ }
+ %% the `sepfootnotes' package:
+ \fnpct_treatment:nn {sepfootnotes}
+ {
+ \prop_map_inline:Nn \l__fnpct_sepfootnote_foot_classes_prop
+ {
+ \fnpct_renew_and_mult_no_opt:ccc {#2note}
+ {fnpct_orig_sep_#2:w} {#2multnote}
+ \fnpct_renew_and_mult_no_opt:ccc {#2quicknote}
+ {fnpct_orig_sep_#2_quick:w} {#2multquicknote}
+ \fnpct_renew_no_opt:cc {#2notemark} {fnpct_orig_sep_#2_mark:w}
+ }
+ \prop_map_inline:Nn \l__fnpct_sepfootnote_end_classes_prop
+ {
+ \fnpct_renew_and_mult_no_opt:ccc {#2note}
+ {fnpct_orig_sep_#2:w} {#2multnote}
+ \fnpct_renew_no_opt:cc {#2notemark} {fnpct_orig_sep_#2_mark:w}
+ }
+ }
+ }
+ }
+
+% `fixfoot' package
+\fnpct_special_treatment:nn {fixfoot}
+ {
+ % hook into \DeclareFixedFootnote so we can redefine all footnote
+ % classes defined be users
+ \cs_new_eq:NN \fnpct_new_fixnote:w \DeclareFixedFootnote
+ \RenewDocumentCommand \DeclareFixedFootnote {smm}
+ {
+ \prop_put:Nnx \l__fnpct_footnote_fixfoot_prop {#2}
+ { \cs_to_str:N #2 }
+ \IfBooleanTF {#1}
+ { \fnpct_new_fixnote:w * {#2} {#3} }
+ { \fnpct_new_fixnote:w {#2} {#3} }
+ }
+ }
+
+% `pagenote' package:
+\fnpct_special_treatment:nn {pagenote}
+ {
+ \tl_put_left:Nn \makepagenote
+ { \bool_set_true:N \l__fnpct_makepagenote_bool }
+ }
+
+% `sepfootnotes' package:
+\fnpct_special_treatment:nn {sepfootnotes}
+ {
+ \cs_new_eq:NN \fnpct_orig_new_footnotes:w \newfootnotes
+ \cs_new_eq:NN \fnpct_orig_new_endnotes:n \newendnotes
+ \cs_new_eq:NN \fnpct_orig_new_symbolnotes:w \newsymbolfootnotes
+ \RenewDocumentCommand \newfootnotes {sm}
+ {
+ \prop_put:Nnn \l__fnpct_sepfootnote_foot_classes_prop {#2} {#2}
+ \IfBooleanTF {#1}
+ { \fnpct_orig_new_footnotes:w * {#2} }
+ { \fnpct_orig_new_footnotes:w {#2} }
+ }
+ \RenewDocumentCommand \newendnotes {m}
+ {
+ \prop_put:Nnn \l__fnpct_sepfootnote_end_classes_prop {#1} {#1}
+ \fnpct_orig_new_endnotes:n {#1}
+ }
+ \RenewDocumentCommand \newsymbolfootnotes {om}
+ {
+ \prop_put:Nnn \l__fnpct_sepfootnote_symbol_classes_prop {#2} {#2}
+ \IfNoValueTF {#1}
+ { \fnpct_orig_new_symbolnotes:w {#2} }
+ { \fnpct_orig_new_symbolnotes:w [#1] {#2} }
+ }
+ }
+
+% --------------------------------------------------------------------------
+\RequirePackage{translations}
+\AtBeginDocument{
+ \ifcurrentbaselanguage{French}
+ {
+ \AfterBeginDocument{
+ \cs_if_exist:NT \@footnotemarkORI
+ {
+ \let\@footnotemark\@footnotemarkORI
+ \setfnpct{
+ before-footnote-space =
+ \l__fnpct_french_before_footnote_space_dim
+ }
+ }
+ }
+ }{}
+}
+
+% --------------------------------------------------------------------------
+% SETUP COMMAND:
+\NewDocumentCommand \setfnpct {m}
+ { \keys_set:nn {fnpct} {#1} }
+
+\file_input_stop:
diff --git a/macros/latex/contrib/fnpct/fnpct-manual.cls b/macros/latex/contrib/fnpct/fnpct-manual.cls
index 95cfab1a77..05355a28b4 100644
--- a/macros/latex/contrib/fnpct/fnpct-manual.cls
+++ b/macros/latex/contrib/fnpct/fnpct-manual.cls
@@ -23,7 +23,7 @@
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
\RequirePackage[multiple]{fnpct}
-\ProvidesClass{fnpct-manual}[2022/02/03]
+\ProvidesClass{fnpct-manual}[2022/02/27]
\LoadClass[load-preamble,add-index]{cnltx-doc}
\RequirePackage{imakeidx}
@@ -75,7 +75,8 @@
thempfootnote
} ,
makeindex-setup = {options={-s cnltx.ist},columns=3,columnsep=1em} ,
- index-setup = {othercode=\footnotesize,level=\addsec}
+ index-setup = {othercode=\footnotesize,level=\addsec},
+ quote-author-format = \upshape
}
\RequirePackage{array,booktabs}
@@ -330,5 +331,6 @@
\fnpct@add@version{2022-01-04}{1.0a}
\fnpct@add@version{2022-01-29}{1.0b}
\fnpct@add@version{2022-02-03}{1.1}
+\fnpct@add@version{2022-02-27}{1.1a}
\endinput
diff --git a/macros/latex/contrib/fnpct/fnpct-manual.pdf b/macros/latex/contrib/fnpct/fnpct-manual.pdf
index bd6098e43f..37670e195e 100644
--- a/macros/latex/contrib/fnpct/fnpct-manual.pdf
+++ b/macros/latex/contrib/fnpct/fnpct-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/fnpct/fnpct-manual.tex b/macros/latex/contrib/fnpct/fnpct-manual.tex
index 99968777c7..674b0e293f 100644
--- a/macros/latex/contrib/fnpct/fnpct-manual.tex
+++ b/macros/latex/contrib/fnpct/fnpct-manual.tex
@@ -37,10 +37,14 @@
before-footnote-space = 0.05em
}
+\usepackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
\addbibresource{cnltx.bib}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
-\begin{filecontents*}{\jobname.bib}
+\begin{filecontents*}[overwrite]{\jobname.bib}
@book{bringhurst04,
title = {The Elements of Typographic Style},
author = {Robert Bringhurst},
@@ -49,6 +53,14 @@
isbn = {978-0-88179-205-5},
publisher = {Hartley \&\ Marks, Canada}
}
+@online{tex.sx:56094,
+ title = {Is there a way to automatically change kerning between
+ commas/full stops and footnote marks?} ,
+ author = {Christian} ,
+ date = {2012-05-16} ,
+ url = {https://tex.stackexchange.com/q/56094/5049} ,
+ visited = {2022-03-27}
+}
\end{filecontents*}
\AdaptNote\footcite{m}{#NOTE{#1}}
@@ -76,7 +88,9 @@
try to add it again to \fnpct. \par
Please read this manual carefully so you detect all changes. \par
\emph{I am sorry for the inconvenience but I am convinced that the new
- syntax is more powerful and more flexible in the long run.}
+ syntax is more powerful and more flexible in the long run.} \par
+ You can fall back to the last version~0 by saying
+ \cs*{usepackage}\Marg{fnpct}\Oarg{=v0}.
\end{bewareofthedog}
\section{License}
@@ -89,13 +103,13 @@ superscripts. This is not appropriate for all superscripts. Symbols must be
handled differently than numbers. And of course the amount depends on the
chosen font. \bringhurst\ says in \citetitle{bringhurst04}:
-\begin{cnltxquote}[\emph{\citetitle{bringhurst04}} \cite{bringhurst04}]
+\begin{cnltxquote}[\citetitle{bringhurst04} \emph{\cite{bringhurst04}}]
Superscripts frequently come at the ends of phrases or sentences. If they
are high above the line, they can be kerned over a comma or period, but this
may endanger readability, especially if the text is set in a modest size.
\end{cnltxquote}
-\fnpct\ can not make these decisions for you. It sets some initial values for
+\fnpct\ cannot make these decisions for you. It sets some initial values for
the comma and the full stop which looked good to me with the tested fonts.
Additionally it kerns the superscripts away from words when it follows
directly. The amounts of the kerning can be changed using options.
@@ -103,7 +117,10 @@ directly. The amounts of the kerning can be changed using options.
\fnpct\ also switches the order of the superscript and the following comma or
full stop. Additional punctuation marks can be added to the switching
behavior and the amount of kerning can be set for each punctuation mark
-individually. This behavior can also be turned off.
+individually. This behavior can be turned off.
+
+The package has been inspired by a question on the Q\&A site
+\url{tex.stackexchange.com}~\cite{tex.sx:56094}.
\subsection{New Behavior of \cs*{footnote}}
\subsubsection{Interaction With Punctuation}
@@ -485,7 +502,6 @@ way\footnote{Using \cs*{@mpfn} as counter name is essential to make ranges
\AdaptNote\footnote{o+m}[\@mpfn]{\IfNoValueTF{#1}{#NOTE{#2}}{#NOTE[#1]{#2}}}
\AdaptNote\footnotemark{o}{\IfNoValueTF{#1}{#NOTE}{#NOTE[#1]}}
\MultVariant\footnote
- % KOMA-Script's or memoir's \footref:
\AdaptNote\footref{m}{#NOTE{#1}}
\end{sourcecode}
You essentially have to rebuild the syntax of the original command and place
diff --git a/macros/latex/contrib/fnpct/fnpct.sty b/macros/latex/contrib/fnpct/fnpct.sty
index 175aa7c43f..d939f0a879 100644
--- a/macros/latex/contrib/fnpct/fnpct.sty
+++ b/macros/latex/contrib/fnpct/fnpct.sty
@@ -25,12 +25,14 @@
\RequirePackage {l3keys2e}
\ExplSyntaxOn
+\DeclareRelease {v0} {2019-10-05} {fnpct-2019-10-05.sty}
+
\DeclareHookRule {begindocument} {fnpct} {after} {hyperref}
-\tl_const:Nn \c_fnpct_date_tl {2022/02/03}
+\tl_const:Nn \c_fnpct_date_tl {2022/02/27}
\tl_const:Nn \c_fnpct_version_major_number_tl {1}
\tl_const:Nn \c_fnpct_version_minor_number_tl {1}
-\tl_const:Nn \c_fnpct_version_subrelease_tl {}
+\tl_const:Nn \c_fnpct_version_subrelease_tl {a}
\tl_const:Nx \c_fnpct_version_number_tl
{
\c_fnpct_version_major_number_tl .
@@ -49,6 +51,8 @@
{\c_fnpct_version_tl}
{\c_fnpct_info_tl}
+\DeclareCurrentRelease {v1} {\c_fnpct_date_tl}
+
% --------------------------------------------------------------------------
% scratch variables and variants of kernel functions:
\tl_new:N \l__fnpct_tmpa_tl
@@ -481,21 +485,9 @@
\cs_new_protected:Npn \fnpct_save_note_command:N #1
{
\cs_undefine:c {fnpct_original_ \__fnpct_remove_backslash:N #1 :w}
- \cs_if_exist:cTF { \__fnpct_remove_backslash:N #1 ~ code }
- {% xparse command
- \cs_new_eq:cc
- { fnpct_original_ \__fnpct_remove_backslash:N #1 :w }
- { \__fnpct_remove_backslash:N #1 ~ code }
- }
- {
- \cs_if_exist:cTF { \__fnpct_remove_backslash:N #1 ~ }
- {% robust command
- \cs_new_eq:cc
- { fnpct_original_ \__fnpct_remove_backslash:N #1 :w }
- { \__fnpct_remove_backslash:N #1 ~ }
- }
- { \cs_new_eq:cN { fnpct_original_ \__fnpct_remove_backslash:N #1 :w } #1 }
- }
+ \exp_args:Nc \DeclareCommandCopy
+ { fnpct_original_ \__fnpct_remove_backslash:N #1 :w }
+ #1
\seq_put_right:Nn \l__fnpct_adapted_commands_seq {#1}
\fnpct_set_counter_name:Nx #1 { \__fnpct_remove_backslash:N #1 }
}
@@ -696,11 +688,11 @@
{
\mode_if_horizontal:T
{
- \dim_compare:nNnTF \lastskip > {0pt}
- { \unskip \fnpct_unspace: }
+ \dim_compare:nNnTF {\lastskip} > {0pt}
+ { \tex_unskip:D \fnpct_unspace: }
{
- \int_compare:nNnT \lastpenalty > {0pt}
- { \unpenalty \fnpct_unspace: }
+ \int_compare:nNnT {\lastpenalty} > {0}
+ { \tex_unpenalty:D \fnpct_unspace: }
}
}
}
@@ -1092,8 +1084,8 @@
\fnpct_sepfootnote_new:n {#1}
}
}
-
-\hook_gput_code:nnn {begindocument} {fnpct}
+
+\hook_gput_code:nnn {begindocument/end} {fnpct}
{
\fnpct_if_package_loaded:nT {hyperref}
{
@@ -1130,9 +1122,7 @@
\fnpct_if_multiple:T { \MultVariant \footnote }
% TODO: should we adapt \thanks? Not with memoir, though...
% \AdaptNote \thanks {+m} { \cs_set_eq:NN \rlap \use:n #NOTE{#1} }
- %% KOMA-Script and memoir:
- \cs_if_exist:NT \footref
- { \AdaptNote \footref {m} { #NOTE{#1} } }
+ \AdaptNote \footref {m} { #NOTE{#1} }
%% snotez:
\fnpct_treatment:nn {snotez}
{
@@ -1304,8 +1294,9 @@
}
%% sepfootnotes
\fnpct_treatment:nn {sepfootnotes}
- {
+ {
\cs_set:Nn \__fnpct_sep_mark:n {\footnotemark}
+ \AdaptNote \sepfootnote {m} [\@mpfn] {#NOTE{#1}}
\seq_map_inline:Nn \l__fnpct_sepfootnotes_seq
{
\cs_if_eq:cNTF {#1notemark} \__fnpct_sep_mark:n
@@ -1429,3 +1420,9 @@ tablefootnote
see https://tex.stackexchange.com/questions/467561/
- new option `mult-variant-prefix'
- new option `unspace'
+2022/02/27 v1.1a - fix bug in \fnpct_unspace:
+ - fix bug in sepfootnotes adaption
+ - add package check file
+ - use \DeclareCommandCopy for saving the original note
+ commands
+ - use LaTeX's release mechanism
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index b6b8a3eae4..91c7d4dcfe 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -1,7 +1,29 @@
-<!-- Copyright (C) 2021 by Jinwen XU -->
+<!-- Copyright (C) 2021-2022 by Jinwen XU -->
# ProjLib Toolkit
+The bundle is dated 2022/02/27
+
+Old modules are still dated 2021/12/16 and will *not* be modified. When all the new modules are finished, old files shall be removed from this bundle.
+
+## **Important note**
+
+The whole project is being rewritten with `expl3`. New modules have the name with prefix "projlib-", and they are in many ways better and more powerful than their predecessors. Some basically finished new modules are included in the bundle but are not yet documented. Most importantly, they are not compatible with the old modules, so they cannot appear at the same time in the same document, which, unfortunately, means that (for now) they cannot be used in classes like `einfart` or `lebhart`, etc.
+
+The newly added modules include:
+- projlib-author
+- projlib-datetime
+- projlib-draft
+- projlib-font
+- projlib-language
+- projlib-logo
+- projlib-math
+- projlib-paper
+
+When all these modules are finished, the documentation will be updated accordingly.
+
+---
+
> **ProjLib** can be interpreted as "***Proj**ect **Lib**rary*" (in English), or as "***Proj**et **Lib**re*" (in French).
> Personally, I prefer the later one.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-author.sty b/macros/latex/contrib/projlib/new-modules/projlib-author.sty
new file mode 100644
index 0000000000..ef0906d249
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-author.sty
@@ -0,0 +1,312 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-author}
+ {2022/02/24} {}
+ {Enhanced author information block}
+
+\keys_define:nn { projlib-author }
+ {
+ , amsfashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , amsfashion .initial:n = { false }
+ , ams-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-author }
+
+\cs_if_exist:NT \subjclass { \endinput }
+
+\tl_new:N \g__projlib_author_font_author_tl
+\tl_new:N \g__projlib_author_font_address_tl
+\tl_new:N \g__projlib_author_font_curraddr_tl
+\tl_new:N \g__projlib_author_font_email_tl
+
+\tl_gset:Nn \g__projlib_author_font_author_tl { \normalsize \normalfont \scshape }
+\tl_gset:Nn \g__projlib_author_font_address_tl { \small \normalfont \itshape }
+\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \small \normalfont \itshape }
+\tl_gset:Nn \g__projlib_author_font_email_tl { \small \normalfont \ttfamily }
+
+\dim_new:N \g__projlib_author_length_innersep_dim
+\dim_new:N \g__projlib_author_length_sep_dim
+\dim_new:N \g__projlib_author_length_aftersep_dim
+
+\dim_set:Nn \g__projlib_author_length_innersep_dim { 0.3 \baselineskip }
+\dim_set:Nn \g__projlib_author_length_sep_dim { 0.5 \baselineskip }
+\dim_set:Nn \g__projlib_author_length_aftersep_dim { 0.3 \baselineskip }
+
+
+\bool_new:N \g__projlib_author_affil_already_exist_bool
+
+\NewCommandCopy \projlib_author_backup_author:w \author
+\RenewDocumentCommand \author { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \skip_vertical:n { \g__projlib_author_length_sep_dim }
+ { \g__projlib_author_font_author_tl #1 }
+ \bool_set_false:N \g__projlib_author_affil_already_exist_bool
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \address { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_address_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \curraddr { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_curraddr_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \email { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_email_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\RequirePackage { regexpatch }
+
+\xpatchcmd { \@maketitle } { \begin{tabular}[t]{c} } {} {} { \FAIL }
+\xpatchcmd { \@maketitle } { \end{tabular} } {} {} { \FAIL }
+
+\tl_set:cn {@author} {}
+
+\hook_gput_code:nnn { cmd/@maketitle/before } { projlib-author }
+ {
+ \hook_gput_code:nnn { cmd/@author/before } { projlib-author }
+ {
+ \skip_vertical:n { - \g__projlib_author_length_sep_dim }
+ }
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \skip_vertical:n { - \baselineskip }
+ \bool_if:NT \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_aftersep_dim }
+ }
+ }
+ }
+
+\bool_if:NT \l__projlib_author_amsfashion_bool
+ {
+ \RequirePackage{ projlib-language }
+
+ \tl_new:N \g_projlib_author_keywordsname_style_tl
+ \tl_gset:Nn \g_projlib_author_keywordsname_style_tl {}
+
+ \projlib_langauge_define_multilingual_text:Nn \keywordsname
+ {
+ EN = \textsc{Key~words~and~phrases} ,
+ FR = \textsc{Mots~et~phrases~clés} ,
+ DE = \textsc{Schlüsselwörter~und~Phrasen} ,
+ IT = \textsc{Parole~e~frasi~chiave} ,
+ PT = \textsc{Palavras~e~frases~chave} ,
+ BR = \textsc{Palavras~e~frases~chave} ,
+ ES = \textsc{Palabras~y~frases~clave} ,
+ CN = 关键词 ,
+ TC = 關鍵詞 ,
+ JP = キーワード ,
+ RU = Ключевые~слова~и~фразы ,
+ }
+
+ \tl_new:N \g__projlib_author_keywords_tl
+ \NewDocumentCommand \keywords { m }
+ {
+ \tl_gset:Nn \g__projlib_author_keywords_tl { #1 }
+ }
+
+ \tl_new:N \g__projlib_author_dedicatory_tl
+ \NewDocumentCommand \dedicatory { m }
+ {
+ \tl_gset:Nn \g__projlib_author_dedicatory_tl { #1 }
+ }
+
+ \hook_gput_code:nnn { begindocument/before } { projlib-author }
+ {
+ \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
+ \tl_gset:Nn \footnotemark {}
+
+ \NewCommandCopy \projlib_author_backup_thanks:w \thanks
+ \cs_undefine:N \thanks
+
+ % measure the width of "*"
+ \hbox_set:Nn \l_tmpa_box { * }
+ \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
+
+ \cs_new_nopar:Nn \projlib_author_pre_thanks:n
+ {
+ \projlib_author_backup_thanks:w
+ {
+ \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
+ #1
+ }
+ }
+
+ \NewDocumentCommand \thanks { m }
+ {
+ \tl_if_blank:eF { #1 }
+ {
+ \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
+ {
+ \projlib_author_pre_thanks:n { #1 }
+ }
+ }
+ }
+
+ \NewCommandCopy \projlib_author_backup_my_author:w \author
+ \RenewDocumentCommand \author { m }
+ {
+ \projlib_author_backup_my_author:w
+ {
+ \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
+ \RenewCommandCopy \thanks \projlib_author_backup_thanks:w
+ #1
+ \cs_undefine:N \footnotemark
+ }
+ }
+ }
+
+ \NewCommandCopy \projlib_author_backup_abstract: \abstract
+ \NewCommandCopy \projlib_author_backup_endabstract: \endabstract
+ \cs_undefine:N \abstract
+ \cs_undefine:N \endabstract
+
+ \bool_new:N \g__projlib_author_already_maketitle_bool
+ \bool_gset_false:N \g__projlib_author_already_maketitle_bool
+ \bool_new:N \g__projlib_author_abstract_before_maketitle_bool
+ \bool_gset_false:N \g__projlib_author_abstract_before_maketitle_bool
+
+ \RequirePackage{ scontents }
+ \newenvsc{abstract}[store-env=projlib-author-abstract,print-env=false]
+
+ \hook_gput_code:nnn { env/abstract/after } { projlib-author }
+ {
+ \bool_if:NTF \g__projlib_author_already_maketitle_bool
+ {
+ \projlib_author_backup_abstract:
+ \getstored{projlib-author-abstract}
+ \projlib_author_backup_endabstract:
+ }
+ {
+ \bool_gset_true:N \g__projlib_author_abstract_before_maketitle_bool
+ }
+ }
+
+ \hook_gput_code:nnn { begindocument/before } { projlib-author }
+ {
+ \makeatletter
+ \xpatchcmd { \@maketitle } { \@date }
+ {
+ \tl_if_blank:eTF { \@date } { \skip_vertical:n { -2 \baselineskip } } { \@date }
+ \tl_if_blank:eF { \g__projlib_author_dedicatory_tl }
+ {
+ \tl_if_blank:eT { \@date } { \skip_vertical:n { 2 \baselineskip } }
+ \par
+ \skip_vertical:n { -\parskip }
+ \skip_vertical:n { \baselineskip }
+ \textit{ \g__projlib_author_dedicatory_tl }
+ \tl_if_blank:eT { \@date }
+ {
+ \skip_vertical:n { -\parskip }
+ \skip_vertical:n { \dim_eval:n { -1.7 \baselineskip } }
+ }
+ }
+ } {} { \FAIL }
+ \makeatother
+
+ \hook_gput_code:nnn { cmd/maketitle/before } { projlib-author }
+ {
+ \tl_if_blank:eF { \g__projlib_author_keywords_tl }
+ {
+ \projlib_author_pre_thanks:n
+ {
+ \group_begin:
+ \g_projlib_author_keywordsname_style_tl
+ \keywordsname .
+ \group_end:
+ \c_space_tl
+ \g__projlib_author_keywords_tl
+ }
+ }
+ }
+
+ \hook_gput_code:nnn { cmd/maketitle/after } { projlib-author }
+ {
+ \bool_if:NT \g__projlib_author_abstract_before_maketitle_bool
+ {
+ \projlib_author_backup_abstract:
+ \getstored{projlib-author-abstract}
+ \projlib_author_backup_endabstract:
+ }
+ \cs_undefine:N \address
+ \cs_undefine:N \curraddr
+ \cs_undefine:N \email
+ \cs_undefine:N \dedicatory
+ \cs_undefine:N \keywords
+ \bool_gset_true:N \g__projlib_author_already_maketitle_bool
+ }
+ }
+
+ \tl_new:N \l_projlib_author_subjclassname_tl
+ \tl_new:N \l_projlib_author_subjclass_tl
+ \msg_new:nnn { projlib-author }
+ { unknown-msc-edition }
+ { Unknown~edition~(#1)~of~Mathematics~Subject~Classification;~using~'2020' }
+ \NewDocumentCommand \subjclass { O{2020} m }
+ {
+ \tl_set:Nn \l_projlib_author_subjclass_tl { #2 }
+ \tl_if_exist:cTF { subjclassname_#1 }
+ {
+ \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_#1 } }
+ }
+ {
+ \msg_warning:nnn { projlib-author } { unknown-msc-edition } { #1 }
+ \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_2020 } }
+ }
+ \projlib_author_pre_thanks:n
+ {
+ \textit{ \l_projlib_author_subjclassname_tl . }
+ \enspace
+ \l_projlib_author_subjclass_tl .
+ }
+ }
+ \tl_const:cn { subjclassname_1991 } { \textup{1991}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2000 } { \textup{2000}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2010 } { \textup{2010}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2020 } { \textup{2020}~Mathematics~Subject~Classification }
+ }
+
+\endinput
+%%
+%% End of file `projlib-author.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-datetime.sty b/macros/latex/contrib/projlib/new-modules/projlib-datetime.sty
new file mode 100644
index 0000000000..d96d31d93b
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-datetime.sty
@@ -0,0 +1,1645 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-datetime}
+ {2022/02/24} {}
+ {Convert numeric date-time string to natural language}
+
+\tl_new:N \g__projlib_datetime_input_format_tl
+\tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day }
+
+\keys_define:nn { projlib-datetime }
+ {
+ , plain .bool_set:N = \l__projlib_datetime_plain_bool
+ , plain .initial:n = { false }
+ , year-month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ , day-month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , year-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , day-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-datetime }
+
+\bool_if:NT \l__projlib_datetime_plain_bool
+ {
+ \hook_gput_code:nnn { begindocument/before } { projlib-datetime }
+ {
+ \cs_set:Nn \projlib_datetime_text_superscript:n { #1 }
+ }
+ }
+
+\tl_new:N \l__projlib_datetime_output_format_tl
+\keys_define:nn { projlib-datetime-command }
+ {
+ , year-month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ , day-month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , year-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , day-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , only-year-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year-month } }
+ , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } }
+ , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } }
+ , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } }
+ , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } }
+ , unknown .code:n = {}
+ }
+
+\msg_new:nnnn { projlib-datetime }
+ { non-supported-date-format }
+ { The~date~format~"#1"~is~not~supported. }
+ { The~only~formats~available~are~"year-month-day",~ "month-day-year"~and~"day-month-year". }
+
+\cs_new:Nn \projlib_datetime_set_input_format:n
+ {
+ \str_case:nnF { #1 }
+ {
+ { year-month-day } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ { month-day-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ { day-month-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ }
+ {
+ \msg_error:nnn { projlib-datetime } { non-supported-date-format } { #1 }
+ }
+ }
+
+\NewDocumentCommand \ProjLibSetDatetimeInputFormat { m }
+ {
+ \projlib_datetime_set_input_format:n { #1 }
+ }
+
+
+\seq_new:N \l__projlib_datetime_date_seq
+
+\cs_new_protected:Nn \projlib_datetime_text_superscript:n
+ {
+ \group_begin:
+ \small
+ \textsuperscript { #1 }
+ \group_end:
+ }
+
+
+\cs_new:Nn \__projlib_datetime_today:n
+ {
+ \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
+ {
+ { only-year-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #1 _ \languagename :nn }
+ { \int_use:N \c_sys_year_int }
+ { \int_use:N \c_sys_month_int }
+ }
+ { only-month-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #1 _ \languagename :nn }
+ { \int_use:N \c_sys_month_int }
+ { \int_use:N \c_sys_day_int }
+ }
+ { only-year }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_year #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_year_int }
+ }
+ }
+ { only-month }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_month #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_month_int }
+ }
+ }
+ { only-day }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_day #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_day_int }
+ }
+ }
+ }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month_day #1 _ \languagename :nnn }
+ { \int_use:N \c_sys_year_int }
+ { \int_use:N \c_sys_month_int }
+ { \int_use:N \c_sys_day_int }
+ }
+ }
+
+\NewDocumentCommand \ProjLibtoday { O{} }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_today:n {}
+ \group_end:
+ }
+
+\NewDocumentCommand \ProjLibToday { O{} }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_today:n { _uppercase }
+ \group_end:
+ }
+
+\ProvideDocumentCommand \Thedate {} { \ProjLibdate }
+\ProvideDocumentCommand \TheDate {} { \ProjLibDate }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_year_month_day:n
+ {
+ \__projlib_datetime_display_year_month_day:en { #1 } {}
+ }
+
+\cs_new_protected:Nn \projlib_datetime_display_year_month_day_uppercase:n
+ {
+ \__projlib_datetime_display_year_month_day:en { #1 } { _uppercase }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_year_month_day:nn
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month_day #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_datetime_display_year_month_day:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_month_day_year:n
+{
+ \__projlib_datetime_display_month_day_year:en { #1 } {}
+}
+
+\cs_new_protected:Nn \projlib_datetime_display_month_day_year_uppercase:n
+{
+ \__projlib_datetime_display_month_day_year:en { #1 } { _uppercase }
+}
+
+\cs_new_protected:Nn \__projlib_datetime_display_month_day_year:nn
+{
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day_year #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+}
+\cs_generate_variant:Nn \__projlib_datetime_display_month_day_year:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_day_month_year:n
+{
+ \__projlib_datetime_display_day_month_year:en { #1 } {}
+}
+
+\cs_new_protected:Nn \projlib_datetime_display_day_month_year_uppercase:n
+{
+ \__projlib_datetime_display_day_month_year:en { #1 } { _uppercase }
+}
+
+\cs_new_protected:Nn \__projlib_datetime_display_day_month_year:nn
+{
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_day_month_year #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+}
+\cs_generate_variant:Nn \__projlib_datetime_display_day_month_year:nn { en }
+
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_year_month_day:n
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2}(|-\d{1,2}) \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_month_day_year:n
+ {
+ \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_pop_right:NN \l__projlib_datetime_date_seq \l_tmpa_tl
+ \seq_put_left:NV \l__projlib_datetime_date_seq \l_tmpa_tl
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_day_month_year:n
+ {
+ \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_reverse:N \l__projlib_datetime_date_seq
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_reverse:N \l__projlib_datetime_date_seq
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new:Nn \__projlib_datetime_input_format_to_str:
+ {
+ \str_case_e:nn { \g__projlib_datetime_input_format_tl }
+ {
+ { year-month-day } { year_month_day }
+ { month-day-year } { month_day_year }
+ { day-month-year } { day_month_year }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_date_according_to_format:nn
+ {
+ \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
+ \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
+ {
+ { only-year-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ }
+ { only-month-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+ { only-year }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ }
+ { only-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ }
+ { only-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_day #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+ }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_ \__projlib_datetime_input_format_to_str: #2 :n } { #1 }
+ }
+ }
+
+\NewDocumentCommand \ProjLibdate { O{} m }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_display_date_according_to_format:nn { #2 } {}
+ \group_end:
+ }
+
+\NewDocumentCommand \ProjLibDate { O{} m }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_display_date_according_to_format:nn { #2 } { _uppercase }
+ \group_end:
+ }
+
+
+\int_new:N \l__projlib_datetime_day_of_week_day_int
+\int_new:N \l__projlib_datetime_day_of_week_month_int
+\int_new:N \l__projlib_datetime_day_of_week_year_int
+\int_new:N \l__projlib_datetime_day_of_week_century_int
+\int_new:N \l__projlib_datetime_day_of_week_result_int
+\cs_new:Nn \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_day_int { #3 }
+ \int_compare:nNnTF { #2 } < { 3 }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_eval:n { #1 - 1 } }
+ }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { #1 }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_century_int { \int_eval:n { \l__projlib_datetime_day_of_week_year_int / 100 } }
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_mod:nn { \l__projlib_datetime_day_of_week_year_int } { 100 } }
+ \int_set:Nn \l__projlib_datetime_day_of_week_month_int
+ {
+ \int_case:nnF { #2 }
+ {
+ { 1 } { 0 }
+ { 2 } { 3 }
+ { 3 } { 2 }
+ { 4 } { 5 }
+ { 5 } { 0 }
+ { 6 } { 3 }
+ { 7 } { 5 }
+ { 8 } { 1 }
+ { 9 } { 4 }
+ { 10 } { 6 }
+ { 11 } { 2 }
+ { 12 } { 4 }
+ } { 0 }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_eval:n
+ {
+ \l__projlib_datetime_day_of_week_day_int
+ + \l__projlib_datetime_day_of_week_month_int
+ +\l__projlib_datetime_day_of_week_year_int
+ + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_year_int } { 4 }
+ + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_century_int } { 4 }
+ - 2 * \l__projlib_datetime_day_of_week_century_int
+ }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_mod:nn { \l__projlib_datetime_day_of_week_result_int } { 7 }
+ }
+ \int_compare:nNnT { \l__projlib_datetime_day_of_week_result_int } < { 1 }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_eval:n { \l__projlib_datetime_day_of_week_result_int + 7 }
+ }
+ }
+ }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_week:n
+ {
+ \__projlib_datetime_display_week_according_to_format:en { #1 } {}
+ }
+
+\cs_new_protected:Nn \projlib_datetime_display_week_uppercase:n
+ {
+ \__projlib_datetime_display_week_according_to_format:en { #1 } { _uppercase }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_week_according_to_format:nn
+ {
+ \projlib_datetime_calculate_week_according_to_format:n { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_week #2 _ \languagename :n } { \l__projlib_datetime_day_of_week_result_int }
+ }
+\cs_generate_variant:Nn \__projlib_datetime_display_week_according_to_format:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_calculate_week_according_to_format:n
+ {
+ \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
+ \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+
+
+% For each language, there are 7 groups of functions:
+% 1) \projlib_datetime_display_year_month_day_<languagename>:nnn
+% \projlib_datetime_display_year_month_day_uppercase_<languagename>:nnn
+% 2) \projlib_datetime_display_year_month_<languagename>:nn
+% \projlib_datetime_display_year_month_uppercase_<languagename>:nn
+% 3) \projlib_datetime_display_month_day_<languagename>:nn
+% \projlib_datetime_display_month_day_uppercase_<languagename>:nn
+% 4) \projlib_datetime_display_year_<languagename>:n
+% \projlib_datetime_display_year_uppercase_<languagename>:n
+% 5) \projlib_datetime_display_month_<languagename>:n
+% \projlib_datetime_display_month_uppercase_<languagename>:n
+% 6) \projlib_datetime_display_day_<languagename>:n
+% \projlib_datetime_display_day_uppercase_<languagename>:n
+% 7) \projlib_datetime_display_week_<languagename>:n
+% \projlib_datetime_display_week_uppercase_<languagename>:n
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_english:nnn
+ {
+ \projlib_datetime_display_month_day_english:nn { #2 } { #3 }
+ ,\nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_english:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_english:nn { #2 } { #3 }
+ ,\nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_english:nn
+ {
+ \projlib_datetime_display_month_english:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_english:nn
+ {
+ \projlib_datetime_display_month_uppercase_english:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_english:nn
+ {
+ \projlib_datetime_display_month_english:n { #1 }
+ \nobreakspace
+ \projlib_datetime_display_day_english:n { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_english:nn
+ {
+ \projlib_datetime_display_month_uppercase_english:n { #1 }
+ \nobreakspace
+ \projlib_datetime_display_day_english:n { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_english:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_english:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_english:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { January }
+ { 2 } { February }
+ { 3 } { March }
+ { 4 } { April }
+ { 5 } { May }
+ { 6 } { June }
+ { 7 } { July }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { October }
+ { 11 } { November }
+ { 12 } { December }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_english:n
+ {
+ \projlib_datetime_display_month_english:n { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_english:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_english:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_english:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Monday }
+ { 2 } { Tuesday }
+ { 3 } { Wednesday }
+ { 4 } { Thursday }
+ { 5 } { Friday }
+ { 6 } { Saturday }
+ { 7 } { Sunday }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_english:n
+ {
+ \projlib_datetime_display_week_english:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_french:nnn
+ {
+ \projlib_datetime_display_month_day_french:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_french:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_french:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_french:nn
+ {
+ \projlib_datetime_display_month_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_french:nn
+ {
+ \projlib_datetime_display_month_uppercase_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_french:nn
+ {
+ \projlib_datetime_display_day_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_month_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_french:nn
+ {
+ \projlib_datetime_display_month_day_french:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_french:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_french:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janvier }
+ { 2 } { février }
+ { 3 } { mars }
+ { 4 } { avril }
+ { 5 } { mai }
+ { 6 } { juin }
+ { 7 } { juillet }
+ { 8 } { août }
+ { 9 } { septembre }
+ { 10 } { octobre }
+ { 11 } { novembre }
+ { 12 } { décembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janvier }
+ { 2 } { Février }
+ { 3 } { Mars }
+ { 4 } { Avril }
+ { 5 } { Mai }
+ { 6 } { Juin }
+ { 7 } { Juillet }
+ { 8 } { Août }
+ { 9 } { Septembre }
+ { 10 } { Octobre }
+ { 11 } { Novembre }
+ { 12 } { Décembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lundi }
+ { 2 } { mardi }
+ { 3 } { mercredi }
+ { 4 } { jeudi }
+ { 5 } { vendredi }
+ { 6 } { samedi }
+ { 7 } { dimanche }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lundi }
+ { 2 } { Mardi }
+ { 3 } { Mercredi }
+ { 4 } { Jeudi }
+ { 5 } { Vendredi }
+ { 6 } { Samedi }
+ { 7 } { Dimanche }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_ngerman:nnn
+ {
+ \projlib_datetime_display_month_day_ngerman:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_ngerman:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_ngerman:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_ngerman:nn
+ {
+ \projlib_datetime_display_month_ngerman:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn
+ {
+ \projlib_datetime_display_month_uppercase_ngerman:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_ngerman:nn
+ {
+ \projlib_datetime_display_day_ngerman:n { #2 }
+ .\nobreakspace
+ \projlib_datetime_display_month_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn
+ {
+ \projlib_datetime_display_month_day_ngerman:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_ngerman:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_ngerman:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Januar }
+ { 2 } { Februar }
+ { 3 } { März }
+ { 4 } { April }
+ { 5 } { Mai }
+ { 6 } { Juni }
+ { 7 } { Juli }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { Oktober }
+ { 11 } { November }
+ { 12 } { Dezember }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Januar }
+ { 2 } { Februar }
+ { 3 } { März }
+ { 4 } { April }
+ { 5 } { Mai }
+ { 6 } { Juni }
+ { 7 } { Juli }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { Oktober }
+ { 11 } { November }
+ { 12 } { Dezember }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_ngerman:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_ngerman:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Montag }
+ { 2 } { Dienstag }
+ { 3 } { Mittwoch }
+ { 4 } { Donnerstag }
+ { 5 } { Freitag }
+ { 6 } { Samstag }
+ { 7 } { Sonntag }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_ngerman:n
+ {
+ \projlib_datetime_display_week_ngerman:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_italian:nnn
+ {
+ \projlib_datetime_display_month_day_italian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_italian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_italian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_italian:nn
+ {
+ \projlib_datetime_display_month_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_italian:nn
+ {
+ \projlib_datetime_display_month_uppercase_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_italian:nn
+ {
+ \projlib_datetime_display_day_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_month_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_italian:nn
+ {
+ \projlib_datetime_display_month_day_italian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_italian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_italian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { gennaio }
+ { 2 } { febbraio }
+ { 3 } { marzo }
+ { 4 } { aprile }
+ { 5 } { maggio }
+ { 6 } { giugno }
+ { 7 } { luglio }
+ { 8 } { agosto }
+ { 9 } { settembre }
+ { 10 } { ottobre }
+ { 11 } { novembre }
+ { 12 } { dicembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Gennaio }
+ { 2 } { Febbraio }
+ { 3 } { Marzo }
+ { 4 } { Aprile }
+ { 5 } { Maggio }
+ { 6 } { Giugno }
+ { 7 } { Luglio }
+ { 8 } { Agosto }
+ { 9 } { Settembre }
+ { 10 } { Ottobre }
+ { 11 } { Novembre }
+ { 12 } { Dicembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_italian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_italian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lunedì }
+ { 2 } { martedì }
+ { 3 } { mercoledì }
+ { 4 } { giovedì }
+ { 5 } { venerdì }
+ { 6 } { sabato }
+ { 7 } { domenica }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lunedì }
+ { 2 } { Martedì }
+ { 3 } { Mercoledì }
+ { 4 } { Giovedì }
+ { 5 } { Venerdì }
+ { 6 } { Sabato }
+ { 7 } { Domenica }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_portuguese:nnn
+ {
+ \projlib_datetime_display_month_day_portuguese:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_portuguese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_portuguese:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_portuguese:nn
+ {
+ \projlib_datetime_display_month_portuguese:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn
+ {
+ \projlib_datetime_display_month_uppercase_portuguese:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_portuguese:nn
+ {
+ \projlib_datetime_display_day_portuguese:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_uppercase_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn
+ {
+ \projlib_datetime_display_month_day_portuguese:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_portuguese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_portuguese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janeiro }
+ { 2 } { fevereiro }
+ { 3 } { março }
+ { 4 } { abril }
+ { 5 } { maio }
+ { 6 } { junho }
+ { 7 } { julho }
+ { 8 } { agosto }
+ { 9 } { setembro }
+ { 10 } { outubro }
+ { 11 } { novembro }
+ { 12 } { dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janeiro }
+ { 2 } { Fevereiro }
+ { 3 } { Março }
+ { 4 } { Abril }
+ { 5 } { Maio }
+ { 6 } { Junho }
+ { 7 } { Julho }
+ { 8 } { Agosto }
+ { 9 } { Setembro }
+ { 10 } { Outubro }
+ { 11 } { Novembro }
+ { 12 } { Dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_portuguese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_portuguese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { segunda-feira }
+ { 2 } { terça-feira }
+ { 3 } { quarta-feira }
+ { 4 } { quinta-feira }
+ { 5 } { sexta-feira }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Segunda-feira }
+ { 2 } { Terça-feira }
+ { 3 } { Quarta-feira }
+ { 4 } { Quinta-feira }
+ { 5 } { Sexta-feira }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_brazilian:nnn
+ {
+ \projlib_datetime_display_month_day_brazilian:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_brazilian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_brazilian:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_brazilian:nn
+ {
+ \projlib_datetime_display_month_brazilian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn
+ {
+ \projlib_datetime_display_month_uppercase_brazilian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_brazilian:nn
+ {
+ \projlib_datetime_display_day_brazilian:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_uppercase_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn
+ {
+ \projlib_datetime_display_month_day_brazilian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_brazilian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_brazilian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janeiro }
+ { 2 } { fevereiro }
+ { 3 } { março }
+ { 4 } { abril }
+ { 5 } { maio }
+ { 6 } { junho }
+ { 7 } { julho }
+ { 8 } { agosto }
+ { 9 } { setembro }
+ { 10 } { outubro }
+ { 11 } { novembro }
+ { 12 } { dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janeiro }
+ { 2 } { Fevereiro }
+ { 3 } { Março }
+ { 4 } { Abril }
+ { 5 } { Maio }
+ { 6 } { Junho }
+ { 7 } { Julho }
+ { 8 } { Agosto }
+ { 9 } { Setembro }
+ { 10 } { Outubro }
+ { 11 } { Novembro }
+ { 12 } { Dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_brazilian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_brazilian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { segunda-feira }
+ { 2 } { terça-feira }
+ { 3 } { quarta-feira }
+ { 4 } { quinta-feira }
+ { 5 } { sexta-feira }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Segunda-feira }
+ { 2 } { Terça-feira }
+ { 3 } { Quarta-feira }
+ { 4 } { Quinta-feira }
+ { 5 } { Sexta-feira }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_spanish:nnn
+ {
+ \projlib_datetime_display_month_day_spanish:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_spanish:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_spanish:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_spanish:nn
+ {
+ \projlib_datetime_display_month_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn
+ {
+ \projlib_datetime_display_month_uppercase_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_spanish:nn
+ {
+ \projlib_datetime_display_day_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn
+ {
+ \projlib_datetime_display_month_day_spanish:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_spanish:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_spanish:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { enero }
+ { 2 } { febrero }
+ { 3 } { marzo }
+ { 4 } { abril }
+ { 5 } { mayo }
+ { 6 } { junio }
+ { 7 } { julio }
+ { 8 } { agosto }
+ { 9 } { septiembre }
+ { 10 } { octubre }
+ { 11 } { noviembre }
+ { 12 } { diciembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Enero }
+ { 2 } { Febrero }
+ { 3 } { Marzo }
+ { 4 } { Abril }
+ { 5 } { Mayo }
+ { 6 } { Junio }
+ { 7 } { Julio }
+ { 8 } { Agosto }
+ { 9 } { Septiembre }
+ { 10 } { Octubre }
+ { 11 } { Noviembre }
+ { 12 } { Diciembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_spanish:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_spanish:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lunes }
+ { 2 } { martes }
+ { 3 } { miércoles }
+ { 4 } { jueves }
+ { 5 } { viernes }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lunes }
+ { 2 } { Martes }
+ { 3 } { Miércoles }
+ { 4 } { Jueves }
+ { 5 } { Viernes }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_schinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_schinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_schinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_schinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_schinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_schinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_schinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_schinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_schinese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_schinese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_schinese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 星期一 }
+ { 2 } { 星期二 }
+ { 3 } { 星期三 }
+ { 4 } { 星期四 }
+ { 5 } { 星期五 }
+ { 6 } { 星期六 }
+ { 7 } { 星期日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_schinese:n
+ {
+ \projlib_datetime_display_week_schinese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_tchinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_tchinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_tchinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_tchinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_tchinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_tchinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_tchinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_tchinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_tchinese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_tchinese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_tchinese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 星期一 }
+ { 2 } { 星期二 }
+ { 3 } { 星期三 }
+ { 4 } { 星期四 }
+ { 5 } { 星期五 }
+ { 6 } { 星期六 }
+ { 7 } { 星期日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_tchinese:n
+ {
+ \projlib_datetime_display_week_tchinese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_japanese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_japanese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_japanese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_japanese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_japanese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_japanese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_japanese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_japanese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_japanese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_japanese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_japanese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 月曜日 }
+ { 2 } { 火曜日 }
+ { 3 } { 水曜日 }
+ { 4 } { 木曜日 }
+ { 5 } { 金曜日 }
+ { 6 } { 土曜日 }
+ { 7 } { 日曜日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_japanese:n
+ {
+ \projlib_datetime_display_week_japanese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_russian:nnn
+ {
+ \projlib_datetime_display_month_day_russian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_russian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_russian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_russian:nn
+ {
+ \projlib_datetime_display_month_russian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_russian:nn
+ {
+ \projlib_datetime_display_month_uppercase_russian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_russian:nn
+ {
+ \projlib_datetime_display_day_russian:n { #2 }
+ \nobreakspace
+ \int_case:nnF { #1 }
+ {
+ { 1 } { января }
+ { 2 } { февраля }
+ { 3 } { марта }
+ { 4 } { апреля }
+ { 5 } { мая }
+ { 6 } { июня }
+ { 7 } { июля }
+ { 8 } { августа }
+ { 9 } { сентября }
+ { 10 } { октября }
+ { 11 } { ноября }
+ { 12 } { декабря }
+ } { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_russian:nn
+ {
+ \projlib_datetime_display_month_day_russian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_russian:n { #1 ~ г. }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_russian:n { #1 ~ г. }
+
+\cs_new:Nn \projlib_datetime_display_month_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { январь }
+ { 2 } { февраль }
+ { 3 } { март }
+ { 4 } { апрель }
+ { 5 } { май }
+ { 6 } { июнь }
+ { 7 } { июль }
+ { 8 } { август }
+ { 9 } { сентябрь }
+ { 10 } { октябрь }
+ { 11 } { ноябрь }
+ { 12 } { декабрь }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Январь }
+ { 2 } { Февраль }
+ { 3 } { Март }
+ { 4 } { Апрель }
+ { 5 } { Май }
+ { 6 } { Июнь }
+ { 7 } { Июль }
+ { 8 } { Август }
+ { 9 } { Сентябрь }
+ { 10 } { Октябрь }
+ { 11 } { Ноябрь }
+ { 12 } { Декабрь }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_russian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_russian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { понедельник }
+ { 2 } { вторник }
+ { 3 } { среда }
+ { 4 } { четверг }
+ { 5 } { пятница }
+ { 6 } { суббота }
+ { 7 } { воскресенье }
+ } { ??? }
+ }
+\cs_new:Nn \projlib_datetime_display_week_uppercase_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Понедельник }
+ { 2 } { Вторник }
+ { 3 } { Среда }
+ { 4 } { Четверг }
+ { 5 } { Пятница }
+ { 6 } { Суббота }
+ { 7 } { Воскресенье }
+ } { ??? }
+ }
+
+\endinput
+%%
+%% End of file `projlib-datetime.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-draft.sty b/macros/latex/contrib/projlib/new-modules/projlib-draft.sty
new file mode 100644
index 0000000000..6c7fe818c7
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-draft.sty
@@ -0,0 +1,140 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-draft}
+ {2022/02/24} {}
+ {Useful commands during draft stage}
+
+\keys_define:nn { projlib-draft }
+ {
+ , draft .bool_set:N = \l__projlib_draft_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__projlib_draft_fast_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-draft }
+
+\RequirePackage { projlib-language }
+\RequirePackage { xcolor }
+
+\bool_if:NTF \l__projlib_draft_fast_bool
+ {
+ \NewDocumentCommand \projlib_draft_plain_box { O{-paper} m }
+ {
+ \group_begin:
+ \color { #1 }
+ \dim_set:Nn \fboxsep { 1.5pt }
+ \dim_set:Nn \fboxrule { 1.5pt }
+ \fbox { #2 }
+ \group_end:
+ }
+ }
+ {
+ \PassOptionsToPackage { many } { tcolorbox }
+ \RequirePackage { tcolorbox }
+ \NewTCBox \projlib_draft_plain_box { O{-paper} }
+ {
+ enhanced~jigsaw, breakable,
+ on~line, arc = 1.2pt, outer~arc = 1pt,
+ colframe = #1, colupper = #1, opacityback = 0,
+ boxsep = 1pt, boxrule = 1.2pt,
+ left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,
+ }
+ }
+
+\projlib_langauge_define_multilingual_text:Nn \__dnf_text
+ {
+ EN = To\ be\ finished ,
+ FR = Pas\ encore\ fini ,
+ DE = Nicht\ beendet ,
+ IT = Per\ essere\ finito ,
+ PT = Não\ terminou ,
+ BR = Não\ terminou ,
+ ES = Estar\ terminado ,
+ CN = 这里尚未完成 ,
+ TC = 這裡尚未完成 ,
+ JP = 終わってない ,
+ RU = Не\ закончен ,
+ }
+
+\projlib_langauge_define_multilingual_text:Nn \__dnf_report_text
+ {
+ EN = { Below\ is\ a\ list\ of\ outstanding\ items,
+ \ followed\ by\ the\ corresponding\ page\ numbers. } ,
+ FR = { Voici\ la\ liste\ des\ éléments\ en\ suspens,
+ \ suivie\ des\ numéros\ de\ page\ correspondants. } ,
+ DE = { Unten\ ist\ eine\ Liste\ der\ ausstehenden\ Posten,
+ \ gefolgt\ von\ den\ entsprechenden\ Seitenzahlen. } ,
+ IT = { Qui\ sotto\ c'è\ una\ lista\ di\ voci\ in\ sospeso,
+ \ seguita\ dai\ numeri\ di\ pagina\ corrispondenti. } ,
+ PT = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
+ \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
+ BR = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
+ \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
+ ES = { Aquí está\ la\ lista\ de\ elementos\ pendientes,
+ \ seguida\ de\ los\ números\ de\ página\ correspondientes. } ,
+ CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } ,
+ TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } ,
+ JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } ,
+ RU = { Ниже\ приведен\ список\ невыполненных\ пунктов
+ \ с\ соответствующими\ номерами\ страниц\ в\ скобках. } ,
+ }
+
+\tl_new:c { __dnf_font }
+\tl_gset:cn { __dnf_font } { \normalfont \ttfamily \bfseries \small }
+
+\definecolor { __dnf_color } { RGB } { 21, 122, 20 }
+
+\newcounter { __dnf_counter }
+
+\tl_new:N \g__projlib_draft_dnf_report_tl
+
+\NewDocumentCommand \dnf { d<> }
+ {
+ \noindent
+ \projlib_draft_plain_box [ __dnf_color ]
+ {
+ \stepcounter { __dnf_counter }
+ \__dnf_font
+ \__dnf_text
+ \c_space_tl
+ \# \the__dnf_counter
+ \IfNoValueF { #1 } { \, : ~ #1 }
+ \tl_gput_right:Nx \g__projlib_draft_dnf_report_tl
+ {
+ \# \,
+ \int_value:w \the__dnf_counter
+ \c_space_tl \c_space_tl
+ $\langle$
+ \skip_horizontal:n { 0.1em }
+ \cs_if_exist:cTF { hyperlink }
+ {
+ \exp_not:N \hyperlink { page.\thepage } { \thepage }
+ }
+ {
+ \thepage
+ }
+ \skip_horizontal:n { 0.1em }
+ $\rangle$
+ \c_space_tl
+ \IfNoValueF { #1 } { : ~ #1 }
+ \\
+ }
+ }
+ }
+
+\hook_gput_code:nnn { enddocument } { projlib-draft }
+ {
+ \tl_if_blank:VF \g__projlib_draft_dnf_report_tl
+ {
+ \clearpage \noindent
+ \color { __dnf_color }
+ \__dnf_font
+ \__dnf_report_text \\[0.75\baselineskip]
+ \g__projlib_draft_dnf_report_tl
+ }
+ }
+
+\endinput
+%%
+%% End of file `projlib-draft.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-font.sty b/macros/latex/contrib/projlib/new-modules/projlib-font.sty
new file mode 100644
index 0000000000..4b2e85f4dc
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-font.sty
@@ -0,0 +1,137 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-font}
+ {2022/02/26} {}
+ {Font selection and configuration}
+
+\keys_define:nn { projlib-font }
+ {
+ , useosf .bool_set:N = \l__projlib_font_useosf_bool
+ , useosf .initial:n = { false }
+ , old-style-figures.bool_set:N = \l__projlib_font_useosf_bool
+ , old~style~figures.bool_set:N = \l__projlib_font_useosf_bool
+ , old style figures.bool_set:N = \l__projlib_font_useosf_bool
+ , lmodern .bool_set:N = \l__projlib_font_lmodern_bool
+ , lmodern .initial:n = { false }
+ , latin-modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , latin~modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , latin modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , palatino .bool_set:N = \l__projlib_font_palatino_bool
+ , palatino .initial:n = { false }
+ , times .bool_set:N = \l__projlib_font_times_bool
+ , times .initial:n = { false }
+ , garamond .bool_set:N = \l__projlib_font_garamond_bool
+ , garamond .initial:n = { false }
+ , noto .bool_set:N = \l__projlib_font_noto_bool
+ , noto .initial:n = { false }
+ , biolinum .bool_set:N = \l__projlib_font_biolinum_bool
+ , biolinum .initial:n = { false }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-font }
+
+\RequirePackage { setspace }
+
+\cs_new:Nn \projlib_font_set_linespacing_latin:n
+ {
+ \cs_if_exist:NTF \projlib_language_set_linespacing_latin:n
+ {
+ \projlib_language_set_linespacing_latin:n { #1 }
+ }
+ {
+ #1
+ }
+ }
+
+\bool_if:NT \l__projlib_font_lmodern_bool
+ {
+ \RequirePackage { amssymb }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \RequirePackage { cfr-lm }
+ }
+ {
+ \RequirePackage { lmodern }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ }
+
+\bool_if:NT \l__projlib_font_palatino_bool
+ {
+ \RequirePackage { mathpazo }
+ \PassOptionsToPackage { defaultsups } { newpxtext }
+ \RequirePackage { newpxtext }
+ \cs_undefine:c { openbox }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.07 } }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ }
+
+\bool_if:NT \l__projlib_font_times_bool
+ {
+ \PassOptionsToPackage { defaultsups } { newtxtext }
+ \RequirePackage { newtxtext }
+ \RequirePackage { newtxmath }
+ \cs_undefine:c { openbox }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ }
+
+\bool_if:NT \l__projlib_font_garamond_bool
+ {
+ \bool_if:NF \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { lining } { ebgaramond }
+ }
+ \RequirePackage { ebgaramond-maths }
+ \RequirePackage { ebgaramond }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ }
+
+\bool_if:NT \l__projlib_font_noto_bool
+ {
+ \bool_if:NT \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { oldstyle } { notomath }
+ }
+ \RequirePackage { anyfontsize }
+ \RequirePackage { notomath }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ }
+
+\bool_if:NT \l__projlib_font_biolinum_bool
+ {
+ \sys_if_engine_pdftex:TF
+ {
+ \bool_if:NT \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { osf } { biolinum }
+ }
+ \RequirePackage { biolinum }
+ \tl_gset:Nn \familydefault { \biolinum@family }
+ }
+ {
+ \PassOptionsToPackage { no-math } { fontspec }
+ \RequirePackage { fontspec }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \setmainfont { LinBiolinum_R.otf } [
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf ,
+ Numbers = OldStyle , ]
+ }
+ {
+ \setmainfont { LinBiolinum_R.otf } [
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf , ]
+ }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.05 } }
+ \RequirePackage [ italic, defaultmathsizes ] { mathastext }
+ }
+
+\endinput
+%%
+%% End of file `projlib-font.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-language.sty b/macros/latex/contrib/projlib/new-modules/projlib-language.sty
new file mode 100644
index 0000000000..6167de8d04
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-language.sty
@@ -0,0 +1,508 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-language}
+ {2022/02/26} {}
+ {Multi-language configuration}
+
+\clist_const:Nn \c__projlib_language_supported_clist
+ {
+ english ,
+ french ,
+ ngerman ,
+ italian ,
+ portuguese ,
+ brazilian ,
+ spanish ,
+ schinese ,
+ tchinese ,
+ japanese ,
+ russian ,
+ }
+
+\clist_new:N \g__projlib_language_babel_option_clist
+
+\str_new:N \g__projlib_language_main_str
+
+\bool_new:N \g__projlib_language_enabled_all_bool
+\bool_gset_true:N \g__projlib_language_enabled_all_bool
+
+\clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \bool_new:c { g__projlib_language_enabled_ #1 _bool }
+ \bool_gset_false:c { g__projlib_language_enabled_ #1 _bool }
+ }
+
+\cs_new:Nn \projlib_language_set_option_no_babel:n
+ {
+ \bool_gset_false:N \g__projlib_language_enabled_all_bool
+ \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
+ \str_if_empty:NT \g__projlib_language_main_str
+ {
+ \str_gset:Nn \g__projlib_language_main_str { #1 }
+ }
+ }
+\cs_new:Nn \projlib_language_set_option:n
+ {
+ \projlib_language_set_option_no_babel:n { #1 }
+ \clist_gput_left:Nn \g__projlib_language_babel_option_clist { #1 }
+ }
+
+\keys_define:nn { projlib-language }
+ {
+ , EN .meta:n = { english }
+ , english .code:n = { \projlib_language_set_option:n { english } }
+ , English .meta:n = { english }
+ , FR .meta:n = { french }
+ , french .code:n = { \projlib_language_set_option:n { french } }
+ , French .meta:n = { french }
+ , DE .meta:n = { ngerman }
+ , german .meta:n = { ngerman }
+ , ngerman .code:n = { \projlib_language_set_option:n { ngerman } }
+ , German .meta:n = { ngerman }
+ , IT .meta:n = { italian }
+ , italian .code:n = { \projlib_language_set_option:n { italian } }
+ , Italian .meta:n = { italian }
+ , PT .meta:n = { portuguese }
+ , portuguese .code:n = { \projlib_language_set_option:n { portuguese } }
+ , Portuguese .meta:n = { portuguese }
+ , BR .meta:n = { brazilian }
+ , brazilian .code:n = { \projlib_language_set_option:n { brazilian } }
+ , Brazilian .meta:n = { brazilian }
+ , ES .meta:n = { spanish }
+ , spanish .code:n = { \clist_gput_left:Nn \g__projlib_language_babel_option_clist { es-notilde, es-noquoting }
+ \projlib_language_set_option:n { spanish } }
+ , Spanish .meta:n = { spanish }
+ , CN .meta:n = { schinese }
+ , chinese .meta:n = { schinese }
+ , schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
+ , simplifiedchinese .meta:n = { schinese }
+ , simplified-chinese .meta:n = { schinese }
+ , Chinese .meta:n = { schinese }
+ , SChinese .meta:n = { schinese }
+ , SimplifiedChinese .meta:n = { schinese }
+ , Simplified-Chinese .meta:n = { schinese }
+ , TC .meta:n = { tchinese }
+ , tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
+ , traditionalchinese .meta:n = { tchinese }
+ , traditional-chinese .meta:n = { tchinese }
+ , TChinese .meta:n = { tchinese }
+ , TraditionalChinese .meta:n = { tchinese }
+ , Traditional-Chinese .meta:n = { tchinese }
+ , JP .meta:n = { japanese }
+ , japanese .code:n = { \projlib_language_set_option:n { japanese } }
+ , Japanese .meta:n = { japanese }
+ , RU .meta:n = { russian }
+ , russian .code:n = { \projlib_language_set_option:n { russian } }
+ , Russian .meta:n = { russian }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-language }
+
+\cs_new_protected:Nn \projlib_language_clear_global_option:n
+ {
+ \clist_remove_all:cn { @classoptionslist } { #1 }
+ }
+
+\projlib_language_clear_global_option:n { chinese }
+\projlib_language_clear_global_option:n { Chinese }
+
+\clist_gput_right:Nn \g__projlib_language_babel_option_clist { shorthands = off }
+
+\str_if_empty:NT \g__projlib_language_main_str
+ {
+ \str_gset:Nn \g__projlib_language_main_str { english }
+ }
+
+\bool_if:NT \g__projlib_language_enabled_all_bool
+ {
+ \clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
+ }
+ }
+
+
+\cs_new:Nn \projlib_language_str_to_languagename:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ { all } { common }
+ { common } { common }
+ { cn } { schinese }
+ { chinese } { schinese }
+ { schinese } { schinese }
+ { simplifiedchinese } { schinese }
+ { simplified-chinese } { schinese }
+ { tc } { tchinese }
+ { tchinese } { tchinese }
+ { traditionalchinese } { tchinese }
+ { traditional-chinese} { tchinese }
+ { jp } { japanese }
+ { japanese } { japanese }
+ { en } { english }
+ { english } { english }
+ { fr } { french }
+ { french } { french }
+ { de } { ngerman }
+ { german } { ngerman }
+ { ngerman } { ngerman }
+ { it } { italian }
+ { italian } { italian }
+ { pt } { portuguese }
+ { portuguese } { portuguese }
+ { br } { brazilian }
+ { brazilian } { brazilian }
+ { es } { spanish }
+ { spanish } { spanish }
+ { ru } { russian }
+ { russian } { russian }
+ }
+ { #1 }
+ }
+
+\cs_new:Nn \projlib_language_str_to_languagetype:n
+ {
+ \str_case_e:nn { \str_foldcase:n { #1 } }
+ {
+ { cn } { cjk }
+ { chinese } { cjk }
+ { schinese } { cjk }
+ { simplifiedchinese } { cjk }
+ { simplified-chinese } { cjk }
+ { tc } { cjk }
+ { tchinese } { cjk }
+ { traditionalchinese } { cjk }
+ { traditional-chinese} { cjk }
+ { jp } { cjk }
+ { japanese } { cjk }
+ { en } { latin }
+ { english } { latin }
+ { fr } { latin }
+ { french } { latin }
+ { de } { latin }
+ { german } { latin }
+ { ngerman } { latin }
+ { it } { latin }
+ { italian } { latin }
+ { pt } { latin }
+ { portuguese } { latin }
+ { br } { latin }
+ { brazilian } { latin }
+ { es } { latin }
+ { spanish } { latin }
+ { ru } { latin }
+ { russian } { latin }
+ }
+ }
+
+\sys_if_engine_pdftex:T
+ {
+ \RequirePackage [T1] { fontenc }
+ }
+
+\bool_if:NTF \g__projlib_language_enabled_all_bool
+ {
+ \sys_if_engine_pdftex:F
+ {
+ \PassOptionsToPackage { japanese, russian } { babel }
+ }
+ \PassOptionsToPackage { italian, portuguese, brazilian, spanish, es-notilde, es-noquoting, ngerman, french, english, shorthands = off } { babel }
+ }
+ {
+ \PassOptionsToPackage { \g__projlib_language_babel_option_clist } { babel }
+ }
+
+\PassOptionsToPackage { italian, brazilian, spanish, ngerman, french, english } { cleveref }
+\RequirePackage { babel }
+
+
+\bool_if:NT \g__projlib_language_enabled_french_bool
+ {
+ \frenchsetup { PartNameFull = false }
+ }
+
+\bool_if:NT \g__projlib_language_enabled_portuguese_bool
+ {
+ \NewCommandCopy \__projlib_language_babel_ord: \ord
+ \cs_undefine:N \ord
+ \hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \cs_if_exist:NT \ord
+ {
+ \NewCommandCopy \__projlib_language_user_ord: \ord
+ \cs_set_protected:Npn \ord
+ {
+ \mode_if_math:TF
+ { \__projlib_language_user_ord: }
+ { \__projlib_language_babel_ord: }
+ }
+ }
+ }
+ }
+
+\babelprovide { schinese }
+\babelprovide { tchinese }
+
+
+\NewCommandCopy \projlib_language_backup_today:n \today
+
+\tl_new:N \g_projlib_language_settings_common_tl
+\clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \tl_new:c { g_projlib_language_settings_ #1 _tl }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_common_tl
+ {
+ \cs_if_exist:NT \ProjLibToday
+ {
+ \RenewCommandCopy \today \ProjLibToday
+ }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
+ {
+ \g_projlib_language_settings_common_tl
+ \tl_gset:Nn \languagename { schinese }
+ \tl_gset:cn { abstractname } { 摘要 }
+ \tl_gset:cn { proofname } { 证明 }
+ \tl_gset:cn { contentsname } { 目录 }
+ \tl_gset:cn { listfigurename } { 插图 }
+ \tl_gset:cn { listtablename } { 表格 }
+ \tl_gset:cn { figurename } { 图 }
+ \tl_gset:cn { tablename } { 表 }
+ \tl_gset:cn { indexname } { 索引 }
+ \tl_gset:cn { appendixname } { 附录 }
+ \tl_gset:cn { refname } { 参考文献 }
+ \tl_gset:cn { bibname } { 参考文献 }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
+ {
+ \g_projlib_language_settings_common_tl
+ \tl_gset:Nn \languagename { tchinese }
+ \tl_gset:cn { abstractname } { 摘要 }
+ \tl_gset:cn { proofname } { 證明 }
+ \tl_gset:cn { contentsname } { 目錄 }
+ \tl_gset:cn { listfigurename } { 插圖 }
+ \tl_gset:cn { listtablename } { 表格 }
+ \tl_gset:cn { figurename } { 圖 }
+ \tl_gset:cn { tablename } { 表 }
+ \tl_gset:cn { indexname } { 索引 }
+ \tl_gset:cn { appendixname } { 附錄 }
+ \tl_gset:cn { refname } { 參考文獻 }
+ \tl_gset:cn { bibname } { 參考文獻 }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
+ {
+ \selectlanguage { japanese }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_english_tl
+ {
+ \selectlanguage { english }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_french_tl
+ {
+ \selectlanguage { french }
+ \g_projlib_language_settings_common_tl
+ \tl_gset:cn { frenchpartname } { Partie }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
+ {
+ \selectlanguage { ngerman }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
+ {
+ \selectlanguage { italian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
+ {
+ \selectlanguage { portuguese }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
+ {
+ \selectlanguage { brazilian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
+ {
+ \selectlanguage { spanish }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
+ {
+ \selectlanguage { russian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\NewDocumentCommand \AddLanguageSetting { O{} m }
+ {
+ \IfNoValueTF { #1 }
+ {
+ \tl_gput_right:Nn \g_projlib_language_settings_common_tl { #2 }
+ }
+ {
+ \tl_gput_right:cn { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl } { #2 }
+ }
+ }
+
+
+\RequirePackage { setspace }
+
+\tl_new:N \g_projlib_language_linespacing_latin_tl
+\tl_new:N \g_projlib_language_linespacing_cjk_tl
+
+\tl_gset:Nn \g_projlib_language_linespacing_latin_tl
+ {
+ \setstretch { 1.00 }
+ }
+\tl_gset:Nn \g_projlib_language_linespacing_cjk_tl
+ {
+ \onehalfspacing
+ }
+
+\cs_new:Nn \projlib_language_set_linespacing_latin:n
+ {
+ \tl_gset:Nn \g_projlib_language_linespacing_latin_tl { #1 }
+ }
+\cs_new:Nn \projlib_language_set_linespacing_cjk:n
+ {
+ \tl_gset:Nn \g_projlib_language_linespacing_cjk_tl { #1 }
+ }
+
+\tl_new:N \g_projlib_language_parindent_latin_tl
+\tl_new:N \g_projlib_language_parindent_cjk_tl
+
+\@ifclassloaded{beamer}
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ }
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 1.5em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 2em }
+ }
+ }
+
+\hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \@ifpackageloaded{parskip}
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ } {}
+ }
+
+\cs_new:Nn \projlib_language_set_parindent_latin:n
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl { #1 }
+ }
+\cs_new:Nn \projlib_language_set_parindent_cjk:n
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl { #1 }
+ }
+
+\NewDocumentCommand \ProjLibLanguageSet { m m m }
+ % #1 = the thing to set
+ % #2 = language or type
+ % #3 = the setting
+ {
+ \use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
+ }
+
+
+\cs_new:Nn \projlib_language_use_language_pure:n
+ {
+ \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
+ }
+\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
+
+\cs_new:Nn \projlib_language_use_language:n
+ {
+ \projlib_language_use_language_pure:n { #1 }
+ \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ }
+\cs_generate_variant:Nn \projlib_language_use_language:n { e }
+
+\NewDocumentCommand \UseLanguage { m }
+ {
+ \hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \projlib_language_use_language:e { #1 }
+ }
+ }
+\NewDocumentCommand \UseOtherLanguage { m m }
+ {
+ \group_begin:
+ \projlib_language_use_language_pure:e { #1 }
+ #2
+ \group_end:
+ }
+
+\UseLanguage { \g__projlib_language_main_str }
+
+
+\cs_new:Nn \projlib_langauge_define_multilingual_text:Nn
+ { % #1 = command name (with backslash)
+ % #2 = key-value name configuration
+ \keyval_parse:nnn
+ {}
+ { \__projlib_langauge_define_multilingual_text_do:nnn { \cs_to_str:N #1 } }
+ { #2 }
+ \tl_gset:Nn #1
+ {
+ \tl_use:c { \cs_to_str:N #1 _projlib_language_text_ \languagename }
+ }
+ }
+\cs_generate_variant:Nn \projlib_langauge_define_multilingual_text:Nn { cn }
+
+\cs_new:Nn \__projlib_langauge_define_multilingual_text_do:nnn
+ { % #1 = command name
+ % #2 = language name
+ % #3 = the text
+ \exp_args:Ne \tl_gset:cn { #1 _projlib_language_text_ \projlib_language_str_to_languagename:n { #2 } } { #3 }
+ }
+
+\NewDocumentCommand \DefineMultilingualText { m m }
+ % #1 = command name
+ % #2 = key-value name configuration
+ {
+ \projlib_langauge_define_multilingual_text:Nn #1 { #2 }
+ }
+
+\endinput
+%%
+%% End of file `projlib-language.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-logo.sty b/macros/latex/contrib/projlib/new-modules/projlib-logo.sty
new file mode 100644
index 0000000000..d9ffb5c1ed
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-logo.sty
@@ -0,0 +1,100 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-logo}
+ {2022/02/24} {}
+ {The ProjLib logo}
+
+\keys_define:nn { projlib-logo }
+ {
+ , draft .bool_set:N = \l__projlib_logo_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__projlib_logo_fast_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-logo }
+
+\bool_if:NT \l__projlib_logo_fast_bool
+ {
+ \DeclareRobustCommand * \ProjLib
+ {
+ \group_begin:
+ \normalfont ProjLib
+ \group_end:
+ }
+ \endinput
+ }
+
+\cs_if_exist:cTF { fontspec }
+ {
+ \newfontface \__projlib_logo_font: { LinBiolinum_R.otf }
+ }
+ {
+ \RequirePackage [T1] { fontenc }
+ \cs_gset:Nn \__projlib_logo_font:
+ { \fontfamily { LinuxBiolinumT-TLF } \selectfont }
+ }
+
+\tl_new:N \g__projlib_logo_sigma_j_tl
+\tl_gset:Nn \g__projlib_logo_sigma_j_tl
+ {
+ \vbox:n
+ {
+ \offinterlineskip
+ \hbox_overlap_center:n
+ {
+ \skip_horizontal:n { 0.75ex }
+ \hbox_set:Nn \l_tmpa_box { \usefont{U}{zeur}{b}{n} \symbol{"06} }
+ \box_rotate:Nn \l_tmpa_box { -10 }
+ \box_scale:Nnn \l_tmpa_box {.4} {.4}
+ \box_use:N \l_tmpa_box
+ }
+ \skip_vertical:n { 0.15ex }
+ \hbox:n { \j }
+ }
+ }
+
+% \RequirePackage { xcolor }
+% \cs_new_protected:Nn \projlib_logo_generic:n
+% {
+% \group_begin:
+% \normalfont
+% \__projlib_logo_font:
+% \textcolor { blue!55!cyan } { P }
+% \textcolor { blue!45!cyan } { r }
+% \textcolor { blue!30!cyan } { o }
+% \textcolor { green!70!black!70 } { #1 }
+% \textcolor { red!20!yellow } { L }
+% \textcolor { red!40!yellow } { i }
+% \textcolor { red!55!yellow } { b }
+% \group_end:
+% }
+\cs_new_protected:Nn \projlib_logo_generic:n
+ {
+ \group_begin:
+ \normalfont
+ \__projlib_logo_font:
+ \color_group_begin:
+ \color_select:n { blue!60!cyan } { P }
+ \color_select:n { blue!45!cyan } { r }
+ \color_select:n { blue!30!cyan } { o }
+ \color_select:n { green!70!black!70 } { #1 }
+ \color_select:n { red!20!yellow } { L }
+ \color_select:n { red!40!yellow } { i }
+ \color_select:n { red!60!yellow } { b }
+ \color_group_end:
+ \group_end:
+ }
+
+\DeclareRobustCommand * \ProjLib
+ {
+ \projlib_logo_generic:n { \g__projlib_logo_sigma_j_tl }
+ }
+\DeclareRobustCommand * \ProjLibText
+ {
+ \projlib_logo_generic:n { j }
+ }
+
+\endinput
+%%
+%% End of file `projlib-logo.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-math.sty b/macros/latex/contrib/projlib/new-modules/projlib-math.sty
new file mode 100644
index 0000000000..977a428003
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-math.sty
@@ -0,0 +1,234 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-math}
+ {2022/02/26} {}
+ {Efficient math setup}
+
+\keys_define:nn { projlib-math }
+ {
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-math }
+
+\RequirePackage { mathtools }
+\RequirePackage { mathrsfs }
+\PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
+\@ifpackageloaded { unicode-math } {} { \RequirePackage { amssymb } }
+
+
+\msg_new:nnn { projlib-math }
+ { operator-not-define }
+ { The~math~operator~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
+
+\keys_define:nn { projlib-math-operator }
+ {
+ , style .tl_set:N = \l__projlib_math_operator_style_tl
+ , unknown .code:n = {}
+ }
+
+\cs_new_protected:Nn \projlib_math_define_operator:nnn
+ % #1 = bool for star or empty
+ % #2 = list of operators
+ % #3 = the option
+ {
+ \tl_clear:N \l__projlib_math_operator_style_tl
+ \keys_set:nn { projlib-math-operator } { #3 }
+ \clist_map_inline:nn { #2 }
+ {
+ \str_if_in:nnTF { ##1 } { = }
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
+ \__projlib_math_define_operator:nee { #1 } { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ {
+ \__projlib_math_define_operator:nee { #1 } { ##1 } { ##1 }
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_math_define_operator:nnn
+ % #1 = bool for star or empty
+ % #2 = the operator
+ % #3 = the content
+ {
+ \cs_if_exist:cTF { #2 }
+ {
+ \msg_warning:nnn { projlib-math } { operator-not-define } { #2 }
+ }
+ {
+ \bool_if:NTF #1
+ {
+ \exp_args:Nnf \use:n
+ { \exp_args:Nnc \use:n { \DeclareMathOperator* } { #2 } }
+ }
+ {
+ \exp_args:Nnf \use:n
+ { \exp_args:Nc \DeclareMathOperator { #2 } }
+ }
+ % This is the f-argument of \exp_args:Nnf :
+ {
+ \exp_args:NnV \use:nn
+ { \exp_stop_f: }
+ { \l__projlib_math_operator_style_tl } { #3 }
+ }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
+
+\NewDocumentCommand \DefineOperator { s O{} m O{} }
+ {
+ \tl_if_blank:nTF { #2 }
+ {
+ \projlib_math_define_operator:nnn { #1 } { #3 } { #4 }
+ }
+ {
+ \projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
+ }
+ }
+
+
+\msg_new:nnn { projlib-math }
+ { shortcut-not-define }
+ { The~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
+
+\msg_new:nnn { projlib-math }
+ { shortcut-type-not-define }
+ { The~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
+
+\keys_define:nn { projlib-math-shortcut }
+ {
+ , prefix .clist_set:N = \l__projlib_math_shortcut_prefix_clist
+ , type .tl_set:N = \l__projlib_math_shortcut_type_tl
+ , style .tl_set:N = \l__projlib_math_shortcut_style_tl
+ , unknown .code:n = {}
+ }
+
+\cs_new_protected:Nn \projlib_math_define_shortcut:nnn
+ % #1 = bool for star or empty
+ % (currently the starred version is the same as normal version)
+ % #2 = list of shortcuts
+ % #3 = the option
+ {
+ \clist_clear:N \l__projlib_math_shortcut_prefix_clist
+ \tl_clear:N \l__projlib_math_shortcut_type_tl
+ \tl_clear:N \l__projlib_math_shortcut_style_tl
+ \keys_set:nn { projlib-math-shortcut } { #3 }
+ \tl_if_empty:NF \l__projlib_math_shortcut_type_tl
+ {
+ \cs_if_exist:cTF { \l__projlib_math_shortcut_type_tl }
+ {
+ \exp_args:Nne \use:n
+ { \msg_warning:nnn { projlib-math } { shortcut-type-not-define } }
+ { \l__projlib_math_shortcut_type_tl }
+ }
+ {
+ \exp_args:Nno \use:n
+ {
+ \exp_args:Nc \NewDocumentCommand { \l__projlib_math_shortcut_type_tl } { m }
+ }
+ {
+ \l__projlib_math_shortcut_style_tl { ##1 }
+ }
+ }
+ }
+ \clist_map_inline:nn { #2 }
+ {
+ \str_if_in:nnTF { ##1 } { = }
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
+ \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ {
+ \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ####1 \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ }
+ }
+ {
+ \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ##1 } { ##1 }
+ }
+ {
+ \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ####1 ##1 } { ##1 }
+ }
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_math_define_shortcut:nn
+ % #1 = command name
+ % #2 = the content
+ {
+ \cs_if_exist:cTF { #1 }
+ {
+ \msg_warning:nnn { projlib-math } { shortcut-type-not-define } { #1 }
+ }
+ {
+ \exp_args:Nno \use:n
+ { \exp_args:Nc \NewDocumentCommand { #1 } {} }
+ { \l__projlib_math_shortcut_style_tl { #2 } }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
+
+\NewDocumentCommand \DefineShortcut { s O{} m O{} }
+ {
+ \tl_if_blank:nTF { #2 }
+ {
+ \projlib_math_define_shortcut:nnn { #1 } { #3 } { #4 }
+ }
+ {
+ \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
+ }
+ }
+
+%===============================
+% -- Some possible operators --
+%===============================
+% \DefineOperator { ord, card, car, disc } [ style = \mathsf ]
+% \DefineOperator { id, Id, Ker, Image = Im } [ style = \mathsf ]
+% \DefineOperator { Orb, Stab, Fix } [ style = \mathsf ]
+% \DefineOperator { Hom, Aut, End, Mat } [ style = \mathsf ]
+% \DefineOperator { Spec, Spm, Ann } [ style = \mathsf ]
+% \DefineOperator*{ Lim, Max, Min } [ style = \mathsf ]
+
+%===============================
+% -- Some possible shortcuts --
+%===============================
+% \DefineShortcut [ type = category, style = \mathbf ]
+% {
+% Set, Grp, Ring, Top
+% }
+% \DefineShortcut [ style = \mathbb ]
+% {
+% N, Z, Q, R, C, F, A
+% }
+% \DefineShortcut [ prefix = bb, style = \mathbb ]
+% {
+% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
+% }
+% \DefineShortcut [ prefix = { mf, frak }, style = \mathfrak ]
+% {
+% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
+% a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
+% }
+% \DefineShortcut [ prefix = { mc, cal }, style = \mathcal ]
+% {
+% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
+% }
+% \DefineShortcut [ prefix = { ms, scr }, style = \mathscr ]
+% {
+% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
+% }
+
+\endinput
+%%
+%% End of file `projlib-math.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-paper.sty b/macros/latex/contrib/projlib/new-modules/projlib-paper.sty
new file mode 100644
index 0000000000..5e1f9ac04e
--- /dev/null
+++ b/macros/latex/contrib/projlib/new-modules/projlib-paper.sty
@@ -0,0 +1,108 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-paper}
+ {2022/02/25} {}
+ {Paper style configuration}
+
+\keys_define:nn { projlib-paper }
+ {
+ , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
+ , preview-mode .initial:n = { false }
+ , paperstyle .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paperstyle .initial:n = { normal }
+ , yellowpaper .meta:n = { paperstyle = yellow }
+ , yellow-paper .meta:n = { paperstyle = yellow }
+ , parchmentpaper .meta:n = { paperstyle = parchment }
+ , parchment-paper .meta:n = { paperstyle = parchment }
+ , greenpaper .meta:n = { paperstyle = green }
+ , green-paper .meta:n = { paperstyle = green }
+ , lightgraypaper .meta:n = { paperstyle = lightgray }
+ , lightgray-paper .meta:n = { paperstyle = lightgray }
+ , light-gray-paper .meta:n = { paperstyle = lightgray }
+ , graypaper .meta:n = { paperstyle = gray }
+ , gray-paper .meta:n = { paperstyle = gray }
+ , nordpaper .meta:n = { paperstyle = nord }
+ , nord-paper .meta:n = { paperstyle = nord }
+ , darkpaper .meta:n = { paperstyle = dark }
+ , dark-paper .meta:n = { paperstyle = dark }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-paper }
+
+\cs_new:Nn \projlib_paper_preview_disable:
+ {
+ \bool_set_false:c { l__projlib_paper_preview_bool }
+ }
+
+\hook_gput_code:nnn { begindocument/before } { projlib-paper }
+ {
+ \bool_if:NT \l__projlib_paper_preview_bool
+ {
+ \dim_set:Nn \paperwidth
+ {
+ \dim_eval:n { \textwidth * 21 / 20 }
+ }
+ \dim_set:Nn \paperheight
+ {
+ \dim_eval:n { ( \textheight + \headheight + \headsep + \footskip ) * 21 / 20 }
+ }
+ \dim_set:Nn \oddsidemargin
+ {
+ \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
+ }
+ \dim_set:Nn \evensidemargin
+ {
+ \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
+ }
+ \dim_set:Nn \topmargin
+ {
+ \dim_eval:n { ( \paperheight - \textheight - \headheight - \headsep - \footskip ) / 2 - 1in }
+ }
+ }
+ }
+
+\RequirePackage { xcolor }
+
+\definecolor { paper } { RGB } { 255, 255, 255 }
+\definecolor { main-text } { RGB } { 0, 0, 0 }
+
+\str_case_e:nn { \l__projlib_paper_paperstyle_tl }
+ {
+ { yellow } { \definecolor { paper } { RGB } { 247, 246, 233 } }
+ { parchment } { \definecolor { paper } { RGB } { 224, 204, 160 } }
+ { green } { \definecolor { paper } { RGB } { 207, 231, 207 } }
+ { lightgray } { \definecolor { paper } { RGB } { 236, 239, 244 }
+ \definecolor { main-text } { RGB } { 37, 41, 46 } }
+ { light-gray } { \definecolor { paper } { RGB } { 236, 239, 244 }
+ \definecolor { main-text } { RGB } { 37, 41, 46 } }
+ { gray } { \definecolor { paper } { RGB } { 127, 130, 136 }
+ \definecolor { main-text } { RGB } { 236, 239, 244 } }
+ { nord } { \definecolor { paper } { RGB } { 46, 52, 64 }
+ \definecolor { main-text } { RGB } { 214, 220, 230 } }
+ { dark } { \definecolor { paper } { RGB } { 28, 29, 33 }
+ \definecolor { main-text } { RGB } { 210, 213, 217 } }
+ }
+
+\cs_new:Nn \projlib_paper_set_page_color:n
+ {
+ \pagecolor { #1 }
+ }
+\cs_new:Nn \projlib_paper_set_text_color:n
+ {
+ \color { #1 }
+ \cs_gset_eq:cc { default@color } { current@color }
+ }
+
+\projlib_paper_set_page_color:n { paper }
+\projlib_paper_set_text_color:n { main-text }
+
+\hook_gput_code:nnn { begindocument/before } { projlib-paper }
+ {
+ \cs_if_exist:NT \tcbset
+ { \tcbset { colupper = main-text, collower = main-text } }
+ }
+
+\endinput
+%%
+%% End of file `projlib-paper.sty'.
diff --git a/macros/luatex/generic/luaotfload/NEWS b/macros/luatex/generic/luaotfload/NEWS
index 44b749c352..3945ef2f89 100644
--- a/macros/luatex/generic/luaotfload/NEWS
+++ b/macros/luatex/generic/luaotfload/NEWS
@@ -1,5 +1,11 @@
Change History
--------------
+2022-02-27 luaotfload v3.20
+
+ * A bug in luaotfload-tool has been corrected.
+ * The directory for the font name database has been corrected and no
+ longer uses the development directory.
+
2022-02-24 luaotfload v3.19
* When used with LuaTeX 1.15.0 or newer, variable fonts are supported
diff --git a/macros/luatex/generic/luaotfload/README.md b/macros/luatex/generic/luaotfload/README.md
index 565733e6c5..ff3302131f 100644
--- a/macros/luatex/generic/luaotfload/README.md
+++ b/macros/luatex/generic/luaotfload/README.md
@@ -1,8 +1,8 @@
# The Luaotfload Package
-VERSION: 3.19
+VERSION: 3.20
-DATE: 2022-02-24
+DATE: 2022-02-27
## Description
diff --git a/macros/luatex/generic/luaotfload/filegraph.pdf b/macros/luatex/generic/luaotfload/filegraph.pdf
index b455173c6b..d18d43f57d 100644
--- a/macros/luatex/generic/luaotfload/filegraph.pdf
+++ b/macros/luatex/generic/luaotfload/filegraph.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua b/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
index 1cc8537168..5a6e90ceee 100644
--- a/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
@@ -189,7 +189,7 @@ local readables = { }
local usingjit = jit
if not caches.namespace or caches.namespace == "" or caches.namespace == "context" then
- caches.namespace = 'generic-dev'
+ caches.namespace = 'generic'
end
do
diff --git a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
index 86aff98fb4..379ad5bb78 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-auxiliary",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / auxiliary functions",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-colors.lua b/macros/luatex/generic/luaotfload/luaotfload-colors.lua
index e0bd759de5..8371de7222 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-colors.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-colors.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-colors",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / color",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang, Dohyun Kim, David Carlisle",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
index 9e3b6c6557..4abde8cbb9 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
index 50618d72af..b970ce353e 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-configuration",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / config file reader",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-database.lua b/macros/luatex/generic/luaotfload/luaotfload-database.lua
index 8f0ef41fc7..8d981a3f2c 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-database.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-database.lua
@@ -5,8 +5,8 @@
do -- block to avoid to many local variables error
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-database",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / database",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
index 622714d14b..230384f981 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-diagnostics",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload-tool submodule / diagnostics",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-dvi.lua b/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
index 2f8abefa93..75f6564d42 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-dvi",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / DVI",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
index d0a2e60555..bca6eb45d8 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-embolden",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / embolden",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-fallback.lua b/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
index a3f28e77a4..b45f454576 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-fallback",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / fallback",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-features.lua b/macros/luatex/generic/luaotfload/luaotfload-features.lua
index eecf1aa0f5..d297061a7d 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-features.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-features.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-features",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / features",
license = "GPL v2.0",
author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
@@ -843,7 +843,10 @@ local normalize_lookup = setmetatable({}, {__index = function(t, f)
t[fontdir] = result
return result
end})
-local normalize_funcs = {
+-- When this is loaded as part of luaotfload-tool, then we can't access nodes
+-- and therefore uni_normalize doesn't exists. In that case we don't need it
+-- anyway, so just skip it then.
+local normalize_funcs = uni_normalize and {
nfc = uni_normalize.NFC,
nfd = uni_normalize.NFD,
nfkd = uni_normalize.NFKD,
diff --git a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
index abd6458db9..d0b1530830 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
@@ -6,8 +6,8 @@
if luaotfload_module then luaotfload_module {
name = "luaotfload-filelist",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / filelist",
license = "GPL v2.0"
} end
diff --git a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
index ce3cc314b4..f291b2d60e 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
@@ -1,8 +1,8 @@
if luaotfload_module then
luaotfload_module {
name = "luaotfload-glyphlist",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / autogenerated glyphlist",
copyright = "derived from https://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt",
original = "Adobe Glyph List, version 2.0, September 20, 2002",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
index d7ee7c11bb..add95cdf68 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
@@ -5,8 +5,8 @@
do -- block to avoid to many local variables error
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-define",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / HarfBuzz font loading",
license = "GPL v2.0",
author = "Khaled Hosny, Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
index 634da68786..222c4334e8 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
@@ -4,8 +4,8 @@
-----------------------------------------------------------------------
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-plug",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / HarfBuzz shaping",
license = "GPL v2.0",
author = "Khaled Hosny, Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
index 9c05b7a6c7..38fa6b57d9 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
@@ -5,8 +5,8 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-cff2",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / CFF2 table processing",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
index f10bf6d860..5964b61865 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
@@ -5,8 +5,8 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-t2-writer",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / Type 2 charstring writer",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
index 80cf6768ae..41fb412102 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
@@ -5,8 +5,8 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-ttf",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / gvar table processing",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-init.lua b/macros/luatex/generic/luaotfload/luaotfload-init.lua
index 73a6544e72..3d00816e1a 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-init.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-init.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-init",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / initialization",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
index b87b90e0c8..61e35f01a4 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
index 2e69cb92a6..bb5a4a5e70 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-letterspace",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / letterspacing",
license = "GPL v2.0",
copyright = "PRAGMA ADE / ConTeXt Development Team",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
index 5a84113a1f..ca3730f00d 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
@@ -8,8 +8,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-loaders",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / callback handling",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-log.lua b/macros/luatex/generic/luaotfload/luaotfload-log.lua
index 41f9f4b877..c4ecd75075 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-log.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-log.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-log",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / logging",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-main.tex b/macros/luatex/generic/luaotfload/luaotfload-main.tex
index cdf5590057..d48481a744 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-main.tex
+++ b/macros/luatex/generic/luaotfload/luaotfload-main.tex
@@ -32,7 +32,7 @@
\beginfrontmatter
\setdocumenttitle {The \identifier{luaotfload} package}
- \setdocumentdate {2022-02-24 v3.19}
+ \setdocumentdate {2022-02-27 v3.20}
\setdocumentauthor {LaTeX3 Project\\
Elie Roux · Khaled Hosny · Philipp Gesang · Ulrike Fischer · Marcel Krüger\\
Home: \hyperlink {https://github.com/latex3/luaotfload}}
@@ -62,6 +62,14 @@ Supported is the \identifier{luatex} versions of a current TeXLive 2019 (and a c
\endsection
\beginsection{Changes}
+\beginsubsection {New in version 3.20 (by Ulrike Fischer/Marcel Krüger)}
+\begin{itemize}
+ \item A bug in luaotfload-tool has been corrected.
+ \item The directory for the font name database has been corrected and no
+ longer uses the development directory.
+\end{itemize}
+\endsubsection
+
\beginsubsection {New in version 3.19 (by Ulrike Fischer/Marcel Krüger)}
\begin{itemize}
\item When used with Lua\TeX\ 1.15.0 or newer, variable fonts are supported
diff --git a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
index ab688fe704..9b3b3fd836 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-multiscript",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / multiscript",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
index 28a371dd35..e32521daea 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-notdef",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / notdef",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
index 099363fad5..da41fa8b30 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-parsers",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / parsers",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
index a91216b79d..5d3f456739 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
@@ -11,8 +11,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-resolvers",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / resolvers",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-scripts.lua b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
index c3c918ef3b..2accacfd64 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-script",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / Script helpers",
license = "CC0 1.0 Universal",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-status.lua b/macros/luatex/generic/luaotfload/luaotfload-status.lua
index d722bfe03b..02286a891b 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-status.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-status.lua
@@ -54,46 +54,46 @@ return {
{ "fontloader-font-ini.lua", "5343de60613adb24cdd7a8d2ee1d153c" },
{ "fontloader-data-con.lua", "23a0f5386d46a1c157ae82a373e35fa0" },
{ "fontloader-reference.lua", "066680a4fe38fad14eb27f56d4616104" },
- { "fontloader-basics-gen.lua", "e470c13b1ed41e38932e93518219ad74" },
+ { "fontloader-basics-gen.lua", "4bc43036e9796fccb0b8869f4b05bf2e" },
{ "mktests", "918cb50be9ee8bd645ac1a27dc501e8c" },
- { "mkstatus", "3a71ea95e4daeac77ead843edb0ce283" },
+ { "mkstatus", "a49a287defff8b8241faedb7c6a45621" },
{ "mkcharacters", "bfca0e96e1e351afe7077502f9595af9" },
{ "mkglyphlist", "7a8a8fdc0eac7fac2f13ec8f4e8e7aa9" },
{ "mkimport", "7d62f1042e548f8b9368f26b9ba4be5c" },
- { "luaotfload-glyphlist.lua", "dc0ed15ca157aec56a509819d4c24046" },
+ { "luaotfload-glyphlist.lua", "37275559314b6ced2c01f0d0e58fd68f" },
{ "luaotfload-characters.lua", "76415ca3ede312cad6e09038323489ae" },
- { "luaotfload-dvi.lua", "f4e4d6cc443f477820521abcd87ef3f8" },
- { "luaotfload-tounicode.lua", "79795ade0ccdb99cd5e6cf989770db69" },
- { "luaotfload-unicode.lua", "68904dd143491dc0a4a1c0a063a118f9" },
- { "luaotfload-resolvers.lua", "1e844bc5d9b3d207f8914a11254afd67" },
- { "luaotfload-parsers.lua", "b0c087c6dbf75939d7be9523b7a0ca34" },
- { "luaotfload-fallback.lua", "88ed544bc0429f94606f72dace5704f0" },
- { "luaotfload-szss.lua", "7266e9d2122fb0785b595f9605627640" },
- { "luaotfload-scripts.lua", "c6c11811531c7e42194304d65bed7877" },
- { "luaotfload-multiscript.lua", "f9d7bedf75629d83f8d99397d15fdf86" },
- { "luaotfload-loaders.lua", "b2ef32297527eec59131de3b56f4d846" },
- { "luaotfload-harf-plug.lua", "7f3739c1b32de1f8e76275c317f5ed9a" },
- { "luaotfload-harf-define.lua", "1c2ce18281caede23d93c8b825df7239" },
- { "luaotfload-notdef.lua", "8b448aed817a764b675d1ead6bf932a7" },
- { "luaotfload-embolden.lua", "00ae296b36724c4f8dd4da62051039b2" },
- { "luaotfload-letterspace.lua", "f98fbda3ea174058b515b9234dfba495" },
- { "luaotfload-features.lua", "5c0d7d66953c7ecdd2a610d758d70f0d" },
- { "luaotfload-database.lua", "2ac2d6e5960257a7c5688c931bb91924" },
- { "luaotfload-configuration.lua", "05e6c5032b9ac6f05230d06c866161d6" },
- { "luaotfload-colors.lua", "3e1cd496c920d0e8296a9e99357f27eb" },
- { "luaotfload-auxiliary.lua", "32c6b48ab66a2ddf2a7d3063529e85f8" },
- { "luaotfload-filelist.lua", "b80ed418d9d297370182e9fcc9e497e5" },
- { "luaotfload-tool.lua", "2a6a1c510e44c4432724657259b12cbf" },
- { "luaotfload-diagnostics.lua", "e831068d26e0266cd081de8585c3cbc9" },
- { "luaotfload-log.lua", "889508edccd01035ecbeafdeeff60e35" },
- { "luaotfload-init.lua", "56ac12fac2e63d1a901463850062dd58" },
+ { "luaotfload-dvi.lua", "17763f980ea431ef33578799e36121bd" },
+ { "luaotfload-tounicode.lua", "861919847a52fcbe4e625c8cda7826a2" },
+ { "luaotfload-unicode.lua", "5c90a8c752518c7eae0aa21f5d4e6cb5" },
+ { "luaotfload-resolvers.lua", "a3a547c332dcc51885b6611debcecb53" },
+ { "luaotfload-parsers.lua", "90411c0301b37730abb40a8b49507c8f" },
+ { "luaotfload-fallback.lua", "febc05a8a5701b4e9b73a9a24e994f33" },
+ { "luaotfload-szss.lua", "256bc3115f09638b0acdf4f59b06e4d1" },
+ { "luaotfload-scripts.lua", "9356ba71cf8a174e8e592213aa680297" },
+ { "luaotfload-multiscript.lua", "8f77beea00a1319d53e10ce95f6cc561" },
+ { "luaotfload-loaders.lua", "b0b23c070c570d81a32913d2afc1bb2a" },
+ { "luaotfload-harf-plug.lua", "098a6a6f9c17d2a99a76ce890e8c9dc6" },
+ { "luaotfload-harf-define.lua", "0d8692db5d29664eb32e6c5fb25b049f" },
+ { "luaotfload-notdef.lua", "c323ab19ea5e81c5c9c4bbbc6d62839a" },
+ { "luaotfload-embolden.lua", "50aa1bdac170cdb287345b9532520cbf" },
+ { "luaotfload-letterspace.lua", "79d2efd35a43d1bfba84ce7c5a211680" },
+ { "luaotfload-features.lua", "2348361d796bde017da72421a0e68ce6" },
+ { "luaotfload-database.lua", "d37c8efaed4dbe9bb566cbd8e9ba9216" },
+ { "luaotfload-configuration.lua", "cfdee94e34f3294b8ef627086ac464a3" },
+ { "luaotfload-colors.lua", "01070f297400b9d0bb94a321b16a3cc6" },
+ { "luaotfload-auxiliary.lua", "2a69d5f008d6c79b703ea6bd88f545f3" },
+ { "luaotfload-filelist.lua", "261c4306787e506da0ca5c15b09913f5" },
+ { "luaotfload-tool.lua", "252bdfdf017c7b2a1e1a92d129de05c2" },
+ { "luaotfload-diagnostics.lua", "146886b07d0f4f57b82ed77407d32066" },
+ { "luaotfload-log.lua", "7856e6afce049f6196ef94b2d2057ff6" },
+ { "luaotfload-init.lua", "3c3b19cd2f8bbbd8bdbc99c50535bff7" },
{ "luaotfload-main.lua", "b19c9cc34cf1d676c39f872cfb41aef6" },
},
["notes"]={
["committer"]="Marcel Fabian Krüger <tex@2krueger.de>",
- ["description"]="v3.19/2022-02-24",
+ ["description"]="v3.20/2022-02-27",
["loader"]="fontloader-2022-02-24.lua",
- ["revision"]="ef3a55e0da3709e95551c62376f31149771dcc18",
- ["timestamp"]="2022-02-24 14:16:28 +0100",
+ ["revision"]="b6b01d231706a79c8456c4c890d62a65897b49e1",
+ ["timestamp"]="2022-02-27 14:15:30 +0100",
},
} \ No newline at end of file
diff --git a/macros/luatex/generic/luaotfload/luaotfload-suppress.lua b/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
index e0f3989c22..b0ba8dccc1 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-suppress",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / suppress",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-szss.lua b/macros/luatex/generic/luaotfload/luaotfload-szss.lua
index dcd8eacf65..6786226257 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-szss.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-szss.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-szss",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / Special feature handling",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-t3.lua b/macros/luatex/generic/luaotfload/luaotfload-t3.lua
deleted file mode 100644
index 2588346724..0000000000
--- a/macros/luatex/generic/luaotfload/luaotfload-t3.lua
+++ /dev/null
@@ -1,142 +0,0 @@
------------------------------------------------------------------------
--- FILE: luaotfload-t3.lua
--- DESCRIPTION: part of luaotfload / Type 3
------------------------------------------------------------------------
-do -- block to avoid to many local variables error
- assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
- name = "luaotfload-t3",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
- description = "luaotfload submodule / Type 3 font handling",
- license = "GPL v2.0",
- author = "Marcel Krüger",
- copyright = "Luaotfload Development Team",
- }
-end
-
---[[
-local function u8_to_utf16be(s)
- local d = {}
- local i = 0
- for _, cp, cp2 in utf8.codes(s) do
- i = i + 1
- if cp > 0x10000 then
- cp = cp - 0x10000
- local high = (cp>>10) | 0xD800
- local low = (cp&0x3FF) | 0xDC00
- d[i] = string.format('%04X%04X', high, low)
- else
- d[i] = string.format('%04X', cp)
- end
- end
- return table.concat(d, '', 1, i)
-end
-]]
-
-local function t3factory(basename, designsize, callback)
- local count = 0
- local gid_to_t3 = {}
- local t3_to_gid = {}
- return function(size)
- local fids = {}
- return function(gid, width, unicode)
- local t3id = gid_to_t3[gid]
- if not t3id then
- t3id = count
- count = count + 1
- gid_to_t3[gid] = t3id
- t3_to_gid[t3id] = gid
- end
- local t3fid, t3cid = t3id >> 8, ~(t3id & 0xFF)
- local fid = fids[t3fid + 1]
- local fontdir = fid and font.getfont(fid)
- local characters = fontdir and fontdir.characters
- if not (characters and characters[t3cid]) then
- characters = characters or {}
- -- First create the character
- local char = {
- width = width,
- height = 0, -- We never look at these two anyway
- depth = 0,
- tounicode = unicode,
- }
- characters[t3cid] = char
- if fid then -- Font already exists
- font.addcharacters(fid, {
- characters = {
- [t3cid] = char,
- },
- })
- else
- fontdir = {
- name = basename .. '_' .. basesize .. '_' .. t3fid,
- format = 'type3',
- psname = 'none',
- filename = 'not_a_real_filename', -- Can't be null to ensure reuse
- fullname = basename .. basesize .. '_' .. t3fid,
- characters = characters,
- designsize = basesize,
- size = size,
- cidinfo = {}, -- Can't be null to ensure reuse
- attributes = '/FontDescriptor<<\z
- /Type/FontDescriptor\z
- /FontName/VirtualLuaFont\z
- /Flags 4\z
- /ItalicAngle 0\z
- >>', -- TODO: Needs work
- t3_handler = function(stage, _, cid)
- cid = cid and assert(t3_to_gid[(t3fid << 8) | ~cid])
- return callback(stage, cid)
- end
- }
- fid = font.define(fontdir)
- fids[t3fid + 1] = fid
- end
- end
- vf.font(fid)
- vf.char(t3cid)
- end
- end
-end
-
-luatexbase.add_to_callback('provide_charproc_data', function(stage, fid, ...)
- local fontdir = font.getfont(fid)
- if not fontdir then error'Unknown font' end
- local handler = fontdir.t3_handler
- if not handler then error'Missing t3handler in Type 3 font' end
- return handler(stage, fid, ...)
-end, 'luaotfload.t3')
-
-return t3factory
---[===[
- function callback(stage, cid)
- if stage == 1 then
- local char = assert(characters[cid])
- local head = assert(char.head)
- local resource = tex.saveboxresource(head, nil--[[attributes]], nil--[[resources]], true--[[immediate]], 0--[[mode]], nil--[[margin]])
- local name = string.format('/F%i', pdf.getxformname(resource))
- local resources = characters.resources
- if resources then
- characters.resources = string.format('%s %s %i 0 R', resources, name, resource)
- else
- characters.resources = string.format('%s %i 0 R', name, resource)
- end
- char.resource = name
- elseif stage == 2 then
- local char = assert(characters[cid])
- width = char.width/65781
- return pdf.obj{
- type = 'stream',
- immediate = true,
- -- objnum =
- -- attr =
- -- compresslevel =
- string = string.format('%g 0 d0 %s Do', width, char.resource)
- }, width
- elseif stage == 3 then
- return 65781/655360, string.format('/XObject<<%s>>', characters.resources)
- end
- print(stage, fid, cid)
- end,
- }
-]===]
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.1 b/macros/luatex/generic/luaotfload/luaotfload-tool.1
index 3f2782eb18..d0f56801c6 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.1
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD-TOOL 1 "2022-02-24" "3.19" "text processing"
+.TH LUAOTFLOAD-TOOL 1 "2022-02-27" "3.20" "text processing"
.SH NAME
luaotfload-tool \- generate and query the Luaotfload font names database
.
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.lua b/macros/luatex/generic/luaotfload/luaotfload-tool.lua
index 808afe0313..6be778a69a 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.lua
@@ -9,8 +9,8 @@
local ProvidesLuaModule = {
name = "luaotfload-tool",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload-tool / database functionality",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
index a218f77367..4862fd03f1 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.rst b/macros/luatex/generic/luaotfload/luaotfload-tool.rst
index 1eddd510f1..d407a5fba5 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.rst
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.rst
@@ -6,9 +6,9 @@
generate and query the Luaotfload font names database
-----------------------------------------------------------------------
-:Date: 2022-02-24
+:Date: 2022-02-27
:Copyright: GPL v2.0
-:Version: 3.19
+:Version: 3.20
:Manual section: 1
:Manual group: text processing
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
index 09ca40adbe..9ef921ffd0 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-tounicode",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / tounicode",
license = "GPL v2.0",
author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
index 25a7b2046e..d63d16989c 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-unicode",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "luaotfload submodule / Unicode helpers",
license = "CC0 1.0 Universal",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.5 b/macros/luatex/generic/luaotfload/luaotfload.conf.5
index f7d8aa8ae4..272a3abd54 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.conf.5
+++ b/macros/luatex/generic/luaotfload/luaotfload.conf.5
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD.CONF 5 "2022-02-24" "3.19" "text processing"
+.TH LUAOTFLOAD.CONF 5 "2022-02-27" "3.20" "text processing"
.SH NAME
luaotfload.conf \- Luaotfload configuration file
.
diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.rst b/macros/luatex/generic/luaotfload/luaotfload.conf.rst
index 4e0347b907..c40088b5b5 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.conf.rst
+++ b/macros/luatex/generic/luaotfload/luaotfload.conf.rst
@@ -6,9 +6,9 @@
Luaotfload configuration file
-----------------------------------------------------------------------
-:Date: 2022-02-24
+:Date: 2022-02-27
:Copyright: GPL v2.0
-:Version: 3.19
+:Version: 3.20
:Manual section: 5
:Manual group: text processing
diff --git a/macros/luatex/generic/luaotfload/luaotfload.lua b/macros/luatex/generic/luaotfload/luaotfload.lua
index f21ded5ae6..20eaad3eff 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload.lua
@@ -20,8 +20,8 @@ local authors = "\z
-- version number is used below!
local ProvidesLuaModule = {
name = "luaotfload",
- version = "3.19", --TAGVERSION
- date = "2022-02-24", --TAGDATE
+ version = "3.20", --TAGVERSION
+ date = "2022-02-27", --TAGDATE
description = "Lua based OpenType font support",
author = authors,
copyright = authors,
diff --git a/macros/luatex/generic/luaotfload/luaotfload.sty b/macros/luatex/generic/luaotfload/luaotfload.sty
index 7dbccb1f8c..2426c2e0f5 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.sty
+++ b/macros/luatex/generic/luaotfload/luaotfload.sty
@@ -39,7 +39,7 @@
\fi
\ifdefined\ProvidesPackage
\ProvidesPackage{luaotfload}%
- [2022/02/24 v3.19 OpenType layout system]
+ [2022/02/27 v3.20 OpenType layout system]
\fi
\directlua{
if xpcall(function ()%
diff --git a/macros/luatex/generic/luaotfload/scripts-demo.pdf b/macros/luatex/generic/luaotfload/scripts-demo.pdf
index e119a1ef16..1f04d9d7bc 100644
--- a/macros/luatex/generic/luaotfload/scripts-demo.pdf
+++ b/macros/luatex/generic/luaotfload/scripts-demo.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
index ded892e99b..ce126ad4b1 100644
--- a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
+++ b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/shaper-demo.pdf b/macros/luatex/generic/luaotfload/shaper-demo.pdf
index d889e43e79..18a3c1b69f 100644
--- a/macros/luatex/generic/luaotfload/shaper-demo.pdf
+++ b/macros/luatex/generic/luaotfload/shaper-demo.pdf
Binary files differ
diff --git a/macros/luatex/generic/lutabulartools/README.md b/macros/luatex/generic/lutabulartools/README.md
index 90b5a86b15..ba443802b8 100644
--- a/macros/luatex/generic/lutabulartools/README.md
+++ b/macros/luatex/generic/lutabulartools/README.md
@@ -1,12 +1,13 @@
# lutabulartools
-This LuaLaTeX package offers some useful macros for tabular matter. The `\MC` command it provides allows one to specify a multi-row and or multi-column cell with minimal syntax. The package loads `booktabs` and adds a gray midrule, and allows a user to specify multiple `\cmidrules` with one command.
+This LuaLaTeX package offers some useful macros for tabular matter. The `\MC` command it provides allows one to specify a multi-row and or multi-column cell with minimal syntax. The package loads `booktabs` and adds a gray midrule, and allows a user to specify multiple `\cmidrules` with one command. The [github repo](https://github.com/kalekje/lutabulartools) has an MS Excel
+macro-enabled spreadsheet named "LaTeX-Tabular-Generator.xlsm" to help make tables in LaTeX.
# License (MIT)
-Copyright (C) 2021 Kale Ewasiuk
+Copyright (C) 2021-2022 Kale Ewasiuk
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.lua b/macros/luatex/generic/lutabulartools/lutabulartools.lua
index ca6b1aa0b4..30165f89a9 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.lua
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.lua
@@ -1,6 +1,6 @@
--% Kale Ewasiuk (kalekje@gmail.com)
---% 2021-11-07
---% Copyright (C) 2021 Kale Ewasiuk
+--% 2022-02-27
+--% Copyright (C) 2021-2022 Kale Ewasiuk
--%
--% Permission is hereby granted, free of charge, to any person obtaining a copy
--% of this software and associated documentation files (the "Software"), to deal
@@ -24,31 +24,19 @@
local ltt = {}
---todo clean up the code, make some stuff local
---todo maybe add the penlight lua table to latex tabular?
+ltt.col_spec1 = {} -- column spec if one column wide (since makcell nests a tabular, preserve col_spec below)
+ltt.col_spec = {} -- tab column spec if above 1
+ltt.col = '' -- current column spec, single char, only applies to tabular with more than 1 column
+ltt.col_num = 1 -- current column number
---integrate current cell
---todo check if S[] column cells work!!!
---todo might be smarter to just append this to tabular commands and read argument
--- Initialize counter variable
-ltt.NumTabCols = 0
-ltt.NumTabColsAbv = 0 -- num of tab columns if above 1
-ltt.TabColSpec = ''
-ltt.TabColSpecAbv = '' -- tab column spec if above 1
-ltt.CurTabColAbv = '' -- current tab column spec if above 1
-ltt.TabColNum = 0
-ltt.NumBkts = 0
-ltt.NumTabColsMX = 0
-
-
---todo re=enable
local glue_t, unset_t, tabskip_st = node.id'glue', node.id'unset'
local tabskip_st = table.swapped(node.subtypes'glue').tabskip
assert(tabskip_st)
-function ltt.get_TabColNum()
+function ltt.set_col_num()
+ -- register current column info (column number and specification)
local nest
for i = tex.nest.ptr, 1, -1 do
local tail = tex.nest[i].tail
@@ -62,57 +50,32 @@ function ltt.get_TabColNum()
for _, sub in node.traverse_id(unset_t, nest.head) do
col = col + sub + 1
end
- ltt.TabColNum = col
+ ltt.col_num = col
else
- ltt.TabColNum = 1
+ ltt.col_num = 1
end
- ltt.CurTabColAbv = ltt.TabColSpecAbv:sub(ltt.TabColNum,ltt.TabColNum)
- ltt.NumTabColsMX = math.max(ltt.NumTabColsMX, ltt.TabColNum) -- a different way to calculate total cols
- return ltt.TabColNum
+ ltt.col = ltt.col_spec[ltt.col_num]
end
-function ltt.get_TabRowNum()
- return tex.count['c@RowNumCnt'] -- access latex counter
-end
-
--- The next function computes the number of columns from
--- contents of string 'zz'
-function ltt.calc_NumTabCols( zz )
- --help_wrt(zz, 'col spec OG')
- -- -- NOT NEEDED: zz = zz:gsub ( "^.-(%b{}).-$", "%1" ) -- retain the first "{....}" substring
+function ltt.set_col_spec(zz)
+ -- contents of string 'zz'
+ -- register the table column specification
zz = zz:gsub ( "%*%s-{(%d-)}%s-(%b{})" , -- expand expressions such as "*{5}{l}" to "lllll"
function(y, z ) z = z:sub (2 , -2) return string.rep (z, y) end ) --
zz = zz:gsub ( "%b{}" , "" ) -- omit all stuff in curly braces and square
zz = zz:gsub ( "%b[]" , "" )
zz = zz:gsub ( "[@!|><%s%*\']" , "" ) -- some more characters to ignore
- -- todo: any columns defined that break into more than one column should be expanded here
- --help_wrt(zz, 'col spec CLEAN')
- ltt.TabColSpec = zz -- stripped column spec with no {} or <
- ltt.NumTabCols = string.len(ltt.TabColSpec)
- if ltt.NumTabCols > 1 then
- ltt.TabColSpecAbv = ltt.TabColSpec
- ltt.NumTabColsAbv = ltt.NumTabCols
+ zz = zz:gsub('%a', ltt.col_replaces) -- sub extra column
+ _col_spec = zz:totable() -- requires pl extras
+ --help_wrt(_col_spec, 'helpme')
+ if #_col_spec > 1 then
+ ltt.col_spec = _col_spec
+ else
+ ltt.col_spec1 = _col_spec
end
end
---todo fix square brackets after letters, expand multiple
---calc_NumTabCols('ss')
---calc_NumTabCols('*{6}{s}')
---calc_NumTabCols('l*{6}{l}')
---calc_NumTabCols('lll')
---calc_NumTabCols('ll[]')
---calc_NumTabCols('ll[]*{6}{l}')
---calc_NumTabCols('*{6}{l}')
---calc_NumTabCols('y*{6}{sq}x')
---print(_TabColSpec.. '<---Column spec')
-
---http://ctan.mirror.rafal.ca/macros/latex/contrib/multirow/multirow.pdf
---http://ctan.mirror.colo-serv.net/macros/latex/contrib/makecell/makecell.pdf
--- todo CONSIDER THIS
--- https://tex.stackexchange.com/questions/331716/newline-in-multirow-environment
-
-
--todo
-- if p{} column, and multirow is 1, use {=} instead of {*}
@@ -122,6 +85,8 @@ end
function ltt.MagicCell(s0,spec,mcspec,pre,content)
--
+ ltt.set_col_num() -- register current column number and column spec
+
local STR = ''
reset_bkt_cnt()
@@ -132,8 +97,8 @@ function ltt.MagicCell(s0,spec,mcspec,pre,content)
h, mcspec, c = ltt.get_HColSpec(h, mcspec, c) -- infer horizontal alignment, num columns
--help_wrt(_CurTabColAbv,'current column')
- if s0 == _xTrue or (pl.List({'S', 'Q', 'L', 'R'}):contains(ltt.CurTabColAbv) -- special columns for SI
- and c == '') then -- multicolumn cannot have {} around it todo test with siunitx, num rows, num columns
+ if s0 == _xTrue or (pl.List(ltt.SI_cols):contains(ltt.col) -- special columns for SI
+ and c == '') then -- multicolumn cannot have {} around it
STR = STR .. '{' -- multirow and makcell must have {} around it S column is used
add_bkt_cnt()
end
@@ -167,7 +132,7 @@ end
function ltt.parse_MagicCell_spec(spec)
- local mrowsym = '*'
+ local mrowsym = '*' -- * = natural width, = will match p{2cm} for example
local skipmakecell = false
if string.find(spec, '=') then
spec = spec:gsub('=', '')
@@ -175,9 +140,9 @@ function ltt.parse_MagicCell_spec(spec)
skipmakecell = true
end
- spec = spec:lower():gsub('%s','') -- take lower case and remove
+ spec = spec:lower():gsub('%s','') -- take lower case and remove space
local vh, rc = spec:gextract('%a') -- extract characters
- local v = vh:gfirst({'t', 'm', 'b'}) or 't'
+ local v = vh:gfirst({'t', 'm', 'b'}) or ltt.col_ver_repl[ltt.col] or 't'
local h = vh:gfirst({'l', 'c', 'r'}) or ''
v = v:gsub('m', 'c')
@@ -191,50 +156,71 @@ function ltt.parse_MagicCell_spec(spec)
end
-ltt.TabColMapping = { -- horizontal cell alignment that multicolumn should use if () or [hori] not passed to func
- l = 'l',
- c = 'c',
- r = 'r',
- p = 'p',
- P = 'c',
- X = 'l',
- Y = 'c',
- Z = 'l',
- N = 'c',
- L = 'l',
- R = 'r',
- C = 'c',
-}
-
function ltt.get_HColSpec(h, mcspec, c) -- take horizontal alignment
-- c is num columns, h is horizontal alginment,
--Assumes _TabColNum was calculated previosly
- ltt.get_TabColNum()
if c == '+' then -- fill row to end
- c = tostring(ltt.NumTabColsAbv - ltt.TabColNum + 1)
+ c = tostring(#ltt.col_spec - ltt.col_num + 1)
end
if h == '' then -- if horizontal not provided, use declared column
- h = ltt.TabColMapping[ltt.CurTabColAbv] or 'l'
+ h = ltt.col_hor_repl[ltt.col] or 'l'
end
if c ~= '' then -- only make new mcspec if column nums > 0
if mcspec == '' then -- and if no mcspec was passed
mcspec = h
- if ltt.TabColNum == 1 then -- if first column, auto detect padding
+ if ltt.col_num == 1 then -- if first column, auto detect padding
mcspec = '@{}'..mcspec
end
- if (ltt.TabColNum + tonumber(c) - 1) == ltt.NumTabColsAbv then -- if end on last column
+ if (ltt.col_num + tonumber(c) - 1) == #ltt.col_spec then -- if end on last column
mcspec = mcspec..'@{}'
end
else -- if mcspec if given, extract the alignment
- ltt.calc_NumTabCols(mcspec)
- h = ltt.TabColSpec -- get 1 character column spec from mcspec and override h
+ ltt.set_col_spec(mcspec)
+ h = ltt.col_spec1[1] -- get 1 character column spec from mcspec and override h
end
end
return h, mcspec, c
end
--- midrule stuff
+
+ltt.col_ver_repl = {
+m = 'm',
+M = 'm',
+b = 'b',
+}
+
+ltt.col_hor_repl = { -- horizontal cell alignment that multicolumn should use if () or [hori] not passed to func
+ l = 'l',
+ c = 'c',
+ r = 'r',
+ p = 'l',
+ P = 'c',
+ X = 'l',
+ Y = 'c',
+ Z = 'l',
+ N = 'c',
+ L = 'l',
+ R = 'r',
+ C = 'c',
+}
+
+-- allow user to place their own replacements in for a table, say if they define a column that expands to multiple
+ltt.col_replaces = {
+--x = 'lll'
+}
+
+ltt.SI_cols = {'S', 'N', 'Q', 'L', 'R'}
+--ltt.SI_cols = {'S'}
+--ltt.SI_cols = {'N'}
+
+
+
+
+
+-----
+--- midrule stuff
+-----
function ltt.get_midrule_col(s)
if string.find(s, '+') then
@@ -242,14 +228,11 @@ function ltt.get_midrule_col(s)
if (s == '') or (s == '0') then
s = 1
end
- s = tostring(ltt.NumTabColsAbv - tonumber(s) + 1) -- use number of tabular columns above 0,
+ s = tostring(#ltt.col_spec - tonumber(s) + 1) -- use number of tabular columns above 0,
end
return s
end
---todo if comma present, create multiple according to spec. Also allow LR in []
-
---- midrule stuff ---
function ltt.make1cmidrule(s, r, c, cmd) -- s=square r=round c=curly
cmd = '\\'..cmd
@@ -283,4 +266,16 @@ function ltt.makecmidrules(s, r, c, cmd)
end
-return ltt -- lutabulartools \ No newline at end of file
+--help_wrt('TEST COL ')
+--for _, s in ipairs{ 'll', '*{6}{s}', 'l*{6}{l}', 'lll', 'll[]', 'll[]*{6}{l}', '*{6}{l}', 'y*{6}{sq}x', } do
+-- ltt. set_col_spec(s)
+-- help_wrt(ltt.col_spec,s)
+--end
+
+return ltt -- lutabulartools
+
+
+
+--http://ctan.mirror.rafal.ca/macros/latex/contrib/multirow/multirow.pdf
+--http://ctan.mirror.colo-serv.net/macros/latex/contrib/makecell/makecell.pdf
+-- https://tex.stackexchange.com/questions/331716/newline-in-multirow-environment
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.pdf b/macros/luatex/generic/lutabulartools/lutabulartools.pdf
index 96488bd83a..770fb8045b 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.pdf
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.pdf
Binary files differ
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.sty b/macros/luatex/generic/lutabulartools/lutabulartools.sty
index b4eda9c3cf..bb72b660a8 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.sty
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.sty
@@ -1,6 +1,6 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2021-11-07
-% Copyright (C) 2021 Kale Ewasiuk
+% 2022-02-27
+% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
@@ -23,7 +23,7 @@
% OR OTHER DEALINGS IN THE SOFTWARE.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lutabulartools}[2021-11-07]
+\ProvidesPackage{lutabulartools}[2022-02-27]
\RequirePackage{booktabs}
\RequirePackage{multirow}
@@ -38,12 +38,19 @@
\luadirect{lutabt = require('lutabulartools')}
+\newcolumntype{\ltt@ltrim}{@{}}
+\newcolumntype{\ltt@rtrim}{@{}}
+\DeclareOption{notrim}{
+ \newcolumntype{\ltt@ltrim}{}
+ \newcolumntype{\ltt@rtrim}{}
+}
-% DOES NOT WORK WITH colortbl package ???
%% adapted from
% https://tex.stackexchange.com/questions/182953/add-midrule-every-5-lines-automatically
+%% https://tex.stackexchange.com/questions/145084/what-is-the-function-of-noalign
+
\def\midruleXstep{5}
\def\midruleXrule{\gmidrule}
@@ -67,32 +74,18 @@
}
\newcommand*{\resetmidruleX}{\setcounter{midruleX}{0}} %%% todo maybe put noalign in here
-
\resetmidruleX
-%% https://tex.stackexchange.com/questions/145084/what-is-the-function-of-noalign
-%\begin{tabular}{rclc@{\midruleX}} % inject midrule
-%\toprule
-%Number & Student Id & Name & Score\\\midrule\resetmidruleX % reset to 0
-%1 & 14-001 & Andy & 75 \\
-%2 & & & \\
-%3 & & & \\
-%4 & & & \\
-%5 & & & \\
-%6 & & & \\
-%7 & & & \\
-%8 & & & \\
-%9 & & & \\\resetmidruleX
-%10 & & & \\%\noalign{\resetmidruleX} % noalig required to not cause error with bottomrule, but that's oka because it should be used on row 9 anyway
-%\bottomrule
-%\end{tabular}
+
%%%%
%%% gray midrule and gray cmidrule
-
-\providecommand{\gmidrule}{\arrayrulecolor{lightgray}\specialrule{\lightrulewidth}{0.4\aboverulesep}{0.6\belowrulesep}\arrayrulecolor{black}}
+\aboverulesep=0.0ex
+\belowrulesep=0.5ex
+\providecommand{\gmidrule}{\arrayrulecolor{lightgray}\specialrule{\lightrulewidth}{0.5\aboverulesep}{0.5\belowrulesep}\arrayrulecolor{black}}
+\cmidrulewidth=\lightrulewidth
%%% use gcmidrule for a gray "c" midrule
% Copy \cmidrule from
@@ -113,7 +106,7 @@
\global\advance\@cmidlb-\@cmidla
\global\@thisrulewidth=#3
\@setrulekerning{#4}
- \ifnum\@lastruleclass=\z@\vskip 0.4\aboverulesep\fi
+ \ifnum\@lastruleclass=\z@\vskip 0.5\aboverulesep\fi
\ifnum0=`{\fi}\@gtempa
\noalign{\ifnum0=`}\fi\futurenonspacelet\@tempa\@xgcmidrule}
\def\@xgcmidrule{%
@@ -123,7 +116,7 @@
\else \ifx\@tempa\morecmidrules
\vskip \cmidrulesep
\global\@lastruleclass=\@ne\else
- \vskip 0.6\belowrulesep
+ \vskip 0.5\belowrulesep
\global\@lastruleclass=\z@
\fi\fi
\ifnum0=`{\fi}
@@ -167,30 +160,17 @@
-
-
-%%% tabular commands
-
-\newcommand{\TabColNum}{\luadirect{tex.print(lutabt.get_TabColNum())}} % prints the current column number of tabular
-\newcommand{\NumTabCols}{\luadirect{tex.print(lutabt.NumTabCols)}} % prints the total num columns of tabular
-\newcounter{RowNumCnt}
-\setcounter{RowNumCnt}{1}
-
\let\oldtabular\tabular
\RenewExpandableDocumentCommand{\tabular}{ O{c} m }{%
- \setcounter{RowNumCnt}{1}%
- \luadirect{lutabt.calc_NumTabCols(\luastringN{#2})}%
- \luadirect{lutabt.NumTabColsMX = 0}% fall back if calc doesnt work for some reason
- \oldtabular[#1]{@{\stepcounter{RowNumCnt}}#2@{\luadirect{lutabt.get_TabColNum()}}}%
+ \luadirect{lutabt.set_col_spec(\luastringN{#2})}%
+ \oldtabular[#1]{\ltt@ltrim#2\ltt@rtrim}%
}
\expandafter\let\expandafter\oldtabulars\csname tabular*\endcsname
\expandafter\let\expandafter\endoldtabulars\csname endtabular*\endcsname
\RenewDocumentEnvironment{tabular*}{ m O{c} m }{%
- \setcounter{RowNumCnt}{1}%
- \luadirect{lutabt.calc_NumTabCols(\luastringN{#3})}%
- \luadirect{lutabt.NumTabColsMX = 0}% fall back if calc doesnt work for some reason
- \begin{oldtabulars}{#1}[#2]{@{\stepcounter{RowNumCnt}}#3@{\luadirect{lutabt.get_TabColNum()}}}
+ \luadirect{lutabt.set_col_spec(\luastringN{#3})}%
+ \begin{oldtabulars}{#1}[#2]{\ltt@ltrim#3\ltt@rtrim}%
}{%
\end{oldtabulars}%
}
@@ -211,7 +191,45 @@
)}}
+\NewDocumentCommand{\setMCrepl}{m m}{\luadirect{
+ lutabt.col_replaces.#1 = '#2'
+}}
+\NewDocumentCommand{\setMChordef}{ m m}{\luadirect{
+ lutabt.col_hor_repl.#1 = '#2'
+}}
+\NewDocumentCommand{\setMCverdef}{ m m}{\luadirect{
+ lutabt.col_ver_repl.#1 = '#2'
+}}
+\NewDocumentCommand{\addMCsicol}{ m }{\luadirect{
+ lutabt.SI_cols[\string##lutabt.SI_cols+1] = '#1'
+}}
+
\ProcessOptions
+
+
+
+
+
+
+%%% OLD STUFF,
+%% before I had a fall-back for counting columns (just calculate current column on last column once)
+%% and kept track of row numbers. I felt that this wasn't needed, so I've removed.
+%\newcommand{\TabColNum}{\luadirect{tex.print(lutabt.get_TabColNum())}} % prints the current column number of tabular
+%\newcommand{\NumTabCols}{\luadirect{tex.print(lutabt.NumTabCols)}} % prints the total num columns of tabular
+%\newcounter{RowNumCnt}
+%\setcounter{RowNumCnt}{1}
+% \setcounter{RowNumCnt}{1}%
+% \luadirect{lutabt.NumTabColsMX = 0}% fall back if calc doesnt work for some reason
+% \setcounter{RowNumCnt}{1}%
+% \luadirect{lutabt.NumTabColsMX = 0}% fall back if calc doesnt work for some reason
+%\DeclareOption{notrimx}{
+% \global\newcolumntype{\ltt@ltrim}{!{\stepcounter{RowNumCnt}}}
+%% \global\newcolumntype{\ltt@rtrim}{!{\luadirect{lutabt.get_TabColNum()}}}
+%}
+%\DeclareOption{trimx}{
+% \newcolumntype{\ltt@ltrim}{@{\stepcounter{RowNumCnt}}}
+%% \newcolumntype{\ltt@rtrim}{@{\luadirect{lutabt.get_TabColNum()}}}
+%}
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.tex b/macros/luatex/generic/lutabulartools/lutabulartools.tex
index 65c7f2f694..54af32f78d 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.tex
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.tex
@@ -1,6 +1,6 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2021-11-07
-% Copyright (C) 2021 Kale Ewasiuk
+% 2022-02-27
+% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
@@ -61,11 +61,20 @@
\title{lutabulartools}
\subtitle{some useful tabular tools (LuaLaTeX-based)}
+\usepackage{tabularx}
+\usepackage{siunitx}
+
\begin{document}
+
+% todo: can improve naming... set col spec to a table instead of a string
+
+
\maketitle
lutabulartools is a package that contains a few useful macros to help with tables.
-Most functions require LuaLaTeX. The following packages are loaded:
+Most functions require LuaLaTeX.
+This package redefines the {\ttfamily tabular} and {\ttfamily tabular*} environments.
+The following packages are loaded:
\texttt{
{booktabs},
{multirow},
@@ -78,51 +87,148 @@ Most functions require LuaLaTeX. The following packages are loaded:
{penlight},
}
+\section{Options}
+The author likes tables with left and right-most columns flush to the end.
+Since the \cmd{tabular} env is redefined in this, the author took the liberty to
+automatically pad the \cmd{tabular} cell spec with \cmd{@{}} on each end.
+If you don't want this, you can pass \cmd{notrim} to the package. Or,
+you can manually fix it in a \cmd{tabular} with \cmd{!{}} like so:
+
+\begin{LTXexample}
+\begin{tabular}{!{}c!{}}\toprule
+Xyz\\\bottomrule \end{tabular}
+\end{LTXexample}
+
+
\section{\texttt{\textbackslash MC} -- Magic Cell}
\texttt{\textbackslash MC} (magic cell) combines the facilities of
\cmd{\multirow} and \cmd{\multicolumn} from the \texttt{multirow} package, and \cmd{\makcell} from the titular package.
With the help of LuaLaTeX, it takes an easy-to-use cell specification and employs said commands as required.
+\cmd{\MC} will not work properly if your table is only 1 column wide (you probably don't need \cmd{MC} in that case anyway...).
Here is the usage:
\texttt{\textbackslash MC * [cell spec] <cell format> (override multicolumn col) \{contents\} }
\llcmd{*}This will wrap the entire command in \{\}. This is necessary for \texttt{siunitx} single-column width columns.
-However, the \tMC\ command attempts to detect this automatically.
+However, the \cmd{\MC} command attempts to detect this automatically.
\llcmd{[cell spec]}%
Any letters placed in this argument are used for cell alignment.
You can use one of three: \qcmd{t}, \qcmd{m}, \qcmd{b} for top, middle, bottom (vertical alignment),
or \qcmd{l}, \qcmd{c}, \qcmd{r} for horizontal alignment.
-By default, \tMC\ will try to autodetect the horizontal alignment based on the current column.
+By default, \cmd{\MC} will try to autodetect the horizontal alignment based on the current column.
If it can't, it will be left-aligned.
-The default vertical alginment is top.
+The default vertical alginment is top. More on this in section \ref{s.def}.
This argument can also contain two integers, separated by a comma (if two are used).
\qcmd{C,R}, \qcmd{C}, or \qcmd{,R} are a valid inputs,
-where R=rows (int), and C=columns, (int).
+where \cmd{R}=rows (int), and \cmd{C}=columns, (int).
If you want a 1 column wide, multirow cell,
-you can pass \qcmd{,R}. These numbers can be negative.
-If no spec is passed, (argument empty), \tMC\
+you can pass \qcmd{,R}. These numbers can be negative (positive numbers occupy columns to the right
+and rows below, and negative numbers occupy columns to the left and rows above).
+If no spec is passed, (argument empty), \cmd{\MC}
acts like a \texttt{makecell}.
Additionally, you can pass \qcmd{+} in place of C (number of columns wide),
and it will make the cell width fill until the end of the current row.
Examples:\\
\qcmd{\MC[2,2]} means two columns wide, two rows tall.\\
-\qcmd{\MC[2,1]} or \qcmd{\MC[2]} or means two columns wide, one row tall.\\
+\qcmd{\MC[2,1]} or \qcmd{\MC[2]} means two columns wide, one row tall.\\
\qcmd{\MC[1,2]} or \qcmd{\MC[,2]} means one column wide, two rows tall.\\
+\qcmd{\MC[+,2]}, if placed in the first column, occupies the entire row and is two rows tall.\\
+\qcmd{\MC[+,2]}, if placed in the second column, occupies the second column to the end of the table and is two rows tall.\\
In any of these examples, you can place the alignment letters anywhere.
+So, \qcmd{\MC[l1,2b]} and \qcmd{\MC[1,2 lb]} are both left-bottom aligned (spaces are ignored).
\llcmd{(override}%
You may want to adjust the column specification of a multicolumn cell,\\
\llcmd{multicolumn)}for example, using
-\texttt{@\{\}c@\{\}} to remove padding between the cell.
+\texttt{(@\{\}c@\{\})} to remove padding between the cell.
+
\llcmd{<cell format>}%
You can place formatting like \cmd{\bfseries} here.
-Here's an example.
+
+\subsection{Defaults}\label{s.def}
+The \cmd{tabular[*]} environment is re-defined to use Lua pattern matching
+to parse the column specification of the table. This is done to determine how many columns there are,
+and what the current column type is, even if specifications like \cmd{r@{.}l*{3}{r}} are used.
+If you have defined a column that expands many, you should register it with
+\cmd{\setMCrepl{?}{??}} where \cmd{?} is your column and \cmd{??} is what it expands to.
+You can also specify default horizontal and vertical alignments (ie if alignment not passed to \cmd{\MC})
+for an arbitrary column by \cmd{\setMChordef{?}{l|r|c}} and\\
+\cmd{\setMChordef{?}{t|m|b}}, where \cmd{?} is the column.
+To add a column that should be surrounded by brackets for \cmd{siunitx} purposes, do so with \cmd{\addMCsicol{?}}.
+S is included by default.
+
+
+\newpage
+
+\subsection{Examples}
+
+\let\nl\\
+
+
+\subsubsection{A good use for headers}
+\begin{LTXexample}
+\begin{tabular}{ l l l }\toprule
+\MC[+m]<\itshape>{A Decent
+ Example}\\\midrule
+ & \MC[2m]{Heading} \\\cmidrule{2-}
+\MC[b,-2]{Multi\\Line} & A & B \\\midrule
+\end{tabular}
+\end{LTXexample}
+
+\subsubsection{A small example}
+
+
+\begin{LTXexample}
+\begin{tabular}{ l l l }\midrule
+ A & \MC[mc2,2]{Lttrs} \\
+ B & \\
+ 1 & A & B \\
+\end{tabular}
+\end{LTXexample}
+
+
+\subsubsection{A small bad example}
+Notice that the top-aligned p-column
+doesn't play particularly well with the middle aligned \cmd{\MC}
+\begin{LTXexample}
+\begin{tabular}{ p{1cm} l }\toprule
+ hello\newline world
+ & \MC[mr]{11\\2} \\
+\end{tabular}
+\end{LTXexample}
+
+
+\subsubsection{If you insist on vertical lines}
+\begin{LTXexample}
+\begin{tabular}{|c|c|c|} \hline
+1 & 2 & 3\\\hline
+4 & \MC[2,2cm](@{}c@{}|)%
+ <\ttfamily>{5}\\\cline{1-1}
+ & \MC[2](r|){} \\\hline%hacky fix
+6 & 7 & 8\\\hline
+\end{tabular}
+\end{LTXexample}
+
+
+\subsubsection{A perhaps useful example}
+
+\begin{LTXexample}
+\begin{tabularx}{\linewidth}{S[table-format=2.1,table-alignment=left]X}
+% err & ... \\% ERROR, not wrap
+ \MC{Error,\%} & Comment \\% MC helps
+ 3.1 & \MC[,2]{multi-line\\comment}\\
+ 10.1& \\
+ \MC[2c]{... ...} \\
+\end{tabularx}
+\end{LTXexample}
+
+\subsubsection{A messy example}
\begin{LTXexample}
\begin{tabular}{| c | c | c | c | c | c |}\toprule
@@ -136,23 +242,39 @@ Here's an example.
\end{LTXexample}
+
+
+
%%% https://tex.stackexchange.com/questions/287346/width-of-column-after-multicolumn-header
%\textbackslash MC[<spec>]{<contents}
-\subsection{Notes}
-This package redefines the {\ttfamily tabular} and {\ttfamily tabular*} environments.
-It uses Lua pattern matching to parse the column specification of the table to know how many columns there are,
-and what the current column type is. If you have defined a column that creates many, it will not work.
-This will be worked out in later package revisions.
-%But, to know how many columns there are you, you will have
-%either have to manually set todo the lua variable before the table, or,
-%in the last column of the first row, \texttt{get\_tab\_colnum ()}.
-%The above Lua function can be used to get the current column number.
-%You will also remove the ability for this package to know what the current column spec is
+
+%\subsubsection{And another one}
+%
+%\begin{LTXexample}
+%\setMChordef{l}{r}
+%\setMCverdef{l}{b}
+%% change deflt alignment ^
+%\newcolumntype{e}{ll}
+%\setMCrepl{e}{ll}
+%% e -> l l ^
+%\begin{tabular}{l l l e}\toprule
+%aaaaa & bbb & ccc & eee & fff\\
+%\MC{aaaaa}\\
+%\MC{a}\\\midrule
+%\MC{a\\bbbbb} & x\\\midrule
+%\makecell[br]{a\\b} & x\\\midrule
+%\MC[+]{--- ---}\\
+%\end{tabular}
+%\end{LTXexample}
+%% WHY ISNT THIS RIGHT?
+\newpage
+
+
\section{Some additional rules}
This package also redefines the \texttt{booktabs} midrules.\\
\llcmd{\gmidrule}is a full gray midrule.\\
@@ -171,11 +293,23 @@ override it for a specific rule by placing \qcmd{r} or \qcmd{l} with the span sp
Here's an example:
\begin{LTXexample}
-\begin{tabular}{c c c c c c}\toprule
- 1 & 2 & 3 & 4 & 5 & 6\\ \cmidrule{+1} % rule on last column
- 1 & 2 & 3 & 4 & 5 & 6\\ \cmidrules{1,3-+3,+} % rule on first col, third to third last col, and last col
- 1 & 2 & 3 & 4 & 5 & 6\\ \cmidrules{1,3-+3rl,+} % same as above, but trim middle
- 1 & 2 & 3 & 4 & 5 & 6\\ \cmidrules(l){1,r3-+3,+1}% trim left for all, but only trim right for middle rule
+\begin{tabular}{c c c c c c}
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \cmidrule{+1} % rule on last column
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \cmidrules{1,3-+3,+} % rule on first col, third to third last col, and last col
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \cmidrules{1,3-+3rl,+} % same as above, but trim middle
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \cmidrules(l){1,r3-+3,+1}% trim left for all, but only trim right for middle rule
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \gcmidrule{+1} % rule on last column
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \gcmidrules{1,3-+3,+} % rule on first col, third to third last col, and last col
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \gcmidrules{1,3-+3rl,+} % same as above, but trim middle
+ 1 & 2 & 3 & 4 & 5 & 6\\
+ \gcmidrules(l){1,r3-+3,+1}% trim left for all, but only trim right for middle rule
\end{tabular}
\end{LTXexample}
@@ -192,13 +326,15 @@ You can change the step size and what kind of midrule you prefer.
\end{verbatim}
-Usage: Insert midrulex at the end of each row using the column spec.
+To use, insert \cmd{@{\midrulex}} at the end of each row using the tabular column spec.
Before you want counting to begin, you should
-apply resetmidruleX (also to avoid header rows).
+apply \cmd{\resetmidruleX} to avoid header rows being counted.
+Use \cmd{\noalign{\resetmiduleX}} if you need place a rule on the same line or in a cell.
+
\begin{LTXexample}
-\def\midruleXstep{4}
-\def\midruleXrule{\cmidrules{1,3-4}}
+\def\midruleXstep{3}
+\def\midruleXrule{\cmidrules{1,3-4r}}
\begin{tabular}{rclc@{\midruleX}}
% ^^^ inject midrule
\toprule
diff --git a/macros/luatex/generic/penlight/penlight.lua b/macros/luatex/generic/penlight/penlight.lua
index bea9316071..4b2436be1b 100644
--- a/macros/luatex/generic/penlight/penlight.lua
+++ b/macros/luatex/generic/penlight/penlight.lua
@@ -21,7 +21,7 @@ do
--
-- This implements some useful things on [LOM](http://matthewwild.co.uk/projects/luaexpat/lom.html) documents, such as returned by `lxp.lom.parse`.
-- In particular, it can convert LOM back into XML text, with optional pretty-printing control.
--- It is s based on stanza.lua from [Prosody](http://hg.prosody.im/trunk/file/4621c92d2368/util/stanza.lua)
+-- It is based on stanza.lua from [Prosody](http://hg.prosody.im/trunk/file/4621c92d2368/util/stanza.lua)
--
-- > d = xml.parse "<nodes><node id='1'>alice</node></nodes>"
-- > = d
@@ -49,493 +49,880 @@ do
-- @module pl.xml
local utils = require 'pl.utils'
-local split = utils.split;
-local t_insert = table.insert;
-local t_concat = table.concat;
-local t_remove = table.remove;
-local s_match = string.match;
-local tostring = tostring;
-local setmetatable = setmetatable;
-local getmetatable = getmetatable;
-local pairs = pairs;
-local ipairs = ipairs;
-local type = type;
-local next = next;
-local print = print;
-local unpack = utils.unpack;
-local s_gsub = string.gsub;
-local s_find = string.find;
-local pcall,require,io = pcall,require,io
+local split = utils.split
+local t_insert = table.insert
+local t_concat = table.concat
+local t_remove = table.remove
+local s_match = string.match
+local tostring = tostring
+local setmetatable = setmetatable
+local getmetatable = getmetatable
+local pairs = pairs
+local ipairs = ipairs
+local type = type
+local next = next
+local print = print
+local unpack = utils.unpack
+local s_gsub = string.gsub
+local s_sub = string.sub
+local s_find = string.find
+local pcall = pcall
+local require = require
+
+
+utils.raise_deprecation {
+ source = "Penlight " .. utils._VERSION,
+ message = "the contents of module 'pl.xml' has been deprecated, please use a more specialized library instead",
+ version_removed = "2.0.0",
+ deprecated_after = "1.11.0",
+ no_trace = true,
+}
+
+
local _M = {}
local Doc = { __type = "doc" };
Doc.__index = Doc;
+
+local function is_text(s) return type(s) == 'string' end
+local function is_tag(d) return type(d) == 'table' and is_text(d.tag) end
+
+
+
--- create a new document node.
--- @param tag the tag name
--- @param attr optional attributes (table of name-value pairs)
+-- @tparam string tag the tag name
+-- @tparam[opt={}] table attr attributes (table of name-value pairs)
+-- @return the Node object
+-- @see xml.elem
+-- @usage
+-- local doc = xml.new("main", { hello = "world", answer = "42" })
+-- print(doc) --> <main hello='world' answer='42'/>
function _M.new(tag, attr)
- local doc = { tag = tag, attr = attr or {}, last_add = {}};
- return setmetatable(doc, Doc);
+ if type(tag) ~= "string" then
+ error("expected 'tag' to be a string value, got: " .. type(tag), 2)
+ end
+ attr = attr or {}
+ if type(attr) ~= "table" then
+ error("expected 'attr' to be a table value, got: " .. type(attr), 2)
+ end
+
+ local doc = { tag = tag, attr = attr, last_add = {}};
+ return setmetatable(doc, Doc);
end
---- parse an XML document. By default, this uses lxp.lom.parse, but
--- falls back to basic_parse, or if use_basic is true
--- @param text_or_file file or string representation
+
+--- parse an XML document. By default, this uses lxp.lom.parse, but
+-- falls back to basic_parse, or if `use_basic` is truthy
+-- @param text_or_filename file or string representation
-- @param is_file whether text_or_file is a file name or not
-- @param use_basic do a basic parse
-- @return a parsed LOM document with the document metatatables set
-- @return nil, error the error can either be a file error or a parse error
-function _M.parse(text_or_file, is_file, use_basic)
- local parser,status,lom
- if use_basic then parser = _M.basic_parse
+function _M.parse(text_or_filename, is_file, use_basic)
+ local parser,status,lom
+ if use_basic then
+ parser = _M.basic_parse
+ else
+ status,lom = pcall(require,'lxp.lom')
+ if not status then
+ parser = _M.basic_parse
else
- status,lom = pcall(require,'lxp.lom')
- if not status then parser = _M.basic_parse else parser = lom.parse end
+ parser = lom.parse
end
- if is_file then
- local f,err = io.open(text_or_file)
- if not f then return nil,err end
- text_or_file = f:read '*a'
- f:close()
+ end
+
+ if is_file then
+ local text_or_filename, err = utils.readfile(text_or_filename)
+ if not text_or_filename then
+ return nil, err
end
- local doc,err = parser(text_or_file)
- if not doc then return nil,err end
- if lom then
- _M.walk(doc,false,function(_,d)
- setmetatable(d,Doc)
- end)
+ end
+
+ local doc, err = parser(text_or_filename)
+ if not doc then
+ return nil, err
+ end
+
+ if lom then
+ _M.walk(doc, false, function(_, d)
+ setmetatable(d, Doc)
+ end)
+ end
+ return doc
+end
+
+
+--- Create a Node with a set of children (text or Nodes) and attributes.
+-- @tparam string tag a tag name
+-- @tparam table|string items either a single child (text or Node), or a table where the hash
+-- part is the attributes and the list part is the children (text or Nodes).
+-- @return the new Node
+-- @see xml.new
+-- @see xml.tags
+-- @usage
+-- local doc = xml.elem("top", "hello world") -- <top>hello world</top>
+-- local doc = xml.elem("main", xml.new("child")) -- <main><child/></main>
+-- local doc = xml.elem("main", { "this ", "is ", "nice" }) -- <main>this is nice</main>
+-- local doc = xml.elem("main", { xml.new "this",
+-- xml.new "is",
+-- xml.new "nice" }) -- <main><this/><is/><nice/></main>
+-- local doc = xml.elem("main", { hello = "world" }) -- <main hello='world'/>
+-- local doc = xml.elem("main", {
+-- "prefix",
+-- xml.elem("child", { "this ", "is ", "nice"}),
+-- "postfix",
+-- attrib = "value"
+-- }) -- <main attrib='value'>prefix<child>this is nice</child>postfix</main>"
+function _M.elem(tag, items)
+ local s = _M.new(tag)
+ if is_text(items) then items = {items} end
+ if is_tag(items) then
+ t_insert(s,items)
+ elseif type(items) == 'table' then
+ for k,v in pairs(items) do
+ if is_text(k) then
+ s.attr[k] = v
+ t_insert(s.attr,k)
+ else
+ s[k] = v
+ end
+ end
+ end
+ return s
+end
+
+
+--- given a list of names, return a number of element constructors.
+-- If passing a comma-separated string, then whitespace surrounding the values
+-- will be stripped.
+--
+-- The returned constructor functions are a shortcut to `xml.elem` where you
+-- no longer provide the tag-name, but only the `items` table.
+-- @tparam string|table list a list of names, or a comma-separated string.
+-- @return (multiple) constructor functions; `function(items)`. For the `items`
+-- parameter see `xml.elem`.
+-- @see xml.elem
+-- @usage
+-- local new_parent, new_child = xml.tags 'mom, kid'
+-- doc = new_parent {new_child 'Bob', new_child 'Annie'}
+-- -- <mom><kid>Bob</kid><kid>Annie</kid></mom>
+function _M.tags(list)
+ local ctors = {}
+ if is_text(list) then
+ list = split(list:match("^%s*(.-)%s*$"),'%s*,%s*')
+ end
+ for i,tag in ipairs(list) do
+ local function ctor(items)
+ return _M.elem(tag,items)
end
- return doc
+ ctors[i] = ctor
+ end
+ return unpack(ctors)
end
----- convenient function to add a document node, This updates the last inserted position.
--- @param tag a tag name
--- @param attrs optional set of attributes (name-string pairs)
+
+--- Adds a document Node, at current position.
+-- This updates the last inserted position to the new Node.
+-- @tparam string tag the tag name
+-- @tparam[opt={}] table attrs attributes (table of name-value pairs)
+-- @return the current node (`self`)
+-- @usage
+-- local doc = xml.new("main")
+-- doc:addtag("penlight", { hello = "world"})
+-- doc:addtag("expat") -- added to 'penlight' since position moved
+-- print(doc) --> <main><penlight hello='world'><expat/></penlight></main>
function Doc:addtag(tag, attrs)
- local s = _M.new(tag, attrs);
- (self.last_add[#self.last_add] or self):add_direct_child(s);
- t_insert(self.last_add, s);
- return self;
+ local s = _M.new(tag, attrs)
+ self:add_child(s)
+ t_insert(self.last_add, s)
+ return self
end
---- convenient function to add a text node. This updates the last inserted position.
--- @param text a string
+
+--- Adds a text node, at current position.
+-- @tparam string text a string
+-- @return the current node (`self`)
+-- @usage
+-- local doc = xml.new("main")
+-- doc:text("penlight")
+-- doc:text("expat")
+-- print(doc) --> <main><penlightexpat</main>
function Doc:text(text)
- (self.last_add[#self.last_add] or self):add_direct_child(text);
- return self;
+ self:add_child(text)
+ return self
end
----- go up one level in a document
+
+--- Moves current position up one level.
+-- @return the current node (`self`)
function Doc:up()
- t_remove(self.last_add);
- return self;
+ t_remove(self.last_add)
+ return self
end
+
+--- Resets current position to top level.
+-- Resets to the `self` node.
+-- @return the current node (`self`)
function Doc:reset()
- local last_add = self.last_add;
- for i = 1,#last_add do
- last_add[i] = nil;
- end
- return self;
+ local last_add = self.last_add
+ for i = 1,#last_add do
+ last_add[i] = nil
+ end
+ return self
end
---- append a child to a document directly.
+
+--- Append a child to the currrent Node (ignoring current position).
-- @param child a child node (either text or a document)
+-- @return the current node (`self`)
+-- @usage
+-- local doc = xml.new("main")
+-- doc:add_direct_child("dog")
+-- doc:add_direct_child(xml.new("child"))
+-- doc:add_direct_child("cat")
+-- print(doc) --> <main>dog<child/>cat</main>
function Doc:add_direct_child(child)
- t_insert(self, child);
+ t_insert(self, child)
+ return self
end
---- append a child to a document at the last element added
+
+--- Append a child at the current position (without changing position).
-- @param child a child node (either text or a document)
+-- @return the current node (`self`)
+-- @usage
+-- local doc = xml.new("main")
+-- doc:addtag("one")
+-- doc:add_child(xml.new("item1"))
+-- doc:add_child(xml.new("item2"))
+-- doc:add_child(xml.new("item3"))
+-- print(doc) --> <main><one><item1/><item2/><item3/></one></main>
function Doc:add_child(child)
- (self.last_add[#self.last_add] or self):add_direct_child(child);
- return self;
+ (self.last_add[#self.last_add] or self):add_direct_child(child)
+ return self
end
+
--accessing attributes: useful not to have to expose implementation (attr)
--but also can allow attr to be nil in any future optimizations
---- set attributes of a document node.
--- @param t a table containing attribute/value pairs
-function Doc:set_attribs (t)
- for k,v in pairs(t) do
- self.attr[k] = v
- end
+
+--- Set attributes of a document node.
+-- Will add/overwite values, but will not remove existing ones.
+-- Operates on the Node itself, will not take position into account.
+-- @tparam table t a table containing attribute/value pairs
+-- @return the current node (`self`)
+function Doc:set_attribs(t)
+ -- TODO: keep array part in sync
+ for k,v in pairs(t) do
+ self.attr[k] = v
+ end
+ return self
end
---- set a single attribute of a document node.
+
+--- Set a single attribute of a document node.
+-- Operates on the Node itself, will not take position into account.
-- @param a attribute
--- @param v its value
+-- @param v its value, pass in `nil` to delete the attribute
+-- @return the current node (`self`)
function Doc:set_attrib(a,v)
- self.attr[a] = v
+ -- TODO: keep array part in sync
+ self.attr[a] = v
+ return self
end
---- access the attributes of a document node.
+
+--- Gets the attributes of a document node.
+-- Operates on the Node itself, will not take position into account.
+-- @return table with attributes (attribute/value pairs)
function Doc:get_attribs()
- return self.attr
+ return self.attr
end
-local function is_text(s) return type(s) == 'string' end
---- function to create an element with a given tag name and a set of children.
--- @param tag a tag name
--- @param items either text or a table where the hash part is the attributes and the list part is the children.
-function _M.elem(tag,items)
- local s = _M.new(tag)
- if is_text(items) then items = {items} end
- if _M.is_tag(items) then
- t_insert(s,items)
- elseif type(items) == 'table' then
- for k,v in pairs(items) do
- if is_text(k) then
- s.attr[k] = v
- t_insert(s.attr,k)
- else
- s[k] = v
- end
- end
- end
- return s
-end
---- given a list of names, return a number of element constructors.
--- @param list a list of names, or a comma-separated string.
--- @usage local parent,children = doc.tags 'parent,children' <br>
--- doc = parent {child 'one', child 'two'}
-function _M.tags(list)
- local ctors = {}
- if is_text(list) then list = split(list,'%s*,%s*') end
- for _,tag in ipairs(list) do
- local ctor = function(items) return _M.elem(tag,items) end
- t_insert(ctors,ctor)
- end
- return unpack(ctors)
-end
+local template_cache do
+ local templ_cache = {}
-local templ_cache = {}
-
-local function template_cache (templ)
+ -- @param templ a template, a string being valid xml to be parsed, or a Node object
+ function template_cache(templ)
if is_text(templ) then
- if templ_cache[templ] then
- templ = templ_cache[templ]
- else
- local str,err = templ
- templ,err = _M.parse(str,false,true)
- if not templ then return nil,err end
- templ_cache[str] = templ
+ if templ_cache[templ] then
+ -- cache hit
+ return templ_cache[templ]
+
+ else
+ -- parse and cache
+ local ptempl, err = _M.parse(templ,false,true)
+ if not ptempl then
+ return nil, err
end
- elseif not _M.is_tag(templ) then
- return nil, "template is not a document"
+ templ_cache[templ] = ptempl
+ return ptempl
+ end
end
- return templ
+
+ if is_tag(templ) then
+ return templ
+ end
+
+ return nil, "template is not a document"
+ end
end
-local function is_data(data)
+
+do
+ local function is_data(data)
return #data == 0 or type(data[1]) ~= 'table'
-end
+ end
-local function prepare_data(data)
+
+ local function prepare_data(data)
-- a hack for ensuring that $1 maps to first element of data, etc.
-- Either this or could change the gsub call just below.
for i,v in ipairs(data) do
- data[tostring(i)] = v
+ data[tostring(i)] = v
+ end
+ end
+
+ --- create a substituted copy of a document,
+ -- @param template may be a document or a string representation which will be parsed and cached
+ -- @param data a table of name-value pairs or a list of such tables
+ -- @return an XML document
+ function Doc.subst(template, data)
+ if type(data) ~= 'table' or not next(data) then
+ return nil, "data must be a non-empty table"
end
-end
---- create a substituted copy of a document,
--- @param templ may be a document or a string representation which will be parsed and cached
--- @param data a table of name-value pairs or a list of such tables
--- @return an XML document
-function Doc.subst(templ, data)
- local err
- if type(data) ~= 'table' or not next(data) then return nil, "data must be a non-empty table" end
if is_data(data) then
- prepare_data(data)
+ prepare_data(data)
end
- templ,err = template_cache(templ)
- if err then return nil, err end
+
+ local templ, err = template_cache(template)
+ if err then
+ return nil, err
+ end
+
local function _subst(item)
- return _M.clone(templ,function(s)
- return s:gsub('%$(%w+)',item)
- end)
+ return _M.clone(templ, function(s)
+ return s:gsub('%$(%w+)', item)
+ end)
end
- if is_data(data) then return _subst(data) end
+
+ if is_data(data) then
+ return _subst(data)
+ end
+
local list = {}
- for _,item in ipairs(data) do
- prepare_data(item)
- t_insert(list,_subst(item))
+ for _, item in ipairs(data) do
+ prepare_data(item)
+ t_insert(list, _subst(item))
end
+
if data.tag then
- list = _M.elem(data.tag,list)
+ list = _M.elem(data.tag,list)
end
return list
+ end
end
---- get the first child with a given tag name.
+--- Return the first child with a given tag name (non-recursive).
-- @param tag the tag name
+-- @return the child Node found or `nil` if not found
function Doc:child_with_name(tag)
- for _, child in ipairs(self) do
- if child.tag == tag then return child; end
+ for _, child in ipairs(self) do
+ if child.tag == tag then
+ return child
end
+ end
end
-local _children_with_name
-function _children_with_name(self,tag,list,recurse)
- for _, child in ipairs(self) do if type(child) == 'table' then
- if child.tag == tag then t_insert(list,child) end
- if recurse then _children_with_name(child,tag,list,recurse) end
- end end
-end
---- get all elements in a document that have a given tag.
--- @param tag a tag name
--- @param dont_recurse optionally only return the immediate children with this tag name
--- @return a list of elements
-function Doc:get_elements_with_name(tag,dont_recurse)
+do
+ -- @param self document node to traverse
+ -- @param tag tag-name to look for
+ -- @param list array table to add the matching ones to
+ -- @param recurse if truthy, recursivly search the node
+ local function _children_with_name(self, tag, list, recurse)
+ -- TODO: protect against recursion
+ for _, child in ipairs(self) do
+ if type(child) == 'table' then
+ if child.tag == tag then
+ t_insert(list, child)
+ end
+ if recurse then
+ _children_with_name(child, tag, list, recurse)
+ end
+ end
+ end
+ end
+
+ --- Returns all elements in a document that have a given tag.
+ -- @tparam string tag a tag name
+ -- @tparam[opt=false] boolean dont_recurse optionally only return the immediate children with this tag name
+ -- @return a list of elements found, list will be empty if none was found.
+ function Doc:get_elements_with_name(tag, dont_recurse)
local res = {}
- _children_with_name(self,tag,res,not dont_recurse)
+ _children_with_name(self, tag, res, not dont_recurse)
return res
+ end
end
--- iterate over all children of a document node, including text nodes.
+
+
+--- Iterator over all children of a document node, including text nodes.
+-- This function is not recursive, so returns only direct child nodes.
+-- @return iterator that returns a single Node per iteration.
function Doc:children()
- local i = 0;
- return function (a)
- i = i + 1
- return a[i];
- end, self, i;
+ local i = 0;
+ return function (a)
+ i = i + 1
+ return a[i];
+ end, self, i;
end
--- return the first child element of a node, if it exists.
+
+--- Return the first child element of a node, if it exists.
+-- This will skip text nodes.
+-- @return first child Node or `nil` if there is none.
function Doc:first_childtag()
- if #self == 0 then return end
- for _,t in ipairs(self) do
- if type(t) == 'table' then return t end
+ if #self == 0 then
+ return
+ end
+ for _, t in ipairs(self) do
+ if is_tag(t) then
+ return t
end
+ end
end
+
+--- Iterator that matches tag names, and a namespace (non-recursive).
+-- @tparam[opt=nil] string tag tag names to return. Returns all tags if not provided.
+-- @tparam[opt=nil] string xmlns the namespace value ('xmlns' attribute) to return. If not
+-- provided will match all namespaces.
+-- @return iterator that returns a single Node per iteration.
function Doc:matching_tags(tag, xmlns)
- xmlns = xmlns or self.attr.xmlns;
- local tags = self;
- local start_i, max_i, v = 1, #tags;
- return function ()
- for i=start_i,max_i do
- v = tags[i];
- if (not tag or v.tag == tag)
- and (not xmlns or xmlns == v.attr.xmlns) then
- start_i = i+1;
- return v;
- end
- end
- end, tags, start_i;
+ -- TODO: this doesn't make sense??? namespaces are not "xmnls", as matched below
+ -- but "xmlns:name"... so should be a string-prefix match if anything...
+ xmlns = xmlns or self.attr.xmlns;
+ local tags = self
+ local next_i = 1
+ local max_i = #tags
+ local node
+ return function ()
+ for i = next_i, max_i do
+ node = tags[i];
+ if (not tag or node.tag == tag) and
+ (not xmlns or xmlns == node.attr.xmlns) then
+ next_i = i + 1
+ return node
+ end
+ end
+ end, tags, next_i
end
---- iterate over all child elements of a document node.
+
+--- Iterator over all child tags of a document node. This will skip over
+-- text nodes.
+-- @return iterator that returns a single Node per iteration.
function Doc:childtags()
- local i = 0;
- return function (a)
- local v
- repeat
- i = i + 1
- v = self[i]
- if v and type(v) == 'table' then return v; end
- until not v
- end, self[1], i;
+ local i = 0;
+ return function (a)
+ local v
+ repeat
+ i = i + 1
+ v = self[i]
+ if v and type(v) == 'table' then
+ return v
+ end
+ until not v
+ end, self[1], i;
end
---- visit child element of a node and call a function, possibility modifying the document.
--- @param callback a function passed the node (text or element). If it returns nil, that node will be removed.
--- If it returns a value, that will replace the current node.
+
+--- Visit child Nodes of a node and call a function, possibly modifying the document.
+-- Text elements will be skipped.
+-- This is not recursive, so only direct children will be passed.
+-- @tparam function callback a function with signature `function(node)`, passed the node.
+-- The element will be updated with the returned value, or deleted if it returns `nil`.
function Doc:maptags(callback)
- local is_tag = _M.is_tag
- local i = 1;
- while i <= #self do
- if is_tag(self[i]) then
- local ret = callback(self[i]);
- if ret == nil then
- t_remove(self, i);
- else
- self[i] = ret;
- i = i + 1;
- end
- end
+ local i = 1;
+
+ while i <= #self do
+ if is_tag(self[i]) then
+ local ret = callback(self[i]);
+ if ret == nil then
+ -- remove it
+ t_remove(self, i);
+
+ else
+ -- update it
+ self[i] = ret;
+ i = i + 1;
+ end
+ else
+ i = i + 1
end
- return self;
+ end
+
+ return self;
end
-local xml_escape
+
do
- local escape_table = { ["'"] = "&apos;", ["\""] = "&quot;", ["<"] = "&lt;", [">"] = "&gt;", ["&"] = "&amp;" };
- function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end
- _M.xml_escape = xml_escape;
+ local escape_table = {
+ ["'"] = "&apos;",
+ ['"'] = "&quot;",
+ ["<"] = "&lt;",
+ [">"] = "&gt;",
+ ["&"] = "&amp;",
+ }
+
+ --- Escapes a string for safe use in xml.
+ -- Handles quotes(single+double), less-than, greater-than, and ampersand.
+ -- @tparam string str string value to escape
+ -- @return escaped string
+ -- @usage
+ -- local esc = xml.xml_escape([["'<>&]]) --> "&quot;&apos;&lt;&gt;&amp;"
+ function _M.xml_escape(str)
+ return (s_gsub(str, "['&<>\"]", escape_table))
+ end
+end
+local xml_escape = _M.xml_escape
+
+do
+ local escape_table = {
+ quot = '"',
+ apos = "'",
+ lt = "<",
+ gt = ">",
+ amp = "&",
+ }
+
+ --- Unescapes a string from xml.
+ -- Handles quotes(single+double), less-than, greater-than, and ampersand.
+ -- @tparam string str string value to unescape
+ -- @return unescaped string
+ -- @usage
+ -- local unesc = xml.xml_escape("&quot;&apos;&lt;&gt;&amp;") --> [["'<>&]]
+ function _M.xml_unescape(str)
+ return (str:gsub( "&(%a+);", escape_table))
+ end
end
+local xml_unescape = _M.xml_unescape
-- pretty printing
-- if indent, then put each new tag on its own line
-- if attr_indent, put each new attribute on its own line
-local function _dostring(t, buf, self, xml_escape, parentns, idn, indent, attr_indent)
- local nsid = 0;
- local tag = t.tag
- local lf,alf = ""," "
- if indent then lf = '\n'..idn end
- if attr_indent then alf = '\n'..idn..attr_indent end
- t_insert(buf, lf.."<"..tag);
- local function write_attr(k,v)
- if s_find(k, "\1", 1, true) then
- local ns, attrk = s_match(k, "^([^\1]*)\1?(.*)$");
- nsid = nsid + 1;
- t_insert(buf, " xmlns:ns"..nsid.."='"..xml_escape(ns).."' ".."ns"..nsid..":"..attrk.."='"..xml_escape(v).."'");
- elseif not(k == "xmlns" and v == parentns) then
- t_insert(buf, alf..k.."='"..xml_escape(v).."'");
- end
- end
- -- it's useful for testing to have predictable attribute ordering, if available
- if #t.attr > 0 then
- for _,k in ipairs(t.attr) do
- write_attr(k,t.attr[k])
- end
- else
- for k, v in pairs(t.attr) do
- write_attr(k,v)
- end
+local function _dostring(t, buf, parentns, block_indent, tag_indent, attr_indent)
+ local nsid = 0
+ local tag = t.tag
+
+ local lf = ""
+ if tag_indent then
+ lf = '\n'..block_indent
+ end
+
+ local alf = " "
+ if attr_indent then
+ alf = '\n'..block_indent..attr_indent
+ end
+
+ t_insert(buf, lf.."<"..tag)
+
+ local function write_attr(k,v)
+ if s_find(k, "\1", 1, true) then
+ nsid = nsid + 1
+ local ns, attrk = s_match(k, "^([^\1]*)\1?(.*)$")
+ t_insert(buf, " xmlns:ns"..nsid.."='"..xml_escape(ns).."' ".."ns"..nsid..":"..attrk.."='"..xml_escape(v).."'")
+
+ elseif not (k == "xmlns" and v == parentns) then
+ t_insert(buf, alf..k.."='"..xml_escape(v).."'");
end
- local len,has_children = #t;
- if len == 0 then
- local out = "/>"
- if attr_indent then out = '\n'..idn..out end
- t_insert(buf, out);
- else
- t_insert(buf, ">");
- for n=1,len do
- local child = t[n];
- if child.tag then
- self(child, buf, self, xml_escape, t.attr.xmlns,idn and idn..indent, indent, attr_indent );
- has_children = true
- else -- text element
- t_insert(buf, xml_escape(child));
- end
- end
- t_insert(buf, (has_children and lf or '').."</"..tag..">");
+ end
+
+ -- it's useful for testing to have predictable attribute ordering, if available
+ if #t.attr > 0 then
+ -- TODO: the key-value list is leading, what if they are not in-sync
+ for _,k in ipairs(t.attr) do
+ write_attr(k,t.attr[k])
+ end
+ else
+ for k, v in pairs(t.attr) do
+ write_attr(k,v)
+ end
+ end
+
+ local len = #t
+ local has_children
+
+ if len == 0 then
+ t_insert(buf, attr_indent and '\n'..block_indent.."/>" or "/>")
+
+ else
+ t_insert(buf, ">");
+
+ for n = 1, len do
+ local child = t[n]
+
+ if child.tag then
+ has_children = true
+ _dostring(child, buf, t.attr.xmlns, block_indent and block_indent..tag_indent, tag_indent, attr_indent)
+
+ else
+ -- text element
+ t_insert(buf, xml_escape(child))
+ end
end
+
+ t_insert(buf, (has_children and lf or '').."</"..tag..">");
+ end
end
----- pretty-print an XML document
---- @param t an XML document
---- @param idn an initial indent (indents are all strings)
---- @param indent an indent for each level
---- @param attr_indent if given, indent each attribute pair and put on a separate line
---- @param xml force prefacing with default or custom <?xml...>
---- @return a string representation
-function _M.tostring(t,idn,indent, attr_indent, xml)
- local buf = {};
- if xml then
- if type(xml) == "string" then
- buf[1] = xml
- else
- buf[1] = "<?xml version='1.0'?>"
- end
+--- Function to pretty-print an XML document.
+-- @param doc an XML document
+-- @tparam[opt] string|int b_ind an initial block-indent (required when `t_ind` is set)
+-- @tparam[opt] string|int t_ind an tag-indent for each level (required when `a_ind` is set)
+-- @tparam[opt] string|int a_ind if given, indent each attribute pair and put on a separate line
+-- @tparam[opt] string|bool xml_preface force prefacing with default or custom <?xml...>, if truthy then `&lt;?xml version='1.0'?&gt;` will be used as default.
+-- @return a string representation
+-- @see Doc:tostring
+function _M.tostring(doc, b_ind, t_ind, a_ind, xml_preface)
+ local buf = {}
+
+ if type(b_ind) == "number" then b_ind = (" "):rep(b_ind) end
+ if type(t_ind) == "number" then t_ind = (" "):rep(t_ind) end
+ if type(a_ind) == "number" then a_ind = (" "):rep(a_ind) end
+
+ if xml_preface then
+ if type(xml_preface) == "string" then
+ buf[1] = xml_preface
+ else
+ buf[1] = "<?xml version='1.0'?>"
end
- _dostring(t, buf, _dostring, xml_escape, nil,idn,indent, attr_indent);
- return t_concat(buf);
+ end
+
+ _dostring(doc, buf, nil, b_ind, t_ind, a_ind, xml_preface)
+
+ return t_concat(buf)
end
+
Doc.__tostring = _M.tostring
---- get the full text value of an element
+
+--- Method to pretty-print an XML document.
+-- Invokes `xml.tostring`.
+-- @tparam[opt] string|int b_ind an initial indent (required when `t_ind` is set)
+-- @tparam[opt] string|int t_ind an indent for each level (required when `a_ind` is set)
+-- @tparam[opt] string|int a_ind if given, indent each attribute pair and put on a separate line
+-- @tparam[opt="&lt;?xml version='1.0'?&gt;"] string xml_preface force prefacing with default or custom <?xml...>
+-- @return a string representation
+-- @see xml.tostring
+function Doc:tostring(b_ind, t_ind, a_ind, xml_preface)
+ return _M.tostring(self, b_ind, t_ind, a_ind, xml_preface)
+end
+
+
+--- get the full text value of an element.
+-- @return a single string with all text elements concatenated
+-- @usage
+-- local doc = xml.new("main")
+-- doc:text("one")
+-- doc:add_child(xml.elem "two")
+-- doc:text("three")
+--
+-- local t = doc:get_text() --> "onethree"
function Doc:get_text()
- local res = {}
- for i,el in ipairs(self) do
- if is_text(el) then t_insert(res,el) end
- end
- return t_concat(res);
+ local res = {}
+ for i,el in ipairs(self) do
+ if is_text(el) then t_insert(res,el) end
+ end
+ return t_concat(res);
end
---- make a copy of a document
--- @param doc the original document
--- @param strsubst an optional function for handling string copying which could do substitution, etc.
-function _M.clone(doc, strsubst)
- local lookup_table = {};
- local function _copy(object,kind,parent)
- if type(object) ~= "table" then
- if strsubst and is_text(object) then return strsubst(object,kind,parent)
- else return object
- end
- elseif lookup_table[object] then
- return lookup_table[object]
- end
- local new_table = {};
- lookup_table[object] = new_table
- local tag = object.tag
- new_table.tag = _copy(tag,'*TAG',parent)
- if object.attr then
- local res = {}
- for attr,value in pairs(object.attr) do
- res[attr] = _copy(value,attr,object)
- end
- new_table.attr = res
- end
- for index = 1,#object do
- local v = _copy(object[index],'*TEXT',object)
- t_insert(new_table,v)
+
+do
+ local function _copy(object, kind, parent, strsubst, lookup_table)
+ if type(object) ~= "table" then
+ if strsubst and is_text(object) then
+ return strsubst(object, kind, parent)
+ else
+ return object
+ end
+ end
+
+ if lookup_table[object] then
+ error("recursion detected")
+ end
+ lookup_table[object] = true
+
+ local new_table = {}
+ lookup_table[object] = new_table
+
+ local tag = object.tag
+ new_table.tag = _copy(tag, '*TAG', parent, strsubst, lookup_table)
+
+ if object.attr then
+ local res = {}
+ for attr, value in pairs(object.attr) do
+ if type(attr) == "string" then
+ res[attr] = _copy(value, attr, object, strsubst, lookup_table)
end
- return setmetatable(new_table, getmetatable(object))
+ end
+ new_table.attr = res
end
- return _copy(doc)
+ for index = 1, #object do
+ local v = _copy(object[index], '*TEXT', object, strsubst, lookup_table)
+ t_insert(new_table,v)
+ end
+
+ return setmetatable(new_table, getmetatable(object))
+ end
+
+ --- Returns a copy of a document.
+ -- The `strsubst` parameter is a callback with signature `function(object, kind, parent)`.
+ --
+ -- Param `kind` has the following values, and parameters:
+ --
+ -- - `"*TAG"`: `object` is the tag-name, `parent` is the Node object. Returns the new tag name.
+ --
+ -- - `"*TEXT"`: `object` is the text-element, `parent` is the Node object. Returns the new text value.
+ --
+ -- - other strings not prefixed with `*`: `kind` is the attribute name, `object` is the
+ -- attribute value, `parent` is the Node object. Returns the new attribute value.
+ --
+ -- @tparam Node|string doc a Node object or string (text node)
+ -- @tparam[opt] function strsubst an optional function for handling string copying
+ -- which could do substitution, etc.
+ -- @return copy of the document
+ -- @see Doc:filter
+ function _M.clone(doc, strsubst)
+ return _copy(doc, nil, nil, strsubst, {})
+ end
end
+
+--- Returns a copy of a document.
+-- This is the method version of `xml.clone`.
+-- @see xml.clone
+-- @name Doc:filter
+-- @tparam[opt] function strsubst an optional function for handling string copying
Doc.filter = _M.clone -- also available as method
---- compare two documents.
--- @param t1 any value
--- @param t2 any value
-function _M.compare(t1,t2)
+do
+ local function _compare(t1, t2, recurse_check)
+
local ty1 = type(t1)
local ty2 = type(t2)
- if ty1 ~= ty2 then return false, 'type mismatch' end
+
+ if ty1 ~= ty2 then
+ return false, 'type mismatch'
+ end
+
if ty1 == 'string' then
- return t1 == t2 and true or 'text '..t1..' ~= text '..t2
+ if t1 == t2 then
+ return true
+ else
+ return false, 'text '..t1..' ~= text '..t2
+ end
+ end
+
+ if ty1 ~= 'table' or ty2 ~= 'table' then
+ return false, 'not a document'
+ end
+
+ if recurse_check[t1] then
+ return false, "recursive document"
+ end
+ recurse_check[t1] = true
+
+ if t1.tag ~= t2.tag then
+ return false, 'tag '..t1.tag..' ~= tag '..t2.tag
+ end
+
+ if #t1 ~= #t2 then
+ return false, 'size '..#t1..' ~= size '..#t2..' for tag '..t1.tag
end
- if ty1 ~= 'table' or ty2 ~= 'table' then return false, 'not a document' end
- if t1.tag ~= t2.tag then return false, 'tag '..t1.tag..' ~= tag '..t2.tag end
- if #t1 ~= #t2 then return false, 'size '..#t1..' ~= size '..#t2..' for tag '..t1.tag end
+
-- compare attributes
for k,v in pairs(t1.attr) do
- if t2.attr[k] ~= v then return false, 'mismatch attrib' end
+ local t2_value = t2.attr[k]
+ if type(k) == "string" then
+ if t2_value ~= v then return false, 'mismatch attrib' end
+ else
+ if t2_value ~= nil and t2_value ~= v then return false, "mismatch attrib order" end
+ end
end
for k,v in pairs(t2.attr) do
- if t1.attr[k] ~= v then return false, 'mismatch attrib' end
+ local t1_value = t1.attr[k]
+ if type(k) == "string" then
+ if t1_value ~= v then return false, 'mismatch attrib' end
+ else
+ if t1_value ~= nil and t1_value ~= v then return false, "mismatch attrib order" end
+ end
end
+
-- compare children
- for i = 1,#t1 do
- local yes,err = _M.compare(t1[i],t2[i])
- if not yes then return err end
+ for i = 1, #t1 do
+ local ok, err = _compare(t1[i], t2[i], recurse_check)
+ if not ok then
+ return ok, err
+ end
end
return true
+ end
+
+ --- Compare two documents or elements.
+ -- Equality is based on tag, child nodes (text and tags), attributes and order
+ -- of those (order only fails if both are given, and not equal).
+ -- @tparam Node|string t1 a Node object or string (text node)
+ -- @tparam Node|string t2 a Node object or string (text node)
+ -- @treturn boolean `true` when the Nodes are equal.
+ function _M.compare(t1,t2)
+ return _compare(t1, t2, {})
+ end
end
+
--- is this value a document element?
-- @param d any value
-function _M.is_tag(d)
- return type(d) == 'table' and is_text(d.tag)
-end
+-- @treturn boolean `true` if it is a `table` with property `tag` being a string value.
+-- @name is_tag
+_M.is_tag = is_tag
+
---- call the desired function recursively over the document.
--- @param doc the document
--- @param depth_first visit child notes first, then the current node
--- @param operation a function which will receive the current tag name and current node.
-function _M.walk (doc, depth_first, operation)
- if not depth_first then operation(doc.tag,doc) end
+do
+ local function _walk(doc, depth_first, operation, recurse_check)
+ if not depth_first then operation(doc.tag, doc) end
for _,d in ipairs(doc) do
- if _M.is_tag(d) then
- _M.walk(d,depth_first,operation)
- end
+ if is_tag(d) then
+ assert(not recurse_check[d], "recursion detected")
+ recurse_check[d] = true
+ _walk(d, depth_first, operation, recurse_check)
+ end
end
- if depth_first then operation(doc.tag,doc) end
+ if depth_first then operation(doc.tag, doc) end
+ end
+
+ --- Calls a function recursively over Nodes in the document.
+ -- Will only call on tags, it will skip text nodes.
+ -- The function signature for `operation` is `function(tag_name, Node)`.
+ -- @tparam Node|string doc a Node object or string (text node)
+ -- @tparam boolean depth_first visit child nodes first, then the current node
+ -- @tparam function operation a function which will receive the current tag name and current node.
+ function _M.walk(doc, depth_first, operation)
+ return _walk(doc, depth_first, operation, {})
+ end
end
+
local html_empty_elements = { --lists all HTML empty (void) elements
br = true,
img = true,
@@ -553,13 +940,10 @@ local html_empty_elements = { --lists all HTML empty (void) elements
embed = true,
}
-local escapes = { quot = "\"", apos = "'", lt = "<", gt = ">", amp = "&" }
-local function unescape(str) return (str:gsub( "&(%a+);", escapes)); end
-
--- Parse a well-formed HTML file as a string.
-- Tags are case-insenstive, DOCTYPE is ignored, and empty elements can be .. empty.
-- @param s the HTML
-function _M.parsehtml (s)
+function _M.parsehtml(s)
return _M.basic_parse(s,false,true)
end
@@ -567,9 +951,7 @@ end
-- @param s the XML document to be parsed.
-- @param all_text if true, preserves all whitespace. Otherwise only text containing non-whitespace is included.
-- @param html if true, uses relaxed HTML rules for parsing
-function _M.basic_parse(s,all_text,html)
- local t_insert,t_remove = table.insert,table.remove
- local s_find,s_sub = string.find,string.sub
+function _M.basic_parse(s, all_text, html)
local stack = {}
local top = {}
@@ -577,12 +959,12 @@ function _M.basic_parse(s,all_text,html)
local arg = {}
s:gsub("([%w:%-_]+)%s*=%s*([\"'])(.-)%2", function (w, _, a)
if html then w = w:lower() end
- arg[w] = unescape(a)
+ arg[w] = xml_unescape(a)
end)
if html then
s:gsub("([%w:%-_]+)%s*=%s*([^\"']+)%s*", function (w, a)
w = w:lower()
- arg[w] = unescape(a)
+ arg[w] = xml_unescape(a)
end)
end
return arg
@@ -617,7 +999,7 @@ function _M.basic_parse(s,all_text,html)
if html_empty_elements[label] then empty = "/" end
end
if all_text or not s_find(text, "^%s*$") then
- t_insert(top, unescape(text))
+ t_insert(top, xml_unescape(text))
end
if empty == "/" then -- empty element tag
t_insert(top, setmetatable({tag=label, attr=parseargs(xarg), empty=1},Doc))
@@ -640,7 +1022,7 @@ function _M.basic_parse(s,all_text,html)
end
local text = s_sub(s, i)
if all_text or not s_find(text, "^%s*$") then
- t_insert(stack[#stack], unescape(text))
+ t_insert(stack[#stack], xml_unescape(text))
end
if #stack > 1 then
error("unclosed "..stack[#stack].tag)
@@ -649,145 +1031,151 @@ function _M.basic_parse(s,all_text,html)
return is_text(res[1]) and res[2] or res[1]
end
-local function empty(attr) return not attr or not next(attr) end
-local function is_element(d) return type(d) == 'table' and d.tag ~= nil end
+do
+ local match do
--- returns the key,value pair from a table if it has exactly one entry
-local function has_one_element(t)
- local key,value = next(t)
- if next(t,key) ~= nil then return false end
- return key,value
-end
+ local function empty(attr) return not attr or not next(attr) end
-local function append_capture(res,tbl)
- if not empty(tbl) then -- no point in capturing empty tables...
- local key
- if tbl._ then -- if $_ was set then it is meant as the top-level key for the captured table
- key = tbl._
- tbl._ = nil
- if empty(tbl) then return end
- end
- -- a table with only one pair {[0]=value} shall be reduced to that value
- local numkey,val = has_one_element(tbl)
- if numkey == 0 then tbl = val end
- if key then
- res[key] = tbl
- else -- otherwise, we append the captured table
- t_insert(res,tbl)
- end
+ local append_capture do
+ -- returns the key,value pair from a table if it has exactly one entry
+ local function has_one_element(t)
+ local key,value = next(t)
+ if next(t,key) ~= nil then return false end
+ return key,value
+ end
+
+ function append_capture(res,tbl)
+ if not empty(tbl) then -- no point in capturing empty tables...
+ local key
+ if tbl._ then -- if $_ was set then it is meant as the top-level key for the captured table
+ key = tbl._
+ tbl._ = nil
+ if empty(tbl) then return end
+ end
+ -- a table with only one pair {[0]=value} shall be reduced to that value
+ local numkey,val = has_one_element(tbl)
+ if numkey == 0 then tbl = val end
+ if key then
+ res[key] = tbl
+ else -- otherwise, we append the captured table
+ t_insert(res,tbl)
+ end
+ end
+ end
end
-end
-local function make_number(pat)
- if pat:find '^%d+$' then -- $1 etc means use this as an array location
- pat = tonumber(pat)
+ local function make_number(pat)
+ if pat:find '^%d+$' then -- $1 etc means use this as an array location
+ pat = tonumber(pat)
+ end
+ return pat
end
- return pat
-end
-local function capture_attrib(res,pat,value)
- pat = make_number(pat:sub(2))
- res[pat] = value
- return true
-end
+ local function capture_attrib(res,pat,value)
+ pat = make_number(pat:sub(2))
+ res[pat] = value
+ return true
+ end
-local match
-function match(d,pat,res,keep_going)
- local ret = true
- if d == nil then d = '' end --return false end
- -- attribute string matching is straight equality, except if the pattern is a $ capture,
- -- which always succeeds.
- if is_text(d) then
- if not is_text(pat) then return false end
- if _M.debug then print(d,pat) end
- if pat:find '^%$' then
- return capture_attrib(res,pat,d)
+ function match(d,pat,res,keep_going)
+ local ret = true
+ if d == nil then d = '' end --return false end
+ -- attribute string matching is straight equality, except if the pattern is a $ capture,
+ -- which always succeeds.
+ if is_text(d) then
+ if not is_text(pat) then return false end
+ if _M.debug then print(d,pat) end
+ if pat:find '^%$' then
+ return capture_attrib(res,pat,d)
+ else
+ return d == pat
+ end
else
- return d == pat
- end
- else
- if _M.debug then print(d.tag,pat.tag) end
- -- this is an element node. For a match to succeed, the attributes must
- -- match as well.
- -- a tagname in the pattern ending with '-' is a wildcard and matches like an attribute
- local tagpat = pat.tag:match '^(.-)%-$'
- if tagpat then
- tagpat = make_number(tagpat)
- res[tagpat] = d.tag
- end
- if d.tag == pat.tag or tagpat then
-
- if not empty(pat.attr) then
- if empty(d.attr) then ret = false
- else
- for prop,pval in pairs(pat.attr) do
- local dval = d.attr[prop]
- if not match(dval,pval,res) then ret = false; break end
- end
- end
+ if _M.debug then print(d.tag,pat.tag) end
+ -- this is an element node. For a match to succeed, the attributes must
+ -- match as well.
+ -- a tagname in the pattern ending with '-' is a wildcard and matches like an attribute
+ local tagpat = pat.tag:match '^(.-)%-$'
+ if tagpat then
+ tagpat = make_number(tagpat)
+ res[tagpat] = d.tag
end
- -- the pattern may have child nodes. We match partially, so that {P1,P2} shall match {X,P1,X,X,P2,..}
- if ret and #pat > 0 then
- local i,j = 1,1
- local function next_elem()
- j = j + 1 -- next child element of data
- if is_text(d[j]) then j = j + 1 end
- return j <= #d
- end
- repeat
- local p = pat[i]
- -- repeated {{<...>}} patterns shall match one or more elements
- -- so e.g. {P+} will match {X,X,P,P,X,P,X,X,X}
- if is_element(p) and p.repeated then
- local found
- repeat
- local tbl = {}
- ret = match(d[j],p,tbl,false)
- if ret then
- found = false --true
- append_capture(res,tbl)
- end
- until not next_elem() or (found and not ret)
- i = i + 1
+ if d.tag == pat.tag or tagpat then
+
+ if not empty(pat.attr) then
+ if empty(d.attr) then ret = false
else
- ret = match(d[j],p,res,false)
- if ret then i = i + 1 end
+ for prop,pval in pairs(pat.attr) do
+ local dval = d.attr[prop]
+ if not match(dval,pval,res) then ret = false; break end
+ end
end
- until not next_elem() or i > #pat -- run out of elements or patterns to match
- -- if every element in our pattern matched ok, then it's been a successful match
- if i > #pat then return true end
+ end
+ -- the pattern may have child nodes. We match partially, so that {P1,P2} shall match {X,P1,X,X,P2,..}
+ if ret and #pat > 0 then
+ local i,j = 1,1
+ local function next_elem()
+ j = j + 1 -- next child element of data
+ if is_text(d[j]) then j = j + 1 end
+ return j <= #d
+ end
+ repeat
+ local p = pat[i]
+ -- repeated {{<...>}} patterns shall match one or more elements
+ -- so e.g. {P+} will match {X,X,P,P,X,P,X,X,X}
+ if is_tag(p) and p.repeated then
+ local found
+ repeat
+ local tbl = {}
+ ret = match(d[j],p,tbl,false)
+ if ret then
+ found = false --true
+ append_capture(res,tbl)
+ end
+ until not next_elem() or (found and not ret)
+ i = i + 1
+ else
+ ret = match(d[j],p,res,false)
+ if ret then i = i + 1 end
+ end
+ until not next_elem() or i > #pat -- run out of elements or patterns to match
+ -- if every element in our pattern matched ok, then it's been a successful match
+ if i > #pat then return true end
+ end
+ if ret then return true end
+ else
+ ret = false
end
- if ret then return true end
- else
- ret = false
- end
- -- keep going anyway - look at the children!
- if keep_going then
- for child in d:childtags() do
- ret = match(child,pat,res,keep_going)
- if ret then break end
+ -- keep going anyway - look at the children!
+ if keep_going then
+ for child in d:childtags() do
+ ret = match(child,pat,res,keep_going)
+ if ret then break end
+ end
end
end
+ return ret
end
- return ret
-end
+ end
-function Doc:match(pat)
- local err
- pat,err = template_cache(pat)
- if not pat then return nil, err end
- _M.walk(pat,false,function(_,d)
- if is_text(d[1]) and is_element(d[2]) and is_text(d[3]) and
- d[1]:find '%s*{{' and d[3]:find '}}%s*' then
- t_remove(d,1)
- t_remove(d,2)
- d[1].repeated = true
- end
- end)
+ --- does something...
+ function Doc:match(pat)
+ local err
+ pat,err = template_cache(pat)
+ if not pat then return nil, err end
+ _M.walk(pat,false,function(_,d)
+ if is_text(d[1]) and is_tag(d[2]) and is_text(d[3]) and
+ d[1]:find '%s*{{' and d[3]:find '}}%s*' then
+ t_remove(d,1)
+ t_remove(d,2)
+ d[1].repeated = true
+ end
+ end)
- local res = {}
- local ret = match(self,pat,res,true)
- return res,ret
+ local res = {}
+ local ret = match(self,pat,res,true)
+ return res,ret
+ end
end
@@ -1416,14 +1804,14 @@ do
error('bad cell specifier: '..s)
end
- --- parse a spreadsheet range.
- -- The range can be specified either as 'A1:B2' or 'R1C1:R2C2';
- -- a special case is a single element (e.g 'A1' or 'R1C1')
+ --- parse a spreadsheet range or cell.
+ -- The range/cell can be specified either as 'A1:B2' or 'R1C1:R2C2' or for
+ -- single cells as 'A1' or 'R1C1'.
-- @string s a range (case insensitive).
-- @treturn int start row
-- @treturn int start col
- -- @treturn int end row
- -- @treturn int end col
+ -- @treturn int end row (or `nil` if the range was a single cell)
+ -- @treturn int end col (or `nil` if the range was a single cell)
function array2d.parse_range (s)
assert_arg(1,s,'string')
s = s:upper()
@@ -1439,15 +1827,11 @@ do
end
end
---- get a slice of a 2D array using spreadsheet range notation. @see parse_range
--- @array2d t a 2D array
--- @string rstr range expression
--- @return a slice
--- @see array2d.parse_range
--- @see array2d.slice
-function array2d.range (t,rstr)
- assert_arg(1,t,'table')
- return array2d.slice(t,array2d.parse_range(rstr))
+--- get a slice of a 2D array.
+-- Same as `slice`.
+-- @see slice
+function array2d.range (...)
+ return array2d.slice(...)
end
local default_range do
@@ -1465,12 +1849,16 @@ local default_range do
-- Negative indices will be counted from the end, too low, or too high
-- will be limited by the array sizes.
-- @array2d t a 2D array
- -- @int i1 start row (default 1)
- -- @int j1 start col (default 1)
- -- @int i2 end row (default N)
- -- @int j2 end col (default M)
- -- return i1, j1, i2, j2
+ -- @tparam[opt=1] int|string i1 start row or spreadsheet range passed to `parse_range`
+ -- @tparam[opt=1] int j1 start col
+ -- @tparam[opt=N] int i2 end row
+ -- @tparam[opt=M] int j2 end col
+ -- @see parse_range
+ -- @return i1, j1, i2, j2
function array2d.default_range (t,i1,j1,i2,j2)
+ if (type(i1) == 'string') and not (j1 or i2 or j2) then
+ i1, j1, i2, j2 = array2d.parse_range(i1)
+ end
local nr, nc = array2d.size(t)
i1 = norm_value(i1 or 1, nr)
j1 = norm_value(j1 or 1, nc)
@@ -1484,10 +1872,11 @@ end
--- get a slice of a 2D array. Note that if the specified range has
-- a 1D result, the rank of the result will be 1.
-- @array2d t a 2D array
--- @int i1 start row (default 1)
--- @int j1 start col (default 1)
--- @int i2 end row (default N)
--- @int j2 end col (default M)
+-- @tparam[opt=1] int|string i1 start row or spreadsheet range passed to `parse_range`
+-- @tparam[opt=1] int j1 start col
+-- @tparam[opt=N] int i2 end row
+-- @tparam[opt=M] int j2 end col
+-- @see parse_range
-- @return an array, 2D in general but 1D in special cases.
function array2d.slice (t,i1,j1,i2,j2)
assert_arg(1,t,'table')
@@ -1513,10 +1902,11 @@ end
--- set a specified range of an array to a value.
-- @array2d t a 2D array
-- @param value the value (may be a function, called as `val(i,j)`)
--- @int i1 start row (default 1)
--- @int j1 start col (default 1)
--- @int i2 end row (default N)
--- @int j2 end col (default M)
+-- @tparam[opt=1] int|string i1 start row or spreadsheet range passed to `parse_range`
+-- @tparam[opt=1] int j1 start col
+-- @tparam[opt=N] int i2 end row
+-- @tparam[opt=M] int j2 end col
+-- @see parse_range
-- @see tablex.set
function array2d.set (t,value,i1,j1,i2,j2)
i1,j1,i2,j2 = default_range(t,i1,j1,i2,j2)
@@ -1537,10 +1927,11 @@ end
-- @array2d t a 2D array
-- @param f a file object (default stdout)
-- @string fmt a format string (default is just to use tostring)
--- @int i1 start row (default 1)
--- @int j1 start col (default 1)
--- @int i2 end row (default N)
--- @int j2 end col (default M)
+-- @tparam[opt=1] int|string i1 start row or spreadsheet range passed to `parse_range`
+-- @tparam[opt=1] int j1 start col
+-- @tparam[opt=N] int i2 end row
+-- @tparam[opt=M] int j2 end col
+-- @see parse_range
function array2d.write (t,f,fmt,i1,j1,i2,j2)
assert_arg(1,t,'table')
f = f or stdout
@@ -1560,10 +1951,11 @@ end
-- @array2d t 2D array
-- @func row_op function to call on each value; `row_op(row,j)`
-- @func end_row_op function to call at end of each row; `end_row_op(i)`
--- @int i1 start row (default 1)
--- @int j1 start col (default 1)
--- @int i2 end row (default N)
--- @int j2 end col (default M)
+-- @tparam[opt=1] int|string i1 start row or spreadsheet range passed to `parse_range`
+-- @tparam[opt=1] int j1 start col
+-- @tparam[opt=N] int i2 end row
+-- @tparam[opt=M] int j2 end col
+-- @see parse_range
function array2d.forall (t,row_op,end_row_op,i1,j1,i2,j2)
assert_arg(1,t,'table')
i1,j1,i2,j2 = default_range(t,i1,j1,i2,j2)
@@ -1581,10 +1973,11 @@ end
-- @int di start row in dest
-- @int dj start col in dest
-- @array2d src a 2D array
--- @int i1 start row (default 1)
--- @int j1 start col (default 1)
--- @int i2 end row (default N)
--- @int j2 end col (default M)
+-- @tparam[opt=1] int|string i1 start row or spreadsheet range passed to `parse_range`
+-- @tparam[opt=1] int j1 start col
+-- @tparam[opt=N] int i2 end row
+-- @tparam[opt=M] int j2 end col
+-- @see parse_range
function array2d.move (dest,di,dj,src,i1,j1,i2,j2)
assert_arg(1,dest,'table')
assert_arg(4,src,'table')
@@ -1604,10 +1997,11 @@ end
--- iterate over all elements in a 2D array, with optional indices.
-- @array2d a 2D array
-- @bool indices with indices (default false)
--- @int i1 start row (default 1)
--- @int j1 start col (default 1)
--- @int i2 end row (default N)
--- @int j2 end col (default M)
+-- @tparam[opt=1] int|string i1 start row or spreadsheet range passed to `parse_range`
+-- @tparam[opt=1] int j1 start col
+-- @tparam[opt=N] int i2 end row
+-- @tparam[opt=M] int j2 end col
+-- @see parse_range
-- @return either `value` or `i,j,value` depending on the value of `indices`
function array2d.iter(a,indices,i1,j1,i2,j2)
assert_arg(1,a,'table')
@@ -1647,7 +2041,7 @@ function array2d.columns(a)
end
--- iterate over all rows.
--- Returns a copy of the row, for read-only purrposes directly iterating
+-- Returns a copy of the row, for read-only purposes directly iterating
-- is more performant; `ipairs(a)`
-- @array2d a a 2D array
-- @return row, row-index
@@ -2129,7 +2523,7 @@ end
-- See `utils.unpack` for a version that is nil-safe.
-- @param t table to unpack
-- @param[opt] i index from which to start unpacking, defaults to 1
--- @param[opt] t index of the last element to unpack, defaults to #t
+-- @param[opt] j index of the last element to unpack, defaults to #t
-- @return multiple return values from the table
-- @function table.unpack
-- @see utils.unpack
@@ -2191,7 +2585,7 @@ end
-- @param ... any arguments
if not warn then -- luacheck: ignore
local enabled = false
- function warn(arg1, ...) -- luacheck: ignore
+ local function warn(arg1, ...) -- luacheck: ignore
if type(arg1) == "string" and arg1:sub(1, 1) == "@" then
-- control message
if arg1 == "@on" then
@@ -2209,6 +2603,8 @@ if not warn then -- luacheck: ignore
io.stderr:write("\n")
end
end
+ -- use rawset to bypass OpenResty's protection of global scope
+ rawset(_G, "warn", warn)
end
return compat
@@ -4122,7 +4518,7 @@ end
--- Return a list of all file names within an array which match a pattern.
-- @tab filenames An array containing file names.
--- @string pattern A shell pattern.
+-- @string pattern A shell pattern (see `fnmatch`).
-- @treturn List(string) List of matching file names.
-- @raise dir and mask must be strings
function dir.filter(filenames,pattern)
@@ -4152,11 +4548,12 @@ local function _listfiles(dirname,filemode,match)
end
--- return a list of all files in a directory which match a shell pattern.
--- @string dirname A directory. If not given, all files in current directory are returned.
--- @string mask A shell pattern. If not given, all files are returned.
+-- @string[opt='.'] dirname A directory.
+-- @string[opt] mask A shell pattern (see `fnmatch`). If not given, all files are returned.
-- @treturn {string} list of files
-- @raise dirname and mask must be strings
function dir.getfiles(dirname,mask)
+ dirname = dirname or '.'
assert_dir(1,dirname)
if mask then assert_string(2,mask) end
local match
@@ -4170,10 +4567,11 @@ function dir.getfiles(dirname,mask)
end
--- return a list of all subdirectories of the directory.
--- @string dirname A directory
+-- @string[opt='.'] dirname A directory.
-- @treturn {string} a list of directories
--- @raise dir must be a a valid directory
+-- @raise dir must be a valid directory
function dir.getdirectories(dirname)
+ dirname = dirname or '.'
assert_dir(1,dirname)
return _listfiles(dirname,false)
end
@@ -4567,13 +4965,14 @@ function dir.dirtree( d )
end
---- Recursively returns all the file starting at _path_. It can optionally take a shell pattern and
--- only returns files that match _shell_pattern_. If a pattern is given it will do a case insensitive search.
--- @string start_path A directory. If not given, all files in current directory are returned.
--- @string shell_pattern A shell pattern. If not given, all files are returned.
--- @treturn List(string) containing all the files found recursively starting at _path_ and filtered by _shell_pattern_.
+--- Recursively returns all the file starting at 'path'. It can optionally take a shell pattern and
+-- only returns files that match 'shell_pattern'. If a pattern is given it will do a case insensitive search.
+-- @string[opt='.'] start_path A directory.
+-- @string[opt='*'] shell_pattern A shell pattern (see `fnmatch`).
+-- @treturn List(string) containing all the files found recursively starting at 'path' and filtered by 'shell_pattern'.
-- @raise start_path must be a directory
function dir.getallfiles( start_path, shell_pattern )
+ start_path = start_path or '.'
assert_dir(1,start_path)
shell_pattern = shell_pattern or "*"
@@ -5113,7 +5512,7 @@ return function(env)
if prevenvmt then
_prev_index = prevenvmt.__index
if prevenvmt.__newindex then
- gmt.__index = prevenvmt.__newindex
+ gmt.__newindex = prevenvmt.__newindex
end
end
@@ -5634,7 +6033,7 @@ function lapp.process_options_string(str,args)
local enump = '|' .. enums .. '|'
vtype = 'string'
constraint = function(s)
- lapp.assert(enump:match('|'..s..'|'),
+ lapp.assert(enump:find('|'..s..'|', 1, true),
"value '"..s.."' not in "..enums
)
end
@@ -10428,9 +10827,10 @@ end,
--
-- See @{03-strings.md|the Guide}
--
--- Dependencies: `pl.utils`
+-- Dependencies: `pl.utils`, `pl.types`
-- @module pl.stringx
local utils = require 'pl.utils'
+local is_callable = require 'pl.types'.is_callable
local string = string
local find = string.find
local type,setmetatable,ipairs = type,setmetatable,ipairs
@@ -10441,10 +10841,13 @@ local sub = string.sub
local reverse = string.reverse
local concat = table.concat
local append = table.insert
+local remove = table.remove
local escape = utils.escape
local ceil, max = math.ceil, math.max
local assert_arg,usplit = utils.assert_arg,utils.split
local lstrip
+local unpack = utils.unpack
+local pack = utils.pack
local function assert_string (n,s)
assert_arg(n,s,'string')
@@ -10489,7 +10892,8 @@ function stringx.isalnum(s)
return find(s,'^%w+$') == 1
end
---- does s only contain spaces?
+--- does s only contain whitespace?
+-- Matches on pattern '%s' so matches space, newline, tabs, etc.
-- @string s a string
function stringx.isspace(s)
assert_string(1,s)
@@ -10631,10 +11035,14 @@ end
-- @usage stringx.expandtabs('\tone,two,three', 4) == ' one,two,three'
-- @usage stringx.expandtabs(' \tone,two,three', 4) == ' one,two,three'
function stringx.expandtabs(s,tabsize)
- assert_string(1,s)
- tabsize = tabsize or 8
- return (s:gsub("([^\t\r\n]*)\t", function(before_tab)
+ assert_string(1,s)
+ tabsize = tabsize or 8
+ return (s:gsub("([^\t\r\n]*)\t", function(before_tab)
+ if tabsize == 0 then
+ return before_tab
+ else
return before_tab .. (" "):rep(tabsize - #before_tab % tabsize)
+ end
end))
end
@@ -10808,36 +11216,37 @@ local function _strip(s,left,right,chrs)
return sub(s,f,t)
end
---- trim any whitespace on the left of s.
+--- trim any characters on the left of s.
-- @string s the string
-- @string[opt='%s'] chrs default any whitespace character,
--- but can be a string of characters to be trimmed
+-- but can be a string of characters to be trimmed
function stringx.lstrip(s,chrs)
assert_string(1,s)
return _strip(s,true,false,chrs)
end
lstrip = stringx.lstrip
---- trim any whitespace on the right of s.
+--- trim any characters on the right of s.
-- @string s the string
-- @string[opt='%s'] chrs default any whitespace character,
--- but can be a string of characters to be trimmed
+-- but can be a string of characters to be trimmed
function stringx.rstrip(s,chrs)
assert_string(1,s)
return _strip(s,false,true,chrs)
end
---- trim any whitespace on both left and right of s.
+--- trim any characters on both left and right of s.
-- @string s the string
-- @string[opt='%s'] chrs default any whitespace character,
--- but can be a string of characters to be trimmed
+-- but can be a string of characters to be trimmed
+-- @usage stringx.strip(' --== Hello ==-- ', "- =") --> 'Hello'
function stringx.strip(s,chrs)
assert_string(1,s)
return _strip(s,true,true,chrs)
end
---- Partioning Strings
--- @section partioning
+--- Partitioning Strings
+-- @section partitioning
--- split a string using a pattern. Note that at least one value will be returned!
-- @string s the string
@@ -10864,7 +11273,7 @@ end
--- partition the string using first occurance of a delimiter
-- @string s the string
--- @string ch delimiter
+-- @string ch delimiter (match as plain string, no patterns)
-- @return part before ch
-- @return ch
-- @return part after ch
@@ -10878,7 +11287,7 @@ end
--- partition the string p using last occurance of a delimiter
-- @string s the string
--- @string ch delimiter
+-- @string ch delimiter (match as plain string, no patterns)
-- @return part before ch
-- @return ch
-- @return part after ch
@@ -10904,6 +11313,250 @@ function stringx.at(s,idx)
return sub(s,idx,idx)
end
+
+--- Text handling
+-- @section text
+
+
+--- indent a multiline string.
+-- @tparam string s the (multiline) string
+-- @tparam integer n the size of the indent
+-- @tparam[opt=' '] string ch the character to use when indenting
+-- @return indented string
+function stringx.indent (s,n,ch)
+ assert_arg(1,s,'string')
+ assert_arg(2,n,'number')
+ local lines = usplit(s ,'\n')
+ local prefix = string.rep(ch or ' ',n)
+ for i, line in ipairs(lines) do
+ lines[i] = prefix..line
+ end
+ return concat(lines,'\n')..'\n'
+end
+
+
+--- dedent a multiline string by removing any initial indent.
+-- useful when working with [[..]] strings.
+-- Empty lines are ignored.
+-- @tparam string s the (multiline) string
+-- @return a string with initial indent zero.
+-- @usage
+-- local s = dedent [[
+-- One
+--
+-- Two
+--
+-- Three
+-- ]]
+-- assert(s == [[
+-- One
+--
+-- Two
+--
+-- Three
+-- ]])
+function stringx.dedent (s)
+ assert_arg(1,s,'string')
+ local lst = usplit(s,'\n')
+ if #lst>0 then
+ local ind_size = math.huge
+ for i, line in ipairs(lst) do
+ local i1, i2 = lst[i]:find('^%s*[^%s]')
+ if i1 and i2 < ind_size then
+ ind_size = i2
+ end
+ end
+ for i, line in ipairs(lst) do
+ lst[i] = lst[i]:sub(ind_size, -1)
+ end
+ end
+ return concat(lst,'\n')..'\n'
+end
+
+
+
+do
+ local buildline = function(words, size, breaklong)
+ -- if overflow is set, a word longer than size, will overflow the size
+ -- otherwise it will be chopped in line-length pieces
+ local line = {}
+ if #words[1] > size then
+ -- word longer than line
+ if not breaklong then
+ line[1] = words[1]
+ remove(words, 1)
+ else
+ line[1] = words[1]:sub(1, size)
+ words[1] = words[1]:sub(size + 1, -1)
+ end
+ else
+ local len = 0
+ while words[1] and (len + #words[1] <= size) or
+ (len == 0 and #words[1] == size) do
+ if words[1] ~= "" then
+ line[#line+1] = words[1]
+ len = len + #words[1] + 1
+ end
+ remove(words, 1)
+ end
+ end
+ return stringx.strip(concat(line, " ")), words
+ end
+
+ --- format a paragraph into lines so that they fit into a line width.
+ -- It will not break long words by default, so lines can be over the length
+ -- to that extent.
+ -- @tparam string s the string to format
+ -- @tparam[opt=70] integer width the margin width
+ -- @tparam[opt=false] boolean breaklong if truthy, words longer than the width given will be forced split.
+ -- @return a list of lines (List object), use `fill` to return a string instead of a `List`.
+ -- @see pl.List
+ -- @see fill
+ stringx.wrap = function(s, width, breaklong)
+ s = s:gsub('\n',' ') -- remove line breaks
+ s = stringx.strip(s) -- remove leading/trailing whitespace
+ if s == "" then
+ return { "" }
+ end
+ width = width or 70
+ local out = {}
+ local words = usplit(s, "%s")
+ while words[1] do
+ out[#out+1], words = buildline(words, width, breaklong)
+ end
+ return makelist(out)
+ end
+end
+
+--- format a paragraph so that it fits into a line width.
+-- @tparam string s the string to format
+-- @tparam[opt=70] integer width the margin width
+-- @tparam[opt=false] boolean breaklong if truthy, words longer than the width given will be forced split.
+-- @return a string, use `wrap` to return a list of lines instead of a string.
+-- @see wrap
+function stringx.fill (s,width,breaklong)
+ return concat(stringx.wrap(s,width,breaklong),'\n') .. '\n'
+end
+
+--- Template
+-- @section Template
+
+
+local function _substitute(s,tbl,safe)
+ local subst
+ if is_callable(tbl) then
+ subst = tbl
+ else
+ function subst(f)
+ local s = tbl[f]
+ if not s then
+ if safe then
+ return f
+ else
+ error("not present in table "..f)
+ end
+ else
+ return s
+ end
+ end
+ end
+ local res = gsub(s,'%${([%w_]+)}',subst)
+ return (gsub(res,'%$([%w_]+)',subst))
+end
+
+
+
+local Template = {}
+stringx.Template = Template
+Template.__index = Template
+setmetatable(Template, {
+ __call = function(obj,tmpl)
+ return Template.new(tmpl)
+ end
+})
+
+--- Creates a new Template class.
+-- This is a shortcut to `Template.new(tmpl)`.
+-- @tparam string tmpl the template string
+-- @function Template
+-- @treturn Template
+function Template.new(tmpl)
+ assert_arg(1,tmpl,'string')
+ local res = {}
+ res.tmpl = tmpl
+ setmetatable(res,Template)
+ return res
+end
+
+--- substitute values into a template, throwing an error.
+-- This will throw an error if no name is found.
+-- @tparam table tbl a table of name-value pairs.
+-- @return string with place holders substituted
+function Template:substitute(tbl)
+ assert_arg(1,tbl,'table')
+ return _substitute(self.tmpl,tbl,false)
+end
+
+--- substitute values into a template.
+-- This version just passes unknown names through.
+-- @tparam table tbl a table of name-value pairs.
+-- @return string with place holders substituted
+function Template:safe_substitute(tbl)
+ assert_arg(1,tbl,'table')
+ return _substitute(self.tmpl,tbl,true)
+end
+
+--- substitute values into a template, preserving indentation. <br>
+-- If the value is a multiline string _or_ a template, it will insert
+-- the lines at the correct indentation. <br>
+-- Furthermore, if a template, then that template will be substituted
+-- using the same table.
+-- @tparam table tbl a table of name-value pairs.
+-- @return string with place holders substituted
+function Template:indent_substitute(tbl)
+ assert_arg(1,tbl,'table')
+ if not self.strings then
+ self.strings = usplit(self.tmpl,'\n')
+ end
+
+ -- the idea is to substitute line by line, grabbing any spaces as
+ -- well as the $var. If the value to be substituted contains newlines,
+ -- then we split that into lines and adjust the indent before inserting.
+ local function subst(line)
+ return line:gsub('(%s*)%$([%w_]+)',function(sp,f)
+ local subtmpl
+ local s = tbl[f]
+ if not s then error("not present in table "..f) end
+ if getmetatable(s) == Template then
+ subtmpl = s
+ s = s.tmpl
+ else
+ s = tostring(s)
+ end
+ if s:find '\n' then
+ local lines = usplit(s, '\n')
+ for i, line in ipairs(lines) do
+ lines[i] = sp..line
+ end
+ s = concat(lines, '\n') .. '\n'
+ end
+ if subtmpl then
+ return _substitute(s, tbl)
+ else
+ return s
+ end
+ end)
+ end
+
+ local lines = {}
+ for i, line in ipairs(self.strings) do
+ lines[i] = subst(line)
+ end
+ return concat(lines,'\n')..'\n'
+end
+
+
+
--- Miscelaneous
-- @section misc
@@ -10936,79 +11589,148 @@ end
stringx.capitalize = stringx.title
-local ellipsis = '...'
-local n_ellipsis = #ellipsis
-
---- Return a shortened version of a string.
--- Fits string within w characters. Removed characters are marked with ellipsis.
--- @string s the string
--- @int w the maxinum size allowed
--- @bool tail true if we want to show the end of the string (head otherwise)
--- @usage ('1234567890'):shorten(8) == '12345...'
--- @usage ('1234567890'):shorten(8, true) == '...67890'
--- @usage ('1234567890'):shorten(20) == '1234567890'
-function stringx.shorten(s,w,tail)
- assert_string(1,s)
- if #s > w then
- if w < n_ellipsis then return ellipsis:sub(1,w) end
- if tail then
- local i = #s - w + 1 + n_ellipsis
- return ellipsis .. s:sub(i)
- else
- return s:sub(1,w-n_ellipsis) .. ellipsis
- end
- end
- return s
+do
+ local ellipsis = '...'
+ local n_ellipsis = #ellipsis
+
+ --- Return a shortened version of a string.
+ -- Fits string within w characters. Removed characters are marked with ellipsis.
+ -- @string s the string
+ -- @int w the maxinum size allowed
+ -- @bool tail true if we want to show the end of the string (head otherwise)
+ -- @usage ('1234567890'):shorten(8) == '12345...'
+ -- @usage ('1234567890'):shorten(8, true) == '...67890'
+ -- @usage ('1234567890'):shorten(20) == '1234567890'
+ function stringx.shorten(s,w,tail)
+ assert_string(1,s)
+ if #s > w then
+ if w < n_ellipsis then return ellipsis:sub(1,w) end
+ if tail then
+ local i = #s - w + 1 + n_ellipsis
+ return ellipsis .. s:sub(i)
+ else
+ return s:sub(1,w-n_ellipsis) .. ellipsis
+ end
+ end
+ return s
+ end
end
---- Utility function that finds any patterns that match a long string's an open or close.
--- Note that having this function use the least number of equal signs that is possible is a harder algorithm to come up with.
--- Right now, it simply returns the greatest number of them found.
--- @param s The string
--- @return 'nil' if not found. If found, the maximum number of equal signs found within all matches.
-local function has_lquote(s)
- local lstring_pat = '([%[%]])(=*)%1'
- local equals, new_equals, _
- local finish = 1
- repeat
- _, finish, _, new_equals = s:find(lstring_pat, finish)
- if new_equals then
- equals = max(equals or 0, #new_equals)
- end
- until not new_equals
- return equals
+do
+ -- Utility function that finds any patterns that match a long string's an open or close.
+ -- Note that having this function use the least number of equal signs that is possible is a harder algorithm to come up with.
+ -- Right now, it simply returns the greatest number of them found.
+ -- @param s The string
+ -- @return 'nil' if not found. If found, the maximum number of equal signs found within all matches.
+ local function has_lquote(s)
+ local lstring_pat = '([%[%]])(=*)%1'
+ local equals, new_equals, _
+ local finish = 1
+ repeat
+ _, finish, _, new_equals = s:find(lstring_pat, finish)
+ if new_equals then
+ equals = max(equals or 0, #new_equals)
+ end
+ until not new_equals
+
+ return equals
+ end
+
+ --- Quote the given string and preserve any control or escape characters, such that reloading the string in Lua returns the same result.
+ -- @param s The string to be quoted.
+ -- @return The quoted string.
+ function stringx.quote_string(s)
+ assert_string(1,s)
+ -- Find out if there are any embedded long-quote sequences that may cause issues.
+ -- This is important when strings are embedded within strings, like when serializing.
+ -- Append a closing bracket to catch unfinished long-quote sequences at the end of the string.
+ local equal_signs = has_lquote(s .. "]")
+
+ -- Note that strings containing "\r" can't be quoted using long brackets
+ -- as Lua lexer converts all newlines to "\n" within long strings.
+ if (s:find("\n") or equal_signs) and not s:find("\r") then
+ -- If there is an embedded sequence that matches a long quote, then
+ -- find the one with the maximum number of = signs and add one to that number.
+ equal_signs = ("="):rep((equal_signs or -1) + 1)
+ -- Long strings strip out leading newline. We want to retain that, when quoting.
+ if s:find("^\n") then s = "\n" .. s end
+ local lbracket, rbracket =
+ "[" .. equal_signs .. "[",
+ "]" .. equal_signs .. "]"
+ s = lbracket .. s .. rbracket
+ else
+ -- Escape funny stuff. Lua 5.1 does not handle "\r" correctly.
+ s = ("%q"):format(s):gsub("\r", "\\r")
+ end
+ return s
+ end
end
---- Quote the given string and preserve any control or escape characters, such that reloading the string in Lua returns the same result.
--- @param s The string to be quoted.
--- @return The quoted string.
-function stringx.quote_string(s)
- assert_string(1,s)
- -- Find out if there are any embedded long-quote sequences that may cause issues.
- -- This is important when strings are embedded within strings, like when serializing.
- -- Append a closing bracket to catch unfinished long-quote sequences at the end of the string.
- local equal_signs = has_lquote(s .. "]")
-
- -- Note that strings containing "\r" can't be quoted using long brackets
- -- as Lua lexer converts all newlines to "\n" within long strings.
- if (s:find("\n") or equal_signs) and not s:find("\r") then
- -- If there is an embedded sequence that matches a long quote, then
- -- find the one with the maximum number of = signs and add one to that number.
- equal_signs = ("="):rep((equal_signs or -1) + 1)
- -- Long strings strip out leading newline. We want to retain that, when quoting.
- if s:find("^\n") then s = "\n" .. s end
- local lbracket, rbracket =
- "[" .. equal_signs .. "[",
- "]" .. equal_signs .. "]"
- s = lbracket .. s .. rbracket
+
+--- Python-style formatting operator.
+-- Calling `text.format_operator()` overloads the % operator for strings to give
+-- Python/Ruby style formated output.
+-- This is extended to also do template-like substitution for map-like data.
+--
+-- Note this goes further than the original, and will allow these cases:
+--
+-- 1. a single value
+-- 2. a list of values
+-- 3. a map of var=value pairs
+-- 4. a function, as in gsub
+--
+-- For the second two cases, it uses $-variable substituion.
+--
+-- When called, this function will monkey-patch the global `string` metatable by
+-- adding a `__mod` method.
+--
+-- See <a href="http://lua-users.org/wiki/StringInterpolation">the lua-users wiki</a>
+--
+-- @usage
+-- require 'pl.text'.format_operator()
+-- local out1 = '%s = %5.3f' % {'PI',math.pi} --> 'PI = 3.142'
+-- local out2 = '$name = $value' % {name='dog',value='Pluto'} --> 'dog = Pluto'
+function stringx.format_operator()
+
+ local format = string.format
+
+ -- a more forgiving version of string.format, which applies
+ -- tostring() to any value with a %s format.
+ local function formatx (fmt,...)
+ local args = pack(...)
+ local i = 1
+ for p in fmt:gmatch('%%.') do
+ if p == '%s' and type(args[i]) ~= 'string' then
+ args[i] = tostring(args[i])
+ end
+ i = i + 1
+ end
+ return format(fmt,unpack(args))
+ end
+
+ local function basic_subst(s,t)
+ return (s:gsub('%$([%w_]+)',t))
+ end
+
+ getmetatable("").__mod = function(a, b)
+ if b == nil then
+ return a
+ elseif type(b) == "table" and getmetatable(b) == nil then
+ if #b == 0 then -- assume a map-like table
+ return _substitute(a,b,true)
+ else
+ return formatx(a,unpack(b))
+ end
+ elseif type(b) == 'function' then
+ return basic_subst(a,b)
else
- -- Escape funny stuff. Lua 5.1 does not handle "\r" correctly.
- s = ("%q"):format(s):gsub("\r", "\\r")
+ return formatx(a,b)
end
- return s
+ end
end
+--- import the stringx functions into the global string (meta)table
function stringx.import()
utils.import(stringx,string)
end
@@ -12413,246 +13135,26 @@ end,
-- libraries, see string.Template). It also provides similar functions to those
-- found in the textwrap module.
--
--- See @{03-strings.md.String_Templates|the Guide}.
---
--- Calling `text.format_operator()` overloads the % operator for strings to give Python/Ruby style formated output.
--- This is extended to also do template-like substitution for map-like data.
+-- IMPORTANT: this module has been deprecated and will be removed in a future
+-- version (2.0). The contents of this module have moved to the `pl.stringx`
+-- module.
--
--- > require 'pl.text'.format_operator()
--- > = '%s = %5.3f' % {'PI',math.pi}
--- PI = 3.142
--- > = '$name = $value' % {name='dog',value='Pluto'}
--- dog = Pluto
+-- See @{03-strings.md.String_Templates|the Guide}.
--
--- Dependencies: `pl.utils`, `pl.types`
+-- Dependencies: `pl.stringx`, `pl.utils`
-- @module pl.text
-local gsub = string.gsub
-local concat,append = table.concat,table.insert
-local utils = require 'pl.utils'
-local bind1,usplit,assert_arg = utils.bind1,utils.split,utils.assert_arg
-local is_callable = require 'pl.types'.is_callable
-local unpack = utils.unpack
-
-local text = {}
-
-
-local function makelist(l)
- return setmetatable(l, require('pl.List'))
-end
-
-local function lstrip(str) return (str:gsub('^%s+','')) end
-local function strip(str) return (lstrip(str):gsub('%s+$','')) end
-local function split(s,delim) return makelist(usplit(s,delim)) end
-
-local function imap(f,t,...)
- local res = {}
- for i = 1,#t do res[i] = f(t[i],...) end
- return res
-end
-
-local function _indent (s,sp)
- local sl = split(s,'\n')
- return concat(imap(bind1('..',sp),sl),'\n')..'\n'
-end
-
---- indent a multiline string.
--- @param s the string
--- @param n the size of the indent
--- @param ch the character to use when indenting (default ' ')
--- @return indented string
-function text.indent (s,n,ch)
- assert_arg(1,s,'string')
- assert_arg(2,n,'number')
- return _indent(s,string.rep(ch or ' ',n))
-end
-
---- dedent a multiline string by removing any initial indent.
--- useful when working with [[..]] strings.
--- @param s the string
--- @return a string with initial indent zero.
-function text.dedent (s)
- assert_arg(1,s,'string')
- local sl = split(s,'\n')
- local _,i2 = (#sl>0 and sl[1] or ''):find('^%s*')
- sl = imap(string.sub,sl,i2+1)
- return concat(sl,'\n')..'\n'
-end
-
---- format a paragraph into lines so that they fit into a line width.
--- It will not break long words, so lines can be over the length
--- to that extent.
--- @param s the string
--- @param width the margin width, default 70
--- @return a list of lines (List object)
--- @see pl.List
-function text.wrap (s,width)
- assert_arg(1,s,'string')
- width = width or 70
- s = s:gsub('\n',' ')
- local i,nxt = 1
- local lines,line = {}
- while i < #s do
- nxt = i+width
- if s:find("[%w']",nxt) then -- inside a word
- nxt = s:find('%W',nxt+1) -- so find word boundary
- end
- line = s:sub(i,nxt)
- i = i + #line
- append(lines,strip(line))
- end
- return makelist(lines)
-end
-
---- format a paragraph so that it fits into a line width.
--- @param s the string
--- @param width the margin width, default 70
--- @return a string
--- @see wrap
-function text.fill (s,width)
- return concat(text.wrap(s,width),'\n') .. '\n'
-end
-
-local Template = {}
-text.Template = Template
-Template.__index = Template
-setmetatable(Template, {
- __call = function(obj,tmpl)
- return Template.new(tmpl)
- end})
-
-function Template.new(tmpl)
- assert_arg(1,tmpl,'string')
- local res = {}
- res.tmpl = tmpl
- setmetatable(res,Template)
- return res
-end
-
-local function _substitute(s,tbl,safe)
- local subst
- if is_callable(tbl) then
- subst = tbl
- else
- function subst(f)
- local s = tbl[f]
- if not s then
- if safe then
- return f
- else
- error("not present in table "..f)
- end
- else
- return s
- end
- end
- end
- local res = gsub(s,'%${([%w_]+)}',subst)
- return (gsub(res,'%$([%w_]+)',subst))
-end
-
---- substitute values into a template, throwing an error.
--- This will throw an error if no name is found.
--- @param tbl a table of name-value pairs.
-function Template:substitute(tbl)
- assert_arg(1,tbl,'table')
- return _substitute(self.tmpl,tbl,false)
-end
-
---- substitute values into a template.
--- This version just passes unknown names through.
--- @param tbl a table of name-value pairs.
-function Template:safe_substitute(tbl)
- assert_arg(1,tbl,'table')
- return _substitute(self.tmpl,tbl,true)
-end
-
---- substitute values into a template, preserving indentation. <br>
--- If the value is a multiline string _or_ a template, it will insert
--- the lines at the correct indentation. <br>
--- Furthermore, if a template, then that template will be subsituted
--- using the same table.
--- @param tbl a table of name-value pairs.
-function Template:indent_substitute(tbl)
- assert_arg(1,tbl,'table')
- if not self.strings then
- self.strings = split(self.tmpl,'\n')
- end
- -- the idea is to substitute line by line, grabbing any spaces as
- -- well as the $var. If the value to be substituted contains newlines,
- -- then we split that into lines and adjust the indent before inserting.
- local function subst(line)
- return line:gsub('(%s*)%$([%w_]+)',function(sp,f)
- local subtmpl
- local s = tbl[f]
- if not s then error("not present in table "..f) end
- if getmetatable(s) == Template then
- subtmpl = s
- s = s.tmpl
- else
- s = tostring(s)
- end
- if s:find '\n' then
- s = _indent(s,sp)
- end
- if subtmpl then return _substitute(s,tbl)
- else return s
- end
- end)
- end
- local lines = imap(subst,self.strings)
- return concat(lines,'\n')..'\n'
-end
-
-------- Python-style formatting operator ------
--- (see <a href="http://lua-users.org/wiki/StringInterpolation">the lua-users wiki</a>) --
-
-function text.format_operator()
-
- local format = string.format
+local utils = require("pl.utils")
- -- a more forgiving version of string.format, which applies
- -- tostring() to any value with a %s format.
- local function formatx (fmt,...)
- local args = {...}
- local i = 1
- for p in fmt:gmatch('%%.') do
- if p == '%s' and type(args[i]) ~= 'string' then
- args[i] = tostring(args[i])
- end
- i = i + 1
- end
- return format(fmt,unpack(args))
- end
-
- local function basic_subst(s,t)
- return (s:gsub('%$([%w_]+)',t))
- end
-
- -- Note this goes further than the original, and will allow these cases:
- -- 1. a single value
- -- 2. a list of values
- -- 3. a map of var=value pairs
- -- 4. a function, as in gsub
- -- For the second two cases, it uses $-variable substituion.
- getmetatable("").__mod = function(a, b)
- if b == nil then
- return a
- elseif type(b) == "table" and getmetatable(b) == nil then
- if #b == 0 then -- assume a map-like table
- return _substitute(a,b,true)
- else
- return formatx(a,unpack(b))
- end
- elseif type(b) == 'function' then
- return basic_subst(a,b)
- else
- return formatx(a,b)
- end
- end
-end
+utils.raise_deprecation {
+ source = "Penlight " .. utils._VERSION,
+ message = "the contents of module 'pl.text' has moved into 'pl.stringx'",
+ version_removed = "2.0.0",
+ deprecated_after = "1.11.0",
+ no_trace = true,
+}
-return text
+return require "pl.stringx"
end,
@@ -12919,7 +13421,10 @@ local format = string.format
local compat = require 'pl.compat'
local stdout = io.stdout
local append = table.insert
+local concat = table.concat
local _unpack = table.unpack -- always injected by 'compat'
+local find = string.find
+local sub = string.sub
local is_windows = compat.is_windows
local err_mode = 'default'
@@ -12928,7 +13433,7 @@ local operators
local _function_factories = {}
-local utils = { _VERSION = "1.11.0" }
+local utils = { _VERSION = "1.12.0" }
for k, v in pairs(compat) do utils[k] = v end
--- Some standard patterns
@@ -12970,7 +13475,7 @@ utils.pack = table.pack -- added here to be symmetrical with unpack
-- that this one DOES honor the `n` field in the table `t`, such that it is 'nil-safe'.
-- @param t table to unpack
-- @param[opt] i index from which to start unpacking, defaults to 1
--- @param[opt] t index of the last element to unpack, defaults to `t.n` or `#t`
+-- @param[opt] j index of the last element to unpack, defaults to `t.n` or else `#t`
-- @return multiple return values from the table
-- @function utils.unpack
-- @see compat.unpack
@@ -13156,6 +13661,68 @@ function utils.assert_arg (n,val,tp,verify,msg,lev)
return val
end
+--- creates an Enum table.
+-- This helps prevent magic strings in code by throwing errors for accessing
+-- non-existing values.
+--
+-- Calling on the object does the same, but returns a soft error; `nil + err`.
+--
+-- The values are equal to the keys. The enum object is
+-- read-only.
+-- @param ... strings that make up the enumeration.
+-- @return Enum object
+-- @usage -- accessing at runtime
+-- local obj = {}
+-- obj.MOVEMENT = utils.enum("FORWARD", "REVERSE", "LEFT", "RIGHT")
+--
+-- if current_movement == obj.MOVEMENT.FORWARD then
+-- -- do something
+--
+-- elseif current_movement == obj.MOVEMENT.REVERES then
+-- -- throws error due to typo 'REVERES', so a silent mistake becomes a hard error
+-- -- "'REVERES' is not a valid value (expected one of: 'FORWARD', 'REVERSE', 'LEFT', 'RIGHT')"
+--
+-- end
+-- @usage -- validating user-input
+-- local parameter = "...some user provided option..."
+-- local ok, err = obj.MOVEMENT(parameter) -- calling on the object
+-- if not ok then
+-- print("bad 'parameter', " .. err)
+-- os.exit(1)
+-- end
+function utils.enum(...)
+ local lst = utils.pack(...)
+ utils.assert_arg(1, lst[1], "string") -- at least 1 string
+
+ local enum = {}
+ for i, value in ipairs(lst) do
+ utils.assert_arg(i, value, "string")
+ enum[value] = value
+ end
+
+ local valid = "(expected one of: '" .. concat(lst, "', '") .. "')"
+ setmetatable(enum, {
+ __index = function(self, key)
+ error(("'%s' is not a valid value %s"):format(tostring(key), valid), 2)
+ end,
+ __newindex = function(self, key, value)
+ error("the Enum object is read-only", 2)
+ end,
+ __call = function(self, key)
+ if type(key) == "string" then
+ local v = rawget(self, key)
+ if v then
+ return v
+ end
+ end
+ return nil, ("'%s' is not a valid value %s"):format(tostring(key), valid)
+ end
+ })
+
+ return enum
+end
+
+
--- process a function argument.
-- This is used throughout Penlight and defines what is meant by a function:
-- Something that is callable, or an operator string as defined by <code>pl.operator</code>,
@@ -13367,7 +13934,7 @@ function utils.quote_arg(argument)
r[i] = utils.quote_arg(arg)
end
- return table.concat(r, " ")
+ return concat(r, " ")
end
-- only a single argument
if is_windows then
@@ -13436,7 +14003,6 @@ end
-- @see splitv
function utils.split(s,re,plain,n)
utils.assert_string(1,s)
- local find,sub,append = string.find, string.sub, table.insert
local i1,ls = 1,{}
if not re then re = '%s+' end
if re == '' then return {s} end
diff --git a/macros/luatex/generic/penlight/penlight.pdf b/macros/luatex/generic/penlight/penlight.pdf
index 1edb8bf2b5..a8e166a1ae 100644
--- a/macros/luatex/generic/penlight/penlight.pdf
+++ b/macros/luatex/generic/penlight/penlight.pdf
Binary files differ
diff --git a/macros/luatex/generic/penlight/penlight.sty b/macros/luatex/generic/penlight/penlight.sty
index 9f0ead874f..b9f5a9490a 100644
--- a/macros/luatex/generic/penlight/penlight.sty
+++ b/macros/luatex/generic/penlight/penlight.sty
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2021-12-15
+% 2022-02-27
% Copyright (C) 2021 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -22,7 +22,7 @@
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
% OR OTHER DEALINGS IN THE SOFTWARE.
-\ProvidesPackage{penlight}[2021-12-15]
+\ProvidesPackage{penlight}[2022-02-27]
\RequirePackage{luacode}
@@ -34,9 +34,15 @@
penlight = require('penlight')
__PENLIGHT__ = 'penlight'
}}
+
+
\DeclareOption{stringx}{\luadirect{_G[__PENLIGHT__].stringx.import()}}
-\DeclareOption{format}{\luadirect{_G[__PENLIGHT__].text.format_operator()}}
+\DeclareOption{format}{\luadirect{_G[__PENLIGHT__].stringx.format_operator()}}
\DeclareOption{func}{\luadirect{_G[__PENLIGHT__].utils.import(__PENLIGHT__..'.func')}}
\DeclareOption{extras}{\luadirect{require('penlightextras')}}
+\DeclareOption{extrasnoglobals}{
+ __PL_NO_GLOBALS__ = true
+ \luadirect{require('penlightextras')
+ }}
\ProcessOptions*\relax
diff --git a/macros/luatex/generic/penlight/penlight.tex b/macros/luatex/generic/penlight/penlight.tex
index 79a5d08589..176dc4e557 100644
--- a/macros/luatex/generic/penlight/penlight.tex
+++ b/macros/luatex/generic/penlight/penlight.tex
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2021-12-15
+% 2022-02-27
% Copyright (C) 2021 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -25,7 +25,7 @@
\documentclass[11pt,parskip=half]{scrartcl}
\setlength{\parindent}{0ex}
-\newcommand{\llcmd}[1]{\leavevmode\llap{\texttt{\detokenize{#1}\ }}}
+\newcommand{\llcmd}[1]{\leavevmode\llap{\texttt{\detokenize{#1}}}}
\newcommand{\cmd}[1]{\texttt{\detokenize{#1}}}
\newcommand{\qcmd}[1]{``\cmd{#1}''}
\usepackage{url}
@@ -52,7 +52,7 @@
\date{\today}
-\RequirePackage{penlight}
+\RequirePackage[pl,extras]{penlight}
\title{penlight}
\subtitle{Lua libraries for use in LuaLaTeX}
@@ -60,7 +60,7 @@
\maketitle
The official documentation for the Lua library can be found here:\\
- \mbox{\url{https://stevedonovan.github.io/Penlight/api/manual/01-introduction.md.html#}}
+ \mbox{\url{https://lunarmodules.github.io/Penlight}}
\\
\subsection*{Required Package Option}
@@ -70,48 +70,91 @@
\texttt{penlight.XYZ} or \texttt{pl.XYZ}
+
+ \subsection*{texlua usage}
+If you want to use Penlight (and extras) with the \texttt{texlua} intrepreter (no document made, only for Lua files, useful for testing),
+you can access it by setting \cmd{__SKIP_TEX__ = true} and adding the package to path. For example:
+ \begin{verbatim}
+package.path = package.path .. ';'..'path/to/texmf/tex/latex/penlight/?.lua'
+penlight = require('penlight')
+-- below is optional
+__SKIP_TEX__ = true --only required if you want to use
+ --penlightextras without a LaTeX run
+-- __PL_NO_GLOBALS__ = true -- optional, skip global definitions
+require('penlightextras')
+\end{verbatim}
- \subsection*{Additional Package Options}
+\pagebreak
+
+
+\subsection*{Additional Package Options}
\noindent
- \begin{tabular}{lp{4.5in}}
+ \hspace*{-6ex}\begin{tabular}{lp{4.8in}}
\texttt{stringx} & will import additional string functions into the string meta table.\\
& this will be ran in pre-amble: \texttt{require('pl.stringx').import()}\\
- & \hspace*{-4em}\url{https://stevedonovan.github.io/Penlight/api/libraries/pl.stringx.html}\\\\
\texttt{format} & allows \% operator for Python-style string formating\\
- & this will be ran in pre-amble: \texttt{require('pl.text').format\_operator()}\\
- & \hspace*{-4em}\url{https://stevedonovan.github.io/Penlight/api/libraries/pl.text.html}\\\\
+ & this will be ran in pre-amble: \texttt{require('pl.stringx').format\_operator()}\\
+ & \mbox{\url{https://lunarmodules.github.io/Penlight/libraries/pl.stringx.html#format_operator}}
+ \\
\texttt{func} & allows placehold expressions eg. \texttt{\_1+1} to be used \\
& this will be ran in pre-amble: \texttt{penlight.utils.import('pl.func')}\\
- & \hspace*{-4em}\url{https://stevedonovan.github.io/Penlight/api/libraries/pl.func.html}\\\\
- \texttt{extras} & adds some additional functions. Adds functions to some Penlight sub-modules. The following Lua globals will be defined:
- \texttt{close\_bkt\_cnt,
- add\_bkt\_cnt,
- reset\_bkt\_cnt,
- \_NumBkts,
- \_xTrue,
- \_xFalse,
- \_xNoValue,
- \_\_SKIP\_TEX\_\_,
- hasval,
- mod, mod2,
- }\\
+ & \url{https://lunarmodules.github.io/Penlight/libraries/pl.func}\\
+ \texttt{\llap{extras}noglobals} & does the above three (\cmd{func,stringx,format}); adds some additional functions to \cmd{penlight} module; and adds the \cmd{pl.tex} sub-module.\\
+ \texttt{extras} & does the above \texttt{extrasnoglobals} but makes many of the functions global variables.
\end{tabular}
- \\\\
-
- If you want to use Penlight (and extras) with the \texttt{texlua} intrepreter (no document made, only for Lua files, useful for testing),
- you can access it by the following:
- \begin{verbatim}
- package.path = package.path .. ';'..'path/to/texmf/tex/latex/penlight/?.lua'
- penlight = require('penlight')
- __SKIP_TEX__ = true --only required if you want to use
- --penlightextras without a LaTeX run
- require('penlightextras')
- \end{verbatim}
+\subsection*{Extras}
+
+If \cmd{extras} is used, the following Lua globals will be defined:\\
+
+\subsubsection*{Misc stuff}
+\llcmd{__SKIP_TEX__} If using package with \cmd{texlua}, set this global before loading \cmd{penlight}\\
+\llcmd{__PL_NO_}\cmd{GLOBALS__} If using package with \cmd{texlua} and you don't want to set some globals (described in next sections), set this global before to \cmd{true} loading \cmd{penlight}\\
+\llcmd{hasval(x)} Python-like boolean testing\\
+\llcmd{COMP'xyz'()} Python-like comprehensions:\\\url{https://lunarmodules.github.io/Penlight/libraries/pl.comprehension.html}\\
+\llcmd{math.mod(n,d)}, \cmd{math.mod2(n)} math modulous\\
+\llcmd{string.}\cmd{totable(s)} string a table of characters\\
+\llcmd{kpairs(t), }\cmd{npairs(t)} iterate over keys only, or include nil value from table ipairs\\
+
+\llcmd{pl.utils.}\cmd{filterfiles}\cmd{(dir,filt,rec)} Get files from dir and apply glob-like filters. Set rec to \cmd{true} to include sub directories\\
+
+\pagebreak
+
+\subsubsection*{\cmd{pl.tex.} module is added}
+\llcmd{add_bkt}\cmd{_cnt(n), }\cmd{close_bkt_cnt(n), reset_bkt_cnt} functions to keep track of adding curly brackets as strings. \cmd{add} will return \cmd{n} (default 1) \{'s and increment a counter. \cmd{close} will return \cmd{n} \}'s (default will close all brackets) and decrement.\\
+\llcmd{_NumBkts} internal integer for tracking the number of brackets\\
+\llcmd{opencmd(cs)} prints \cmd{\cs}\{ and adds to the bracket counters.\\
+\\
+\llcmd{_xNoValue,}\cmd{_xTrue,_xFalse}: \cmd{xparse} equivalents for commands\\
+\\
+\llcmd{prt(x),prtn(x)} print without or with a newline at end. Tries to help with special characters or numbers printing.\\
+\llcmd{prtl(l),prtt(t)} print a literal string, or table\\
+\llcmd{wrt(x), wrtn(x)} write to log\\
+\llcmd{help_wrt}\cmd{(s1, s2)} pretty-print something to console. S2 is a flag to help you find.\\
+\llcmd{prt_array2d(tt)} pretty print a 2d array\\
+\\
+\llcmd{pkgwarn}\cmd{(pkg, msg1, msg2)} throw a package warning\\
+\llcmd{pkgerror}\cmd{(pkg, msg1, msg2, stop)} throw a package error. If stop is true, immediately ceases compile.\\
+\\
+\llcmd{defcmd}\cmd{(cs, val)} like \cmd{\gdef}\\
+\llcmd{newcmd}\cmd{(cs, val)} like \cmd{\newcommand}\\
+\llcmd{renewcmd}\cmd{(cs, val)} like \cmd{\renewcommand}\\
+\llcmd{prvcmd}\cmd{(cs, val)} like \cmd{\providecommand}\\
+\llcmd{deccmd}\cmd{(cs, dft, overwrite)} declare a command. If \cmd{dft} (default) is \cmd{nil}, \cmd{cs} is set
+to a package warning saying \cmd{'cs' was declared and used in document, but never set}. If \cmd{overwrite}
+is true, it will overwrite an existing command (using \cmd{defcmd}), otherwise, it will throw error like \cmd{newcmd}.\\
+
+
+
+\subsubsection*{global extras}
+If \cmd{extras} is used and NOT \cmd{extrasnoglobals}, then some globals are set.\\
+All \cmd{pl.tex} modules are added.\\
+\cmd{hasval}, \cmd{COMP}, \cmd{kpairs}, \cmd{npairs} are globals.\\
+\cmd{pl.tablex} functions are added to the \cmd{table} table.\\
\section*{}
Disclaimer: I am not the author of the Lua Penlight library.
diff --git a/macros/luatex/generic/penlight/penlightextras.lua b/macros/luatex/generic/penlight/penlightextras.lua
index 3479eb3fa0..0cdec03763 100644
--- a/macros/luatex/generic/penlight/penlightextras.lua
+++ b/macros/luatex/generic/penlight/penlightextras.lua
@@ -1,172 +1,264 @@
+
+__SKIP_TEX__ = __SKIP_TEX__ or false --if declared true before here, it will use regular print functions
+-- (for troubleshooting with texlua instead of actual use in lua latex)
+
+__PL_NO_GLOBALS__ = __PL_NO_GLOBALS__ or false
+
-- requires penlight
local pl = _G['penlight'] or _G['pl'] -- penlight for this namespace is pl
-local bind = bind or pl.func.bind
--- some bonus string operations, % text operator, and functional programmng
+
+-- some bonus string operations, % text operator, and functional programming
pl.stringx.import()
pl.text.format_operator()
-pl.utils.import('pl.func')
+pl.utils.import('pl.func') -- allow placeholder expressions _1 +1 etc.
+
+pl.COMP = require'pl.comprehension'.new() -- for comprehensions
+
+-- http://lua-users.org/wiki/SplitJoin -- todo read me!!
+
+pl.tex = {} -- adding a sub-module for tex related stuff
+
+local bind = bind or pl.func.bind
+
+
+function pl.hasval(x) -- if something has value
+ if (type(x) == 'function') or (type(x) == 'CFunction') or (type(x) == 'userdata') then
+ return true
+ elseif (x == nil) or (x == false) or (x == 0) or (x == '') or (x == {}) then
+ return false
+ elseif (type(x) ~= 'boolean') and (type(x) ~= 'number') and (type(x) ~= 'string') then -- something else? maybe ths not needed
+ if #x == 0 then -- one more check, probably no needed though, I was trying to cover other classes but they all tables
+ return false
+ else
+ return true
+ end
+ end
+ return true
+end
+
+
+-- Some simple and helpful LaTeX functions -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+-- xparse defaults
+pl.tex._xTrue = '\\BooleanTrue '
+pl.tex._xFalse = '\\BooleanFalse '
+pl.tex._xNoValue = '-NoValue-'
+
+--Generic LuaLaTeX utilities for print commands or environments
+
+if not __SKIP_TEX__ then
+ local function check_special_chars(s) -- todo extend to toher special chars?
+ if type(s) == 'string' then
+ if string.find(s, '[\n\r\t\0]') then
+ pl.tex.pkgwarn('penlight', 'printing string with special (eg. newline) char, possible unexpected behaviour on string: '..s)
+ end
+ end
+ end
-function help_wrt(s1, s2) -- helpful printing, makes it easy to debug, s1 is object, s2 is note
- local wrt = wrt or texio.write_nl
- local wrt = wrt or print
+ -- NOTE: usage is a bit different than default. If number is first arg, you CANT change catcode.
+ -- We don't need that under normal use, use tex.print or tex.sprint if you need
+ function pl.tex.prt(s, ...) -- print something, no new line after
+ check_special_chars(s)
+ if type(s) == 'number' then s = tostring(s) end
+ tex.sprint(s, ...) --can print lists as well, but will NOT put new line between them or anything printed
+ end
+
+ function pl.tex.prtn(s, ...) -- print with new line after, can print lists or nums. C-function not in Lua, apparantly
+ s = s or ''
+ check_special_chars(s)
+ if type(s) == 'number' then s = tostring(s) end
+ tex.print(s, ...)
+ end
+
+ pl.tex.wrt = texio.write
+ pl.tex.wrtn = texio.write_nl
+else
+ pl.tex.prt = io.write
+ pl.tex.prtn = print --print with new line
+ pl.tex.wrt = io.write
+ pl.tex.wrtn = io.write_nl
+end
+
+function pl.tex.prtl(str) -- prints a literal/lines string in latex, adds new line between them
+ for line in str:gmatch"[^\n]*" do -- gets all characters up to a new line
+ pl.tex.prtn(line)
+ end
+end
+
+-- todo option to specify between character? one for first table, on for recursives?
+function pl.tex.prtt(tab, d1, d2) -- prints a table with new line between each item
+ d1 = d1 or ''
+ d2 = d2 or '\\leavevmode\\\\'
+ for _, t in pairs(tab) do --
+ if type(t) ~= 'table' then
+ if d1 == '' then
+ pl.tex.prtn(t)
+ else
+ pl.tex.prt(t, d1)
+ end
+ else
+ pl.tex.prtn(d2)
+ pl.tex.prtt(t,d1,d2)
+ end
+ end
+end
+
+function pl.tex.help_wrt(s1, s2) -- helpful printing, makes it easy to debug, s1 is object, s2 is note
+ local wrt2 = wrt or texio.write_nl or print
s2 = s2 or ''
- wrt('\nvvvvv '..s2..'\n')
+ wrt2('\nvvvvv '..s2..'\n')
if type(s1) == 'table' then
- wrt(pl.pretty.write(s1))
+ wrt2(pl.pretty.write(s1))
else
- wrt(tostring(s1))
+ wrt2(tostring(s1))
end
- wrt('\n^^^^^\n')
+ wrt2('\n^^^^^\n')
end
-function prt_array2d(t)
+function pl.tex.prt_array2d(t)
for _, r in ipairs(t) do
local s = ''
for _, v in ipairs(r) do
s = s.. tostring(v)..', '
end
- print(s)
+ pl.tex.prt(s)
+ pl.tex.prt('\n')
end
end
-- -- -- -- --
-
--- -- -- -- functions below are helpers for arrays and 2d
-
-local function compare_elements(a, b, op, ele)
- op = op or pl.oper.gt
- ele = ele or 1
- return op(a[ele], b[ele])
+function pl.tex.pkgwarn(pkg, msg1, msg2)
+ pkg = pkg or ''
+ msg1 = msg1 or ''
+ msg2 = msg2 or ''
+ tex.sprint('\\PackageWarning{'..pkg..'}{'..msg1..'}{'..msg2..'}')
end
-local function comp_2ele_func(op, ele) -- make a 2 element comparison function,
- --sort with function on element nnum
- return bind(compare_elements, _1, _2, op, ele)
+function pl.tex.pkgerror(pkg, msg1, msg2, stop)
+ pkg = pkg or ''
+ msg1 = msg1 or ''
+ msg2 = msg2 or ''
+ stop = pl.hasval(stop)
+ tex.sprint('\\PackageError{'..pkg..'}{'..msg1..'}{'..msg2..'}')
+ if stop then tex.sprint('\\stop') end -- stop on the spot (say that 10 times)
end
--- -- -- --
+--definition helpers -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+function pl.tex.defcmd(cs, val) -- simple definitions
+ val = val or ''
+ token.set_macro(cs, val, 'global')
+end
-local function check_index(ij, rc) -- converts array index to positive value if negative
- if type(ij) ~= 'number' then
- return 1
+function pl.tex.prvcmd(cs, val) -- provide command via lua
+ if token.is_defined(cs) then
+ -- do nothing if token is defined already --pkgwarn('penlight', 'Definition '..cs..' is being overwritten')
else
- if ij < 0 then
- ij = rc + ij + 1
- elseif ij > rc then
- ij = rc
- end
- return ij
+ pl.tex.defcmd(cs, val)
end
end
-local function check_slice(M, i1, j1, i2, j2) -- ensure a slice is valid; i.e. all positive numbers
- r, c = pl.array2d.size(M)
- i1 = check_index(i1, r)
- i2 = check_index(i2, r)
- j1 = check_index(j1, c)
- j2 = check_index(j2, c)
- return i1, j1, i2, j2
-end
-local function check_func(func) -- check if a function is a PE, if so, make it a function
- if type(func) ~= 'function' then
- __func = I(func)
+function pl.tex.newcmd(cs, val) -- provide command via lua
+ if token.is_defined(cs) then
+ pl.tex.pkgerror('penlight: newcmd',cs..' already defined')
+ else
+ pl.tex.defcmd(cs, val)
end
- return __func
end
-
--- -- -- -- -- -- --
--- -- -- -- functions below extend the array2d module
-
-
-function pl.array2d.map_slice1(func, L, i1, i2) -- map a function to a slice of an array, can use PlcExpr
- i2 = i2 or i1
- local len = #L
- i1 = check_index(i1, len)
- i2 = check_index(i2, len)
- func = check_func(func)
- for i in pl.seq.range(i1,i2) do
- L[i] = func(L[i])
- end
- return L
+function pl.tex.renewcmd(cs, val) -- provide command via lua
+ if token.is_defined(cs) then
+ pl.tex.defcmd(cs, val)
+ else
+ pl.tex.pkgerror('penlight: renewcmd',cs..' not defined')
+ end
end
-function pl.array2d.map_slice2(func, M, i1, j1, i2, j2) -- map a function to a slice of a Matrix
- i1, j1, i2, j2 = check_slice(M, i1, j1, i2, j2)
- --for i,j in array2d.iter(M, true, i1, j1, i2, j2) do --todo this did not work, penlight may have fixed this
- func = check_func(func)
- for i in pl.seq.range(i1,i2) do
- for j in pl.seq.range(j1,j2) do
- M[i][j] = func(M[i][j])
- end
+function pl.tex.deccmd(cs, def, overwrite) -- declare a definition, placeholder throws an error if it used but not set!
+ overwrite = pl.hasval(overwrite)
+ local decfun
+ if overwrite then decfun = pl.tex.defcmd else decfun = pl.tex.newcmd end
+ if def == nil then
+ decfun(cs, pkgerror('penlight', cs..' was declared and used in document, but never set'))
+ else
+ decfun(cs, def)
end
- return M
end
-function pl.array2d.map_columns(func, M, j1, j2) -- map function to columns of matrix
- j2 = j2 or j1
- return map_slice2(func, M, 1, j1, -1, j2)
-end
-function pl.array2d.map_rows(func, M, i1, i2) -- map function to rows of matrix
- i2 = i2 or i1
- return map_slice2(func, M, i1, 1, i2, -1)
-end
+--
+-- -- todo add and improve this, options for args?
+--local function defcmd_nest(cs) -- for option if you'd like your commands under a parent ex. \csparent{var}
+-- tex.print('\\gdef\\'..cs..'#1{\\csname '..var..'--#1--\\endcsname}')
+--end
+--
+--
+--local function defcmd(cs, val, nargs)
+-- if (nargs == nil) or (args == 0) then
+-- token.set_macro(cs, tostring(val), 'global')
+-- else
+-- local args = '#1'
+-- tex.print('\\gdef\\'..cs..args..'{'..val..'}')
+-- -- todo https://tex.stackexchange.com/questions/57551/create-a-capitalized-macro-token-using-csname
+-- -- \expandafter\gdef\csname Two\endcsname#1#2{1:#1, two:#2} --todo do it like this
+-- end
+--end
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--- -- -- -- -- -- -- --
-function pl.array2d.sortOP(M, op, ele) -- sort a 2d array based on operator criteria, ele is column, ie sort on which element
- M_new = {}
- for row in pl.seq.sort(M, comp_2ele_func(op, ele)) do
- M_new[#M_new+1] = row
- end
- return M_new
+
+-- when nesting commands, this makes it helpful to not worry about brackets
+pl.tex._NumBkts = 0
+--prt(opencmd('textbf')..opencmd('texttt')..'bold typwriter'..close_bkt_cnt())
+
+function pl.tex.opencmd(cmd)
+ return '\\'..cmd..add_bkt_cnt()
end
-function pl.array2d.like(M1, v)
- v = v or 0
- r, c = pl.array2d.size(M1)
- return pl.array2d.new(r,c,v)
+function pl.tex.reset_bkt_cnt(n)
+ n = n or 0
+ _NumBkts = n
end
-function pl.array2d.from_table(t) -- turns a labelled table to a 2d, label-free array
- t_new = {}
- for k, v in pairs(t) do
- if type(v) == 'table' then
- t_new_row = {k}
- for _, v_ in ipairs(v) do
- t_new_row[#t_new_row+1] = v_
- end
- t_new[#t_new+1] = t_new_row
- else
- t_new[#t_new+1] = {k, v}
- end
- end
- return t_new
+function pl.tex.add_bkt_cnt(n)
+ -- add open bracket n times, returns brackets
+ n = n or 1
+ _NumBkts = _NumBkts + n
+ return ('{'):rep(n)
end
-function pl.array2d.toTeX(M, EL) --puts & between columns, can choose to end line with \\ if EL is true (end-line)
- EL = EL or false
- if EL then EL = '\\\\' else EL = '' end
- return pl.array2d.reduce2(_1..EL.._2, _1..'&'.._2, M)..EL
+function pl.tex.close_bkt_cnt(n)
+ n = n or _NumBkts
+ local s = ('}'):rep(n)
+ _NumBkts = _NumBkts - n
+ return s
end
--- -- -- -- -- -- --
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
--- -- -- -- -- -- -- -- -- -- -- -- functions below extend the operator module
-function pl.operator.strgt(a,b) return tostring(a) > tostring(b) end
-function pl.operator.strlt(a,b) return tostring(a) < tostring(b) end
+-- -- -- -- math stuff
+function math.mod(a, b) -- math modulo, return remainder only
+ return a - (math.floor(a/b)*b)
+end
+
+function math.mod2(a) -- math modulo 2
+ return math.mod(a,2)
+end
+
-- -- -- -- string stuff
@@ -184,14 +276,13 @@ local number = P{"number",
}
-local mt = getmetatable("") -- register functions with str
-
+local str_mt = getmetatable("") -- register functions with str
-function mt.__index.gnum(s)
+function str_mt.__index.gnum(s)
return number:match(s)
end
-function mt.__index.gextract(s, pat) --extract a pattern from string, returns both
+function str_mt.__index.gextract(s, pat) --extract a pattern from string, returns both
local s_extr = ''
local s_rem = s
for e in s:gmatch(pat) do
@@ -201,7 +292,7 @@ function mt.__index.gextract(s, pat) --extract a pattern from string, returns bo
return s_extr, s_rem
end
-function mt.__index.gfirst(s, t) -- get the first pattern found from a table of pattern
+function str_mt.__index.gfirst(s, t) -- get the first pattern found from a table of pattern
for _, pat in pairs(t) do
if string.find(s, pat) then
return pat
@@ -209,7 +300,7 @@ function mt.__index.gfirst(s, t) -- get the first pattern found from a table of
end
end
-function mt.__index.appif(S, W, B, O) --append W ord to S tring if B oolean true, otherwise O ther
+function str_mt.__index.appif(S, W, B, O) --append W ord to S tring if B oolean true, otherwise O ther
--append Word to String
if B then --if b is true
S = S .. W
@@ -221,155 +312,394 @@ function mt.__index.appif(S, W, B, O) --append W ord to S tring if B oolean true
end
-
--- -- -- -- -- math stuffs
-
-function mod(a, b) -- math modulo, return remainder only
- return a - (math.floor(a/b)*b)
+ function str_mt.__index.containsany(s, exp)
+ if type(exp) ~= 'table' then exp = {exp} end
+ for _, e in ipairs(exp) do
+ if s:find(e) then return true end
+ end
+ return false
end
-function mod2(a) -- math modulo 2
- return mod(a,2)
+function str_mt.__index.containsanycase(s, exp)
+ if type(exp) ~= 'table' then exp = {exp} end
+ for _, e in ipairs(exp) do
+ if s:lower():find(e:lower()) then return true end
+ end
+ return false
end
-function hasval(x) -- if something has value
- if (type(x) == 'function') then
- return true
- elseif (x == nil) or (x == false) or (x == 0) or (x == '') then
- return false
- elseif (type(x) ~= 'boolean') and (type(x) ~= 'number') and (type(x) ~= 'string') then
- if #x == 0 then
- return false
- else
- return true
- end
+function str_mt.__index.totable(str)
+ local t = {}
+ for i = 1, #str do
+ t[i] = str:sub(i, i)
end
- return true
+ return t
end
+-- -- -- -- function stuff
+
+function pl.clone_function(fn)
+ local dumped = string.dump(fn)
+ local cloned = loadstring(dumped)
+ local i = 1
+ while true do
+ local name = debug.getupvalue(fn, i)
+ if not name then
+ break
+ end
+ debug.upvaluejoin(cloned, i, fn, i)
+ i = i + 1
+ end
+ return cloned
+end
+-- -- -- -- -- -- -- -- -- -- -- -- functions below extend the operator module
--- Some simple and helpful LaTeX functions
--- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+function pl.operator.strgt(a,b) return tostring(a) > tostring(b) end
+function pl.operator.strlt(a,b) return tostring(a) < tostring(b) end
---Generic LuaLaTeX utilities for print commands or environments
--- http://lua-users.org/wiki/SplitJoin -- todo read me!!
-__SKIP_TEX__ = __SKIP_TEX__ or false --if declared true before here, it will use regular print functions
--- (for troubleshooting with texlua)
--- xparse defaults
-_xTrue = '\\BooleanTrue '
-_xFalse = '\\BooleanFalse '
-_xNoValue = '-NoValue-'
+-- -- -- -- functions below are helpers for arrays and 2d
-if not __SKIP_TEX__ then
- prt = tex.sprint --can print lists, but will NOT put new line between them
- prtn = tex.print --can print lists and will put new line. C-function not in Lua. think P rint R return
- wrt = texio.write
- wrtn = texio.write_nl
-else
- prt = io.write
- prtn = print --print with new line
- wrt = io.write
- wrtn = io.write_nl
+local function compare_elements(a, b, op, ele)
+ op = op or pl.oper.gt
+ ele = ele or 1
+ return op(a[ele], b[ele])
end
-function prtl(str) -- prints a literal string to latex, adds new line between them
- for line in str:gmatch"[^\n]*" do -- gets all characters up to a new line
- prtn(line)
- end
+local function comp_2ele_func(op, ele) -- make a 2 element comparison function,
+ --sort with function on element nnum
+ return bind(compare_elements, _1, _2, op, ele)
end
-_NumBkts = 0
-function reset_bkt_cnt(n)
- n = n or 0
- _NumBkts = n
-end
-function add_bkt_cnt(n)
- -- add open bracket n times, returns brackets
- n = n or 1
- _NumBkts = _NumBkts + n
- return ('{'):rep(n)
+
+-- table stuff below
+
+
+function pl.tablex.map_slice(func, T, j1, j2)
+ if type(j1) == 'string' then
+ return pl.array2d.map_slice(func, {T}, ','..j1)[1]
+ else
+ return pl.array2d.map_slice(func, {T}, 1, j1, 1, j2)[1]
+ end
end
-function close_bkt_cnt()
- local s = ('}'):rep(_NumBkts)
- reset_bkt_cnt()
- return s
+pl.array2d.map_slice1 = pl.tablex.map_slice
+
+
+-- todo option for multiple filters with AND logic, like the filter files??
+function pl.tablex.filterstr(t, exp, case)
+ -- case = case sensitive
+ case = hasval(case)
+ -- apply lua patterns to a table to filter iter
+ -- str or table of str's can be passed, OR logic is used if table is passed
+ if case then
+ return pl.tablex.filter(t, bind(string.containsany,_1,exp))
+ else
+ return pl.tablex.filter(t, bind(string.containsanycase,_1,exp))
+ end
end
+function pl.utils.filterfiles(...)
+ -- f1 is a series of filtering patterns, or condition
+ -- f2 is a series of filtering patters, or condition
+ -- (f1_a or f2_...) and (f2 .. ) must match
+ local args = table.pack(...)
+ -- todo -- check where boolean is for recursive or not, set starting argument
+ -- this could allow one to omit dir
+ -- todo if no boolean at all, assume dir = '.' and r = false
+ -- if boolean given, assume dir = '.'
+ local nstart = 3
+ local r = args[2]
+ local dir = args[1]
+ if type(args[1]) == 'boolean' then
+ dir = '.'
+ r = args[1]
+ nstart = 2
+ elseif type(args[2]) ~= 'boolean' then
+ dir = '.'
+ r = false
+ nstart = 1
+ end
+ local files
+ if r then files = pl.dir.getallfiles(dir)
+ else files = pl.dir.getfiles(dir)
+ end
+ for i=nstart,args.n do
+ files = pl.tablex.filter(files, pl.func.compose(bind(string.containsanycase,_1, args[i]), pl.path.basename))
+ end
+ return files
+end
+-- -- -- -- -- -- -- -- functions below extend the array2d module
---definition helpers -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--- todo add and improve this
-local function defcmd_nest(cs) -- for option if you'd like your commands under a parent ex. \csparent{var}
- tex.print('\\gdef\\'..cs..'#1{\\csname '..var..'--#1--\\endcsname}')
+function pl.array2d.map_slice(func, M, i1, j1, i2, j2) -- map a function to a slice of a Matrix
+ func = pl.utils.function_arg(1, func)
+ for i,j in pl.array2d.iter(M, true, i1, j1, i2, j2) do
+ M[i][j] = func(M[i][j])
+ end
+ return M
end
+pl.array2d.map_slice2 = pl.array2d.map_slice
-local function defcmd(cs, val, nargs)
- if (nargs == nil) or (args == 0) then
- token.set_macro(cs, tostring(val), 'global')
+function pl.array2d.map_cols(func, M, j1, j2) -- map function to columns of matrix
+ if type(j1) == 'string' then
+ return pl.array2d.map_slice(func, M, ','..j1)
else
- local args = '#1'
- tex.print('\\gdef\\'..cs..args..'{'..val..'}')
- -- todo https://tex.stackexchange.com/questions/57551/create-a-capitalized-macro-token-using-csname
- -- \expandafter\gdef\csname Two\endcsname#1#2{1:#1, two:#2} --todo do it like this
+ j2 = j2 or -1
+ return pl.array2d.map_slice(func, M, 1, j1, -1, j2)
end
end
+pl.array2d.map_columns = pl.array2d.map_cols
-local function prvcmd(cs, val) -- provide command via lua
- if token.is_defined(cs) then
- tex.print('\\PackageWarning{YAMLvars}{Variable '..cs..' already defined, could not declare}{}')
+function pl.array2d.map_rows(func, M, i1, i2) -- map function to rows of matrix
+ if type(i1) == 'string' then
+ return pl.array2d.map_slice(func, M, i1)
else
- defcmd(cs, val)
+ i2 = i2 or -1
+ return pl.array2d.map_slice(func, M, i1, 1, i2, -1)
end
end
-local function newcmd(cs, val) -- provide command via lua
- if token.is_defined(cs) then
- tex.print('\\PackageError{luadefs}{Command '..cs..' already defined}{}')
- else
- defcmd(cs, val)
+-- -- -- -- -- -- -- --
+
+function pl.array2d.sortOP(M, op, ele) -- sort a 2d array based on operator criteria, ele is column, ie sort on which element
+ M_new = {}
+ for row in pl.seq.sort(M, comp_2ele_func(op, ele)) do
+ M_new[#M_new+1] = row
+ end
+ return M_new
+end
+
+function pl.array2d.like(M1, v)
+ v = v or 0
+ r, c = pl.array2d.size(M1)
+ return pl.array2d.new(r,c,v)
+end
+
+function pl.array2d.from_table(t) -- turns a labelled table to a 2d, label-free array
+ t_new = {}
+ for k, v in pairs(t) do
+ if type(v) == 'table' then
+ t_new_row = {k}
+ for _, v_ in ipairs(v) do
+ t_new_row[#t_new_row+1] = v_
+ end
+ t_new[#t_new+1] = t_new_row
+ else
+ t_new[#t_new+1] = {k, v}
+ end
end
+ return t_new
end
-local function renewcmd(cs, val) -- provide command via lua
- if token.is_defined(cs) then
- defcmd(cs, val)
+function pl.array2d.toTeX(M, EL) --puts & between columns, can choose to end line with \\ if EL is true (end-line)
+ EL = EL or false
+ if EL then EL = '\\\\' else EL = '' end
+ return pl.array2d.reduce2(_1..EL.._2, _1..'&'.._2, M)..EL
+end
+
+
+local function parse_numpy1d(i1, i2, iS)
+ i1 = tonumber(i1)
+ i2 = tonumber(i2)
+ if iS == ':' then
+ if i1 == nil then i1 = 1 end
+ if i2 == nil then i2 = -1 end
else
- tex.print('\\PackageError{luadefs}{Command '..cs..' already defined}{}')
+ if i1 == nil then
+ i1 = 1
+ i2 = -1
+ else
+ i2 = i1
+ end
end
+ return i1, i2
end
-local function deccmd(cs, def)
- if def == nil then
- prvcmd(cs, '\\PackageError{luadefs}{Command "'..cs..'" was declared and used but, not set}{}')
- else
- prvcmd(cs, def)
+function pl.array2d.parse_numpy2d_str(s)
+ s = s:gsub('%s+', '')
+ _, _, i1, iS, i2, j1, jS, j2 = string.find(s, "(%-?%d*)(:?)(%-?%d*),?(%-?%d*)(:?)(%-?%d*)")
+ i1, i2 = parse_numpy1d(i1, i2, iS)
+ j1, j2 = parse_numpy1d(j1, j2, jS)
+ return i1, j1, i2, j2
+end
+
+
+local _parse_range = pl.clone_function(pl.array2d.parse_range)
+
+function pl.array2d.parse_range(s) -- edit parse range to do numpy string if no letter passed
+ pl.utils.assert_arg(1,s,'string')
+ if not s:find'%a' then
+ return pl.array2d.parse_numpy2d_str(s)
end
+ return _parse_range(s)
end
--- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+
+if not __PL_NO_GLOBALS__ then
+ -- iterators
+ kpairs = pl.utils.kpairs
+ npairs = pl.utils.npairs
+ --enum = utils.enum
+
+ for k,v in pairs(pl.tablex) do -- extend the table table to contain tablex functions
+ _G['table'][k] = v
+ end
+
+ hasval = pl.hasval
+ COMP = pl.COMP
+
+ -- shortcuts
+-- http://stevedonovan.github.io/Penlight/api/libraries/pl.utils.html
+ pl.writefile = pl.utils.writefile
+ pl.readfile = pl.utils.readfile
+ pl.readlines = pl.utils.readfile
+ pl.filterfiles = pl.utils.filterfiles
+
+ pl.a2 = pl.array2d
+ pl.tbl = pl.tablex
+
+
+ for k,v in pairs(pl.tex) do -- make tex functions global
+ _G[k] = v
+ end
+
+ --_xTrue = pl.tex._xTrue
+ --_xFalse = pl.tex._xFalse
+ --_xNoValue = pl.tex._xNoValue
+ --
+ --prt = pl.tex.prt
+ --prtn = pl.tex.prtn
+ --wrt = pl.tex.wrt
+ --wrtn = pl.tex.wrtn
+ --
+ --prtl = pl.tex.prtl
+ --prtt = pl.tex.prtt
+ --
+ --help_wrt = pl.tex.help_wrt
+ --prt_array2d = pl.tex.prt_array2d
+ --
+ --pkgwarn = pl.tex.pkgwarn
+ --pkgerror = pl.tex.pkgerror
+ --
+ --defcmd = pl.tex.defcmd
+ --prvcmd = pl.tex.prvcmd
+ --newcmd = pl.tex.newcmd
+ --renewcmd = pl.tex.renewcmd
+ --deccmd = pl.tex.deccmd
+ --
+ --_NumBkts = pl.tex._NumBkts
+ --opencmd = pl.tex.opencmd
+ --reset_bkt_cnt = pl.tex.reset_bkt_cnt
+ --add_bkt_cnt = pl.tex.add_bkt_cnt
+ --close_bkt_cnt = pl.tex.close_bkt_cnt
+
+end
+
+
+
+
+
+-- graveyard
+
+
+-- luakeys parses individual keys as ipairs, this changes the list to a pure map
+--function pl.luakeystomap(t)
+-- local t_new = {}
+-- for k, v in pairs(t) do
+-- if type(k) == 'number' then
+-- t_new[v] = true
+-- else
+-- t_new[k] = v
+-- end
+-- end
+-- return t_new
+--end
+--if luakeys then -- if luakeys is already loaded
+-- function luakeys.parseN(s, ...)
+-- local t = luakeys.parse(s,...)
+-- t = pl.luakeystomap(t)
+-- return t
+-- end
+--end
+-- might not be needed
+
+
+ --local func = check_func(func)
+--local function check_func(func) -- check if a function is a PE, if so, make it a function
+-- if type(func) ~= 'function' then
+-- return I(func)
+-- end
+-- return func
+--end
+
+-- -- -- -- -- -- --
+-- -- -- -- functions below extend the array2d module
+
+
+--function pl.array2d.map_slice1(func, L, i1, i2) -- map a function to a slice of an array, can use PlcExpr
+-- i2 = i2 or i1
+-- local len = #L
+-- i1 = check_index(i1, len)
+-- i2 = check_index(i2, len)
+-- func = check_func(func)
+-- for i in pl.seq.range(i1,i2) do
+-- L[i] = func(L[i])
+-- end
+-- return L
+--end
+
+ -- used this below when iter was not working..
+ --i1, j1, i2, j2 = check_slice(M, i1, j1, i2, j2)
+ --for i in pl.seq.range(i1,i2) do
+ -- for j in pl.seq.range(j1,j2) do
+ --end
+ -- penlight may have fixed this
+--local function check_index(ij, rc) -- converts array index to positive value if negative
+-- if type(ij) ~= 'number' then
+-- return 1
+-- else
+-- if ij < 0 then
+-- ij = rc + ij + 1
+-- elseif ij > rc then
+-- ij = rc
+-- elseif ij == 0 then
+-- ij = 1
+-- end
+-- return ij
+-- end
+--end
+--local function check_slice(M, i1, j1, i2, j2) -- ensure a slice is valid; i.e. all positive numbers
+-- r, c = pl.array2d.size(M)
+-- i1 = check_index(i1 or 1, r)
+-- i2 = check_index(i2 or r, r)
+-- j1 = check_index(j1 or 1, c)
+-- j2 = check_index(j2 or c, c)
+-- return i1, j1, i2, j2
+--end
+
diff --git a/macros/xetex/latex/book-of-common-prayer/README.md b/macros/unicodetex/latex/book-of-common-prayer/README.md
index a0671e1d95..345d52cb67 100644
--- a/macros/xetex/latex/book-of-common-prayer/README.md
+++ b/macros/unicodetex/latex/book-of-common-prayer/README.md
@@ -1,6 +1,6 @@
-book-of-common-prayer (v1.0.0): Liturgical typesetting in the style of the 1979 Book of Common Prayer.
+book-of-common-prayer (v1.1.0): Liturgical typesetting in the style of the 1979 Book of Common Prayer.
===
-Copyright (C) 2021 Arlie Coles
+Copyright (C) 2022 Arlie Coles
This package can be redistributed and/or modified under the terms
of the LaTeX Project Public License 1.3c.
===
@@ -12,6 +12,6 @@ This package is designed to work with the Sabon font, but it is not necessary to
* Arial Unicode MS
* Junicode
-You should compile documents that use this package with XeLaTeX.
+You should compile documents that use this package with XeLaTeX or LuaLaTeX.
This material is subject to the LaTeX Project Public License 1.3c.
diff --git a/macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.pdf b/macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
new file mode 100644
index 0000000000..896602974f
--- /dev/null
+++ b/macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
Binary files differ
diff --git a/macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.sty b/macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.sty
index 168e95e56a..68189ee7db 100644
--- a/macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.sty
+++ b/macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.sty
@@ -1,7 +1,7 @@
% Author: Arlie Coles
% License: LaTeX Project Public License 1.3c
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{book-of-common-prayer}[2021/06/27 Liturgical documents in the style of the Book of Common Prayer]
+\ProvidesPackage{book-of-common-prayer}[2022/02/26 Liturgical documents in the style of the Book of Common Prayer]
\RequirePackage[no-math]{fontspec}
\RequirePackage[left=0.5in, right=0.5in, vmargin=0.5in]{geometry}
@@ -20,6 +20,7 @@
\RequirePackage{pgf}
\RequirePackage{pgfopts}
\RequirePackage{bilingualpages}
+\RequirePackage{changepage}
% The BCP font is Sabon, so allow this option
\DeclareOption{sabon}{\setmainfont[Ligatures=TeX]{Sabon LT Std}}
@@ -49,8 +50,9 @@
\newcommand{\tab}{\hspace*{1em}}
\newcommand{\blankline}{\vspace{\parskip}}
\newcommand{\deleteline}{\vspace{-\parskip}}
+\newcommand{\spacer}{\vspace{0.1cm}} % A bit of breathing room between responses
-% Cover image
+% Cover image with border around it
\usepackage{graphicx}
\newcommand{\munepsfig}[3][scale=1.0]{% <===============================
\begin{figure}[!htbp]
@@ -110,7 +112,10 @@
% Roles to go with the responses - the people are bolded
\newcommand{\priest}[1]{\textit{Priest} & #1 \\}
\newcommand{\deacon}[1]{\textit{Deacon} & #1 \\}
+\newcommand{\subdeacon}[1]{\textit{Subdeacon} & #1 \\}
\newcommand{\officiant}[1]{\textit{Officiant} & #1 \\}
+\newcommand{\lector}[1]{\textit{Lector} & #1 \\}
+\newcommand{\epistoler}[1]{\textit{Epistoler} & #1 \\}
\newcommand{\people}[1]{\textit{People} & \textbf{#1} \\}
\newcommand{\servers}[1]{\textit{Servers} & #1 \\}
\newcommand{\contd}[1]{& #1 \\}
@@ -213,3 +218,27 @@
\par\nointerlineskip \vspace{.5\baselineskip}
}
\newcommand{\sectionline}{\makesectionline{black}{88}}
+
+% PSALMS
+% Command for the two-part structure of a psalm verse
+\newcommand{\psalmverse}[2]{
+ % Adjust parskip; no blank lines in between
+ \setlength{\parskip}{0pt}
+
+ % Render the first part
+ #1 *
+ % Hang in the second part
+ \begin{adjustwidth}{2em}{0pt}
+ #2
+ \end{adjustwidth}
+
+ % Put parskip back
+ \setlength{\parskip}{12pt}
+}
+
+
+% Cont'd marker at bottom of page
+\newcommand{\continued}{
+ \vspace*{\fill}
+ \instruct{\hfill \small \textit{(cont'd)}}
+}
diff --git a/macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.tex b/macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.tex
index c7338e5f48..61b18b9a09 100644
--- a/macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.tex
+++ b/macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.tex
@@ -26,12 +26,15 @@
\title{\texttt{book-of-common-prayer}\\
\Large Typesetting for liturgical documents in the style of the 1979 Book of Common Prayer \\
}
-\date{July 2021 \\ \textit{Version 1.0.0}}
+\date{February 2022 \\ \textit{Version 1.1.0}}
\author{Arlie Coles}
\begin{document}
\maketitle
+\tableofcontents
+
+\clearpage
\section{Introduction}
\texttt{book-of-common-prayer} is a \LaTeX\ package for liturgical documents in the style of the 1979 Book of Common Prayer\footnote{\url{http://justus.anglican.org/resources/bcp/formatted_1979.htm}}. It provides special typesetting tools for common liturgical situations (e.g. versicle and response, longer prayers, etc.) as well as formatting specifications for an entire document (e.g. font face, section headers, margins, etc.).
@@ -47,7 +50,13 @@ The standard font used in the 1979 Book of Common Prayer is Sabon\footnote{\url{
You should also have the fonts Arial Unicode MS\footnote{\url{https://docs.microsoft.com/en-us/typography/font-list/arial-unicode-ms}} and Junicode\footnote{\url{https://junicode.sourceforge.io/}} installed on your computer. These two fonts provide some special symbols used by \texttt{book-of-common-prayer}.
-Since \texttt{book-of-common-prayer} uses special fonts, you should compile your document with the Xe\LaTeX\ compiler.
+Since \texttt{book-of-common-prayer} uses special fonts, you should compile your document with the Lua\LaTeX\ or Xe\LaTeX\ compiler.
+
+\subsection{Music}
+
+\texttt{book-of-common-prayer} works with Lilypond\footnote{\url{http://lilypond.org/}} for inline music notation. If you have musical scores you would like to integrate into your document, you should use the \texttt{lyluatex} package by writing \lstinline|\usepackage{lyluatex}| in the preamble of your document.
+
+To compile your document with Lilypond scores, you must use Lua\LaTeX, e.g. \lstinline{lualatex -shell-escape your_document.tex}.
\subsection{Page setup}
@@ -91,6 +100,7 @@ There are also some special commands to fine-tune formatting when needed (usuall
\item \lstinline{\blankline} forces a blank line (similar to pressing \lstinline{Enter} twice in Microsoft Word). Usually, \LaTeX\ manages this type of spacing for you, but you can use this command if you need more manual control.
\item \lstinline{\deleteline} deletes an empty line's space (similar to backspacing over a blank line in Microsoft Word).
\item \lstinline{\tab} creates an indent (similar to pressing \lstinline{tab} in Microsoft Word).
+ \item \lstinline{\spacer} creates a very small vertical space when this kind of fine control is desired.
\end{itemize}
\subsection{Text formatting}
@@ -187,7 +197,8 @@ To put a box around some text, and italicize the text inside, we can use \lstinl
\caption{Boxes around text.}
\end{table}
-\blankline
+\continued
+\clearpage
\subsection{Environments}
Several environments are available in \texttt{book-of-common-prayer}. These are used for common formatting blocks, such as versicle-and-response exchanges or longer prayers.
@@ -198,8 +209,10 @@ Table \ref{tab:env_responses} shows how to use the \lstinline{responses} environ
Supported roles are \lstinline{priest}, \lstinline{deacon}, \lstinline{officiant}, \lstinline{servers}, and \lstinline{people}. Support for roles in French is also available (as \lstinline{pretre}, \lstinline{diacre}, \lstinline{officiant}, \lstinline{servants}, and \lstinline{peuple} respectively). The text associated with the \lstinline{people}/\lstinline{peuple} role is always bolded.
-\pagebreak
-\begin{table}[h]
+Other supported roles that will render as non-bolded are: \lstinline{subdeacon}, \lstinline{epistoler}, \lstinline{lector}.
+
+% \pagebreak
+\begin{table}[h!]
\centering
\begin{tabular}{ll}
\toprule
@@ -276,7 +289,7 @@ Table \ref{tab:env_vresponses} shows how to use the \lstinline{vresponses} envir
Sometimes, if the response is long, we might want to format it further. We can do this by placing the response inside of an \lstinline|\rlong{}| bracketing. We can then use line breaks (\lstinline{\\}) and tabs (\lstinline{\tab}) to format the response as we like. Table \ref{tab:env_vresponses_rlong} shows an example of this.
-% \clearpage
+\clearpage
\begin{table}[h!]
\centering
\begin{tabular}{ll}
@@ -462,5 +475,53 @@ Table \ref{tab:env_threecolprayer} shows how to use the \lstinline{threecolpraye
\end{table}
+\subsubsection{Psalm typesetting}
+
+It is possible to typeset psalms with a combination of an enumerated list and \lstinline{\psalmverse}, as shown in Table \ref{tab:psalms}.
+
+\begin{table}[h]
+\centering
+\begin{xtabular}{p{.45\textwidth}p{.45\textwidth}}
+\toprule
+\LaTeX\ code & Formatted output \\
+\midrule
+\begin{lstlisting}
+\begin{enumerate}[
+ leftmargin=*,
+ label=\textsc{\arabic*}
+ ]
+ \item \psalmverse
+ {The Lord is my shepherd:}
+ {Therefore can I lack nothing.}
+ \item \psalmverse
+ {He shall feed me
+ in a green pasture:}
+ {and lead me forth beside
+ the waters of comfort.}
+\end{enumerate}
+\end{lstlisting}
+&
+\sabon{
+\begin{enumerate}[
+ leftmargin=*,
+ label=\textsc{\arabic*}
+ ]
+ \item \psalmverse
+ {The Lord is my shepherd:}
+ {Therefore can I lack nothing.}
+ \item \psalmverse
+ {He shall feed me
+ in a green pasture:}
+ {and lead me forth beside
+ the waters of comfort.}
+\end{enumerate}
+}
+\\
+\bottomrule
+\end{xtabular}
+\caption{Typesetting psalms with an enumerated list and \lstinline{\\psalmverse}.}
+\label{tab:psalms}
+\end{table}
+
\end{document}
diff --git a/macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.pdf b/macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
deleted file mode 100644
index 89e27100d8..0000000000
--- a/macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
+++ /dev/null
Binary files differ
diff --git a/support/arara/README.md b/support/arara/README.md
index c1738df4c7..80b3c81f17 100644
--- a/support/arara/README.md
+++ b/support/arara/README.md
@@ -1,6 +1,6 @@
![arara](https://i.stack.imgur.com/hjUsN.png)
-# arara v6.1.5
+# arara v6.1.6
![Language: Kotlin](https://img.shields.io/badge/Language-Kotlin-blue.svg?style=flat-square)
![Minimum JRE: 8.0](https://img.shields.io/badge/Minimum_JRE-8-blue.svg?style=flat-square)
diff --git a/support/arara/doc/arara-manual.pdf b/support/arara/doc/arara-manual.pdf
index 2ada1cc89e..ce61fca281 100644
--- a/support/arara/doc/arara-manual.pdf
+++ b/support/arara/doc/arara-manual.pdf
Binary files differ
diff --git a/support/arara/doc/arara-quickstart.pdf b/support/arara/doc/arara-quickstart.pdf
index aee130a961..99b1165e35 100644
--- a/support/arara/doc/arara-quickstart.pdf
+++ b/support/arara/doc/arara-quickstart.pdf
Binary files differ
diff --git a/support/arara/doc/arara.1 b/support/arara/doc/arara.1
index 6772966664..db01d9cc9c 100644
--- a/support/arara/doc/arara.1
+++ b/support/arara/doc/arara.1
@@ -1,4 +1,4 @@
-.TH ARARA 1 "21 December 2021" "v6.1.5"
+.TH ARARA 1 "27 February 2022" "v6.1.6"
.SH NAME
arara \- a TeX automation tool based on rules and directives.
.SH SYNOPSIS
diff --git a/support/arara/doc/version.tex b/support/arara/doc/version.tex
index f8c5c2ccd2..3af67b5cb5 100644
--- a/support/arara/doc/version.tex
+++ b/support/arara/doc/version.tex
@@ -1 +1 @@
-6.1.5 \ No newline at end of file
+6.1.6 \ No newline at end of file
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index f7825433ee..a59d939627 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -48,7 +48,6 @@ $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,
@@ -138,9 +137,6 @@ $mirrors = {
'https://mirror.koddos.net/CTAN/' => 1,
'https://mirror.lyrahosting.com/CTAN/' => 1,
},
- 'Norway' => {
- 'https://ctan.uib.no/' => 1,
- },
'Poland' => {
'https://ctan.gust.org.pl/tex-archive/' => 1,
'https://repo.skni.umcs.pl/ctan/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 88fcbd8b3a..7a841eccda 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/62178
+depend revision/62213
name 00texlive.image
category TLCore
-revision 62157
+revision 62198
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4537,7 +4537,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 62171
+revision 62196
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
@@ -28015,7 +28015,7 @@ catalogue-version 1.0
name babel
category Package
-revision 62166
+revision 62203
shortdesc Multilingual support for LaTeX, LuaLaTeX, XeLaTeX, and Plain TeX
relocated 1
longdesc This package manages culturally-determined typographical (and
@@ -28028,15 +28028,15 @@ longdesc has to be done for each language. Included is also a set of ini
longdesc files for about 250 languages. Many language styles work with
longdesc pdfLaTeX, as well as with XeLaTeX and LuaLaTeX, out of the box.
longdesc A few even work with plain formats.
-containersize 183932
-containerchecksum 20cb895af6f872893132de7097a7c240f4ca94addb91f61f34d3b906abe68bb64019c9d148c0e9135ab609f6b175f1f885c6b7d6f1a81e2b89718344bb981a81
-doccontainersize 842684
-doccontainerchecksum 0bdd76049a36f531fb7f1cca9a2efe0f7e6beb3667dc04fab826757b776c1dad7f25c5c694eff0ccacb26da681d7555849af56fbc18dce49fdf4155326b94d57
+containersize 184200
+containerchecksum d9d59cbe3f170a51c5d0698360674a9812ab8b37c26724aa8c5656c202d79b61e751b06e71cdc6f3494eb2fbd6bbab9fe6880e82b68c5c621fff267b3e3b72c6
+doccontainersize 842860
+doccontainerchecksum b39012a469033103419b9301cef42edaca68d785cd0cbfd18a9db226e034f08cdec6ad653676db4f0919c300284ddb236dbc10291d74ce98ce998e61e0f7c21e
docfiles size=210
RELOC/doc/latex/babel/README.md details="Readme"
RELOC/doc/latex/babel/babel.pdf details="Package documentation"
-srccontainersize 698920
-srccontainerchecksum 7e3e8e3c905493e512bcdc6e6853c60752a4c461ef3cfd737120f11f9f78351e30fa0b67a633f3841b0fb0475253d6175add3fa7e7c55aee1275cccb27e2e236
+srccontainersize 698900
+srccontainerchecksum 168924d39cd278c3eda6df5e46d4b39cf0695f2de0554349d1fbd28c0e318f8c5962895cb172d0322f026f8852a00274ad90b628bf26cf10b600d1e78815b48f
srcfiles size=381
RELOC/source/latex/babel/babel.dtx
RELOC/source/latex/babel/babel.ins
@@ -28750,7 +28750,7 @@ catalogue-contact-repository https://github.com/latex3/babel
catalogue-ctan /macros/latex/required/babel/base
catalogue-license lppl1.3
catalogue-topics multilingual
-catalogue-version 3.72
+catalogue-version 3.73
name babel-albanian
category Package
@@ -34432,15 +34432,15 @@ catalogue-topics class book-pub chinese
name beebe
category Package
-revision 62093
+revision 62180
catalogue biblio
shortdesc A collection of bibliographies
relocated 1
longdesc A collection of BibTeX bibliographies on TeX-related topics
longdesc (including, for example, spell-checking and SGML). Each
longdesc includes a LaTeX wrapper file to typeset the bibliography.
-containersize 889496
-containerchecksum 32e48f96d2b2de8517528aa03fd0044d45ffc506ab1d68b99a444a379fe73df4735f550653036cd6818fbbdc064e98ccff2828f9abea8102e6560b229c9d9cae
+containersize 889472
+containerchecksum db305788cc73efde3db29f301d5228d44c08260b05c7a7dbbe6c7a633494fcab1906ec224e034e31d032e4d8fc57f399616a3438f4011af3282195f205f65882
runfiles size=2212
RELOC/bibtex/bib/beebe/epodd.bib
RELOC/bibtex/bib/beebe/font.bib
@@ -187407,7 +187407,7 @@ catalogue-version 0.1.4
name lua-uni-algos
category Package
-revision 60194
+revision 62205
shortdesc Unicode algorithms for LuaTeX
relocated 1
longdesc Lua code working with Unicode data has to deal with quite some
@@ -187425,10 +187425,10 @@ longdesc Lua modules, it is only useful in Lua(HB)TeX. Additionally, it
longdesc expects an up-to-date version of the unicode-data package to be
longdesc present. This package is intended for package authors only; no
longdesc user-level functionality provided.
-containersize 7696
-containerchecksum dda72953163220a2f0e7bf7cf1ca5500d45d90f8dd877c41a586e89fa60b9a038ea9f680cf1180d982ea843168f905d4775681479351922e52c3400ffb744697
-doccontainersize 73924
-doccontainerchecksum 75c9015411a471aef18480b2aa58754145d01a2364156e56362f0665d4cb841652456b2e4929b550db1dbb33821032d456c7ae39f5aa74c7d2a80afc046a7831
+containersize 7688
+containerchecksum cc7f78cc1df602e575cdbb662e555e7c382e0f409799d12ebfa293fe82a612ae0394ef712a8e8da817eb3d0a5a0790f3e3c26a22a050dd06acd7ecf051ba60d4
+doccontainersize 73920
+doccontainerchecksum 07ddec416685d34b077b0f377569f9f039d2eebed0d1fb4e8a589d7ea6292e77ed670a8a14baba044b7eca3167373e9e4345f5ac47431f4485fca16daa781dea
docfiles size=22
RELOC/doc/luatex/lua-uni-algos/README.md details="Readme"
RELOC/doc/luatex/lua-uni-algos/lua-uni-algos.pdf details="Package documentation"
@@ -187439,11 +187439,11 @@ runfiles size=11
RELOC/tex/luatex/lua-uni-algos/lua-uni-graphemes.lua
RELOC/tex/luatex/lua-uni-algos/lua-uni-normalize.lua
RELOC/tex/luatex/lua-uni-algos/lua-uni-parse.lua
-catalogue-contact-repository https://github.com/zauguin/lua-uni-algos
+catalogue-contact-repository https://github.com/latex3/lua-uni-algos
catalogue-ctan /macros/luatex/generic/lua-uni-algos
catalogue-license lppl1.3
catalogue-topics luatex unicode
-catalogue-version 0.4
+catalogue-version 0.4.1
name lua-visual-debug
category Package
@@ -188873,19 +188873,20 @@ catalogue-version 2.23.0
name luaotfload
category Package
-revision 62175
+revision 62198
shortdesc OpenType 'loader' for Plain TeX and LaTeX
longdesc The package adopts the TrueType/OpenType Font loader code
longdesc provided in ConTeXt, and adapts it to use in Plain TeX and
longdesc LaTeX. It works under LuaLaTeX only.
depend lm
depend lua-alt-getopt
+depend lua-uni-algos
depend lualibs
depend luaotfload.ARCH
-containersize 611380
-containerchecksum e722cf193329e5e0c7662a3b4d93267ac3e6e9c70edc780f77d9522db7243486ef8b349ab68d40f1ff375157b4a14d3e31f8a29c249f2bfb59b9baea102548ad
-doccontainersize 624892
-doccontainerchecksum 83c1073fde25287faf668d6a2b7eae4f4a9f5143b737778c61025654c2a3f6c2667182cd8a9fa6e857f34210d37fe63b33710194f6181dc029d383e631f25bd7
+containersize 611384
+containerchecksum 9c9995859519192b0897dad406280c7ba1ff1497b189219115b281758c23c152fd6f8d353f4d3994718572ecdfaf2156abdd752b35fae350a9a6db1517f344e4
+doccontainersize 624896
+doccontainerchecksum 733746eb51f25ab211a5844f3757713de1f91545fb720c2a54af4257e3bc813300cbdd9d13dae42a9dbaedd7a2f7c2e85ba253df25b87609953a32d1d60527f5
docfiles size=272
texmf-dist/doc/luatex/luaotfload/COPYING
texmf-dist/doc/luatex/luaotfload/NEWS
@@ -188910,8 +188911,8 @@ docfiles size=272
texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf
texmf-dist/doc/man/man5/luaotfload.conf.5
texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf
-srccontainersize 7296
-srccontainerchecksum 71fe64f648586f504857f1c9d78093c072ffef95233df34dbcb95581e3681bdd61ad1aa4513efd85f850a81d0cd492a501fa4ff2191cae3ae99cd33a9012526d
+srccontainersize 7292
+srccontainerchecksum 07fae8ee4c8cea19da6db79a3e0099841af5ffab28446721517be78002bccc309d7580e91644dfdfdc5d9fc5acfad5652df38888729ad2a25424745934e1b1d7
srcfiles size=6
texmf-dist/source/luatex/luaotfload/fontloader-reference-load-order.lua
texmf-dist/source/luatex/luaotfload/fontloader-reference-load-order.tex
@@ -299712,14 +299713,14 @@ docfiles size=539
name texlive-msg-translations
category TLCore
-revision 62135
+revision 62192
shortdesc translations of the TeX Live installer and TeX Live Manager
longdesc This package contains the translated messages of the TeX Live
longdesc installer and TeX Live Manager. For information on creating or
longdesc updating translations, see
longdesc http://tug.org/texlive/doc.html#install-tl-xlate.
-containersize 146380
-containerchecksum 61c9056cd38eff2a72af45e80f703d103df654bc3cecaabb91cbc11c727cffd64c62bb72c85da689d81e5dac2279542287ddd62ebc0a361010d6f369e132ee83
+containersize 146364
+containerchecksum 128b5d755d28b56047fea43d40904bff2c865915186aee18a89b729a73fdee2af6adb0290c111c007172c35f16f9b7a6d3f2fcd665b0f9828c68613b84f1d931
runfiles size=367
tlpkg/translations/README
tlpkg/translations/cs.po
@@ -299781,7 +299782,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 62171
+revision 62196
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.
@@ -299789,10 +299790,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 108812
-containerchecksum debe263fbe2c10475901bd026e3c3df81b50c7dfc511bf8329855feaf82c6ad139b58025d742e58378477a30e1942d670de80d89a89fc653a3a9830cf69f4d39
-doccontainersize 404232
-doccontainerchecksum 4a9cac2889325d967657e0432334a9edffaa3f644c4997a8b634f704e57443cca16080c3aba045a5d121c60fa81ad3d9b1077341e223843f3b9d3421a741895c
+containersize 108788
+containerchecksum e8e268a41b2f982aa892db60017e96f592069b7fb374c0735edb3be385c67205faa028cca94405cc9a1175fc4d059d325952a70e97b461d8aa9da7eaebe5f6f6
+doccontainersize 404188
+doccontainerchecksum 25abe3b3afa39a0c53cdcac0b0e8caaf25eed7fedee1960bbad50929cca8a6c996f38c8b454f4cb898fe677194bf3e1db2fab96029908fa47e6bb9cc91ad56ac
docfiles size=503
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -334060,7 +334061,7 @@ catalogue-topics pdfprocess adobe-distiller
name xcharter
category Package
-revision 61837
+revision 62200
shortdesc Extension of Bitstream Charter fonts
relocated 1
longdesc The package presents an extension of Bitstream Charter, which
@@ -334069,11 +334070,11 @@ longdesc all four styles, accompanied by LaTeX font support files. The
longdesc fonts themselves are provided in both Adobe Type 1 and OTF
longdesc formats, with supporting files as necessary.
execute addMap XCharter.map
-containersize 2135600
-containerchecksum fe20ef78e4f605291383b2b3492d96ed9a43ec9c4c94d47bf48a92e3041e511fa8e394205aabb10b725670933d0ff7565466ade1f20b61e3de323a455b241abd
-doccontainersize 483688
-doccontainerchecksum 00fbad2fa28290a8f8cce66d27e57dd6057ecc8f2c0580ec2b55ae1cc7a0c8069feb1cf9d197b2f583120fd45d7d2e4bcbd93e9132a1917fc4e0ab74a8db89bf
-docfiles size=219
+containersize 2198460
+containerchecksum 92fb2e7b2fac96f2a447276c3a4bd4f2c0bd71062992f8245c1af790b36cbb0d3d3659dda711d3b810c5447ea4d1d72f783645c9cd987dca6396b3508a02610f
+doccontainersize 220788
+doccontainerchecksum 107d9dd35890efcd3c40e9ebf100993ea67cc8663075e308e9f3c64a446cdd498568c6770d5f04b8ef1145c8390aef6b70ac1409a4109345df990cf6c7e6a612
+docfiles size=75
RELOC/doc/fonts/xcharter/README details="Readme"
RELOC/doc/fonts/xcharter/altone.py
RELOC/doc/fonts/xcharter/newgermanfxch-crop.pdf
@@ -334081,7 +334082,7 @@ docfiles size=219
RELOC/doc/fonts/xcharter/newgermanfxch.tex
RELOC/doc/fonts/xcharter/xcharter-doc.pdf details="Package documentation"
RELOC/doc/fonts/xcharter/xcharter-doc.tex
-runfiles size=2430
+runfiles size=3543
RELOC/fonts/afm/public/xcharter/XCharter-Bold.afm
RELOC/fonts/afm/public/xcharter/XCharter-BoldItalic.afm
RELOC/fonts/afm/public/xcharter/XCharter-BoldSlanted.afm
@@ -334100,32 +334101,57 @@ runfiles size=2430
RELOC/fonts/enc/dvips/xcharter/xch1_2itbay.enc
RELOC/fonts/enc/dvips/xcharter/xch1_2jcsfa.enc
RELOC/fonts/enc/dvips/xcharter/xch1_3qy4ma.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_4sqimf.enc
RELOC/fonts/enc/dvips/xcharter/xch1_4zysyq.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_5x23ii.enc
RELOC/fonts/enc/dvips/xcharter/xch1_64qgug.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_65qaqc.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_6ir2ua.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_6ramfp.enc
RELOC/fonts/enc/dvips/xcharter/xch1_6xwfqv.enc
RELOC/fonts/enc/dvips/xcharter/xch1_7aohvb.enc
- RELOC/fonts/enc/dvips/xcharter/xch1_7p4e2o.enc
- RELOC/fonts/enc/dvips/xcharter/xch1_afo4o4.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_acpec5.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_an6s6r.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_c3yyfo.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_c54uym.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_ccfumi.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_cilcsm.enc
RELOC/fonts/enc/dvips/xcharter/xch1_cjimfy.enc
RELOC/fonts/enc/dvips/xcharter/xch1_co4ru4.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_dp2hrq.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_dynzsr.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_eldrzl.enc
RELOC/fonts/enc/dvips/xcharter/xch1_geqmur.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_hgvfee.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_i2cund.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_i2fqhk.enc
RELOC/fonts/enc/dvips/xcharter/xch1_icytdu.enc
- RELOC/fonts/enc/dvips/xcharter/xch1_ivnpe7.enc
- RELOC/fonts/enc/dvips/xcharter/xch1_m7ekhw.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_iit6m7.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_ksktz7.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_laqzs3.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_m6qb7y.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_mpbiom.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_ng7me5.enc
RELOC/fonts/enc/dvips/xcharter/xch1_nhow2o.enc
RELOC/fonts/enc/dvips/xcharter/xch1_ph46id.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_pikjb7.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_plaupi.enc
RELOC/fonts/enc/dvips/xcharter/xch1_pqp4df.enc
- RELOC/fonts/enc/dvips/xcharter/xch1_q2nwaj.enc
RELOC/fonts/enc/dvips/xcharter/xch1_q7fabp.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_qfy5bi.enc
RELOC/fonts/enc/dvips/xcharter/xch1_s4eoyd.enc
RELOC/fonts/enc/dvips/xcharter/xch1_sczepj.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_tipddl.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_tohekq.enc
RELOC/fonts/enc/dvips/xcharter/xch1_wd2dbe.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_wf67wi.enc
RELOC/fonts/enc/dvips/xcharter/xch1_wqeam3.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_wqjgnt.enc
RELOC/fonts/enc/dvips/xcharter/xch1_wuciy4.enc
RELOC/fonts/enc/dvips/xcharter/xch1_x6jczy.enc
RELOC/fonts/enc/dvips/xcharter/xch1_xqcxen.enc
+ RELOC/fonts/enc/dvips/xcharter/xch1_yr3lcc.enc
RELOC/fonts/enc/dvips/xcharter/xch1_z3wvjz.enc
- RELOC/fonts/enc/dvips/xcharter/xch1_zhjmar.enc
RELOC/fonts/enc/dvips/xcharter/xch1_zqx27h.enc
RELOC/fonts/enc/dvips/xcharter/xchTH_osf-ly1.enc
RELOC/fonts/enc/dvips/xcharter/xchTH_osf-ot1.enc
@@ -334136,81 +334162,131 @@ runfiles size=2430
RELOC/fonts/enc/dvips/xcharter/xch_26pbhy.enc
RELOC/fonts/enc/dvips/xcharter/xch_2itbay.enc
RELOC/fonts/enc/dvips/xcharter/xch_2jcsfa.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_2ne5ra.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_2v3pxw.enc
RELOC/fonts/enc/dvips/xcharter/xch_34ooqo.enc
RELOC/fonts/enc/dvips/xcharter/xch_3qy4ma.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_4ba22z.enc
RELOC/fonts/enc/dvips/xcharter/xch_4j4sw5.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_4nycuc.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_4sqimf.enc
RELOC/fonts/enc/dvips/xcharter/xch_4zysyq.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_5wo36q.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_5x23ii.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_62bu45.enc
RELOC/fonts/enc/dvips/xcharter/xch_62z5ot.enc
RELOC/fonts/enc/dvips/xcharter/xch_6335sg.enc
RELOC/fonts/enc/dvips/xcharter/xch_64qgug.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_65qaqc.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_6ckksa.enc
RELOC/fonts/enc/dvips/xcharter/xch_6hzluo.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_6ir2ua.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_6mgzuz.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_6ramfp.enc
RELOC/fonts/enc/dvips/xcharter/xch_6w7aji.enc
RELOC/fonts/enc/dvips/xcharter/xch_6xwfqv.enc
RELOC/fonts/enc/dvips/xcharter/xch_7aohvb.enc
RELOC/fonts/enc/dvips/xcharter/xch_7cmdv6.enc
- RELOC/fonts/enc/dvips/xcharter/xch_7p4e2o.enc
- RELOC/fonts/enc/dvips/xcharter/xch_abgjzu.enc
- RELOC/fonts/enc/dvips/xcharter/xch_afo4o4.enc
- RELOC/fonts/enc/dvips/xcharter/xch_ao7ayk.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_a6eos7.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_acpec5.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_akeqbh.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_an6s6r.enc
RELOC/fonts/enc/dvips/xcharter/xch_aw3wom.enc
RELOC/fonts/enc/dvips/xcharter/xch_bjnaxa.enc
RELOC/fonts/enc/dvips/xcharter/xch_blmpt7.enc
- RELOC/fonts/enc/dvips/xcharter/xch_bxmb3o.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_c3yyfo.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_c54uym.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ccfumi.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_cilcsm.enc
RELOC/fonts/enc/dvips/xcharter/xch_cjimfy.enc
RELOC/fonts/enc/dvips/xcharter/xch_ckugtc.enc
RELOC/fonts/enc/dvips/xcharter/xch_co4ru4.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_cos7tu.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_cy5fc2.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_dp2hrq.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_dqjass.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_dynzsr.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ei7atk.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_el7fqi.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_eldrzl.enc
RELOC/fonts/enc/dvips/xcharter/xch_en7yt2.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_f5e46c.enc
RELOC/fonts/enc/dvips/xcharter/xch_fiqldz.enc
RELOC/fonts/enc/dvips/xcharter/xch_geqmur.enc
RELOC/fonts/enc/dvips/xcharter/xch_glnwao.enc
- RELOC/fonts/enc/dvips/xcharter/xch_h4dyum.enc
- RELOC/fonts/enc/dvips/xcharter/xch_hnm3ex.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_gspcih.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_guhmqj.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_hgvfee.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_hiviyg.enc
RELOC/fonts/enc/dvips/xcharter/xch_hnm6t3.enc
- RELOC/fonts/enc/dvips/xcharter/xch_hrleas.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_i2cund.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_i2fqhk.enc
RELOC/fonts/enc/dvips/xcharter/xch_icytdu.enc
- RELOC/fonts/enc/dvips/xcharter/xch_imj3v4.enc
- RELOC/fonts/enc/dvips/xcharter/xch_ivnpe7.enc
- RELOC/fonts/enc/dvips/xcharter/xch_jqdzb6.enc
- RELOC/fonts/enc/dvips/xcharter/xch_l5j7vv.enc
- RELOC/fonts/enc/dvips/xcharter/xch_l7jokp.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_iit6m7.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ijhcpw.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_irqw25.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_kly36k.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ksktz7.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_laqzs3.enc
RELOC/fonts/enc/dvips/xcharter/xch_m2vrds.enc
- RELOC/fonts/enc/dvips/xcharter/xch_m7ekhw.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_m4ry62.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_m6qb7y.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_mcqmfh.enc
RELOC/fonts/enc/dvips/xcharter/xch_mgb5xg.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_mpbiom.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_naadkf.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ng7me5.enc
RELOC/fonts/enc/dvips/xcharter/xch_nhow2o.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_nii5is.enc
RELOC/fonts/enc/dvips/xcharter/xch_o2mz2z.enc
RELOC/fonts/enc/dvips/xcharter/xch_ocop3w.enc
- RELOC/fonts/enc/dvips/xcharter/xch_og2pus.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_oeyavg.enc
RELOC/fonts/enc/dvips/xcharter/xch_ph46id.enc
- RELOC/fonts/enc/dvips/xcharter/xch_phn3tc.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_pikjb7.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_plaupi.enc
RELOC/fonts/enc/dvips/xcharter/xch_pqp4df.enc
RELOC/fonts/enc/dvips/xcharter/xch_pz3lxg.enc
- RELOC/fonts/enc/dvips/xcharter/xch_q2nwaj.enc
RELOC/fonts/enc/dvips/xcharter/xch_q7fabp.enc
RELOC/fonts/enc/dvips/xcharter/xch_qdw4m6.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_qfy5bi.enc
RELOC/fonts/enc/dvips/xcharter/xch_qibaxb.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_qt227l.enc
RELOC/fonts/enc/dvips/xcharter/xch_qxwrge.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ruokxy.enc
RELOC/fonts/enc/dvips/xcharter/xch_rvzpfm.enc
RELOC/fonts/enc/dvips/xcharter/xch_rydp4l.enc
- RELOC/fonts/enc/dvips/xcharter/xch_s3y5jv.enc
RELOC/fonts/enc/dvips/xcharter/xch_s4eoyd.enc
RELOC/fonts/enc/dvips/xcharter/xch_sczepj.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_swys7y.enc
RELOC/fonts/enc/dvips/xcharter/xch_t5vgvk.enc
RELOC/fonts/enc/dvips/xcharter/xch_tcksd3.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_tdjqi5.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_tipddl.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_tohekq.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ttjfqt.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_txakzr.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_u5ytlb.enc
RELOC/fonts/enc/dvips/xcharter/xch_u7hnxs.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_ufo3av.enc
RELOC/fonts/enc/dvips/xcharter/xch_ukw3hq.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_usfr4u.enc
RELOC/fonts/enc/dvips/xcharter/xch_v6llfb.enc
- RELOC/fonts/enc/dvips/xcharter/xch_vtvjjk.enc
RELOC/fonts/enc/dvips/xcharter/xch_vyhv3k.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_wbcur7.enc
RELOC/fonts/enc/dvips/xcharter/xch_wd2dbe.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_wf67wi.enc
RELOC/fonts/enc/dvips/xcharter/xch_wizqmm.enc
RELOC/fonts/enc/dvips/xcharter/xch_wqeam3.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_wqjgnt.enc
RELOC/fonts/enc/dvips/xcharter/xch_wuciy4.enc
- RELOC/fonts/enc/dvips/xcharter/xch_x25wg5.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_wz23kl.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_x36pxl.enc
RELOC/fonts/enc/dvips/xcharter/xch_x6jczy.enc
RELOC/fonts/enc/dvips/xcharter/xch_xqcxen.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_y642va.enc
RELOC/fonts/enc/dvips/xcharter/xch_yelf2i.enc
+ RELOC/fonts/enc/dvips/xcharter/xch_yr3lcc.enc
RELOC/fonts/enc/dvips/xcharter/xch_z3wvjz.enc
- RELOC/fonts/enc/dvips/xcharter/xch_zhjmar.enc
RELOC/fonts/enc/dvips/xcharter/xch_zqx27h.enc
RELOC/fonts/enc/dvips/xcharter/xcharter-ot2.enc
RELOC/fonts/map/dvips/xcharter/XCharter.map
@@ -334232,11 +334308,45 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-inf-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-inf-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-inf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-lf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-numr-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-numr-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-numr-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-numr-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-numr-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Bold-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-sup-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-sup-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Bold-sup-ot1.tfm
@@ -334292,11 +334402,45 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-inf-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-inf-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-inf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-lf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-numr-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-numr-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-numr-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-numr-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-numr-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-sup-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-sup-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldItalic-sup-ot1.tfm
@@ -334352,11 +334496,45 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-inf-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-inf-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-inf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-lf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-numr-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-numr-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-numr-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-numr-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-numr-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-sup-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-sup-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-BoldSlanted-sup-ot1.tfm
@@ -334412,11 +334590,45 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-inf-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-inf-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-inf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-lf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-numr-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-numr-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-numr-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-numr-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-numr-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Italic-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-sup-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-sup-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Italic-sup-ot1.tfm
@@ -334472,11 +334684,45 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-inf-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-inf-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-inf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-lf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-numr-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-numr-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-numr-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-numr-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-numr-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Roman-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-sup-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-sup-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Roman-sup-ot1.tfm
@@ -334532,11 +334778,45 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-inf-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-inf-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-inf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-lf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-numr-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-numr-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-numr-ot1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-numr-t1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-numr-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-sup-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-sup-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-sup-ot1.tfm
@@ -334582,6 +334862,23 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-ts1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-Slanted-ts1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter-osf.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-tosf-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-tosf-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-tosf-ot1.tfm
@@ -334601,6 +334898,23 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-tosf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-ts1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Bold-ts1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-tosf-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-tosf-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-tosf-ot1.tfm
@@ -334620,6 +334934,23 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-tosf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-ts1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldItalic-ts1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-tosf-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-tosf-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-tosf-ot1.tfm
@@ -334639,6 +334970,23 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-tosf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-ts1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-BoldSlanted-ts1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-tosf-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-tosf-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-tosf-ot1.tfm
@@ -334658,6 +335006,23 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-tosf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-ts1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Italic-ts1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-tosf-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-tosf-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-tosf-ot1.tfm
@@ -334677,6 +335042,23 @@ runfiles size=2430
RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-tosf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-ts1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Roman-ts1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-ly1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-ly1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-ot1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-ot1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-t2a--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-t2asrb--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-sc-t2asrb.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-t1--base.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-t1.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-t2a.tfm
+ RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-osf-t2asrb.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-tosf-ly1--base.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-tosf-ly1.tfm
RELOC/fonts/tfm/public/xcharter/XCharter1-Slanted-tosf-ot1.tfm
@@ -334743,8 +335125,22 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter-Bold-dnom-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Bold-inf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Bold-inf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-lf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-lf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-lf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-lf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-lf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-lf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-lf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Bold-numr-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Bold-numr-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Bold-osf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Bold-sup-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Bold-sup-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Bold-tlf-ly1.vf
@@ -334767,8 +335163,22 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-dnom-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-inf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-inf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-lf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-lf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-lf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-lf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-lf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-lf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-lf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-numr-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-numr-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-osf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-sup-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-sup-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldItalic-tlf-ly1.vf
@@ -334791,8 +335201,22 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-dnom-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-inf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-inf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-lf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-lf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-lf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-lf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-lf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-lf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-lf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-numr-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-numr-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-osf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-sup-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-sup-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-BoldSlanted-tlf-ly1.vf
@@ -334814,8 +335238,22 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter-Italic-dnom-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Italic-inf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Italic-inf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-lf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-lf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-lf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-lf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-lf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-lf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-lf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Italic-numr-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Italic-numr-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Italic-osf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Italic-sup-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Italic-sup-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Italic-tlf-ly1.vf
@@ -334838,8 +335276,22 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter-Roman-dnom-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Roman-inf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Roman-inf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-lf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-lf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-lf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-lf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-lf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-lf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-lf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Roman-numr-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Roman-numr-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Roman-osf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Roman-sup-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Roman-sup-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Roman-tlf-ly1.vf
@@ -334862,8 +335314,22 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-dnom-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-inf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-inf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-lf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-lf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-lf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-lf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-lf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-lf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-lf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-numr-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-numr-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter-Slanted-osf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-sup-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-sup-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-tlf-ly1.vf
@@ -334881,6 +335347,16 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-tosf-sc-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-tosf-t1.vf
RELOC/fonts/vf/public/xcharter/XCharter-Slanted-ts1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-osf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-ot1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-sc-ly1.vf
@@ -334889,7 +335365,19 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-sc-t2a.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-sc-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Bold-tosf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Bold-ts1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-osf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-ot1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-sc-ly1.vf
@@ -334898,7 +335386,19 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-sc-t2a.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-sc-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-tosf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldItalic-ts1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-osf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-ot1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-sc-ly1.vf
@@ -334907,7 +335407,19 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-sc-t2a.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-sc-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-tosf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-BoldSlanted-ts1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-osf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-ot1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-sc-ly1.vf
@@ -334916,7 +335428,19 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-sc-t2a.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-sc-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Italic-tosf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Italic-ts1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-osf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-ot1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-sc-ly1.vf
@@ -334925,7 +335449,19 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-sc-t2a.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-sc-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Roman-tosf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Roman-ts1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-sc-ly1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-sc-ot1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-sc-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-sc-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-sc-t2asrb.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-osf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-ly1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-ot1.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-sc-ly1.vf
@@ -334934,6 +335470,8 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-sc-t2a.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-sc-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-t1.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-t2a.vf
+ RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-tosf-t2asrb.vf
RELOC/fonts/vf/public/xcharter/XCharter1-Slanted-ts1.vf
RELOC/fonts/vf/public/xcharter/zchbmi.vf
RELOC/fonts/vf/public/xcharter/zchbmi0.vf
@@ -334948,7 +335486,9 @@ runfiles size=2430
RELOC/fonts/vf/public/xcharter/zchmia.vf
RELOC/tex/latex/xcharter/LY1XCharter-Dnom.fd
RELOC/tex/latex/xcharter/LY1XCharter-Inf.fd
+ RELOC/tex/latex/xcharter/LY1XCharter-LF.fd
RELOC/tex/latex/xcharter/LY1XCharter-Numr.fd
+ RELOC/tex/latex/xcharter/LY1XCharter-OsF.fd
RELOC/tex/latex/xcharter/LY1XCharter-Sup.fd
RELOC/tex/latex/xcharter/LY1XCharter-TLF.fd
RELOC/tex/latex/xcharter/LY1XCharter-TOsF.fd
@@ -334956,7 +335496,9 @@ runfiles size=2430
RELOC/tex/latex/xcharter/LY1XCharterTH-tlf.fd
RELOC/tex/latex/xcharter/OT1XCharter-Dnom.fd
RELOC/tex/latex/xcharter/OT1XCharter-Inf.fd
+ RELOC/tex/latex/xcharter/OT1XCharter-LF.fd
RELOC/tex/latex/xcharter/OT1XCharter-Numr.fd
+ RELOC/tex/latex/xcharter/OT1XCharter-OsF.fd
RELOC/tex/latex/xcharter/OT1XCharter-Sup.fd
RELOC/tex/latex/xcharter/OT1XCharter-TLF.fd
RELOC/tex/latex/xcharter/OT1XCharter-TOsF.fd
@@ -334965,30 +335507,41 @@ runfiles size=2430
RELOC/tex/latex/xcharter/OT2XCharter-TLF.fd
RELOC/tex/latex/xcharter/T1XCharter-Dnom.fd
RELOC/tex/latex/xcharter/T1XCharter-Inf.fd
+ RELOC/tex/latex/xcharter/T1XCharter-LF.fd
RELOC/tex/latex/xcharter/T1XCharter-Numr.fd
+ RELOC/tex/latex/xcharter/T1XCharter-OsF.fd
RELOC/tex/latex/xcharter/T1XCharter-Sup.fd
RELOC/tex/latex/xcharter/T1XCharter-TLF.fd
RELOC/tex/latex/xcharter/T1XCharter-TOsF.fd
RELOC/tex/latex/xcharter/T1XCharterTH-osf.fd
RELOC/tex/latex/xcharter/T1XCharterTH-tlf.fd
+ RELOC/tex/latex/xcharter/T2ASRBXCharter-LF.fd
+ RELOC/tex/latex/xcharter/T2ASRBXCharter-OsF.fd
RELOC/tex/latex/xcharter/T2ASRBXCharter-Sup.fd
RELOC/tex/latex/xcharter/T2ASRBXCharter-TLF.fd
RELOC/tex/latex/xcharter/T2ASRBXCharter-TOsF.fd
+ RELOC/tex/latex/xcharter/T2AXCharter-LF.fd
+ RELOC/tex/latex/xcharter/T2AXCharter-OsF.fd
RELOC/tex/latex/xcharter/T2AXCharter-Sup.fd
RELOC/tex/latex/xcharter/T2AXCharter-TLF.fd
RELOC/tex/latex/xcharter/T2AXCharter-TOsF.fd
+ RELOC/tex/latex/xcharter/TS1XCharter-LF.fd
+ RELOC/tex/latex/xcharter/TS1XCharter-OsF.fd
RELOC/tex/latex/xcharter/TS1XCharter-TLF.fd
RELOC/tex/latex/xcharter/TS1XCharter-TOsF.fd
RELOC/tex/latex/xcharter/XCharter.fontspec
RELOC/tex/latex/xcharter/XCharter.sty
+ RELOC/tex/latex/xcharter/ly1minxcharter.fd
RELOC/tex/latex/xcharter/newtx-xcharter-subs.tex
RELOC/tex/latex/xcharter/omlzchmi.fd
+ RELOC/tex/latex/xcharter/ot1minxcharter.fd
+ RELOC/tex/latex/xcharter/t1minxcharter.fd
RELOC/tex/latex/xcharter/t2asrbcmr.fd
RELOC/tex/latex/xcharter/t2asrbenc.def
catalogue-ctan /fonts/xcharter
catalogue-license other-free lppl1.3
catalogue-topics font font-body font-serif font-proportional font-multilingual font-cyrillic font-type1 font-otf font-supp font-t1enc
-catalogue-version 1.225
+catalogue-version 1.23
name xcharter-math
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 4cf40ab437..044653a9ae 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-d0bf4c22bf38a5cbd8cb2ec3fb22f45d texlive.tlpdb
+ac782e9affe5768d0ed5b6f68eff3fec texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 904e265ba2..8563c7b5b3 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-76a65951298f0869902ee6e09a8cda3fb0eaa6e8a564675cf9cdd2701bc05f5b48150550650479acf4e1d3f39638d102f1f47e1e2e3d64e070db0a347ed14306 texlive.tlpdb
+6fd97121f09f8a4df00c4e3701b69679723eeb251592cbf0f66d64cae8052952087a090166c05cd0d4563fd24ade9980511d66b1738ceba4c6efe66d3cc39258 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index ee111c1f9d..d2f3e6d66e 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-----
-iQEcBAEBCgAGBQJiGXntAAoJEEzhh34ZQ4xwALkH/0lpBkl1i8NXUO+VhOhsFaHg
-GDBAg67QvuXOctW3HtTxYKM1V5NwTooHhOWHMJHRwBW0zvkeIEof9FFGlh8RQvR4
-5ysLd18J+U2GnQH3pAZuNbHH2gBzB++eD5oVhtvLh4gQatIX18uES8Iux/DGUlPE
-Ns9I0mnQeoMz6Cze8Wu2aCyZZ9hGXvdsf526zv3xjcfSdw/LG9aJFf8+55DFBWk4
-D57/jV4fwsJ3s2mv1XsLqDRpObpLZiOo473nYyNCl6LWfS7ZnUhkjfl4Opa1160v
-il3sW/JVpNopkGFtYye/aoAPYMOXpOHY+npfrIiJUZnQKxLjalxYyqs0URUkjss=
-=LNtH
+iQEcBAEBCgAGBQJiGtlFAAoJEEzhh34ZQ4xw1HgH/RyFSaIm7enHdf0P8zhxA90k
+ElaDdGKT2zS+5TJBM59dOP66JOh0BXpidoD9sQXmtZUtehxAbIgqgdBTHXv0roBP
+wfI02fLUM6TpWADQQZpDBB2r9VJGFOH+hDho3N+aKo8C5bLbvm0gfjDgVnKdL/rj
+6n9NxpSbKcJAhgwsqJS2ECmplELPj9YHg32bU8+0PnRqwaid/OC21+vEg620bubo
+vqYj3Q5ULXJokFpU20nqcLIfb/IwcnfrGtfdVZUGZoG8cgBzn8eXKYqkoNhRGguj
+L+76rA9mJwz9I4IpUwSqC01U/uUrf5A8SK4zZOB2QmevI6ysrEJNVc2RSGLViL8=
+=pZMu
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index c697134da2..8635d546aa 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/translations/cs.po b/systems/texlive/tlnet/tlpkg/translations/cs.po
index 08a98b1b45..87cb14f6ee 100644
--- a/systems/texlive/tlnet/tlpkg/translations/cs.po
+++ b/systems/texlive/tlnet/tlpkg/translations/cs.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-03-11 09:18+0300\n"
"Last-Translator: Petr Sojka <sojka@fi.muni.cz>\n"
"Language-Team: Czech <>\n"
@@ -1730,211 +1730,211 @@ msgstr ""
"do %s nelze zapisovat. Pravděpodobně toho moc neuděláte.\n"
"Jste si jistý, že chcete pokračovat?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "základní schéma (plain a latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Schéma ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "úplné schéma (všechno)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Schéma GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "pouze infrastukturní schéma (vůbec žádný TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "střední schéma (malé + více balíků a jazyků)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "minimální schéma (pouze plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "malé schéma (základní + xetex, metapost, několik jazyků)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schéma teTeX (více než střední, ale zdaleka ne úplné)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Nezbytné programy a soubory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Dodatečné styly pro BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Pomocné programy pro TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Dodatečné fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Doporučené fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Utility pro práci s grafikou a fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Dodatečné formáty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Sazba her"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Balíky pro humanitní obory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Čínština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Čínština/Japonština/Korejština (základ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Cyrilice"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Čeština/slovenština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Angličtina, US a UK"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Ostatní evropské jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Francouzština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Němčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Řečtina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japonština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Korejština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Ostatní jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Polština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portugalština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Španělština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Základní balíky pro LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Dodatečné balíky pro LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Doporučené balíky pro LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Balíky pro LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Matematické, přírodovědní a informatické balíčky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Balíky pro MetaPost a Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Balíky pro sazbu hudby"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Grafika, obrázky, diagramy"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Základní (La)TeXové balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Nakladatelské styly, disertace atd."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL obsahuje pouze binárku pro Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Podpůrné programy výhradně pro Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Vítejte v TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1949,7 +1949,7 @@ msgstr ""
"podporu přijetím členství ve sdružení, které je Vám nejbližší (CSTUG). "
"Seznam skupin u6ivatel; najdete na webu https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/da.po b/systems/texlive/tlnet/tlpkg/translations/da.po
index 92ad62f27e..3858b00dde 100644
--- a/systems/texlive/tlnet/tlpkg/translations/da.po
+++ b/systems/texlive/tlnet/tlpkg/translations/da.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2021\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-05-05 10:13+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -1730,212 +1730,212 @@ msgstr ""
"meget.\n"
"Er du sikker på, at du vil fortsætte?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "basal plan (plain og latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "ConTeXt-plan"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "fuld plan (alt)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "GUST's TeX Live plan"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "plan kun med infrastruktur (ingen TeX overhovedet)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "medium plan (lille plan samt ekstra pakker og sprog)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "minimal plan (kun plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "lille plan (basal + xetes, metapost samt nogle få sprog)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX plan (mere end medium, men ingenlunde fuld plan)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Essentielle programmer og filer"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Yderligere stilarter til BiBTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Hjælpeprogrammer til TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt med pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Yderligere skrifttyper"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Anbefalede skrifttyper"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Værktøjer til grafik og skrifttyper"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Yderligere formater"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Typesetting af spil"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Pakker til humaniora"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Kinesisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Kinesisk/Japansk/Koreansk (basis)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Kyrillisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Tjekkisk/Slovakisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Amerikansk og Britisk Engelsk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Øvrige Europæiske sprog"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Fransk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Tysk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Græsk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italiensk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japansk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Koreansk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Øvrige sprog"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Polsk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portugisisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Spansk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Grundlæggende LaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Yderligere LaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Anbefalede LaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "LuaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakker til matematik, naturvidenskab og datalogi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Pakker til MetaPost og Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Pakker til musik"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Grafik, billeder og diagrammer"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Simple (La)TeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Udgiver-pakker, afhandlinger mv."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
"Redigeringsværktøjet TeXworks; TL includerer kun de binære filer til Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Programmer, der kun understøttes på Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX med pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Velkommen til TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1950,7 +1950,7 @@ msgstr ""
"rundt; overvej venligt at støtte den gruppe, der passer bedst med dine "
"behov. En liste med grupper er at finde på https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/de.po b/systems/texlive/tlnet/tlpkg/translations/de.po
index 0d7430190c..dd7e6419d0 100644
--- a/systems/texlive/tlnet/tlpkg/translations/de.po
+++ b/systems/texlive/tlnet/tlpkg/translations/de.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-05-02 19:49+0200\n"
"Last-Translator: Uwe Ziegenhagen <ziegenhagen@gmail.com>\n"
"Language-Team: TL German Translation Team <tex-live@tug.org>\n"
@@ -1722,211 +1722,211 @@ msgstr ""
"Pfad %s ist nicht beschreibbar, geht halt nicht.\n"
"Wollen Sie wirklich weitermachen?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "Basis Scheme (Plain und LaTeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "ConTeXt scheme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "Full scheme (alles)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live scheme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "nur die Infrastruktur (kein TeX etc.)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "Medium (\"small\" + mehr Pakete und Sprachen)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "Minimal Scheme (nur plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "Small Scheme (Basis + XeTeX, Metapost, einige Sprachen)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX scheme (mehr als 'medium', aber nicht 'full')"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Grundlegende Programme und Dateien"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "BibTeX Zusatzstile"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "TeX Hilfsprogramme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt und Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Zusätzliche Fonts"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Empfohlene Schriftarten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Grafik- und Font-Werkzeuge"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Zusätzliche Formate"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Satz von Spielen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Pakete für die Geisteswissenschaften"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Chinesisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinesisch/Japanisch/Koreanisch (Basis)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Kyrillisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Tschechisch/Slowakisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "US und UK Englisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Andere europäische Sprachen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Französisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Deutsch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Griechisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italienisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japanisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Koreanisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Andere Sprachen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Polnisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portugiesisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Spanisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "LaTeX grundlegende Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "LaTeX: zusätzliche Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "LaTeX: empfohlene Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "LuaTeX Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Mathematik, Natur- und Computerwissenschaftliche Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "MetaPost und Metafont Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Musikpakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Grafik, Bilder, Diagramme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Verlagsstile, Abschlussarbeiten, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks Editor; TL enthält nur Binaries für Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Zusatzprogramme (nur-Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX und XeTeX-Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Willkommen bei TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1941,7 +1941,7 @@ msgstr ""
"weltweit, werden Sie Mitglied um ihre Arbeit zu unterstützen. Die Liste der "
"Gruppen finden Sie unter https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/es.po b/systems/texlive/tlnet/tlpkg/translations/es.po
index fdaaa1d710..7fad6f4701 100644
--- a/systems/texlive/tlnet/tlpkg/translations/es.po
+++ b/systems/texlive/tlnet/tlpkg/translations/es.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2019-03-30 17:58-0400\n"
"Last-Translator: linguafalsa <linguafalsa@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1722,211 +1722,211 @@ msgid ""
" Are you sure you want to continue?"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "esquema básico (TeX básico y LaTeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Esquema de ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "esquema completo (todo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Esquema de TeX Live de GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "esquema de infraestructura solamente (nada de TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "esquema mediano (pequeño + más paquetes y lenguajes)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "esquema mínimo (TeX básico solamente)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "esquema pequeño (básico + xetex, metapost, y unos cuantos idiomas)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "esquema de teTeX (más que mediano, pero no del todo lleno)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Programas y archivos esenciales"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Estilos adicionales de BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Programas auxiliares de TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt y paquetes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Fuentes adicionales"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Fuentes recomendables"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Utilidades para gráficos y para fuentes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Formatos adicionales"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Juegos tipográficos"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Paquetes de humanidades"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Árabe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Chino"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chino/Japonés/Coreano (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Cirílico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Checoslovaco/Eslovaco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Inglés de US y UK"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Otros idiomas Europeos"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Francés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Alemán"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Griego"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japonés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Otros idiomas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Polaco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portugués"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Español"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Paquetes fundamentales de LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Paquetes adicionales de LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Paquetes recomendados de LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Paquetes de LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Paquetes para matemáticas, ciencias naturales, y computación"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Paquetes de Metapost y Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Paquetes para música"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Gráficas, imágenes, diagramas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Paquetes básicos para (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Estilos para publicistas, tesis, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor de TeXWorks: TL incluye solamente el binario de Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Programas de respaldo solamente para Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX y paquetes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "¡Bienvenido a Tex Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1942,7 +1942,7 @@ msgstr ""
"apoyarlo formando parte de un grupo que más conveniente sea para usted. La "
"lista de grupos está disponible en el web en https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/fr.po b/systems/texlive/tlnet/tlpkg/translations/fr.po
index c19d90090a..ef16e69cac 100644
--- a/systems/texlive/tlnet/tlpkg/translations/fr.po
+++ b/systems/texlive/tlnet/tlpkg/translations/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2022-02-22 10:06+0100\n"
"Last-Translator: Denis Bitouzé <denis.bitouze@univ-littoral.fr>\n"
"Language-Team: French <kde-i18n-doc@kde.org>\n"
@@ -1737,212 +1737,212 @@ msgstr ""
"%s n'est pas accessible en écriture. Du coup, cette action ne servira\n"
"probablement pas à grand chose. Êtes-vous sûr de vouloir continuer ?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "Schéma de base (plain et latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Schéma pour ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "Schéma complet (absolument tout)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Schéma TeX Live du GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "Schéma d'infrastructure (aucun TeX là-dedans)."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "Schéma moyen (petit avec plus de packages et langues)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "Schéma minimal (Plain seulement)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "Schéma petit (de base + xetex, metapost, quelques langues)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "Schéma teTeX (plus gros que moyen, mais encore loin d'être complet)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Programmes et fichiers essentiels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Styles BibTeX additionnels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Programmes auxiliaires pour TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt et packages associés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Fontes additionnelles"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Fontes recommandées"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Utilitaires pour les graphiques et les fontes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Formats additionnels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Composition des jeux"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Packages pour les sciences humaines"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Chinois"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinois/Japonais/Coréen (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Cyrillique"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Tchèque et slovaque"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Anglais britannique et américain"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Autres langues européennes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Français"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Allemand"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Grec"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italien"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japonais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Coréen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Autres langues"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Polonais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portuguais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Espagnol"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Packages LaTeX essentiels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Packages LaTeX additionnels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Packages LaTeX recommandés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Packages LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
"Packages pour les mathématiques, les sciences naturelles et l'informatique"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Packages pour MetaPost et Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Packages pour la musique"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Graphiques, images, diagrammes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Packages plain (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Styles de maisons d'édition, de thèses, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Éditeur TeXworks ; la TL n'inclut que les binaires pour Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Programmes pour le support de Windows seulement"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX et packages associés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Bienvenue sous TeX Live !"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1959,7 +1959,7 @@ msgstr ""
"groupes est disponible sur le web à l'adresse http://tug.org/usergroups."
"html ;la page du groupe francophone est http://www.gutenberg.eu.org/."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/it.po b/systems/texlive/tlnet/tlpkg/translations/it.po
index 30a2d72ab6..26d2f005a8 100644
--- a/systems/texlive/tlnet/tlpkg/translations/it.po
+++ b/systems/texlive/tlnet/tlpkg/translations/it.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Tex Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-03-22 06:20+0100\n"
"Last-Translator: Marco Pallante\n"
"Language-Team: <>\n"
@@ -1729,211 +1729,211 @@ msgstr ""
"Impossibile scrivere su %s. Probabilmente non potrai fare molto.\n"
" Sei sicuro di voler continuare?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "schema base (plain e latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Schema ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "schema completo (installa tutto)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Schema GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "schema solo-infrastruttura (niente TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "schema medio (ridotto + altri pacchetti e lingue)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "schema minimo (solo plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "schema ridotto (base + xetex, metapost, alcune lingue)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schema teTeX (più dell'intermedio, ma per niente completo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Programmi e file essenziali"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Stili BibTeX aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Programmi ausiliari per TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt e pacchetti"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Font aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Font raccomandati"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Utilità per font e grafica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Formati aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Composizione tipografica per giochi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Pacchetti per discipline umanistiche"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabo"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Cinese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Cinese/giapponese/coreano (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Cirillico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Ceco/slovacco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Inglese USA/Regno Unito"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Altre lingue europee"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Francese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Tedesco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Greco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Giapponese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Altre lingue"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Polacco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portoghese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Spagnolo"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Pacchetti LaTeX fondamentali"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Pacchetti LaTeX aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Pacchetti LaTeX raccomandati"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Pacchetti LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pacchetti per matematica, scienze naturali, informatica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Pacchetti per MetaPost e Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Pacchetti per la musica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Grafica, immagini, diagrammi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Pacchetti Plain TeX e LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Stili di editori, tesi, ecc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL include solo i binari per Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Programmi di supporto solo per Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX e pacchetti"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Benvenuto in TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1949,7 +1949,7 @@ msgstr ""
"voi. La lista dei gruppi è disponibile sul web all’indirizzo https://tug.org/"
"usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/ja.po b/systems/texlive/tlnet/tlpkg/translations/ja.po
index 22baa3a910..d0cee17337 100644
--- a/systems/texlive/tlnet/tlpkg/translations/ja.po
+++ b/systems/texlive/tlnet/tlpkg/translations/ja.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-03-18 11:41+0900\n"
"Last-Translator: Takuto Asakura <tkt.asakura@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1724,213 +1724,213 @@ msgstr ""
"%s は書き込み不能です.多くの処理が完了できない可能性があります. それでも続"
"行しますか?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "basic スキーム(plain および latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "ConTeXt スキーム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "full スキーム(すべて)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live スキーム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "infrastructure-only スキーム(TeX 処理系は一切含みません)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "midium スキーム(small スキーム+欧州の主要言語サポート)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "minimal スキーム(plain のみ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"small スキーム(basic スキーム+XeTeX, MetaPost といくつかの言語サポート)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
"teTeX スキーム(medium スキームよりも大きいが,full スキームには及ばない)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "必須プログラムとファイル"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "BibTeX の追加スタイル"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "TeX 外部プログラム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt とパッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "追加フォント"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "推奨フォント"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "画像およびフォントのユーティリティ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "追加フォーマット"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "ゲーム組版"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "人文科学パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "アラビア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "中国語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "日中韓 (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "キリル文字"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "チェコ・スロバキア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "英語・米語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "その他の欧州言語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "フランス語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "ドイツ語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "ギリシア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "イタリア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "日本語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "韓国語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "他の言語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "ポーランド語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "ポルトガル語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "スペイン語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "LaTeX 基本パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "LaTeX 追加パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "LaTeX 推奨パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "LuaTeX パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "数学,自然科学,計算機科学パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "MetaPost および Metafont パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "音楽パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "画像と図表"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "出版社スタイルや学位論文"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks(Windows 版のみ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Windows 専用プログラム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX とパッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "TeX Live へようこそ!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1946,7 +1946,7 @@ msgstr ""
"入会することをご検討ください.TeX ユーザ会の一覧はhttps://tug.org/usergroups."
"html でご確認いただけます."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/messages.pot b/systems/texlive/tlnet/tlpkg/translations/messages.pot
index 8f81fa4795..0ab8326871 100644
--- a/systems/texlive/tlnet/tlpkg/translations/messages.pot
+++ b/systems/texlive/tlnet/tlpkg/translations/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2021\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1668,211 +1668,211 @@ msgid ""
" Are you sure you want to continue?"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1882,7 +1882,7 @@ msgid ""
"list of groups is available on the web at https://tug.org/usergroups.html."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/nl.po b/systems/texlive/tlnet/tlpkg/translations/nl.po
index 1a71287bb2..2de82e6097 100644
--- a/systems/texlive/tlnet/tlpkg/translations/nl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/nl.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-03-08 12:17+0100\n"
"Last-Translator: Siep Kroonenberg <siepo@bitmuis.nl>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1727,211 +1727,211 @@ msgstr ""
"%s is niet schrijfbaar. Waarschijnlijk kunt u niet veel doen.\n"
" Weet u zeker dat u wilt doorgaan?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "basis-schema (Plain en latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "ConTeXt schema"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "volledig schema (alles)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live schema"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "alleen infrastruktuur (helemaal geen TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "medium schema (klein + meer pakketten en taken)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "minimum schema (alleen plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "klein schema (basis + xetex, metapost, enkele talen)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX schema (meer dan medium, maar lang niet alles)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Essentiële programma's en bestanden"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Extra stijlen voor BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "TeX hulpprogramma's"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt en pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Extra lettertypen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Aanbevolen lettertypen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Hulpprogramma's voor figuren en lettertypen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Extra formaten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Spellen typesetten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Pakketten voor humaniora"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Chinees"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chiness/Japans/Koreaans (basis)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Cyrillisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Tsjechisch/Slovaaks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Amerikaans en Brits Engels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Andere Europese talen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Frans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Duits"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Grieks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italiaans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Koreaans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Andere talen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Pools"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portugees"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Spaans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "LaTeX basis-pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Extra LaTeX pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "LaTeX aanbevolen pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "LuaTeX pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakketten voor wiskunde, natuurwetenschappen en informatica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "MetaPost- en Metafont pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Muziek pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Grafieken, figuren, diagrammen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Stijlen voor uitgevers, proefschriften etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks editor; TL bevat alleen de Windows versie"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Ondersteunende programma's specifiek voor Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX en bijbehorende pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Welkom bij TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1946,7 +1946,7 @@ msgstr ""
"wereldwijd; overweeg ondersteuning door lid te worden van zo'n groep. De "
"lijst van gebruikersgroepen staat op https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/pl.po b/systems/texlive/tlnet/tlpkg/translations/pl.po
index 530486108e..0a5a76aa85 100644
--- a/systems/texlive/tlnet/tlpkg/translations/pl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2020\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-03-22 01:37+0100\n"
"Last-Translator: Jerzy Ludwichowski <Jerzy.Ludwichowski@umk.pl>\n"
"Language-Team: \n"
@@ -1731,213 +1731,213 @@ msgstr ""
"%s jest niedostępny dla zapisu. Niewiele możesz zrobić.\n"
"Jesteś pewny, że chcesz kontynuować?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "schemat podstawowy (plain i latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Schemat ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "schemat pełny (wszystko)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Schemat GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "wyłącznie schemat plików (w ogóle bez TeX-a):"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "schemat typowy (skromny + wybrane dodatkowe pakiety i języki):"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "schemat minimalny (tylko plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"schemat skromny (podstawowy + xetex, metapost oraz wzorce przenoszenia kilku "
"języków):"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schemat teTeX (obszerniejszy niż typowy, ale mniejszy od pełnego)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Podstawowe programy i pliki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Dodatkowe style BibTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Dodatkowe programy pomocnicze TeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt i jego pakiety"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Dodatkowe fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Rekomendowne fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Narzędzia do grafiki i fontów"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Dodatkowe formaty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Zapis gier"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Pakiety dla humanistów"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Język arabski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Język chiński"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Języki chiński/japoński/koreański (podstawa)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Język cyryliczny"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Języki czeski/słowacki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Angielski brytyjski i amerykański"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Inne języki europejskie"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Język francuski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Język niemiecki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Język grecki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Język włoski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Język japoński"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Język koreański"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Inne języki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Język polski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Język portugalski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Język hiszpański"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Podstawowe pakiety LaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Dodatkowe pakiety LaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Polecane pakiety LaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Pakiety LuaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakiety do składu matematyki, nauk przyrodniczych i informatyki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Pakiety MetaPosta i Metafonta"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Pakiety do składania nut"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Pakiety do grafiki, rysunków, diagramów"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Pakiety dla plain (La)TeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Style wydawców, publikacji konferencyjnych itp."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Edytor TeXworks; binaria tylko dla systemu Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Dodatkowe programy tylko dla Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX i pakiety"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Witamy w TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1953,7 +1953,7 @@ msgstr ""
"rozważ wsparcie poprzez przystąpienie do jednej z grup.\n"
"Lista grup dostępna jest na stronie https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/pt_BR.po b/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
index d7f7b1107d..8efdda5a5e 100644
--- a/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
+++ b/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2022-02-21 07:43-0300\n"
"Last-Translator: Paulo Roberto Massa Cereda <cereda.paulo@gmail.com>\n"
"Language-Team: Paulo Roberto Massa Cereda <cereda.paulo@gmail.com>\n"
@@ -1731,213 +1731,213 @@ msgstr ""
"muita coisa.\n"
"Você tem certeza que quer continuar?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "esquema básico (plain e latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "esquema ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "esquema completo (tudo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "esquema GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "esquema com apenas infraestrutura (sem TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "esquema médio (pequeno + pacotes extras e idiomas)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "esquema mínimo (apenas plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "esquema pequeno (básico + xetex, metapost, alguns idiomas)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
"esquema teTeX (mais do que o esquema médio, mas nada que se aproxime do "
"esquema completo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Programas e arquivos essenciais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Estilos BibTeX adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Programas auxiliares TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt e pacotes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Fontes adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Fontes recomendadas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Utilitários para gráficos e fontes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Formatos adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Escrita de jogos"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Pacotes da área de Humanas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Árabe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Chinês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinês/Japonês/Coreano (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Cirílico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Tcheco/Eslovaco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Inglês Americano e Britânico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Outros idiomas europeus"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Francês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Alemão"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Grego"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japonês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Outros idiomas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Polonês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Português"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Espanhol"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Pacotes LaTeX fundamentais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Pacotes LaTeX adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Pacotes LaTeX recomendados"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Pacotes LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pacotes de matemática, ciências naturais e ciência da computação"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Pacotes MetaPost e Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Pacotes musicais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Gráficos, imagens, diagramas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Pacotes plain (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Estilos de editoras, teses, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "editor TeXworks; TL inclui apenas o binário para Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Programas de suporte exclusivos para Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX e pacotes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Bem-vindo ao TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1953,7 +1953,7 @@ msgstr ""
"inscrevendo-se em um grupo que lhe seja oportuno. A lista de grupos está "
"disponível na web no endereço https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sk.po b/systems/texlive/tlnet/tlpkg/translations/sk.po
index eaec2d3564..589d0c1a00 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sk.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sk.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-03-11 09:24+0300\n"
"Last-Translator: Ján Buša <jan.busa@tuke.sk>\n"
"Language-Team: tex-live@tug.org\n"
@@ -1731,211 +1731,211 @@ msgstr ""
"%s je chránený proti zápisu. Pravdepodobne toho veľa nenarobíte. \n"
"Ste si istý, že chcete pokračovať?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "základná schéma (plain a latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Schéma ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "úplná schéma (všetko)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Schéma GUST TeXlive"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "schéma len-infraštruktúra (vôbec žiaden TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "stredná schéma (malá + viac balíkov a jazykov)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "minimálna schéma (len plainTeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "malá schéma (základ + xetex, metapost a niektoré jazyky)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schéma teTeX (o niečo väčšia než stredne veľká, ale ďaleko od úplnej)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Dôležité programy a súbory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Ďalšie štýly BibTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Pomocné programy TeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Ďalšie fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Odporúčané fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Pomocné programy pre grafiku a fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Ďalšie formáty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Sadzba hier"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Balíky pre humanitné odbory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Čínština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Čínština/japončina/kórejčina (základ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Ruština, ukrajinčina (azbuka)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Čeština/slovenčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Angličtina (US a UK)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Ďalšie európske jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Francúzština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Nemčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Gréčtina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Taliančina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japončina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Kórejčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Ďalšie jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Poľština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portugalčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Španielčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Základné balíky LaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Ďalšie balíky LaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Odporúčané balíky LaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Balíky LuaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Matematické, prírodovedné a informatické balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Balíky MetaPostu a Metafontu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Hudobné balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Grafika, obrázky, diagramy"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Balíky Plain (La)TeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Štýly vydavateľstiev, záverečné práce atď."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL zahŕňa len binárky pre Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Podporné programy len pre Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Vitajte vo svete TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1951,7 +1951,7 @@ msgstr ""
"najlepšej. Zoznam skupín je dostupný na webe na https://tug.org/usergroups."
"html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sl.po b/systems/texlive/tlnet/tlpkg/translations/sl.po
index 532a87c10d..b878af85c9 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sl.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-02-07 21:14+0100\n"
"Last-Translator: Mojca Miklavec <mojca.miklavec.lists@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1805,213 +1805,213 @@ msgstr ""
"V mapo %s nimate pravice pisati.\n"
" Ste prepričani, da želite nadaljevati?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "Osnovna namestitev (plain TeX in LaTeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Namestitev ConTeXt-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "Polna namestitev"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Poljski GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "Samo infrastruktura (brez TeX-a)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "Srednje velika namestitev (majhna nam. z dodatnimi paketi in jeziki)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "Minimalna namestitev (samo plain TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"Majhna namestitev (osnovna orodja, XeTeX, metapost, podpora za nekaj jezikov)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "Shema, podobna teTeX-u (med srednje veliko in polno)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Osnovni programi in datoteke"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Dodatni slogi za BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Pomožni programi za TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt s paketi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Dodatne pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Priporočene pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Orodja za grafiko in pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Dodatni formati"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Stavljenje iger"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Paketi za družboslovce"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Arabske pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Kitajščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Kitajščina, japonščina, korejščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Cirilica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Češčina in slovaščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Angleščina & angl. priročniki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Ostali evropski jeziki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Francoščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Nemščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Grščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Italijanščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Japonščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Korejščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Ostali jeziki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Poljščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Portugalščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Španščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Osnovni paketi za LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Dodatni paketi za LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Priporočeni paketi za LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Paketi za LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Paketi za matematiko, naravoslovje in računalništvo"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Paketi za MetaPost in MetaFont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Paketi za stavljenje glasbe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Slike in diagrami"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
#, fuzzy
msgid "Plain (La)TeX packages"
msgstr "Paketi za plain (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Slogi za založnike, dizertacije ipd."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Urejevalnik TeXworks (za Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Programi za MS Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX s paketi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Dobrodošli v TeX Live-u!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -2026,7 +2026,7 @@ msgstr ""
"sveta; podprete ga lahko s pridružitvijo vam najbližjemu društvu. Seznam le-"
"teh je na voljo na strani https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sr.po b/systems/texlive/tlnet/tlpkg/translations/sr.po
index 49bd70861e..bab0d5b170 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sr.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2019-10-23 02:13+0300\n"
"Last-Translator: Nikola Lečić <nikola.lecic@anthesphoria.net>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1728,211 +1728,211 @@ msgstr ""
"У %s није могуће уписивање, и већи део посла ће остати неурађен.\n"
"Јесте ли сигурни да желите да продужите?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "основна шема (чист [plain] TeX и latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "ConTeXt шема"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "пуна шема (све)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live шема"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "инфраструктурна шема (без TeX-а)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "средња шема (мала шема + већи број пакета и боља језичка подршка)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "минимална шема (само чист [plain] TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "мала шема (основна шема + xetex, metapost, подршка за неколико језика)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX шема (више од средње шеме, али доста мање од целине)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Најважнији програми и фајлови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Додатни стилови за BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Помоћни TeX програми"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt и повезани пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Додатни фонтови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Препоручени фонтови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Програми за рад са графиком и фонтовима"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Додатни формати"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Припрема докумената везаних за игре"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Пакети за рад у друштвеним наукама"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Арапски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Кинески"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Кинески, јапански, корејски (основно)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Ћирилица"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Чешки и словачки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Амерички и британски енглески"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Остали европски језици"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Француски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Немачки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Грчки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Италијански"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Јапански"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Корејски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Остали језици"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Пољски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Португалски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Шпански"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Основни LaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Додатни LaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Препоручени LaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "LuaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Математички, природнонаучни и компјутерски пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Пакети за MetaPost и Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Пакети за рад са музиком"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Пакети за рад са графиком, сликама и дијаграмима"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Plain (чисти) (La)TeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Стилови за издаваштво, дисертације итд."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Едитор TeXworks (само за Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Помоћни програми за Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX и повезани пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Добродошли у TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1947,7 +1947,7 @@ msgstr ""
"света; молимо вас да размотрите учлањење у најближу из њих. Списак група "
"можете пронаћи овде: https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/uk.po b/systems/texlive/tlnet/tlpkg/translations/uk.po
index b183f1bc88..bea5eb05c6 100644
--- a/systems/texlive/tlnet/tlpkg/translations/uk.po
+++ b/systems/texlive/tlnet/tlpkg/translations/uk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2010\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2019-03-23 09:02+0200\n"
"Last-Translator: Andriy Bandura <andriykopanytsia@gmail.com>\n"
"Language-Team: Ukrainian <andriykopanytsia@gmail.com>\n"
@@ -1712,211 +1712,211 @@ msgid ""
" Are you sure you want to continue?"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "основна схема (plain та latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "схема ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "повна схема (включає усе)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "схема GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "схема тільки з інфраструктурою (без TeX зовсім)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "середня схема (мала + більше пакунків та мов)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "мінімальна схема (лише plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "мала схема (основна + xetex, metapost, кілька мов)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "схема teTeX (більша за середню, але не дотягає до повної)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Важливі програми і файли"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Додаткові стилі BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Допоміжні програми TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt і пакунки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Додаткові шрифти"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Рекомендовані шрифти"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Утиліти для графіки та шрифтів"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Додаткові формати"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Верстка запису ігор"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Пакунки для гуманітарних наук"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Арабська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Китайська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Китайська/японська/корейська (базова)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Кирилиця"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Чеська/словацька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Англійська США та Великобританії"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Інші європейські мови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Французька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Німецька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Грецька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Італійська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Японська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Корейська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Інші мови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Польська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Португальська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Іспанська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Основні пакунки LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Додаткові пакунки LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Рекомендовані пакунки LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Пакунки LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Пакунки для математики, природничих та комп'ютерних наук"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "Пакунки MetaPost та Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Музичні пакунки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Графіки, рисунки та діаграми"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Пакунки простого (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Стилі для видавництв, тез конференцій і т.п."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Редактор TeXworks; TL містить програму лише для Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Додаткові програми лише під Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX та пакунки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Ласкаво просимо до TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1931,7 +1931,7 @@ msgstr ""
"світу; будь ласка, підтримайте нас, приєднавшись до групи, найкращої для "
"вас. Список груп доступний на веб-сторінці https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/vi.po b/systems/texlive/tlnet/tlpkg/translations/vi.po
index f0b0c89528..255e18eec6 100644
--- a/systems/texlive/tlnet/tlpkg/translations/vi.po
+++ b/systems/texlive/tlnet/tlpkg/translations/vi.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2021-03-13 11:02+0100\n"
"Last-Translator: Anh K. Huỳnh <kyanh@viettug.org>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1723,211 +1723,211 @@ msgstr ""
"Không ghi vào %s được. Khó có thể làm thêm được gì.\n"
"Bạn thật sự muốn tiếp tục?"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "bộ cài cơ bản (plain và latex)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr "Nhóm ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr "bộ cài đầy đủ mọi thứ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr "Bộ cài TeX Live GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "cài đặt kiến trúc chung (không có gì liên quan TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr "bộ cài vừa (nhỏ + thêm các ngôn ngữ và gói bổ sung)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr "nhóm tối thiểu (chỉ có \"plain TeX\")"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "bộ cài nhỏ (cơ bản, xtex, metapost, vài ngôn ngữ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "nhóm teTeX (nhiều gói hơn nhóm trung bình, nhưng chưa phải là đầy đủ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr "Các thứ bắt buộc"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr "Kiểu bổ sung cho BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr "Các chương trình hỗ trợ cho TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr "ConTeXt và các gói của nó"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr "Các font bổ sung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr "Phông chữ nên dùng"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr "Tiện ích đồ họa và phông chữ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr "Các định dạng bổ sung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr "Sắp chữ trong các trò chơi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr "Gói cho khoa học nhân văn"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr "Tiếng Ả rập"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr "Tiếng Trung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr "Tiếng Trung/Nhật/Hàn (phần cơ sở)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr "Kiểu chữ Kirin"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr "Czech/Slovka"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr "Tiếng Anh (US, UK)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr "Các ngôn ngữ châu Âu khác"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr "Tiếng Pháp"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr "Tiếng Đức"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr "Hy Lạp"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr "Tiếng Ý"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr "Tiếng Nhật"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr "Tiếng Hàn"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr "Ngôn ngữ khác"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr "Tiếng Ba Lan"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr "Tiếng Thổ Nhĩ Kỳ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr "Tiếng Bồ Đào Nha"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr "Các gói LaTeX cốt lõi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr "Các gói LaTeX bổ sung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr "Gói LaTeX nên dùng"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr "Gói cho LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Toán, khoa học tự nhiên, khoa học máy tính"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr "MetaPOST, Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr "Gói âm nhạc"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr "Đồ họa, hình ảnh, sơ đồ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr "Các gói (La)TeX nguyên sơ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr "PStricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr "Kiểu luận văn hay của một số nhà xuất bản,..."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Chương trình soạn thảo TeXworks (chỉ có cho Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr "Các chương trình chỉ cho Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr "XeTeX và các gói của nó"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "Chào mừng đến với TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1943,7 +1943,7 @@ msgstr ""
"hợp nhất. Danh sách các nhóm người dùng có thể tìm thấy tại http://tug.org/"
"usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/zh_CN.po b/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
index 7b84018113..4638d1c9b4 100644
--- a/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
+++ b/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2009-09-22 12:54+0800\n"
"Last-Translator: Jiang Jiang <gzjjgod@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1672,211 +1672,211 @@ msgid ""
" Are you sure you want to continue?"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "欢迎进入 TeX Live 的世界!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1886,7 +1886,7 @@ msgid ""
"list of groups is available on the web at https://tug.org/usergroups.html."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/zh_TW.po b/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
index 05ae01046e..ee4b9a8d5f 100644
--- a/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
+++ b/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-02-21 01:47+0100\n"
+"POT-Creation-Date: 2022-02-26 21:59+0100\n"
"PO-Revision-Date: 2009-09-03 12:34+0200\n"
"Last-Translator: Norbert Preining <preining@logic.at>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1698,211 +1698,211 @@ msgid ""
" Are you sure you want to continue?"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
msgid "ConTeXt scheme"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
msgid "full scheme (everything)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
msgid "GUST TeX Live scheme"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
msgid "medium scheme (small + more packages and languages)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
msgid "minimal scheme (plain only)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
msgid "Essential programs and files"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
msgid "BibTeX additional styles"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
msgid "TeX auxiliary programs"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
msgid "ConTeXt and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
msgid "Additional fonts"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
msgid "Recommended fonts"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
msgid "Graphics and font utilities"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
msgid "Additional formats"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
msgid "Games typesetting"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
msgid "Humanities packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
msgid "Arabic"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
msgid "Chinese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese/Japanese/Korean (base)"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
msgid "Cyrillic"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
msgid "Czech/Slovak"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
msgid "US and UK English"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
msgid "Other European languages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
msgid "French"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
msgid "German"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
msgid "Greek"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
msgid "Italian"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
msgid "Japanese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
msgid "Korean"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
msgid "Other languages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
msgid "Polish"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
msgid "Portuguese"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
msgid "Spanish"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
msgid "LaTeX fundamental packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX additional packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX recommended packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
msgid "LuaTeX packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
msgid "MetaPost and Metafont packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
msgid "Music packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
msgid "Graphics, pictures, diagrams"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
msgid "Plain (La)TeX packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
msgid "PSTricks"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
msgid "Publisher styles, theses, etc."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
msgid "Windows-only support programs"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2655
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2655
msgid "Welcome to TeX Live!"
msgstr "歡迎進入 TeX Live 的世界!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2658
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2658
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1912,7 +1912,7 @@ msgid ""
"list of groups is available on the web at https://tug.org/usergroups.html."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2668
+#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2668
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index a95a18d184..9cf1087d33 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=1645910243
+date=1645996646
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=81248cdfe1943d1da83daa0fd851d51f
+lstdigest=c2ca0ff1a3fe1c55d0f2beba0c7c18ab
numpkg=5396
relstate=next
-version=8092
+version=8093
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: F6I7tNXdHb41dHcbccmxG96TjVtE8lgUKZf82YobBeKZD7t2v6T/3pj72v8AA96R7PQASAHkQ5PhHByAkXRjS11g1U3DW28tUYws5As7aDm8OJIy0nwRkCtXeKT7NvDTYZ01dVIxLwMNXnyYaAKRz/OW1C9lOb94Tk/iPJekWOIbbWJfzoH7m/zRxCZHHWse5dqyHryy3IHOR3HzXoe3fRXC96LsS70i1yY9FZD3QuWezeLpcyCXaJAnTr1X5/JlwHqVp2xeWQDGOJ9xwxERj7f1RL1vyRFL3jJur9vY1kKqZxSJVpi4MFoVi3LliUavt+B/XK0XsihLGwQd/bV3uQ==
+;;;; signature/miktex: E5fNT2I0QJElIF9PjtdJDeLut3a6hWZSINg4cuD9pIjy+SldVH0wFXMOVUzGhQsaAxjQPOGtJFCROMoeXFCZLCeh/Vk1cCkAksbjtJPLlXCzpe9O2PKBOnlUyegLZAxP61VJFzfu4FmmMx5iIiT30zWkQn5WhkzRenm4knuBDg3G5ucywBDyBZehlNuoR418hgzRir6wyfitsxtZGE5bwfp0JV5K0zlAuB5j0DUgw05sGaDerUgk8nxc1sl0yVzhYWC3CSJo0omvVprSpteEfxqoU1Rtejki/PZh2s+Uhu+0Cbq7y98kOgHT48Z4K3y5tXVlmzB/uvtltT/9X86qmA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index ac0414b9b3..f55b938e7b 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1645909911
+date=1645996302
lastupd=andika andika__doc animate animate__doc animate__source beamertheme-focus beamertheme-focus__doc beamertheme-focus__source bfh-ci bfh-ci__doc biblatex-mla biblatex-mla__doc biblatex-mla__source bidi bidi__doc bidi__source caption caption__doc caption__source crefthe
-lstdigest=54f0a8972e6a157c96441654f802ac47
+lstdigest=3b2d23f725d80e392cd94c78cbb942a1
numpkg=5394
relstate=stable
-version=8092
+version=8093
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: LLT6kk5OfdjCwx1HI+/pNcFDGuOjawLHb/z/OlEd9S+q56h10fUO6+p0EZ+IcDeDPhrEaA5NmRH7/3XcSBOxnc/QHTThZZ1dUAscraaSgUGbxy5qyrxG0nYca/gWjLfnXtJFH0xzak0HiUTxpjGjdZ/XXZQTL3pkoVp1YX1XVejMNxbYWNWDTN++dqXw5ZTIxsjmTz7u0ylSAkoK+NZvyJ6rxqJBFdGgMkNMS1NQtGmZVyKOnICU+mGWlWV9g1fLaFXKpEImdXpfE2eF7al7phPwFfrx+hJltVv4jXUJKMafhWZKR/Y7M5ejQmuIWIWEc6KvZNldLZT09jQp0bo/0Q==
+;;;; signature/miktex: OdFpVpmLAGDoyGGBjr2IzBrHXKY12mxkfpeEzhFGbfrM2kBU8rGRc0ytbl4PTm6mET6zLvqn6L2pkVkF8SJm8/vrUhR6PtUO1BMWDqmY6NSigIX19tNymMkYxVRB7V+PU3v7sPJmMmMcOyRfU/mP0fgjyM4Na81S1ixs3BxYGomCkW8t+PrreRFP03qGzks9Lj2n1yqYDvQlVzBofMOCDPVdac7zqTObfTcO23iJVR034RBXGzLsJpT2RhzHfJAN2SyjKpzXeYZaDsQy9hZroPfkbab1Ue9f2l5/5a/yTjOMpHOZDFS3kcnZJBkzZK3MbyoJWfqa3GChWrbRk1ivBg==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 3b07bbfbc3..ffca9a8d99 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:
-2022-02-27-02-02
+2022-02-28-02-02