From ac5a96ddb02c62d71eb214ed35e3be9a154d991f Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 2 Oct 2021 03:03:32 +0000 Subject: CTAN sync 202110020303 --- FILES.byname | 666 +- FILES.byname.gz | Bin 2388503 -> 2388479 bytes FILES.last07days | 612 +- graphics/pstricks/base/Changes | 21 +- graphics/pstricks/base/dvips/pst-dots.pro | 8 +- graphics/pstricks/base/dvips/pstricks.pro | 3 +- graphics/pstricks/base/generic/pstricks-dots.tex | 148 +- graphics/pstricks/base/generic/pstricks-tex.def | 5 +- graphics/pstricks/base/generic/pstricks-xetex.def | 5 +- graphics/pstricks/base/generic/pstricks.tex | 18 +- graphics/pstricks/base/latex/pstricks.sty | 3 +- graphics/pstricks/contrib/pst-fill/Changes | 2 + graphics/pstricks/contrib/pst-fill/Makefile | 49 - graphics/pstricks/contrib/pst-fill/README | 23 +- .../pstricks/contrib/pst-fill/doc/pst-fill-doc.bib | 168 + .../pstricks/contrib/pst-fill/doc/pst-fill-doc.pdf | Bin 0 -> 957618 bytes .../pstricks/contrib/pst-fill/doc/pst-fill-doc.tex | 1238 +++ .../pstricks/contrib/pst-fill/latex/pst-fill.sty | 23 + graphics/pstricks/contrib/pst-fill/pst-fill.dtx | 1817 ----- graphics/pstricks/contrib/pst-fill/pst-fill.ins | 37 - graphics/pstricks/contrib/pst-fill/pst-fill.pdf | Bin 1230303 -> 0 bytes .../pstricks/contrib/pst-fill/tex/pst-fill.tex | 472 ++ .../appendix/updateinfo.tex | 6 + info/install-latex-guide-zh-cn/chapter/ubuntu.tex | 32 + info/install-latex-guide-zh-cn/chapter/wsl.tex | 6 + .../install-latex-guide-zh-cn.pdf | Bin 744469 -> 747376 bytes macros/generic/markdown/README.md | 230 +- macros/generic/markdown/banner.png | Bin 140951 -> 0 bytes macros/generic/markdown/examples/context.tex | 1 + macros/generic/markdown/examples/example.md | 70 +- macros/generic/markdown/examples/latex.tex | 9 + macros/generic/markdown/markdown.dtx | 2877 +++++-- macros/generic/markdown/markdown.html | 8152 ++++++++++---------- macros/generic/markdown/markdown.ins | 42 +- macros/generic/markdown/markdown.md | 64 +- macros/generic/markdown/markdown.pdf | Bin 628207 -> 729945 bytes macros/generic/markdown/markdown.png | Bin 0 -> 140951 bytes macros/latex/contrib/decision-table/README | 2 +- .../contrib/decision-table/decision-table.dtx | 595 +- .../contrib/decision-table/decision-table.ins | 4 +- .../contrib/decision-table/decision-table.pdf | Bin 112176 -> 111518 bytes macros/latex/contrib/lwarp/README.txt | 2 +- macros/latex/contrib/lwarp/lwarp.dtx | 2822 ++++--- macros/latex/contrib/lwarp/lwarp.ins | 2 + macros/latex/contrib/lwarp/lwarp.pdf | Bin 3136003 -> 3144374 bytes macros/latex/contrib/lwarp/lwarpmk.lua | 2 +- macros/latex/contrib/tabularray/tabularray.pdf | Bin 725112 -> 760493 bytes macros/latex/contrib/tabularray/tabularray.sty | 247 +- macros/latex/contrib/tabularray/tabularray.tex | 204 +- macros/unicodetex/latex/njuthesis/README_ZH_CN.md | 77 - .../unicodetex/latex/njuthesis/figure/njulogo.pdf | Bin 21738 -> 0 bytes .../latex/njuthesis/figure/njuname-large.pdf | Bin 84739 -> 0 bytes .../unicodetex/latex/njuthesis/figure/njuname.pdf | Bin 12747 -> 0 bytes macros/unicodetex/latex/njuthesis/njuthesis.dtx | 2355 +++--- macros/unicodetex/latex/njuthesis/njuthesis.ins | 79 + macros/unicodetex/latex/njuthesis/njuthesis.pdf | Bin 638180 -> 764340 bytes macros/unicodetex/latex/njuthesis/njuvisual.dtx | 5203 +++++++++++++ macros/unicodetex/latex/tipauni/COPYING | 674 -- macros/unicodetex/latex/tipauni/README.txt | 2 +- .../unicodetex/latex/tipauni/tipauni-commands.pdf | Bin 85125 -> 70922 bytes .../unicodetex/latex/tipauni/tipauni-example.pdf | Bin 128188 -> 107982 bytes macros/unicodetex/latex/tipauni/tipauni.dtx | 26 +- macros/unicodetex/latex/tipauni/tipauni.ins | 2 +- macros/unicodetex/latex/tipauni/tipauni.pdf | Bin 248249 -> 238460 bytes macros/xetex/latex/zitie/README.md | 17 +- macros/xetex/latex/zitie/doc/zitie-cn.pdf | Bin 288061 -> 339839 bytes macros/xetex/latex/zitie/doc/zitie-cn.tex | 481 +- macros/xetex/latex/zitie/tex/zitie.luatex.def | 90 + macros/xetex/latex/zitie/tex/zitie.sty | 689 +- macros/xetex/latex/zitie/tex/zitie.xetex.def | 52 + .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 4 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb | 219 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2313932 -> 2312796 bytes systems/win32/TLW64/00README.TLW64 | 9 + systems/win32/miktex/tm/packages/next/pr.ini | 8 +- systems/win32/miktex/tm/packages/pr.ini | 8 +- timestamp | 2 +- usergrps/usergrps/bg.html | 2 +- usergrps/usergrps/br.html | 2 +- usergrps/usergrps/cn.html | 2 +- usergrps/usergrps/cz.html | 2 +- usergrps/usergrps/de.html | 2 +- usergrps/usergrps/dk.html | 2 +- usergrps/usergrps/ee.html | 2 +- usergrps/usergrps/es.html | 2 +- usergrps/usergrps/esc.html | 2 +- usergrps/usergrps/fr.html | 2 +- usergrps/usergrps/gb.html | 2 +- usergrps/usergrps/gr.html | 2 +- usergrps/usergrps/hu.html | 2 +- usergrps/usergrps/ie.html | 2 +- usergrps/usergrps/index.html | 2 +- usergrps/usergrps/is.html | 2 +- usergrps/usergrps/it.html | 2 +- usergrps/usergrps/kh.html | 2 +- usergrps/usergrps/kr.html | 2 +- usergrps/usergrps/labels.pdf | Bin 9891 -> 9903 bytes usergrps/usergrps/labels.tex | 2 +- usergrps/usergrps/lt.html | 4 +- usergrps/usergrps/lugs.html | 4 +- usergrps/usergrps/lugs.pdf | Bin 49917 -> 49920 bytes usergrps/usergrps/lugs.tex | 2 +- usergrps/usergrps/mx.html | 2 +- usergrps/usergrps/nl.html | 2 +- usergrps/usergrps/no.html | 2 +- usergrps/usergrps/pl.html | 2 +- usergrps/usergrps/pt.html | 2 +- usergrps/usergrps/us.html | 2 +- usergrps/usergrps/uy.html | 2 +- usergrps/usergrps/vn.html | 2 +- usergrps/usergrps/za.html | 2 +- 114 files changed, 20012 insertions(+), 10758 deletions(-) delete mode 100644 graphics/pstricks/contrib/pst-fill/Makefile create mode 100644 graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.bib create mode 100644 graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.pdf create mode 100644 graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.tex create mode 100644 graphics/pstricks/contrib/pst-fill/latex/pst-fill.sty delete mode 100644 graphics/pstricks/contrib/pst-fill/pst-fill.dtx delete mode 100644 graphics/pstricks/contrib/pst-fill/pst-fill.ins delete mode 100644 graphics/pstricks/contrib/pst-fill/pst-fill.pdf create mode 100644 graphics/pstricks/contrib/pst-fill/tex/pst-fill.tex delete mode 100644 macros/generic/markdown/banner.png create mode 100644 macros/generic/markdown/markdown.png delete mode 100644 macros/unicodetex/latex/njuthesis/README_ZH_CN.md delete mode 100644 macros/unicodetex/latex/njuthesis/figure/njulogo.pdf delete mode 100644 macros/unicodetex/latex/njuthesis/figure/njuname-large.pdf delete mode 100644 macros/unicodetex/latex/njuthesis/figure/njuname.pdf create mode 100644 macros/unicodetex/latex/njuthesis/njuthesis.ins create mode 100644 macros/unicodetex/latex/njuthesis/njuvisual.dtx delete mode 100644 macros/unicodetex/latex/tipauni/COPYING create mode 100644 macros/xetex/latex/zitie/tex/zitie.luatex.def create mode 100644 macros/xetex/latex/zitie/tex/zitie.xetex.def diff --git a/FILES.byname b/FILES.byname index 4e03673c27..92ede577b7 100644 --- a/FILES.byname +++ b/FILES.byname @@ -5105,7 +5105,7 @@ 1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp 1990/10/02 | 812 | dviware/vutex/vaxvms.ins 1990/10/02 | 127576 | dviware/vutex/vutex.web -2021/09/30 | 86140 | FILES.last07days +2021/10/01 | 74735 | 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 @@ -156266,7 +156266,7 @@ 1995/04/26 | 830 | graphics/pstex/readme.dos 1995/04/26 | 1436 | graphics/pstex/std.h 2006/05/21 | 60272 | graphics/pstex.zip -2021/09/25 | 4650 | graphics/pstricks/base/Changes +2021/10/01 | 4580 | graphics/pstricks/base/Changes 2021/08/26 | 2081 | graphics/pstricks/base/config/distiller.cfg 2021/08/26 | 14970 | graphics/pstricks/base/config/dvips.cfg 2021/08/26 | 4938 | graphics/pstricks/base/config/dvipsone.cfg @@ -156326,27 +156326,27 @@ 2021/08/26 | 6569 | graphics/pstricks/base/doc/test-pst.tex 2020/06/09 | 30047 | graphics/pstricks/base/dvips/pst-algparser.pro 2020/06/07 | 4734 | graphics/pstricks/base/dvips/pst-dots97.pro -2021/09/24 | 18368 | graphics/pstricks/base/dvips/pst-dots.pro +2021/10/01 | 18367 | graphics/pstricks/base/dvips/pst-dots.pro 2020/06/07 | 12327 | graphics/pstricks/base/dvips/pstricks97.pro -2021/09/25 | 37132 | graphics/pstricks/base/dvips/pstricks.pro +2021/10/01 | 37180 | graphics/pstricks/base/dvips/pstricks.pro 2021/08/26 | 23492 | graphics/pstricks/base/generic/pst-fp.tex 2021/08/26 | 2787 | graphics/pstricks/base/generic/pst-key.tex 2021/09/07 | 70662 | graphics/pstricks/base/generic/pstricks97.tex 2021/08/28 | 19134 | graphics/pstricks/base/generic/pstricks-arrows.tex 2021/09/23 | 4629 | graphics/pstricks/base/generic/pstricks-color.tex 2021/09/15 | 15065 | graphics/pstricks/base/generic/pstricks.con -2021/09/25 | 9489 | graphics/pstricks/base/generic/pstricks-dots.tex -2021/09/25 | 121379 | graphics/pstricks/base/generic/pstricks.tex -2021/09/01 | 3128 | graphics/pstricks/base/generic/pstricks-tex.def -2021/08/26 | 1004 | graphics/pstricks/base/generic/pstricks-xetex.def +2021/09/27 | 9987 | graphics/pstricks/base/generic/pstricks-dots.tex +2021/09/28 | 121586 | graphics/pstricks/base/generic/pstricks.tex +2021/09/27 | 3152 | graphics/pstricks/base/generic/pstricks-tex.def +2021/09/27 | 1026 | graphics/pstricks/base/generic/pstricks-xetex.def 2021/09/10 | 25082 | graphics/pstricks/base/History 2021/08/26 | 1107 | graphics/pstricks/base/latex/pst-all.sty 2021/08/26 | 899 | graphics/pstricks/base/latex/pstcol.sty 2021/08/26 | 249 | graphics/pstricks/base/latex/pst-key.sty 2021/08/26 | 5261 | graphics/pstricks/base/latex/pstricks-pdf.sty -2021/09/04 | 8068 | graphics/pstricks/base/latex/pstricks.sty +2021/09/24 | 8044 | graphics/pstricks/base/latex/pstricks.sty 2021/08/26 | 4651 | graphics/pstricks/base/README -2021/09/25 | 8027659 | graphics/pstricks/base.zip +2021/10/01 | 8027840 | graphics/pstricks/base.zip 2014/07/25 | 3769 | graphics/pstricks/contrib/dsptricks/dspblocks.sty 2014/07/24 | 9254 | graphics/pstricks/contrib/dsptricks/dspfunctions.sty 2014/07/25 | 212782 | graphics/pstricks/contrib/dsptricks/dspTricksManual.pdf @@ -156952,13 +156952,14 @@ 2018/09/27 | 1298 | graphics/pstricks/contrib/pst-feyn/README.md 2018/09/27 | 11163 | graphics/pstricks/contrib/pst-feyn/tex/pst-feyn.tex 2018/09/27 | 156186 | graphics/pstricks/contrib/pst-feyn.zip -2007/03/11 | 93 | graphics/pstricks/contrib/pst-fill/Changes -2007/03/11 | 1036 | graphics/pstricks/contrib/pst-fill/Makefile -2007/03/11 | 69935 | graphics/pstricks/contrib/pst-fill/pst-fill.dtx -2006/11/07 | 1105 | graphics/pstricks/contrib/pst-fill/pst-fill.ins -2007/03/11 | 1230303 | graphics/pstricks/contrib/pst-fill/pst-fill.pdf -2006/11/07 | 759 | graphics/pstricks/contrib/pst-fill/README -2007/03/11 | 1152104 | graphics/pstricks/contrib/pst-fill.zip +2021/10/01 | 138 | graphics/pstricks/contrib/pst-fill/Changes +2021/09/30 | 3965 | graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.bib +2021/10/01 | 957618 | graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.pdf +2021/10/01 | 48371 | graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.tex +2021/09/29 | 746 | graphics/pstricks/contrib/pst-fill/latex/pst-fill.sty +2021/10/01 | 682 | graphics/pstricks/contrib/pst-fill/README +2021/10/01 | 13563 | graphics/pstricks/contrib/pst-fill/tex/pst-fill.tex +2021/10/01 | 866760 | graphics/pstricks/contrib/pst-fill.zip 2017/08/24 | 304 | graphics/pstricks/contrib/pst-fit/Changes 2017/08/24 | 3874 | graphics/pstricks/contrib/pst-fit/doc/pst-fit-doc.bib 2017/08/24 | 1336 | graphics/pstricks/contrib/pst-fit/doc/pst-fit-doc.data @@ -179990,22 +179991,22 @@ 1997/10/22 | 46895 | info/installing_psnfss_on_emtex.pdf 2021/07/13 | 4452 | info/install-latex-guide-zh-cn/appendix/mirror.tex 2020/11/14 | 2463 | info/install-latex-guide-zh-cn/appendix/offline.tex -2021/07/31 | 4685 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex +2021/09/03 | 4813 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex 2020/11/14 | 3610 | info/install-latex-guide-zh-cn/appendix/wsladdition.tex 2021/07/03 | 22938 | info/install-latex-guide-zh-cn/chapter/editor.tex 2021/07/04 | 5339 | info/install-latex-guide-zh-cn/chapter/macos.tex 2021/04/06 | 3832 | info/install-latex-guide-zh-cn/chapter/overleaf.tex 2021/06/01 | 2526 | info/install-latex-guide-zh-cn/chapter/preface.tex -2021/07/04 | 13796 | info/install-latex-guide-zh-cn/chapter/ubuntu.tex +2021/09/03 | 14839 | info/install-latex-guide-zh-cn/chapter/ubuntu.tex 2021/07/31 | 20834 | info/install-latex-guide-zh-cn/chapter/windows.tex -2021/07/04 | 11903 | info/install-latex-guide-zh-cn/chapter/wsl.tex -2021/08/01 | 744469 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf +2021/09/03 | 12115 | info/install-latex-guide-zh-cn/chapter/wsl.tex +2021/10/01 | 747376 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf 2020/11/14 | 3201 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.tex 2020/11/14 | 19039 | info/install-latex-guide-zh-cn/LICENSE 2020/11/14 | 491 | info/install-latex-guide-zh-cn/make.bat 2020/11/14 | 596 | info/install-latex-guide-zh-cn/makefile 2021/05/08 | 2680 | info/install-latex-guide-zh-cn/README.md -2021/07/31 | 783736 | info/install-latex-guide-zh-cn.zip +2021/10/01 | 787082 | info/install-latex-guide-zh-cn.zip 2008/06/13 | 116805 | info/intro-scientific/earth-moon.pdf 2009/02/19 | 226 | info/intro-scientific/Makefile 2009/02/18 | 1350 | info/intro-scientific/README @@ -182980,7 +182981,7 @@ 2021/09/21 | 514924 | install/macros/generic/expkv.tds.zip 2020/03/06 | 222075 | install/macros/generic/iftex.tds.zip 2012/09/20 | 321508 | install/macros/generic/langcode.tds.zip -2021/08/31 | 947793 | install/macros/generic/markdown.tds.zip +2021/10/01 | 1078883 | install/macros/generic/markdown.tds.zip 2014/06/11 | 428488 | install/macros/generic/mathdots.tds.zip 2014/01/02 | 496633 | install/macros/generic/minifp.tds.zip 2012/09/20 | 369585 | install/macros/generic/plainpkg.tds.zip @@ -183162,7 +183163,7 @@ 2012/05/03 | 406018 | install/macros/latex/contrib/lstaddons.tds.zip 2011/03/25 | 10183 | install/macros/latex/contrib/ltxdockit.tds.zip 2021/02/18 | 340623 | install/macros/latex/contrib/luacolor.tds.zip -2021/08/28 | 4184792 | install/macros/latex/contrib/lwarp.tds.zip +2021/10/01 | 4197924 | install/macros/latex/contrib/lwarp.tds.zip 2019/11/29 | 336437 | install/macros/latex/contrib/magicnum.tds.zip 2009/09/03 | 125014 | install/macros/latex/contrib/makecmds.tds.zip 2018/08/09 | 330020 | install/macros/latex/contrib/marginnote.tds.zip @@ -197388,20 +197389,20 @@ 2016/06/15 | 170646 | macros/generic/luatex85/luatex85.pdf 2016/06/15 | 316 | macros/generic/luatex85/README.md 2016/06/15 | 173375 | macros/generic/luatex85.zip -2020/08/21 | 140951 | macros/generic/markdown/banner.png -2021/08/28 | 4485 | macros/generic/markdown/docstrip.cfg -2021/08/31 | 1060 | macros/generic/markdown/examples/context.tex -2021/08/31 | 2921 | macros/generic/markdown/examples/example.md -2021/08/31 | 1052 | macros/generic/markdown/examples/latex.tex -2019/05/11 | 75 | macros/generic/markdown/examples/scientists.csv -2021/08/31 | 4530 | macros/generic/markdown/markdown.css -2021/08/31 | 519788 | macros/generic/markdown/markdown.dtx -2021/08/31 | 558270 | macros/generic/markdown/markdown.html -2021/08/26 | 1145 | macros/generic/markdown/markdown.ins -2021/08/31 | 9108 | macros/generic/markdown/markdown.md -2021/08/31 | 628207 | macros/generic/markdown/markdown.pdf -2021/08/31 | 9414 | macros/generic/markdown/README.md -2021/08/31 | 892662 | macros/generic/markdown.zip +2021/10/01 | 4485 | macros/generic/markdown/docstrip.cfg +2021/10/01 | 1095 | macros/generic/markdown/examples/context.tex +2021/10/01 | 3123 | macros/generic/markdown/examples/example.md +2021/10/01 | 1205 | macros/generic/markdown/examples/latex.tex +2021/10/01 | 75 | macros/generic/markdown/examples/scientists.csv +2021/10/01 | 4530 | macros/generic/markdown/markdown.css +2021/10/01 | 571392 | macros/generic/markdown/markdown.dtx +2021/10/01 | 626760 | macros/generic/markdown/markdown.html +2021/10/01 | 1333 | macros/generic/markdown/markdown.ins +2021/10/01 | 9683 | macros/generic/markdown/markdown.md +2021/10/01 | 729945 | macros/generic/markdown/markdown.pdf +2021/10/01 | 140951 | macros/generic/markdown/markdown.png +2021/10/01 | 15653 | macros/generic/markdown/README.md +2021/10/01 | 1015291 | macros/generic/markdown.zip 2014/06/11 | 20744 | macros/generic/mathdots/mathdots.dtx 2014/06/11 | 1203 | macros/generic/mathdots/mathdots.ins 2014/06/11 | 258547 | macros/generic/mathdots/mathdots.pdf @@ -206742,11 +206743,11 @@ 2011/06/05 | 1577 | macros/latex/contrib/decimal/decimal.ins 2011/06/05 | 187033 | macros/latex/contrib/decimal/decimal.pdf 2011/06/05 | 165517 | macros/latex/contrib/decimal.zip -2020/12/08 | 15895 | macros/latex/contrib/decision-table/decision-table.dtx -2020/12/08 | 1471 | macros/latex/contrib/decision-table/decision-table.ins -2020/12/08 | 112176 | macros/latex/contrib/decision-table/decision-table.pdf -2020/12/08 | 868 | macros/latex/contrib/decision-table/README -2020/12/08 | 113076 | macros/latex/contrib/decision-table.zip +2021/10/01 | 24262 | macros/latex/contrib/decision-table/decision-table.dtx +2021/10/01 | 1481 | macros/latex/contrib/decision-table/decision-table.ins +2021/10/01 | 111518 | macros/latex/contrib/decision-table/decision-table.pdf +2021/10/01 | 873 | macros/latex/contrib/decision-table/README +2021/10/01 | 113341 | macros/latex/contrib/decision-table.zip 2020/05/21 | 56004 | macros/latex/contrib/decorule/decorule.dtx 2020/05/21 | 2186 | macros/latex/contrib/decorule/decorule.ins 2020/05/21 | 396165 | macros/latex/contrib/decorule/decorule.pdf @@ -215262,15 +215263,15 @@ 1999/06/10 | 980 | macros/latex/contrib/lucold/t1hlos.fd 1999/05/25 | 407 | macros/latex/contrib/lucold/test.tex 2005/04/30 | 25682 | macros/latex/contrib/lucold.zip -2021/08/28 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps -2021/08/28 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png -2021/08/28 | 2747039 | macros/latex/contrib/lwarp/lwarp.dtx -2021/08/28 | 33231 | macros/latex/contrib/lwarp/lwarp.ins -2021/08/28 | 29559 | macros/latex/contrib/lwarp/lwarpmk.lua -2021/08/28 | 3136003 | macros/latex/contrib/lwarp/lwarp.pdf -2021/08/28 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt -2021/08/28 | 1624 | macros/latex/contrib/lwarp/README.txt -2021/08/28 | 3601477 | macros/latex/contrib/lwarp.zip +2021/10/01 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps +2021/10/01 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png +2021/10/01 | 2758078 | macros/latex/contrib/lwarp/lwarp.dtx +2021/10/01 | 33349 | macros/latex/contrib/lwarp/lwarp.ins +2021/10/01 | 29559 | macros/latex/contrib/lwarp/lwarpmk.lua +2021/10/01 | 3144374 | macros/latex/contrib/lwarp/lwarp.pdf +2021/10/01 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt +2021/10/01 | 1624 | macros/latex/contrib/lwarp/README.txt +2021/10/01 | 3611774 | macros/latex/contrib/lwarp.zip 2006/09/11 | 4093 | macros/latex/contrib/lyx/sikumuna/article-sikumuna.layout 2006/09/11 | 781 | macros/latex/contrib/lyx/sikumuna/README 2006/09/11 | 1806 | macros/latex/contrib/lyx/sikumuna.zip @@ -223830,10 +223831,10 @@ 2009/06/01 | 150930 | macros/latex/contrib/tabularew.zip 2021/06/10 | 267 | macros/latex/contrib/tabularray/README 2021/06/05 | 158209 | macros/latex/contrib/tabularray/tabularray-2021.sty -2021/09/01 | 725112 | macros/latex/contrib/tabularray/tabularray.pdf -2021/09/01 | 226421 | macros/latex/contrib/tabularray/tabularray.sty -2021/09/01 | 74198 | macros/latex/contrib/tabularray/tabularray.tex -2021/09/01 | 681366 | macros/latex/contrib/tabularray.zip +2021/10/01 | 760493 | macros/latex/contrib/tabularray/tabularray.pdf +2021/10/01 | 231322 | macros/latex/contrib/tabularray/tabularray.sty +2021/10/01 | 78220 | macros/latex/contrib/tabularray/tabularray.tex +2021/10/01 | 714327 | macros/latex/contrib/tabularray.zip 2005/10/21 | 169 | macros/latex/contrib/tabulary/README 2014/06/21 | 29652 | macros/latex/contrib/tabulary/tabulary.dtx 2003/11/26 | 156 | macros/latex/contrib/tabulary/tabulary.ins @@ -242271,15 +242272,13 @@ 2020/09/29 | 211 | macros/unicodetex/latex/lilyglyphs/tex/README-tex 2020/09/29 | 49 | macros/unicodetex/latex/lilyglyphs/VERSION 2020/09/29 | 2283370 | macros/unicodetex/latex/lilyglyphs.zip -2021/09/17 | 21738 | macros/unicodetex/latex/njuthesis/figure/njulogo.pdf -2021/09/17 | 84739 | macros/unicodetex/latex/njuthesis/figure/njuname-large.pdf -2021/09/17 | 12747 | macros/unicodetex/latex/njuthesis/figure/njuname.pdf -2021/09/17 | 19105 | macros/unicodetex/latex/njuthesis/LICENSE -2021/09/17 | 72250 | macros/unicodetex/latex/njuthesis/njuthesis.dtx -2021/09/17 | 638180 | macros/unicodetex/latex/njuthesis/njuthesis.pdf -2021/09/17 | 745 | macros/unicodetex/latex/njuthesis/README.md -2021/09/17 | 3938 | macros/unicodetex/latex/njuthesis/README_ZH_CN.md -2021/09/17 | 725848 | macros/unicodetex/latex/njuthesis.zip +2021/10/01 | 19105 | macros/unicodetex/latex/njuthesis/LICENSE +2021/10/01 | 92287 | macros/unicodetex/latex/njuthesis/njuthesis.dtx +2021/10/01 | 2837 | macros/unicodetex/latex/njuthesis/njuthesis.ins +2021/10/01 | 764340 | macros/unicodetex/latex/njuthesis/njuthesis.pdf +2021/10/01 | 320216 | macros/unicodetex/latex/njuthesis/njuvisual.dtx +2021/10/01 | 745 | macros/unicodetex/latex/njuthesis/README.md +2021/10/01 | 884915 | macros/unicodetex/latex/njuthesis.zip 2021/08/05 | 269 | macros/unicodetex/latex/nwafuthesis/build.sh 2021/08/05 | 263 | macros/unicodetex/latex/nwafuthesis/build-win.bat 2021/08/05 | 218987 | macros/unicodetex/latex/nwafuthesis/logo/building.jpg @@ -242394,16 +242393,15 @@ 2021/02/09 | 106690 | macros/unicodetex/latex/texnegar/xepersian-XB.pdf 2021/02/09 | 3113 | macros/unicodetex/latex/texnegar/xepersian-XB.tex 2021/02/09 | 4898310 | macros/unicodetex/latex/texnegar.zip -2021/08/11 | 35149 | macros/unicodetex/latex/tipauni/COPYING -2021/08/11 | 451 | macros/unicodetex/latex/tipauni/README.txt -2021/08/11 | 85125 | macros/unicodetex/latex/tipauni/tipauni-commands.pdf -2021/08/11 | 3663 | macros/unicodetex/latex/tipauni/tipauni-commands.tex -2021/08/11 | 49834 | macros/unicodetex/latex/tipauni/tipauni.dtx -2021/08/11 | 128188 | macros/unicodetex/latex/tipauni/tipauni-example.pdf -2021/08/11 | 10115 | macros/unicodetex/latex/tipauni/tipauni-example.tex -2021/08/11 | 1669 | macros/unicodetex/latex/tipauni/tipauni.ins -2021/08/11 | 248249 | macros/unicodetex/latex/tipauni/tipauni.pdf -2021/08/11 | 478280 | macros/unicodetex/latex/tipauni.zip +2021/10/01 | 452 | macros/unicodetex/latex/tipauni/README.txt +2021/10/01 | 70922 | macros/unicodetex/latex/tipauni/tipauni-commands.pdf +2021/10/01 | 3663 | macros/unicodetex/latex/tipauni/tipauni-commands.tex +2021/10/01 | 49836 | macros/unicodetex/latex/tipauni/tipauni.dtx +2021/10/01 | 107982 | macros/unicodetex/latex/tipauni/tipauni-example.pdf +2021/10/01 | 10115 | macros/unicodetex/latex/tipauni/tipauni-example.tex +2021/10/01 | 1669 | macros/unicodetex/latex/tipauni/tipauni.ins +2021/10/01 | 238460 | macros/unicodetex/latex/tipauni/tipauni.pdf +2021/10/01 | 422886 | macros/unicodetex/latex/tipauni.zip 2020/01/31 | 15419 | macros/unicodetex/latex/unicode-math/CHANGES.md 2020/01/31 | 19106 | macros/unicodetex/latex/unicode-math/LICENSE 2020/01/31 | 9203 | macros/unicodetex/latex/unicode-math/MANIFEST.md @@ -243389,11 +243387,13 @@ 2021/06/24 | 12549 | macros/xetex/latex/zbmath-review-template/zb-manual.tex 2021/06/24 | 2683 | macros/xetex/latex/zbmath-review-template/zbMATH.cls 2021/06/24 | 211450 | macros/xetex/latex/zbmath-review-template.zip -2021/09/23 | 288061 | macros/xetex/latex/zitie/doc/zitie-cn.pdf -2021/09/23 | 25262 | macros/xetex/latex/zitie/doc/zitie-cn.tex -2021/09/23 | 2231 | macros/xetex/latex/zitie/README.md -2021/09/23 | 42708 | macros/xetex/latex/zitie/tex/zitie.sty -2021/09/23 | 299904 | macros/xetex/latex/zitie.zip +2021/10/01 | 339839 | macros/xetex/latex/zitie/doc/zitie-cn.pdf +2021/10/01 | 40873 | macros/xetex/latex/zitie/doc/zitie-cn.tex +2021/10/01 | 2335 | macros/xetex/latex/zitie/README.md +2021/09/26 | 3300 | macros/xetex/latex/zitie/tex/zitie.luatex.def +2021/10/01 | 55730 | macros/xetex/latex/zitie/tex/zitie.sty +2021/09/26 | 2236 | macros/xetex/latex/zitie/tex/zitie.xetex.def +2021/10/01 | 357357 | macros/xetex/latex/zitie.zip 2019/03/17 | 50155 | macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.pdf 2019/03/17 | 13753 | macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.tex 2019/03/13 | 13006 | macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/sources-fonts-unicode.html @@ -281800,9 +281800,9 @@ 2019/02/28 | 7908 | systems/texlive/tlnet/archive/hanging.source.r15878.tar.xz 2019/02/28 | 1056 | systems/texlive/tlnet/archive/hang.r43280.tar.xz 2019/02/28 | 1496 | systems/texlive/tlnet/archive/hanoi.r25019.tar.xz -2021/09/29 | 455704 | systems/texlive/tlnet/archive/hanzibox.doc.r60639.tar.xz -2021/09/29 | 5652 | systems/texlive/tlnet/archive/hanzibox.r60639.tar.xz -2021/09/29 | 14724 | systems/texlive/tlnet/archive/hanzibox.source.r60639.tar.xz +2021/10/01 | 486572 | systems/texlive/tlnet/archive/hanzibox.doc.r60661.tar.xz +2021/10/01 | 6388 | systems/texlive/tlnet/archive/hanzibox.r60661.tar.xz +2021/10/01 | 16120 | systems/texlive/tlnet/archive/hanzibox.source.r60661.tar.xz 2019/02/28 | 52364 | systems/texlive/tlnet/archive/happy4th.doc.r25020.tar.xz 2019/02/28 | 436 | systems/texlive/tlnet/archive/happy4th.r25020.tar.xz 2021/06/21 | 205056 | systems/texlive/tlnet/archive/ha-prosper.doc.r59651.tar.xz @@ -283558,8 +283558,8 @@ 2021/05/09 | 359576 | systems/texlive/tlnet/archive/lua-physical.r59138.tar.xz 2020/08/15 | 442728 | systems/texlive/tlnet/archive/luaprogtable.doc.r56113.tar.xz 2020/08/15 | 7092 | systems/texlive/tlnet/archive/luaprogtable.r56113.tar.xz -2021/09/29 | 1492 | systems/texlive/tlnet/archive/luapstricks.doc.r60642.tar.xz -2021/09/29 | 21328 | systems/texlive/tlnet/archive/luapstricks.r60642.tar.xz +2021/10/01 | 1496 | systems/texlive/tlnet/archive/luapstricks.doc.r60659.tar.xz +2021/10/01 | 25952 | systems/texlive/tlnet/archive/luapstricks.r60659.tar.xz 2019/02/28 | 50272 | systems/texlive/tlnet/archive/luarandom.doc.r49419.tar.xz 2019/02/28 | 1392 | systems/texlive/tlnet/archive/luarandom.r49419.tar.xz 2019/02/28 | 224504 | systems/texlive/tlnet/archive/luasseq.doc.r37877.tar.xz @@ -283673,13 +283673,13 @@ 2019/02/28 | 340 | systems/texlive/tlnet/archive/make4ht.amd64-freebsd.r37750.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/make4ht.amd64-netbsd.r37750.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/make4ht.armhf-linux.r37750.tar.xz -2021/07/27 | 165992 | systems/texlive/tlnet/archive/make4ht.doc.r60077.tar.xz +2021/10/01 | 174564 | systems/texlive/tlnet/archive/make4ht.doc.r60662.tar.xz 2019/02/28 | 336 | systems/texlive/tlnet/archive/make4ht.i386-cygwin.r37750.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/make4ht.i386-freebsd.r37750.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/make4ht.i386-linux.r37750.tar.xz 2019/02/28 | 336 | systems/texlive/tlnet/archive/make4ht.i386-netbsd.r37750.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/make4ht.i386-solaris.r37750.tar.xz -2021/07/27 | 48840 | systems/texlive/tlnet/archive/make4ht.r60077.tar.xz +2021/10/01 | 49644 | systems/texlive/tlnet/archive/make4ht.r60662.tar.xz 2021/02/25 | 336 | systems/texlive/tlnet/archive/make4ht.universal-darwin.r57908.tar.xz 2019/02/28 | 680 | systems/texlive/tlnet/archive/make4ht.win32.r37750.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/make4ht.x86_64-cygwin.r37750.tar.xz @@ -287036,9 +287036,9 @@ 2021/06/26 | 250232 | systems/texlive/tlnet/archive/siunits.doc.r59702.tar.xz 2021/06/26 | 6040 | systems/texlive/tlnet/archive/siunits.r59702.tar.xz 2021/06/26 | 34532 | systems/texlive/tlnet/archive/siunits.source.r59702.tar.xz -2021/09/23 | 2033204 | systems/texlive/tlnet/archive/siunitx.doc.r60581.tar.xz -2021/09/23 | 62144 | systems/texlive/tlnet/archive/siunitx.r60581.tar.xz -2021/09/23 | 107104 | systems/texlive/tlnet/archive/siunitx.source.r60581.tar.xz +2021/10/01 | 2035132 | systems/texlive/tlnet/archive/siunitx.doc.r60660.tar.xz +2021/10/01 | 62192 | systems/texlive/tlnet/archive/siunitx.r60660.tar.xz +2021/10/01 | 107344 | systems/texlive/tlnet/archive/siunitx.source.r60660.tar.xz 2019/02/28 | 200108 | systems/texlive/tlnet/archive/skak.doc.r46259.tar.xz 2019/02/28 | 316212 | systems/texlive/tlnet/archive/skaknew.doc.r20031.tar.xz 2019/02/28 | 160064 | systems/texlive/tlnet/archive/skaknew.r20031.tar.xz @@ -287650,13 +287650,13 @@ 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.amd64-freebsd.r37771.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.amd64-netbsd.r37771.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.armhf-linux.r37771.tar.xz -2021/07/27 | 92924 | systems/texlive/tlnet/archive/tex4ebook.doc.r60083.tar.xz +2021/10/01 | 94260 | systems/texlive/tlnet/archive/tex4ebook.doc.r60663.tar.xz 2019/02/28 | 336 | systems/texlive/tlnet/archive/tex4ebook.i386-cygwin.r37771.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-freebsd.r37771.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-linux.r37771.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-netbsd.r37771.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-solaris.r37771.tar.xz -2021/07/27 | 17000 | systems/texlive/tlnet/archive/tex4ebook.r60083.tar.xz +2021/10/01 | 17516 | systems/texlive/tlnet/archive/tex4ebook.r60663.tar.xz 2021/02/25 | 340 | systems/texlive/tlnet/archive/tex4ebook.universal-darwin.r57908.tar.xz 2019/02/28 | 684 | systems/texlive/tlnet/archive/tex4ebook.win32.r37771.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.x86_64-cygwin.r37771.tar.xz @@ -287910,7 +287910,7 @@ 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz -2021/09/30 | 400400 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60647.tar.xz +2021/10/01 | 400432 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60657.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 @@ -287934,7 +287934,7 @@ 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz -2021/09/30 | 108216 | systems/texlive/tlnet/archive/texlive-scripts.r60647.tar.xz +2021/10/01 | 108284 | systems/texlive/tlnet/archive/texlive-scripts.r60657.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 @@ -288333,8 +288333,8 @@ 2020/05/14 | 340 | systems/texlive/tlnet/archive/tikztosvg.x86_64-linuxmusl.r55132.tar.xz 2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.x86_64-linux.r55132.tar.xz 2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.x86_64-solaris.r55132.tar.xz -2021/01/03 | 598032 | systems/texlive/tlnet/archive/tikz-trackschematic.doc.r57300.tar.xz -2021/01/03 | 15172 | systems/texlive/tlnet/archive/tikz-trackschematic.r57300.tar.xz +2021/10/01 | 591780 | systems/texlive/tlnet/archive/tikz-trackschematic.doc.r60658.tar.xz +2021/10/01 | 15236 | systems/texlive/tlnet/archive/tikz-trackschematic.r60658.tar.xz 2019/02/28 | 119856 | systems/texlive/tlnet/archive/tikz-truchet.doc.r50020.tar.xz 2019/02/28 | 2236 | systems/texlive/tlnet/archive/tikz-truchet.r50020.tar.xz 2019/02/28 | 3476 | systems/texlive/tlnet/archive/tikz-truchet.source.r50020.tar.xz @@ -289674,16 +289674,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2021/05/02 | 105152 | systems/texlive/tlnet/install-tl -2021/09/30 | 6811604 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/09/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/09/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/10/01 | 6811706 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/10/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/10/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2021/09/30 | 20873161 | systems/texlive/tlnet/install-tl-windows.exe -2021/09/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/09/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/09/30 | 25629571 | systems/texlive/tlnet/install-tl.zip -2021/09/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/09/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/10/01 | 20875526 | systems/texlive/tlnet/install-tl-windows.exe +2021/10/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/10/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/10/01 | 25629613 | systems/texlive/tlnet/install-tl.zip +2021/10/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/10/01 | 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 @@ -289693,7 +289693,7 @@ 2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2021/07/02 | 49348 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2021/09/29 | 6623 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2021/09/30 | 6840 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -289735,12 +289735,12 @@ 2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/05/16 | 5402 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2021/05/16 | 27555 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2021/09/30 | 16890505 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2021/09/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/10/01 | 16890709 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/10/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/05/16 | 86511 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2021/09/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/09/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/09/30 | 2314568 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/10/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/10/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/10/01 | 2313932 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/05/16 | 58801 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2021/05/16 | 42084 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2021/05/16 | 16103 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -294661,7 +294661,7 @@ 2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma 2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma 2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma -2021/09/30 | 615154 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/10/01 | 615154 | 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 @@ -296051,9 +296051,9 @@ 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma 2021/08/07 | 39000 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma 2021/08/07 | 43393 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2021/09/30 | 241674 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/09/30 | 1359309 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/09/30 | 1262338 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/10/01 | 241634 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/10/01 | 1358809 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/10/01 | 1261769 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2021/08/07 | 13446 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma 2021/08/07 | 14327 | 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 @@ -296263,189 +296263,189 @@ 2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma 2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma 2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma -2021/09/30 | 615217 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/09/30 | 51113 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/09/30 | 56476 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/09/30 | 975020 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/09/30 | 1077991 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/09/30 | 29034 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/09/30 | 31351 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/09/30 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/09/30 | 34666 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/09/30 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2021/09/30 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/09/30 | 83540 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/09/30 | 95402 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/09/30 | 67821 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/09/30 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/09/30 | 27199 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/09/30 | 30825 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/09/30 | 330787 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/09/30 | 392793 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/09/30 | 32674 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/09/30 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/09/30 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/09/30 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/09/30 | 241812 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/09/30 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/09/30 | 180012 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/09/30 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/09/30 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/09/30 | 61812 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/09/30 | 21225 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/09/30 | 23365 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/09/30 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/09/30 | 45906 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/09/30 | 51202 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/09/30 | 284581 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/09/30 | 325044 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/09/30 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2021/09/30 | 45311 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/09/30 | 119819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/09/30 | 133863 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/09/30 | 1291300 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/09/30 | 1421869 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/09/30 | 100625 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2021/09/30 | 112982 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/09/30 | 43029 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/09/30 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/09/30 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/09/30 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/09/30 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/09/30 | 62787 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/09/30 | 136818 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/09/30 | 154425 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/09/30 | 73198 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/09/30 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/09/30 | 71669 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/09/30 | 80449 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/09/30 | 258881 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/09/30 | 295204 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/09/30 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2021/09/30 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/09/30 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/09/30 | 112089 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/09/30 | 64430 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/09/30 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/09/30 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/09/30 | 115350 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/09/30 | 38141 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/09/30 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/09/30 | 483651 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/09/30 | 566530 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/09/30 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/09/30 | 159578 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2021/09/30 | 94799 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/09/30 | 109030 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/09/30 | 16357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/09/30 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/09/30 | 28391 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/09/30 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/09/30 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/09/30 | 681253 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/09/30 | 531851 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/09/30 | 596931 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/09/30 | 476922 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/09/30 | 510587 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/09/30 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2021/09/30 | 103400 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/09/30 | 1713892 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/09/30 | 2009906 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/09/30 | 67618 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/09/30 | 74209 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/09/30 | 27358 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/09/30 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/09/30 | 7722 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/09/30 | 8768 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/09/30 | 196871 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/09/30 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/09/30 | 250265 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/09/30 | 284024 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/09/30 | 98382 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/09/30 | 103202 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/09/30 | 60639 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/09/30 | 68025 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/09/30 | 124281 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2021/09/30 | 136820 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/09/30 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/09/30 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/09/30 | 199731 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/09/30 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/09/30 | 67483 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/09/30 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/09/30 | 31230 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/09/30 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/09/30 | 37807 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/09/30 | 42711 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/09/30 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/09/30 | 46906 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/09/30 | 45970 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/09/30 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/09/30 | 194384 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2021/09/30 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/09/30 | 35690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/09/30 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/09/30 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/09/30 | 815244 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/09/30 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/09/30 | 202795 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/09/30 | 208049 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/09/30 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/09/30 | 78774 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/09/30 | 87776 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/09/30 | 1169715 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/09/30 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/09/30 | 20136 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/09/30 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/09/30 | 31537 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/09/30 | 37241 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/09/30 | 64186 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/09/30 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/09/30 | 50395 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/09/30 | 57729 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/09/30 | 1340928 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/09/30 | 1464202 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/09/30 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/09/30 | 51749 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/09/30 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/09/30 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/09/30 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/09/30 | 27390 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/09/30 | 16414 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/09/30 | 18176 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/09/30 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/09/30 | 69914 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2021/09/30 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/09/30 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/09/30 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/09/30 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/09/30 | 98261 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/09/30 | 105223 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2021/09/30 | 2672612 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/09/30 | 2796726 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/09/30 | 56356 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/09/30 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/09/30 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/09/30 | 37360 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/09/30 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/09/30 | 33633 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/09/30 | 65620 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/09/30 | 70648 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/09/30 | 312109 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/09/30 | 345738 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/09/30 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/09/30 | 57140 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/09/30 | 589846 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/09/30 | 624656 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/09/30 | 39129 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/09/30 | 43425 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/09/30 | 241654 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/09/30 | 1358952 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/09/30 | 1261877 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/09/30 | 13465 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/09/30 | 14349 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/10/01 | 615217 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/10/01 | 51111 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/10/01 | 56474 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/10/01 | 975018 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/10/01 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/10/01 | 29037 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/10/01 | 31352 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/10/01 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/10/01 | 34666 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/10/01 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/10/01 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/10/01 | 83539 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/10/01 | 95403 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/10/01 | 67819 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/10/01 | 75791 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/10/01 | 27198 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/10/01 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/10/01 | 330788 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/10/01 | 392793 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/10/01 | 32672 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/10/01 | 36629 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/10/01 | 51311 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/10/01 | 56685 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/10/01 | 241814 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/10/01 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/10/01 | 180012 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/10/01 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/10/01 | 54632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/10/01 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/10/01 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/10/01 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/10/01 | 461813 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/10/01 | 45906 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/10/01 | 51202 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/10/01 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/10/01 | 325044 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/10/01 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/10/01 | 45311 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/10/01 | 119821 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/10/01 | 133863 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/10/01 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/10/01 | 1421867 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/10/01 | 100626 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/10/01 | 112983 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/10/01 | 43028 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/10/01 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/10/01 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/10/01 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/10/01 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/10/01 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/10/01 | 136817 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/10/01 | 154427 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/10/01 | 73197 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/10/01 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/10/01 | 71670 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/10/01 | 80450 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/10/01 | 258880 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/10/01 | 295203 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/10/01 | 22048 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/10/01 | 24996 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/10/01 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/10/01 | 112087 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/10/01 | 64427 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/10/01 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/10/01 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/10/01 | 115351 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/10/01 | 38140 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/10/01 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/10/01 | 483654 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/10/01 | 566529 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/10/01 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/10/01 | 159580 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/10/01 | 94798 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/10/01 | 109032 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/10/01 | 16356 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/10/01 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/10/01 | 28390 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/10/01 | 30059 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/10/01 | 629399 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/10/01 | 681252 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/10/01 | 531853 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/10/01 | 596931 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/10/01 | 476923 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/10/01 | 510588 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/10/01 | 94310 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/10/01 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/10/01 | 1713893 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/10/01 | 2009904 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/10/01 | 67619 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/10/01 | 74210 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/10/01 | 27358 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/10/01 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/10/01 | 7722 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/10/01 | 8769 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/10/01 | 196872 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/10/01 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/10/01 | 250262 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/10/01 | 284022 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/10/01 | 98380 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/10/01 | 103203 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/10/01 | 60636 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/10/01 | 68024 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/10/01 | 124281 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/10/01 | 136821 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/10/01 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/10/01 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/10/01 | 199731 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/10/01 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/10/01 | 67482 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/10/01 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/10/01 | 31231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/10/01 | 35085 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/10/01 | 37805 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/10/01 | 42712 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/10/01 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/10/01 | 46907 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/10/01 | 45968 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/10/01 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/10/01 | 194381 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/10/01 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/10/01 | 35691 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/10/01 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/10/01 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/10/01 | 815242 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/10/01 | 198168 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/10/01 | 202796 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/10/01 | 208047 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/10/01 | 243425 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/10/01 | 78773 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/10/01 | 87776 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/10/01 | 1169718 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/10/01 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/10/01 | 20136 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/10/01 | 23903 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/10/01 | 31538 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/10/01 | 37240 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/10/01 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/10/01 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/10/01 | 50395 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/10/01 | 57727 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/10/01 | 1340927 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/10/01 | 1464203 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/10/01 | 42384 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/10/01 | 51750 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/10/01 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/10/01 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/10/01 | 25290 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/10/01 | 27390 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/10/01 | 16414 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/10/01 | 18176 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/10/01 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/10/01 | 69914 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/10/01 | 154805 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/10/01 | 169243 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/10/01 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/10/01 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/10/01 | 98259 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/10/01 | 105223 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/10/01 | 2672610 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/10/01 | 2796724 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/10/01 | 56355 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/10/01 | 62229 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/10/01 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/10/01 | 37360 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/10/01 | 27729 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/10/01 | 33634 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/10/01 | 65618 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/10/01 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/10/01 | 312110 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/10/01 | 345740 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/10/01 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/10/01 | 57139 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/10/01 | 589840 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/10/01 | 624652 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/10/01 | 39127 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/10/01 | 43427 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/10/01 | 241662 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/10/01 | 1358922 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/10/01 | 1262656 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/10/01 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/10/01 | 14350 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma -2021/09/30 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/10/01 | 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 @@ -296842,7 +296842,7 @@ 2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma 2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma 2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma -2021/09/30 | 961 | systems/win32/miktex/tm/packages/pr.ini +2021/10/01 | 961 | 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 @@ -298448,7 +298448,7 @@ 2004/06/04 | 404 | tds/tds.sed 2004/06/23 | 65418 | tds/tds.tex 2019/05/29 | 304264 | tds.zip -2021/10/01 | 186 | timestamp +2021/10/02 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2021/08/04 | 917 | usergrps/dante/dtk/doc/beispiel.bib @@ -299781,40 +299781,40 @@ 1999/06/04 | 27445 | usergrps/uktug/baskervi/baskrep.cls 1999/05/12 | 7702 | usergrps/uktug/baskervi/epstopdf 1997/10/01 | 444 | usergrps/uktug/baskervi/README -2021/08/26 | 9387 | usergrps/usergrps/bg.html -2021/08/26 | 9056 | usergrps/usergrps/br.html -2021/08/26 | 9349 | usergrps/usergrps/cn.html -2021/08/26 | 9503 | usergrps/usergrps/cz.html -2021/08/26 | 9637 | usergrps/usergrps/de.html -2021/08/26 | 9141 | usergrps/usergrps/dk.html -2021/08/26 | 8920 | usergrps/usergrps/ee.html -2021/08/26 | 9145 | usergrps/usergrps/esc.html -2021/08/26 | 9290 | usergrps/usergrps/es.html -2021/08/26 | 9430 | usergrps/usergrps/fr.html -2021/08/26 | 9273 | usergrps/usergrps/gb.html -2021/08/26 | 9166 | usergrps/usergrps/gr.html -2021/08/26 | 9570 | usergrps/usergrps/hu.html -2021/08/26 | 9066 | usergrps/usergrps/ie.html -2021/08/26 | 6322 | usergrps/usergrps/index.html -2021/08/26 | 9041 | usergrps/usergrps/is.html -2021/08/26 | 9293 | usergrps/usergrps/it.html -2021/08/26 | 9010 | usergrps/usergrps/kh.html -2021/08/26 | 9410 | usergrps/usergrps/kr.html -2021/08/26 | 9895 | usergrps/usergrps/labels.pdf -2021/08/11 | 2266 | usergrps/usergrps/labels.tex -2021/08/26 | 8950 | usergrps/usergrps/lt.html -2021/08/26 | 34150 | usergrps/usergrps/lugs.html -2021/08/26 | 49897 | usergrps/usergrps/lugs.pdf -2021/08/26 | 22025 | usergrps/usergrps/lugs.tex -2021/08/26 | 9000 | usergrps/usergrps/mx.html -2021/08/26 | 9386 | usergrps/usergrps/nl.html -2021/08/26 | 9111 | usergrps/usergrps/no.html -2021/08/26 | 9575 | usergrps/usergrps/pl.html -2021/08/26 | 9139 | usergrps/usergrps/pt.html -2021/08/26 | 9181 | usergrps/usergrps/us.html -2021/08/26 | 9050 | usergrps/usergrps/uy.html -2021/08/26 | 9121 | usergrps/usergrps/vn.html -2021/08/26 | 9060 | usergrps/usergrps/za.html +2021/10/01 | 9387 | usergrps/usergrps/bg.html +2021/10/01 | 9056 | usergrps/usergrps/br.html +2021/10/01 | 9349 | usergrps/usergrps/cn.html +2021/10/01 | 9503 | usergrps/usergrps/cz.html +2021/10/01 | 9637 | usergrps/usergrps/de.html +2021/10/01 | 9141 | usergrps/usergrps/dk.html +2021/10/01 | 8920 | usergrps/usergrps/ee.html +2021/10/01 | 9145 | usergrps/usergrps/esc.html +2021/10/01 | 9290 | usergrps/usergrps/es.html +2021/10/01 | 9430 | usergrps/usergrps/fr.html +2021/10/01 | 9273 | usergrps/usergrps/gb.html +2021/10/01 | 9166 | usergrps/usergrps/gr.html +2021/10/01 | 9570 | usergrps/usergrps/hu.html +2021/10/01 | 9066 | usergrps/usergrps/ie.html +2021/10/01 | 6322 | usergrps/usergrps/index.html +2021/10/01 | 9041 | usergrps/usergrps/is.html +2021/10/01 | 9293 | usergrps/usergrps/it.html +2021/10/01 | 9010 | usergrps/usergrps/kh.html +2021/10/01 | 9410 | usergrps/usergrps/kr.html +2021/10/01 | 9891 | usergrps/usergrps/labels.pdf +2021/10/01 | 2261 | usergrps/usergrps/labels.tex +2021/10/01 | 9049 | usergrps/usergrps/lt.html +2021/10/01 | 34280 | usergrps/usergrps/lugs.html +2021/10/01 | 49917 | usergrps/usergrps/lugs.pdf +2021/10/01 | 22106 | usergrps/usergrps/lugs.tex +2021/10/01 | 9000 | usergrps/usergrps/mx.html +2021/10/01 | 9386 | usergrps/usergrps/nl.html +2021/10/01 | 9111 | usergrps/usergrps/no.html +2021/10/01 | 9575 | usergrps/usergrps/pl.html +2021/10/01 | 9139 | usergrps/usergrps/pt.html +2021/10/01 | 9181 | usergrps/usergrps/us.html +2021/10/01 | 9050 | usergrps/usergrps/uy.html +2021/10/01 | 9121 | usergrps/usergrps/vn.html +2021/10/01 | 9060 | usergrps/usergrps/za.html 1992/12/06 | 2551 | web/aplweb/announcement 1993/11/03 | 802292 | web/aplweb/aplweba.zip 1993/11/03 | 771814 | web/aplweb/aplwebb.zip diff --git a/FILES.byname.gz b/FILES.byname.gz index 99e3778a33..862155f5dc 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index c9a7681c85..d8321e20e9 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,116 +1,374 @@ +2021/10/01 | 9891 | usergrps/usergrps/labels.pdf +2021/10/01 | 98380 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/10/01 | 98259 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/10/01 | 975018 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/10/01 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/10/01 | 9683 | macros/generic/markdown/markdown.md +2021/10/01 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/10/01 | 9637 | usergrps/usergrps/de.html +2021/10/01 | 961 | systems/win32/miktex/tm/packages/pr.ini +2021/10/01 | 957618 | graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.pdf +2021/10/01 | 9575 | usergrps/usergrps/pl.html +2021/10/01 | 9570 | usergrps/usergrps/hu.html +2021/10/01 | 95403 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/10/01 | 9503 | usergrps/usergrps/cz.html +2021/10/01 | 94798 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/10/01 | 94310 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/10/01 | 9430 | usergrps/usergrps/fr.html +2021/10/01 | 94260 | systems/texlive/tlnet/archive/tex4ebook.doc.r60663.tar.xz +2021/10/01 | 9410 | usergrps/usergrps/kr.html +2021/10/01 | 9387 | usergrps/usergrps/bg.html +2021/10/01 | 9386 | usergrps/usergrps/nl.html +2021/10/01 | 9349 | usergrps/usergrps/cn.html +2021/10/01 | 9293 | usergrps/usergrps/it.html +2021/10/01 | 9290 | usergrps/usergrps/es.html +2021/10/01 | 9273 | usergrps/usergrps/gb.html +2021/10/01 | 92287 | macros/unicodetex/latex/njuthesis/njuthesis.dtx +2021/10/01 | 9181 | usergrps/usergrps/us.html +2021/10/01 | 9166 | usergrps/usergrps/gr.html +2021/10/01 | 9145 | usergrps/usergrps/esc.html +2021/10/01 | 9141 | usergrps/usergrps/dk.html +2021/10/01 | 9139 | usergrps/usergrps/pt.html +2021/10/01 | 9121 | usergrps/usergrps/vn.html +2021/10/01 | 9111 | usergrps/usergrps/no.html +2021/10/01 | 9066 | usergrps/usergrps/ie.html +2021/10/01 | 9060 | usergrps/usergrps/za.html +2021/10/01 | 9056 | usergrps/usergrps/br.html +2021/10/01 | 9050 | usergrps/usergrps/uy.html +2021/10/01 | 9049 | usergrps/usergrps/lt.html +2021/10/01 | 9041 | usergrps/usergrps/is.html +2021/10/01 | 9010 | usergrps/usergrps/kh.html +2021/10/01 | 9000 | usergrps/usergrps/mx.html +2021/10/01 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png +2021/10/01 | 8920 | usergrps/usergrps/ee.html +2021/10/01 | 884915 | macros/unicodetex/latex/njuthesis.zip +2021/10/01 | 87776 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/10/01 | 8769 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/10/01 | 873 | macros/latex/contrib/decision-table/README +2021/10/01 | 866760 | graphics/pstricks/contrib/pst-fill.zip +2021/10/01 | 83539 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/10/01 | 815242 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/10/01 | 80450 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/10/01 | 8027840 | graphics/pstricks/base.zip +2021/10/01 | 78773 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/10/01 | 787082 | info/install-latex-guide-zh-cn.zip +2021/10/01 | 78220 | macros/latex/contrib/tabularray/tabularray.tex +2021/10/01 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/10/01 | 7722 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/10/01 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/10/01 | 764340 | macros/unicodetex/latex/njuthesis/njuthesis.pdf +2021/10/01 | 760493 | macros/latex/contrib/tabularray/tabularray.pdf +2021/10/01 | 75 | macros/generic/markdown/examples/scientists.csv +2021/10/01 | 75791 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/10/01 | 747376 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf +2021/10/01 | 745 | macros/unicodetex/latex/njuthesis/README.md +2021/10/01 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/10/01 | 74210 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/10/01 | 73197 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/10/01 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/10/01 | 729945 | macros/generic/markdown/markdown.pdf +2021/10/01 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/10/01 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps +2021/10/01 | 71670 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/10/01 | 714327 | macros/latex/contrib/tabularray.zip +2021/10/01 | 70922 | macros/unicodetex/latex/tipauni/tipauni-commands.pdf +2021/10/01 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/10/01 | 69914 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/10/01 | 682 | graphics/pstricks/contrib/pst-fill/README +2021/10/01 | 681252 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/10/01 | 6811706 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/10/01 | 68024 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/10/01 | 67819 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/10/01 | 67619 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/10/01 | 67482 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/10/01 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/10/01 | 65618 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/10/01 | 64427 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/10/01 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/10/01 | 6388 | systems/texlive/tlnet/archive/hanzibox.r60661.tar.xz +2021/10/01 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/10/01 | 6322 | usergrps/usergrps/index.html +2021/10/01 | 629399 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/10/01 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/10/01 | 626760 | macros/generic/markdown/markdown.html +2021/10/01 | 624652 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/10/01 | 62229 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/10/01 | 62192 | systems/texlive/tlnet/archive/siunitx.r60660.tar.xz +2021/10/01 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/10/01 | 615217 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/10/01 | 615154 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/10/01 | 60636 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/10/01 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/10/01 | 596931 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/10/01 | 591780 | systems/texlive/tlnet/archive/tikz-trackschematic.doc.r60658.tar.xz +2021/10/01 | 589840 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/10/01 | 57727 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/10/01 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/10/01 | 57139 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/10/01 | 571392 | macros/generic/markdown/markdown.dtx +2021/10/01 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/10/01 | 56685 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/10/01 | 566529 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/10/01 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/10/01 | 56474 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/10/01 | 56355 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/10/01 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/10/01 | 55730 | macros/xetex/latex/zitie/tex/zitie.sty +2021/10/01 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/10/01 | 54632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/10/01 | 531853 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/10/01 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/10/01 | 51750 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/10/01 | 51311 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/10/01 | 51202 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/10/01 | 51111 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/10/01 | 510588 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/10/01 | 50395 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/10/01 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/10/01 | 49917 | usergrps/usergrps/lugs.pdf +2021/10/01 | 49836 | macros/unicodetex/latex/tipauni/tipauni.dtx +2021/10/01 | 49644 | systems/texlive/tlnet/archive/make4ht.r60662.tar.xz +2021/10/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/10/01 | 486572 | systems/texlive/tlnet/archive/hanzibox.doc.r60661.tar.xz +2021/10/01 | 48371 | graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.tex +2021/10/01 | 483654 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/10/01 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/10/01 | 476923 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/10/01 | 46907 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/10/01 | 461813 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/10/01 | 45968 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/10/01 | 45906 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/10/01 | 4580 | graphics/pstricks/base/Changes +2021/10/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/10/01 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/10/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/10/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/10/01 | 45311 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/10/01 | 4530 | macros/generic/markdown/markdown.css +2021/10/01 | 452 | macros/unicodetex/latex/tipauni/README.txt +2021/10/01 | 4485 | macros/generic/markdown/docstrip.cfg +2021/10/01 | 43427 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/10/01 | 43028 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/10/01 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/10/01 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/10/01 | 42712 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/10/01 | 42384 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/10/01 | 422886 | macros/unicodetex/latex/tipauni.zip +2021/10/01 | 4197924 | install/macros/latex/contrib/lwarp.tds.zip +2021/10/01 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/10/01 | 40873 | macros/xetex/latex/zitie/doc/zitie-cn.tex +2021/10/01 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/10/01 | 400432 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60657.tar.xz +2021/10/01 | 392793 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/10/01 | 39127 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/10/01 | 38140 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/10/01 | 37805 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/10/01 | 37360 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/10/01 | 37240 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/10/01 | 37180 | graphics/pstricks/base/dvips/pstricks.pro +2021/10/01 | 3663 | macros/unicodetex/latex/tipauni/tipauni-commands.tex +2021/10/01 | 36629 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/10/01 | 3611774 | macros/latex/contrib/lwarp.zip +2021/10/01 | 357357 | macros/xetex/latex/zitie.zip +2021/10/01 | 35691 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/10/01 | 35085 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/10/01 | 34666 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/10/01 | 345740 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/10/01 | 34280 | usergrps/usergrps/lugs.html +2021/10/01 | 339839 | macros/xetex/latex/zitie/doc/zitie-cn.pdf +2021/10/01 | 33634 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/10/01 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/10/01 | 33349 | macros/latex/contrib/lwarp/lwarp.ins +2021/10/01 | 330788 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/10/01 | 32672 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/10/01 | 325044 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/10/01 | 320216 | macros/unicodetex/latex/njuthesis/njuvisual.dtx +2021/10/01 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/10/01 | 31538 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/10/01 | 3144374 | macros/latex/contrib/lwarp/lwarp.pdf +2021/10/01 | 31352 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/10/01 | 3123 | macros/generic/markdown/examples/example.md +2021/10/01 | 31231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/10/01 | 312110 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/10/01 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/10/01 | 30059 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/10/01 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/10/01 | 29559 | macros/latex/contrib/lwarp/lwarpmk.lua +2021/10/01 | 295203 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/10/01 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt +2021/10/01 | 29037 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/10/01 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/10/01 | 284022 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/10/01 | 28390 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/10/01 | 2837 | macros/unicodetex/latex/njuthesis/njuthesis.ins +2021/10/01 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/10/01 | 2796724 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/10/01 | 27729 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/10/01 | 2758078 | macros/latex/contrib/lwarp/lwarp.dtx +2021/10/01 | 27390 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/10/01 | 27358 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/10/01 | 27198 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/10/01 | 2672610 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/10/01 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/10/01 | 25952 | systems/texlive/tlnet/archive/luapstricks.r60659.tar.xz +2021/10/01 | 258880 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/10/01 | 25629613 | systems/texlive/tlnet/install-tl.zip +2021/10/01 | 25290 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/10/01 | 250262 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/10/01 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/10/01 | 24996 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/10/01 | 243425 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/10/01 | 24262 | macros/latex/contrib/decision-table/decision-table.dtx +2021/10/01 | 241814 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/10/01 | 241662 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/10/01 | 241634 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/10/01 | 23903 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/10/01 | 238460 | macros/unicodetex/latex/tipauni/tipauni.pdf +2021/10/01 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/10/01 | 2335 | macros/xetex/latex/zitie/README.md +2021/10/01 | 2313932 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/10/01 | 231322 | macros/latex/contrib/tabularray/tabularray.sty +2021/10/01 | 2261 | usergrps/usergrps/labels.tex +2021/10/01 | 22106 | usergrps/usergrps/lugs.tex +2021/10/01 | 22048 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/10/01 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/10/01 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/10/01 | 20875526 | systems/texlive/tlnet/install-tl-windows.exe +2021/10/01 | 208047 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/10/01 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/10/01 | 2035132 | systems/texlive/tlnet/archive/siunitx.doc.r60660.tar.xz +2021/10/01 | 202796 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/10/01 | 20136 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/10/01 | 2009904 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/10/01 | 199731 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/10/01 | 198168 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/10/01 | 196872 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/10/01 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/10/01 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/10/01 | 194381 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/10/01 | 19105 | macros/unicodetex/latex/njuthesis/LICENSE +2021/10/01 | 18367 | graphics/pstricks/base/dvips/pst-dots.pro +2021/10/01 | 18176 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/10/01 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/10/01 | 180012 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/10/01 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/10/01 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/10/01 | 17516 | systems/texlive/tlnet/archive/tex4ebook.r60663.tar.xz +2021/10/01 | 174564 | systems/texlive/tlnet/archive/make4ht.doc.r60662.tar.xz +2021/10/01 | 1713893 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/10/01 | 169243 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/10/01 | 16890709 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/10/01 | 1669 | macros/unicodetex/latex/tipauni/tipauni.ins +2021/10/01 | 16414 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/10/01 | 16356 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/10/01 | 1624 | macros/latex/contrib/lwarp/README.txt +2021/10/01 | 16120 | systems/texlive/tlnet/archive/hanzibox.source.r60661.tar.xz +2021/10/01 | 159580 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/10/01 | 15653 | macros/generic/markdown/README.md +2021/10/01 | 154805 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/10/01 | 154427 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/10/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/10/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/10/01 | 15236 | systems/texlive/tlnet/archive/tikz-trackschematic.r60658.tar.xz +2021/10/01 | 1496 | systems/texlive/tlnet/archive/luapstricks.doc.r60659.tar.xz +2021/10/01 | 1481 | macros/latex/contrib/decision-table/decision-table.ins +2021/10/01 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/10/01 | 1464203 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/10/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/10/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/10/01 | 14350 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/10/01 | 1421867 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/10/01 | 140951 | macros/generic/markdown/markdown.png +2021/10/01 | 138 | graphics/pstricks/contrib/pst-fill/Changes +2021/10/01 | 136821 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/10/01 | 136817 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/10/01 | 1358922 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/10/01 | 1358809 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/10/01 | 13563 | graphics/pstricks/contrib/pst-fill/tex/pst-fill.tex +2021/10/01 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/10/01 | 1340927 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/10/01 | 133863 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/10/01 | 1333 | macros/generic/markdown/markdown.ins +2021/10/01 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/10/01 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/10/01 | 1262656 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/10/01 | 1261769 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/10/01 | 124281 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/10/01 | 1205 | macros/generic/markdown/examples/latex.tex +2021/10/01 | 119821 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/10/01 | 1169718 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/10/01 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/10/01 | 115351 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/10/01 | 113341 | macros/latex/contrib/decision-table.zip +2021/10/01 | 112983 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/10/01 | 112087 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/10/01 | 111518 | macros/latex/contrib/decision-table/decision-table.pdf +2021/10/01 | 1095 | macros/generic/markdown/examples/context.tex +2021/10/01 | 109032 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/10/01 | 108284 | systems/texlive/tlnet/archive/texlive-scripts.r60657.tar.xz +2021/10/01 | 107982 | macros/unicodetex/latex/tipauni/tipauni-example.pdf +2021/10/01 | 1078883 | install/macros/generic/markdown.tds.zip +2021/10/01 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/10/01 | 107344 | systems/texlive/tlnet/archive/siunitx.source.r60660.tar.xz +2021/10/01 | 105223 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/10/01 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/10/01 | 103203 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/10/01 | 1015291 | macros/generic/markdown.zip +2021/10/01 | 10115 | macros/unicodetex/latex/tipauni/tipauni-example.tex +2021/10/01 | 100626 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma 2021/09/30 | 991 | support/tex4ebook/tex4ebook-exec_azw.lua -2021/09/30 | 98382 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/09/30 | 98261 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma 2021/09/30 | 9796 | support/make4ht/lapp-mk4.lua -2021/09/30 | 975020 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma 2021/09/30 | 974 | support/make4ht/extensions/make4ht-ext-latexmk_build.lua -2021/09/30 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/09/30 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/09/30 | 961 | systems/win32/miktex/tm/packages/pr.ini -2021/09/30 | 95402 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/09/30 | 94799 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/09/30 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma 2021/09/30 | 9430 | support/tex4ebook/tex4ebook-exec_epub3.lua 2021/09/30 | 935 | support/make4ht/domfilters/make4ht-itemparagraphs.lua 2021/09/30 | 919 | support/make4ht/extensions/make4ht-ext-mjcli.lua 2021/09/30 | 895 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/measure_line_with_hectometer.tikz -2021/09/30 | 87776 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/09/30 | 8768 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma 2021/09/30 | 872 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bend_train.tikz 2021/09/30 | 847 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/pylons_middle.tikz 2021/09/30 | 84685 | support/tex4ebook/tex4ebook-doc.pdf 2021/09/30 | 8387 | support/make4ht/extensions/make4ht-ext-dvisvgm_hashes.lua 2021/09/30 | 8374008 | systems/texlive/tlnet/archive/tlgs.win32.r60648.tar.xz -2021/09/30 | 83540 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma 2021/09/30 | 8257 | support/make4ht/domfilters/make4ht-collapsetoc.lua -2021/09/30 | 815244 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma 2021/09/30 | 81127 | macros/xetex/latex/hanzibox/hanzibox.dtx 2021/09/30 | 8083 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.symbology.code.tex -2021/09/30 | 80449 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma 2021/09/30 | 798 | support/make4ht/make4ht-doc.tex 2021/09/30 | 798 | support/make4ht/filters/make4ht-cleanspan.lua 2021/09/30 | 7915 | support/make4ht/make4ht-aeneas-config.lua -2021/09/30 | 78774 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma 2021/09/30 | 78020 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.pdf -2021/09/30 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/09/30 | 7722 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/09/30 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma 2021/09/30 | 7624 | graphics/pstricks/contrib/luapstricks/PSTricksDotFont.otf -2021/09/30 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma 2021/09/30 | 7547 | support/make4ht/make4ht-indexing.lua 2021/09/30 | 752 | support/tex4ebook/tex4ebook-doc.tex -2021/09/30 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/09/30 | 74209 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma 2021/09/30 | 73933 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex 2021/09/30 | 733 | support/make4ht/formats/make4ht-tei.lua -2021/09/30 | 73198 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/09/30 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma 2021/09/30 | 72610 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.pdf -2021/09/30 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma 2021/09/30 | 718 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hectometer.tikz -2021/09/30 | 71669 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma 2021/09/30 | 713 | support/make4ht/filters/make4ht-entities-to-unicode.lua -2021/09/30 | 70648 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/09/30 | 69914 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma 2021/09/30 | 698124 | graphics/pgf/contrib/tikz-trackschematic.zip -2021/09/30 | 681253 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/09/30 | 6811604 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/09/30 | 68025 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/09/30 | 67821 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/09/30 | 67618 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/09/30 | 67483 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/09/30 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/09/30 | 65620 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/09/30 | 6840 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/09/30 | 655 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double.tikz 2021/09/30 | 655 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double_full_closure.tikz -2021/09/30 | 64430 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/09/30 | 64186 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma 2021/09/30 | 638 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth.tikz -2021/09/30 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma 2021/09/30 | 6356 | support/make4ht/make4ht-lib.lua -2021/09/30 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma 2021/09/30 | 628 | support/make4ht/extensions/make4ht-ext-common_filters.lua 2021/09/30 | 627 | support/make4ht/domfilters/make4ht-odtimagesize.lua -2021/09/30 | 62787 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma 2021/09/30 | 6261 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.tex -2021/09/30 | 624656 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/09/30 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma 2021/09/30 | 619 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_middle.tikz -2021/09/30 | 61812 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma 2021/09/30 | 617 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge_track_beneath.tikz -2021/09/30 | 615217 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/09/30 | 615154 | systems/win32/miktex/tm/packages/files.csv.lzma 2021/09/30 | 611 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_distance.tikz 2021/09/30 | 6116 | support/make4ht/filters/make4ht-mjcli.lua -2021/09/30 | 60639 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/09/30 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma 2021/09/30 | 598196 | systems/texlive/tlnet/archive/easybook.doc.r60654.tar.xz 2021/09/30 | 596 | support/make4ht/filters/make4ht-filter.lua -2021/09/30 | 596931 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma 2021/09/30 | 595 | support/make4ht/domfilters/make4ht-idcolons.lua 2021/09/30 | 592 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_special.tikz -2021/09/30 | 589846 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma 2021/09/30 | 580 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_marking_with_turnout.tikz -2021/09/30 | 57729 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/09/30 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma 2021/09/30 | 5726 | support/tex4ebook/tex4ebook -2021/09/30 | 57140 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/09/30 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma 2021/09/30 | 569 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_bidirectional.tikz 2021/09/30 | 569 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/pylons_right.tikz 2021/09/30 | 566 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/pylons_left.tikz 2021/09/30 | 566 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/pylons_both.tikz -2021/09/30 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/09/30 | 566530 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma 2021/09/30 | 565 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/combined_signal_forward.tikz -2021/09/30 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/09/30 | 56476 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/09/30 | 56356 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/09/30 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma 2021/09/30 | 559 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_backward.tikz 2021/09/30 | 557 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_forward.tikz -2021/09/30 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/09/30 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma 2021/09/30 | 543 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_backward.tikz 2021/09/30 | 542 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_forward.tikz 2021/09/30 | 541 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter.tikz @@ -122,11 +380,9 @@ 2021/09/30 | 533 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_manually.tikz 2021/09/30 | 531 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_manually.tikz 2021/09/30 | 531 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_manually.tikz -2021/09/30 | 531851 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma 2021/09/30 | 529 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_manually.tikz 2021/09/30 | 528 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_right.tikz 2021/09/30 | 527 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_left.tikz -2021/09/30 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma 2021/09/30 | 5238 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.tex 2021/09/30 | 520 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_right_backward.tikz 2021/09/30 | 520 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_moving_points.tikz @@ -138,7 +394,6 @@ 2021/09/30 | 518 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_moving_points.tikz 2021/09/30 | 517 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_right_position.tikz 2021/09/30 | 517 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_right_position.tikz -2021/09/30 | 51749 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma 2021/09/30 | 516 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_left_forward.tikz 2021/09/30 | 516 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_left_position.tikz 2021/09/30 | 516 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_moving_points.tikz @@ -148,18 +403,12 @@ 2021/09/30 | 514 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_left_position.tikz 2021/09/30 | 514 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_backward.tikz 2021/09/30 | 513 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_forward.tikz -2021/09/30 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/09/30 | 51202 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/09/30 | 51113 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma 2021/09/30 | 510 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route.tikz -2021/09/30 | 510587 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma 2021/09/30 | 506 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward.tikz 2021/09/30 | 504 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward.tikz 2021/09/30 | 504 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward.tikz -2021/09/30 | 50395 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma 2021/09/30 | 503533 | macros/xetex/latex/hanzibox.zip 2021/09/30 | 502 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward.tikz -2021/09/30 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma 2021/09/30 | 5002 | macros/xetex/latex/hanzibox/README.md 2021/09/30 | 499 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_number.tikz 2021/09/30 | 497 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_line.tikz @@ -168,15 +417,12 @@ 2021/09/30 | 494235 | macros/xetex/latex/hanzibox/hanzibox.pdf 2021/09/30 | 492 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_marking.tikz 2021/09/30 | 4920 | support/make4ht/domfilters/make4ht-sectionid.lua -2021/09/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/09/30 | 4881 | support/tex4ebook/tex4ebook.sty 2021/09/30 | 485 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_bidirectional.tikz 2021/09/30 | 485 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge.tikz 2021/09/30 | 483 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_backward.tikz -2021/09/30 | 483651 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma 2021/09/30 | 482 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_forward.tikz 2021/09/30 | 482 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_left_backward.tikz -2021/09/30 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma 2021/09/30 | 481 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_automatic.tikz 2021/09/30 | 481 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_signal_with_shunt_signal_backward.tikz 2021/09/30 | 481 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_pantograph_down_backward.tikz @@ -190,7 +436,6 @@ 2021/09/30 | 478 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_human.tikz 2021/09/30 | 476 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_backward_locked.tikz 2021/09/30 | 476 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/pantograph_down_backward.tikz -2021/09/30 | 476922 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma 2021/09/30 | 475 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward_locked.tikz 2021/09/30 | 475 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_clearing_point_backward.tikz 2021/09/30 | 475 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/pantograph_down_forward.tikz @@ -230,7 +475,6 @@ 2021/09/30 | 469 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_backward.tikz 2021/09/30 | 469 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_forward.tikz 2021/09/30 | 469 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_signal_forward.tikz -2021/09/30 | 46906 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma 2021/09/30 | 468 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_ghost_direction_backward.tikz 2021/09/30 | 468 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_sign_forward.tikz 2021/09/30 | 468 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward.tikz @@ -250,229 +494,102 @@ 2021/09/30 | 463 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_forward.tikz 2021/09/30 | 462 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_backward.tikz 2021/09/30 | 461 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_forward.tikz -2021/09/30 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma 2021/09/30 | 460 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_right.tikz -2021/09/30 | 45970 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/09/30 | 45906 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma 2021/09/30 | 458 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_backward.tikz 2021/09/30 | 458 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_left.tikz 2021/09/30 | 458 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_without_barrier.tikz 2021/09/30 | 457 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_forward.tikz 2021/09/30 | 456 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right.tikz -2021/09/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/09/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2021/09/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/09/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc -2021/09/30 | 45311 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma 2021/09/30 | 448 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/measure_line.tikz 2021/09/30 | 447 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hump.tikz 2021/09/30 | 444 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_backward.tikz 2021/09/30 | 443 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_forward.tikz 2021/09/30 | 434 | support/make4ht/extensions/make4ht-ext-mathjaxnode.lua -2021/09/30 | 43425 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma 2021/09/30 | 432 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_backward.tikz 2021/09/30 | 4325 | support/tex4ebook/tex4ebook-epub3.4ht 2021/09/30 | 431 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_forward.tikz -2021/09/30 | 43029 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/09/30 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/09/30 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/09/30 | 42711 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma 2021/09/30 | 425 | support/make4ht/filters/make4ht-fix-links.lua 2021/09/30 | 424 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_closure.tikz -2021/09/30 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma 2021/09/30 | 4234 | support/make4ht/make4ht-htlatex.lua 2021/09/30 | 4207 | support/make4ht/make4ht 2021/09/30 | 41355 | support/make4ht/README -2021/09/30 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma 2021/09/30 | 407 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/secondary_track.tikz 2021/09/30 | 4050 | graphics/pgf/contrib/tikz-trackschematic/README.md 2021/09/30 | 402 | support/make4ht/filters/make4ht-hruletohr.lua 2021/09/30 | 402 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_track.tikz -2021/09/30 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/09/30 | 400400 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60647.tar.xz 2021/09/30 | 3977 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty +2021/09/30 | 3965 | graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.bib 2021/09/30 | 395 | support/make4ht/formats/make4ht-html5.lua -2021/09/30 | 392793 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/09/30 | 39129 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma 2021/09/30 | 386 | support/make4ht/filters/make4ht-fixligatures.lua 2021/09/30 | 3861 | support/make4ht/extensions/make4ht-ext-preprocess_input.lua 2021/09/30 | 38279 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex -2021/09/30 | 38141 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma 2021/09/30 | 3802 | support/make4ht/domfilters/make4ht-mathmlfixes.lua -2021/09/30 | 37807 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma 2021/09/30 | 375 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/interlocking.tikz -2021/09/30 | 37360 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/09/30 | 37241 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/09/30 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma 2021/09/30 | 36564 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex -2021/09/30 | 35690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma 2021/09/30 | 3538 | support/make4ht/filters/make4ht-staticsite.lua 2021/09/30 | 3520 | systems/texlive/tlnet/archive/linenoamsmath.source.r60655.tar.xz -2021/09/30 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/09/30 | 34666 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma 2021/09/30 | 345 | support/make4ht/formats/make4ht-jats.lua -2021/09/30 | 345738 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/09/30 | 33633 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma 2021/09/30 | 3356 | graphics/pstricks/contrib/luapstricks/README.md -2021/09/30 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/09/30 | 330787 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma 2021/09/30 | 326 | support/make4ht/formats/make4ht-xhtml.lua -2021/09/30 | 32674 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma 2021/09/30 | 32576 | support/make4ht/changelog.tex -2021/09/30 | 325044 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma 2021/09/30 | 3247 | support/make4ht/make4ht-xtpipes.lua 2021/09/30 | 321 | support/make4ht/domfilters/make4ht-odtpartable.lua 2021/09/30 | 3191 | support/make4ht/filters/make4ht-mathjaxnode.lua 2021/09/30 | 3167 | support/make4ht/make4ht-logging.lua -2021/09/30 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/09/30 | 31537 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/09/30 | 31351 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/09/30 | 31230 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/09/30 | 312109 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma 2021/09/30 | 310 | support/make4ht/extensions/make4ht-ext-join_colors.lua -2021/09/30 | 30825 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma 2021/09/30 | 30539 | graphics/pstricks/contrib/luapstricks.zip -2021/09/30 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/09/30 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/09/30 | 295204 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma 2021/09/30 | 291 | support/make4ht/filters/make4ht-entities.lua -2021/09/30 | 29034 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma 2021/09/30 | 288 | support/make4ht/extensions/make4ht-ext-odttemplate.lua -2021/09/30 | 284581 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/09/30 | 284024 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/09/30 | 28391 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/09/30 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/09/30 | 2796726 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma 2021/09/30 | 2794 | support/make4ht/extensions/make4ht-ext-detect_engine.lua 2021/09/30 | 2780 | support/make4ht/domfilters/make4ht-tablerows.lua -2021/09/30 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma 2021/09/30 | 2751 | support/make4ht/make4ht-errorlogparser.lua 2021/09/30 | 2741 | support/make4ht/domfilters/make4ht-booktabs.lua -2021/09/30 | 27390 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/09/30 | 27358 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/09/30 | 27199 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma 2021/09/30 | 2677 | support/tex4ebook/tex4ebook-tidyconf.conf -2021/09/30 | 2672612 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma 2021/09/30 | 26531 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.topology.code.tex 2021/09/30 | 264 | support/make4ht/filters/make4ht-cleanspan-nat.lua -2021/09/30 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma 2021/09/30 | 26311 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.electrics.code.tex 2021/09/30 | 262017 | support/make4ht.zip -2021/09/30 | 258881 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/09/30 | 25629571 | systems/texlive/tlnet/install-tl.zip -2021/09/30 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/09/30 | 250265 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/09/30 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/09/30 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma 2021/09/30 | 2465 | support/make4ht/make4ht-config.lua -2021/09/30 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma 2021/09/30 | 242 | macros/xetex/latex/hanzibox/build.sh -2021/09/30 | 241812 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/09/30 | 241674 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/09/30 | 241654 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/09/30 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma 2021/09/30 | 23721 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.vehicles.code.tex 2021/09/30 | 235544 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf -2021/09/30 | 23365 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma 2021/09/30 | 2324 | support/make4ht/filters/make4ht-odttemplate.lua -2021/09/30 | 2314568 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/09/30 | 2270 | support/make4ht/filters/make4ht-domfilter.lua 2021/09/30 | 224452 | systems/texlive/tlnet/archive/linenoamsmath.doc.r60655.tar.xz 2021/09/30 | 2232 | support/make4ht/domfilters/make4ht-joincolors.lua -2021/09/30 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2021/09/30 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/09/30 | 21225 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma 2021/09/30 | 2103992 | systems/texlive/tlnet/archive/kpfonts-otf.doc.r60653.tar.xz -2021/09/30 | 20873161 | systems/texlive/tlnet/install-tl-windows.exe -2021/09/30 | 208049 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/09/30 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma 2021/09/30 | 2063 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.code.tex -2021/09/30 | 202795 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/09/30 | 20136 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/09/30 | 2009906 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/09/30 | 199731 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma 2021/09/30 | 198855 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf -2021/09/30 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/09/30 | 196871 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/09/30 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma 2021/09/30 | 19578 | support/make4ht/mkutils.lua -2021/09/30 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/09/30 | 194384 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma 2021/09/30 | 18177 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.constructions.code.tex -2021/09/30 | 18176 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/09/30 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/09/30 | 180012 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/09/30 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/09/30 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma 2021/09/30 | 1732 | support/tex4ebook/tex4ebook-exec_mobi.lua 2021/09/30 | 17256 | systems/texlive/tlnet/archive/easybook.source.r60654.tar.xz 2021/09/30 | 17212 | systems/texlive/tlnet/archive/easybook.r60654.tar.xz -2021/09/30 | 1713892 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma 2021/09/30 | 1710 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.sty -2021/09/30 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/09/30 | 16890505 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2021/09/30 | 16786 | CTAN.sites 2021/09/30 | 16595 | support/tex4ebook/readme.tex -2021/09/30 | 16414 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/09/30 | 16357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/09/30 | 159578 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma 2021/09/30 | 15937 | support/tex4ebook/tex4ebook-exec_epub.lua -2021/09/30 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/09/30 | 154425 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/09/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 2021/09/30 | 15359 | support/tex4ebook/tex4ebook.4ht -2021/09/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 2021/09/30 | 152568 | support/make4ht/make4ht-doc.pdf 2021/09/30 | 1520 | systems/texlive/tlnet/archive/collection-mathscience.r60655.tar.xz -2021/09/30 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/09/30 | 1464202 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/09/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 2021/09/30 | 1458 | support/make4ht/domfilters/make4ht-odtsvg.lua -2021/09/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/09/30 | 14349 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma -2021/09/30 | 1421869 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma 2021/09/30 | 14014 | support/tex4ebook/changelog.tex -2021/09/30 | 136820 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/09/30 | 136818 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/09/30 | 1359309 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/09/30 | 1358952 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/09/30 | 13465 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/09/30 | 1340928 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/09/30 | 133863 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma 2021/09/30 | 1330 | support/make4ht/extensions/make4ht-ext-tidy.lua 2021/09/30 | 13129 | support/tex4ebook/README -2021/09/30 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/09/30 | 1291300 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/09/30 | 1262338 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/09/30 | 1261877 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma 2021/09/30 | 125092 | graphics/pstricks/contrib/luapstricks/luapstricks.lua -2021/09/30 | 124281 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma 2021/09/30 | 1215 | support/make4ht/filters/make4ht-svg-height.lua 2021/09/30 | 120392 | support/tex4ebook.zip -2021/09/30 | 119819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma 2021/09/30 | 1188 | systems/texlive/tlnet/archive/linenoamsmath.r60655.tar.xz 2021/09/30 | 11819 | graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.measures.code.tex -2021/09/30 | 1169715 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/09/30 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini -2021/09/30 | 115350 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma 2021/09/30 | 1151 | support/tex4ebook/tex4ebook-exec_azw3.lua 2021/09/30 | 1143 | support/make4ht/formats/make4ht-docbook.lua -2021/09/30 | 112982 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/09/30 | 112089 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/09/30 | 109030 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/09/30 | 108216 | systems/texlive/tlnet/archive/texlive-scripts.r60647.tar.xz 2021/09/30 | 1082124 | systems/texlive/tlnet/archive/kpfonts-otf.r60653.tar.xz 2021/09/30 | 1077 | support/make4ht/extensions/make4ht-ext-common_domfilters.lua -2021/09/30 | 1077991 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma 2021/09/30 | 10647 | support/make4ht/formats/make4ht-odt.lua 2021/09/30 | 1057 | support/make4ht/domfilters/make4ht-fixinlines.lua 2021/09/30 | 10527 | support/make4ht/mkparams.lua -2021/09/30 | 105223 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma 2021/09/30 | 1039 | support/make4ht/make4ht-filterlib.lua -2021/09/30 | 103400 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/09/30 | 103202 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma 2021/09/30 | 1026 | support/make4ht/domfilters/make4ht-t4htlinks.lua -2021/09/30 | 100625 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma 2021/09/29 | 996 | macros/latex/contrib/siunitx/README.md 2021/09/29 | 98475 | macros/latex/contrib/siunitx/siunitx-unit.dtx 2021/09/29 | 9362 | macros/latex/contrib/siunitx/siunitx-symbol.dtx @@ -481,9 +598,9 @@ 2021/09/29 | 802 | macros/latex/contrib/linenoamsmath/linenoamsmath.ins 2021/09/29 | 79241 | macros/latex/contrib/easybook/easybook.dtx 2021/09/29 | 78297 | macros/latex/contrib/easybook/easybook.tex +2021/09/29 | 746 | graphics/pstricks/contrib/pst-fill/latex/pst-fill.sty 2021/09/29 | 6828 | fonts/kpfonts-otf/README.md 2021/09/29 | 66440 | fonts/kpfonts-otf/fonts/KpMono-Italic.otf -2021/09/29 | 6623 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/09/29 | 6564 | systems/texlive/tlnet/archive/uwa-letterhead.source.r60635.tar.xz 2021/09/29 | 65136 | fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf 2021/09/29 | 638362 | macros/latex/contrib/siunitx/siunitx.pdf @@ -496,7 +613,6 @@ 2021/09/29 | 578327 | macros/latex/contrib/easybook/easybook.pdf 2021/09/29 | 57652 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r60635.tar.xz 2021/09/29 | 5692 | systems/texlive/tlnet/archive/uwa-pif.source.r60640.tar.xz -2021/09/29 | 5652 | systems/texlive/tlnet/archive/hanzibox.r60639.tar.xz 2021/09/29 | 5600 | systems/texlive/tlnet/archive/bxjaholiday.r60636.tar.xz 2021/09/29 | 55200 | systems/texlive/tlnet/archive/reledmac.r60637.tar.xz 2021/09/29 | 547 | macros/latex/contrib/linenoamsmath/README @@ -508,7 +624,6 @@ 2021/09/29 | 4746 | macros/latex/contrib/siunitx/siunitx-locale.dtx 2021/09/29 | 469 | fonts/kpfonts-otf/tex/KpRoman.fontspec 2021/09/29 | 458264 | fonts/kpfonts-otf/fonts/KpMath-Light.otf -2021/09/29 | 455704 | systems/texlive/tlnet/archive/hanzibox.doc.r60639.tar.xz 2021/09/29 | 431712 | fonts/kpfonts-otf/fonts/KpMath-Regular.otf 2021/09/29 | 4305616 | fonts/kpfonts-otf.zip 2021/09/29 | 3687 | macros/latex/contrib/siunitx/siunitx.ins @@ -532,7 +647,6 @@ 2021/09/29 | 226470 | macros/latex/contrib/linenoamsmath.zip 2021/09/29 | 2251188 | macros/latex/contrib/siunitx.zip 2021/09/29 | 224791 | macros/latex/contrib/linenoamsmath/linenoamsmath.pdf -2021/09/29 | 21328 | systems/texlive/tlnet/archive/luapstricks.r60642.tar.xz 2021/09/29 | 21043 | fonts/kpfonts-otf/tex/kpfonts-otf.sty 2021/09/29 | 210340 | systems/texlive/tlnet/archive/bxjaholiday.doc.r60636.tar.xz 2021/09/29 | 208620 | systems/texlive/tlnet/archive/reledmac.source.r60637.tar.xz @@ -550,9 +664,7 @@ 2021/09/29 | 1584 | systems/texlive/tlnet/archive/collection-publishers.r60641.tar.xz 2021/09/29 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx 2021/09/29 | 1515203 | macros/latex/contrib/siunitx/siunitx-code.pdf -2021/09/29 | 1492 | systems/texlive/tlnet/archive/luapstricks.doc.r60642.tar.xz 2021/09/29 | 147740 | macros/latex/contrib/siunitx/siunitx.tex -2021/09/29 | 14724 | systems/texlive/tlnet/archive/hanzibox.source.r60639.tar.xz 2021/09/29 | 142856 | fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf 2021/09/29 | 140444 | fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf 2021/09/29 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r60643.tar.xz @@ -648,12 +760,14 @@ 2021/09/28 | 13992183 | macros/latex/contrib/willowtreebook/willowtreebook.pdf 2021/09/28 | 13508657 | macros/latex/contrib/reledmac.zip 2021/09/28 | 121871 | language/japanese/BX/bxjaholiday/bxjaholiday-ja.pdf +2021/09/28 | 121586 | graphics/pstricks/base/generic/pstricks.tex 2021/09/28 | 1107 | macros/unicodetex/latex/uwa-letterhead/uwa-letterhead-example.tex 2021/09/28 | 1091 | language/japanese/BX/bxjaholiday/LICENSE 2021/09/28 | 1069 | macros/unicodetex/latex/uwa-pcf/README 2021/09/28 | 1056 | macros/unicodetex/latex/uwa-letterhead/README 2021/09/28 | 1032 | macros/unicodetex/latex/uwa-pif/README 2021/09/28 | 1006705 | macros/latex/contrib/reledmac/reledpar.pdf +2021/09/27 | 9987 | graphics/pstricks/base/generic/pstricks-dots.tex 2021/09/27 | 962220 | systems/texlive/tlnet/archive/pst-3dplot.doc.r60619.tar.xz 2021/09/27 | 94232 | systems/texlive/tlnet/archive/latexmk.r60617.tar.xz 2021/09/27 | 896174 | macros/latex/contrib/reledmac/reledmac.dtx @@ -668,6 +782,7 @@ 2021/09/27 | 450713352 | systems/mac/mactex/MacTeXtras-20210927.zip 2021/09/27 | 3962 | macros/latex/contrib/reledmac/README.md 2021/09/27 | 38194 | systems/mac/mactex/ExtrasFolder.pdf +2021/09/27 | 3152 | graphics/pstricks/base/generic/pstricks-tex.def 2021/09/27 | 306199 | macros/latex/contrib/reledmac/reledpar.dtx 2021/09/27 | 2408 | systems/texlive/tlnet/archive/scrambledenvs.r60615.tar.xz 2021/09/27 | 22632 | systems/texlive/tlnet/archive/pst-plot.r60620.tar.xz @@ -687,6 +802,7 @@ 2021/09/27 | 1095203 | support/TeX4ht/source/tex4ht-4ht.tex 2021/09/27 | 106384 | systems/texlive/tlnet/archive/pst-tools.doc.r60621.tar.xz 2021/09/27 | 10634380 | systems/texlive/tlnet/archive/pstricks-add.doc.r60622.tar.xz +2021/09/27 | 1026 | graphics/pstricks/base/generic/pstricks-xetex.def 2021/09/26 | 9996 | systems/texlive/tlnet/archive/latexbug.source.r60609.tar.xz 2021/09/26 | 970944 | systems/texlive/tlnet/archive/chemplants.doc.r60606.tar.xz 2021/09/26 | 86744 | systems/texlive/tlnet/archive/pstricks.r60607.tar.xz @@ -706,8 +822,10 @@ 2021/09/26 | 38756 | systems/texlive/tlnet/archive/acmart.r60608.tar.xz 2021/09/26 | 367012 | fonts/erewhon-math/Erewhon-Math.otf 2021/09/26 | 3570160 | systems/texlive/tlnet/archive/acmart.doc.r60608.tar.xz +2021/09/26 | 3300 | macros/xetex/latex/zitie/tex/zitie.luatex.def 2021/09/26 | 2741 | macros/latex/contrib/thalie/CHANGELOG.md 2021/09/26 | 24352 | fonts/erewhon-math/Erewhon-Math.ltx +2021/09/26 | 2236 | macros/xetex/latex/zitie/tex/zitie.xetex.def 2021/09/26 | 2226464 | fonts/erewhon-math.zip 2021/09/26 | 22002 | macros/latex/contrib/scrambledenvs/scrambledenvs.dtx 2021/09/26 | 2167 | macros/latex/contrib/thalie/thalie.ins @@ -726,27 +844,16 @@ 2021/09/26 | 1001 | macros/latex/contrib/thalie/dicts/thalie-english.trsl 2021/09/25 | 9947211 | macros/latex/contrib/acmart.zip 2021/09/25 | 992225 | graphics/pgf/contrib/chemplants.zip -2021/09/25 | 9489 | graphics/pstricks/base/generic/pstricks-dots.tex 2021/09/25 | 9066 | graphics/pgf/contrib/chemplants/chemplants-changes.tex 2021/09/25 | 88111 | graphics/pstricks/contrib/pstricks-add/tex/pstricks-add.tex 2021/09/25 | 8428 | systems/texlive/tlnet/archive/yamlvars.r60602.tar.xz 2021/09/25 | 83 | macros/latex/required/latexbug/README.md 2021/09/25 | 828382 | graphics/pgf/contrib/chemplants/chemplants-doc.pdf -2021/09/25 | 8027659 | graphics/pstricks/base.zip 2021/09/25 | 801384 | systems/texlive/tlnet/archive/ccool.doc.r60600.tar.xz -2021/09/25 | 769338 | macros/latex/contrib/acmart/samples/sample-lualatex.pdf 2021/09/25 | 756 | systems/texlive/tlnet/archive/collection-luatex.r60602.tar.xz -2021/09/25 | 653977 | macros/latex/contrib/acmart/samples/sample-xelatex.pdf -2021/09/25 | 599496 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf -2021/09/25 | 599062 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf -2021/09/25 | 597009 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf -2021/09/25 | 587164 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf 2021/09/25 | 57931 | graphics/pgf/contrib/chemplants/chemplants.sty -2021/09/25 | 544701 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf -2021/09/25 | 4650 | graphics/pstricks/base/Changes 2021/09/25 | 3992 | systems/texlive/tlnet/archive/ccool.r60600.tar.xz 2021/09/25 | 38152 | systems/texlive/tlnet/archive/yamlvars.doc.r60602.tar.xz -2021/09/25 | 37132 | graphics/pstricks/base/dvips/pstricks.pro 2021/09/25 | 36311 | macros/latex/required/latexbug/latexbug.dtx 2021/09/25 | 276112 | graphics/pgf/contrib/chemplants/chemplants-doc.tex 2021/09/25 | 235988 | systems/texlive/tlnet/archive/debate.doc.r60601.tar.xz @@ -761,71 +868,6 @@ 2021/09/25 | 12786929 | graphics/pstricks/contrib/pstricks-add.zip 2021/09/25 | 12431528 | graphics/pstricks/contrib/pstricks-add/doc/pstricks-add-doc.pdf 2021/09/25 | 123017 | graphics/pgf/contrib/chemplants/chemplants-changes.pdf -2021/09/25 | 121379 | graphics/pstricks/base/generic/pstricks.tex 2021/09/25 | 1109 | graphics/pgf/contrib/chemplants/README.md 2021/09/25 | 1070 | graphics/pstricks/contrib/pstricks-add/Changes -2021/09/25 | 1031281 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf -2021/09/25 | 1028913 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf -2021/09/25 | 1023651 | macros/latex/contrib/acmart/samples/sample-authordraft.pdf 2021/09/25 | 1021 | macros/latex/required/latexbug/changes.txt -2021/09/25 | 1019861 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf -2021/09/24 | 98416 | systems/texlive/tlnet/archive/xmpincl.doc.r60593.tar.xz -2021/09/24 | 9677 | graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex -2021/09/24 | 93395 | graphics/pstricks/contrib/pst-3dplot/tex/pst-3dplot.tex -2021/09/24 | 8869 | graphics/pstricks/base/doc/pst-news21.tex -2021/09/24 | 878775 | macros/latex/contrib/acmart/acmart.pdf -2021/09/24 | 813297 | macros/latex/contrib/ccool.zip -2021/09/24 | 80520 | systems/texlive/tlnet/archive/glossaries.r60591.tar.xz -2021/09/24 | 7792016 | systems/texlive/tlnet/archive/hvfloat.doc.r60587.tar.xz -2021/09/24 | 7674 | graphics/pstricks/contrib/pst-plot/Changes -2021/09/24 | 7316 | systems/texlive/tlnet/archive/zitie.r60595.tar.xz -2021/09/24 | 669 | graphics/pstricks/contrib/pst-3dplot/README -2021/09/24 | 6628 | systems/texlive/tlnet/archive/xmpincl.source.r60593.tar.xz -2021/09/24 | 6483 | graphics/pstricks/contrib/pst-3dplot/Changes -2021/09/24 | 64068 | systems/texlive/tlnet/archive/glossaries-extra.r60590.tar.xz -2021/09/24 | 6378320 | systems/texlive/tlnet/archive/glossaries.doc.r60591.tar.xz -2021/09/24 | 576 | systems/texlive/tlnet/archive/collection-langcjk.r60595.tar.xz -2021/09/24 | 5327140 | systems/texlive/tlnet/archive/glossaries-extra.doc.r60590.tar.xz -2021/09/24 | 48882 | macros/luatex/latex/yamlvars.zip -2021/09/24 | 4728 | systems/texlive/tlnet/archive/membranecomputing.r60592.tar.xz -2021/09/24 | 44 | graphics/pstricks/contrib/pst-plot/doc/data/LSM.data -2021/09/24 | 428 | systems/texlive/tlnet/archive/tlmgrbasics.r60588.tar.xz -2021/09/24 | 417996 | macros/latex/contrib/acmart/acmguide.pdf -2021/09/24 | 40 | macros/latex/contrib/debate/DEPENDS.txt -2021/09/24 | 39208 | macros/luatex/latex/yamlvars/YAMLvars.pdf -2021/09/24 | 31368 | macros/latex/contrib/acmart/samples/samples.dtx -2021/09/24 | 292028 | systems/texlive/tlnet/archive/zitie.doc.r60595.tar.xz -2021/09/24 | 281536 | systems/texlive/tlnet/archive/membranecomputing.doc.r60592.tar.xz -2021/09/24 | 251243 | macros/latex/contrib/acmart/acmart.dtx -2021/09/24 | 236391 | macros/latex/contrib/debate.zip -2021/09/24 | 2354 | macros/latex/contrib/debate/debate.tex -2021/09/24 | 235280 | macros/latex/contrib/debate/debate.pdf -2021/09/24 | 22496561 | obsolete/macros/latex/contrib/beamer-contrib/themes/fibeamer.zip -2021/09/24 | 2172 | macros/luatex/latex/yamlvars/YAMLvars.sty -2021/09/24 | 1956 | macros/latex/contrib/debate/debate.sty -2021/09/24 | 18368 | graphics/pstricks/base/dvips/pst-dots.pro -2021/09/24 | 1792 | systems/texlive/tlnet/archive/xmpincl.r60593.tar.xz -2021/09/24 | 171580 | systems/texlive/tlnet/archive/tlmgrbasics.doc.r60588.tar.xz -2021/09/24 | 1575233 | graphics/pstricks/contrib/pst-plot.zip -2021/09/24 | 1444 | graphics/pstricks/contrib/pst-tools/Changes -2021/09/24 | 142572 | graphics/pstricks/contrib/pst-plot/doc/pst-plot-doc.tex -2021/09/24 | 139102 | graphics/pstricks/contrib/pst-tools/doc/pst-tools-doc.pdf -2021/09/24 | 134688 | systems/texlive/tlnet/archive/glossaries.source.r60591.tar.xz -2021/09/24 | 13204 | graphics/pstricks/contrib/pst-tools/doc/pst-tools-doc.tex -2021/09/24 | 129526 | graphics/pstricks/base/doc/pst-news21.pdf -2021/09/24 | 1262 | macros/luatex/latex/yamlvars/README.md -2021/09/24 | 122012 | systems/texlive/tlnet/archive/etoc.source.r60589.tar.xz -2021/09/24 | 1202217 | graphics/pstricks/contrib/pst-plot/doc/pst-plot-doc.pdf -2021/09/24 | 118771 | graphics/pstricks/contrib/pst-tools.zip -2021/09/24 | 1185 | macros/latex/contrib/debate/README.md -2021/09/24 | 117588 | systems/texlive/tlnet/archive/glossaries-extra.source.r60590.tar.xz -2021/09/24 | 1134960 | systems/texlive/tlnet/archive/etoc.doc.r60589.tar.xz -2021/09/24 | 1128 | graphics/pstricks/contrib/pst-plot/latex/pst-plot.sty -2021/09/24 | 11268 | systems/texlive/tlnet/archive/hvfloat.r60587.tar.xz -2021/09/24 | 11214 | macros/latex/contrib/acmart/README -2021/09/24 | 10720 | macros/luatex/latex/yamlvars/YAMLvars.lua -2021/09/24 | 10608 | systems/texlive/tlnet/archive/etoc.r60589.tar.xz -2021/09/24 | 105755 | graphics/pstricks/contrib/pst-plot/tex/pst-plot.tex -2021/09/24 | 1046808 | graphics/pstricks/contrib/pst-3dplot/doc/pst-3dplot-doc.pdf -2021/09/24 | 10220 | macros/luatex/latex/yamlvars/YAMLvars.tex -2021/09/24 | 1014464 | graphics/pstricks/contrib/pst-3dplot.zip diff --git a/graphics/pstricks/base/Changes b/graphics/pstricks/base/Changes index 33efe0df40..9bb20606b6 100644 --- a/graphics/pstricks/base/Changes +++ b/graphics/pstricks/base/Changes @@ -1,24 +1,9 @@ -% $Id: Changes 269 2021-09-25 13:47:26Z herbert $ +% $Id: Changes 290 2021-10-01 09:20:29Z herbert $ For all changes see file History! Here are only the last one changes listed. -Changelog for -pstricks.tex --------- -pst-fp.tex ----------- -xdvipdfmx.con -------- -vtex.con ------------- -pstricks-doc --------- -pstricks.pro --------- -pst-dots.pro --------- -pst-algparser.pro ---- -pstricks97.pro ------- -pstricks-pdf.sty ----- -pstricks.sty --------- -pst-all.sty --------- - - -------------------------------------------------------------------------- @@ -26,6 +11,10 @@ pstricks.tex -------- versions like 2.47a have only changes in other files, but not in this main package. +3.11 2021-10-01 - added the missing filled dots + - fix for pst-dots.pro (delete one dup) + - fix for trailing space before second pspicture + - added SolidOctogon for a dot 3.10a 2021-09-25 - fix introduced bug in pstricks.pro 3.10 2021-09-23 - move dot macros into a separate file pstricks-dots.tex - use the internal Type1 version of PSTricksDotFont for diff --git a/graphics/pstricks/base/dvips/pst-dots.pro b/graphics/pstricks/base/dvips/pst-dots.pro index 62353d6c08..9098492b25 100644 --- a/graphics/pstricks/base/dvips/pst-dots.pro +++ b/graphics/pstricks/base/dvips/pst-dots.pro @@ -1,7 +1,7 @@ -% $Id: pst-dots.pro 4 2020-06-09 08:32:19Z herbert $ +% $Id: pst-dots.pro 291 2021-10-01 09:22:45Z herbert $ % %% PostScript prologue for pstricks.tex. -%% Version 2.02, 2009/06/16 +%% Version 0.02, 2021/10/01 %% %% For distribution, see pstricks.tex. %% @@ -16,7 +16,7 @@ %% to add /Diamond, /SolidDiamond and /BoldDiamond %% Modified by Herbert Voss (hv) - 2008/04/17 % -12 dict dup dup begin +12 dict dup begin /FontType 1 def /FontName /PSTricksDotFont def /FontInfo 9 dict dup begin @@ -329,6 +329,6 @@ DBB61743DC569337082176ECBAD417354A5F900EA0BB5479162ED7ECCCD71AE8 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark -/PSTricksDotFont exch definefont +%/PSTricksDotFont exch definefont % %% end \ No newline at end of file diff --git a/graphics/pstricks/base/dvips/pstricks.pro b/graphics/pstricks/base/dvips/pstricks.pro index 178eb0475a..87dc4d7e6b 100644 --- a/graphics/pstricks/base/dvips/pstricks.pro +++ b/graphics/pstricks/base/dvips/pstricks.pro @@ -1,4 +1,4 @@ -% $Id: pstricks.pro 269 2021-09-25 13:47:26Z herbert $ +% $Id: pstricks.pro 290 2021-10-01 09:20:29Z herbert $ % %% PostScript prologue for pstricks.tex. %% Version 1.40, 2021/09/25 @@ -40,6 +40,7 @@ revision 952 gt /tx@Dict 200 dict def % the main PSTricks dictionary tx@Dict begin /ADict 25 dict def % The arrow dictionary +/fill@Dict 30 dict def % the fill dictionary /CM { matrix currentmatrix } bind def /SLW /setlinewidth load def /CLW /currentlinewidth load def diff --git a/graphics/pstricks/base/generic/pstricks-dots.tex b/graphics/pstricks/base/generic/pstricks-dots.tex index eecc52c096..e5c3e2c022 100644 --- a/graphics/pstricks/base/generic/pstricks-dots.tex +++ b/graphics/pstricks/base/generic/pstricks-dots.tex @@ -1,4 +1,4 @@ -%% $Id: pstricks-dots.tex 269 2021-09-25 13:47:26Z herbert $ +%% $Id: pstricks-dots.tex 273 2021-09-27 08:11:44Z herbert $ %% %% This is file `pstricks-dots.tex', %% @@ -158,71 +158,85 @@ %%70 % /Pentagon /SolidPentagon /SolidSquare /Square /Triangle /SolidTriangle /.notdef /.notdef % /Mul /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef - \newpsfontdot{B+}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<41>} - \newpsfontdot{BoldAdd}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<41>} - \newpsfontdot{Bo}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<43>} - \newpsfontdot{BoldCircle}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<43>} - \newpsfontdot{BoldDiamond}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<44>} - \newpsfontdot{Bdiamond}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<44>} - \newpsfontdot{SolidOtimes}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<45>} - \newpsfontdot{BoldOctogon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<46>} - \newpsfontdot{SolidHexagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<47>} - \newpsfontdot{BoldHexagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<48>} - \newpsfontdot{BoldBar}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<49>} - \newpsfontdot{B|}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<49>} - \newpsfontdot{Asterisk*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<4A>} - \newpsfontdot{SolidAsterisk}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<4A>} - \newpsfontdot{BoldAsterisk}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<4B>} - \newpsfontdot{Basterisk}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<4B>} - \newpsfontdot{BoldOplus}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<4D>} - \newpsfontdot{BoldOtimes}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<4E>} - \newpsfontdot{BoldPentagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<50>} - \newpsfontdot{Bpentagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<50>} - \newpsfontdot{BoldSquare}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<53>} - \newpsfontdot{Bsquare}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<53>} - \newpsfontdot{Btriangle}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<54>} - \newpsfontdot{BoldTriangle}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<54>} - \newpsfontdot{BoldMul}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<58>} -% - \newpsfontdot{+}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<61>} - \newpsfontdot{Add}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<61>} - \newpsfontdot{bullet}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<62>} - \newpsfontdot{Bullet}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<62>} - \newpsfontdot{*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<62>} - \newpsfontdot{o}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<63>} - \newpsfontdot{Circle}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<63>} - \newpsfontdot{Diamond}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<64>} - \newpsfontdot{diamond}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<64>} - \newpsfontdot{Oplus*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<65>} - \newpsfontdot{SolidOplus}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<65>} - \newpsfontdot{Octogon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<66>} - \newpsfontdot{Octogon*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<67>} - \newpsfontdot{Hexagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<68>} - \newpsfontdot{Bar}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<69>} - \newpsfontdot{|}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<69>} - \newpsfontdot{asterisk}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6B>} - \newpsfontdot{Asterisk}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6B>} - \newpsfontdot{SolidDiamond}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6C>} - \newpsfontdot{diamond*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6C>} - \newpsfontdot{oplus}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6D>} - \newpsfontdot{Oplus}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6D>} - \newpsfontdot{otimes}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6E>} - \newpsfontdot{Otimes}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<6E>} -% - \newpsfontdot{pentagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<70>} - \newpsfontdot{SolidPentagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<71>} - \newpsfontdot{Pentagon}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<70>} - \newpsfontdot{pentagon*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<71>} - \newpsfontdot{square*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<72>} - \newpsfontdot{SolidSquare}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<72>} - \newpsfontdot{square}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<73>} - \newpsfontdot{Square}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<73>} - \newpsfontdot{triangle}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<74>} - \newpsfontdot{Triangle}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<74>} - \newpsfontdot{triangle*}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<75>} - \newpsfontdot{SolidTriangle}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<75>} - \newpsfontdot{x}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<78>} - \newpsfontdot{Mul}[1.5 0.0 0.0 1.5 0 0]{PSTricksDotFont}{<78>} -% + \newpsfontdot{+}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<61>} + \newpsfontdot{Add}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<61>} + \newpsfontdot{B+}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<41>} + \newpsfontdot{BoldAdd}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<41>} +% + \newpsfontdot{x}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<78>} + \newpsfontdot{times}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<78>} + \newpsfontdot{Mul}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<78>} +% + \newpsfontdot{bullet}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<62>} + \newpsfontdot{Bullet}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<62>} + \newpsfontdot{*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<62>} +% + \newpsfontdotH{o}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<63>}{<62>} + \newpsfontdotH{Circle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)} + \newpsfontdotH{Bo}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)} + \newpsfontdotH{BoldCircle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)} +% + \newpsfontdot{oplus}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6D>} + \newpsfontdotH{Oplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(m)}{(b)} + \newpsfontdotH{Oplus*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{(e)}{(b)} + \newpsfontdotH{SolidOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(e)}{(b)} + \newpsfontdotH{BoldOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(M)}{(b)} +% + \newpsfontdot{otimes}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6E>} + \newpsfontdotH{Otimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(n)}{(b)} + \newpsfontdot{BoldMul}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<58>} + \newpsfontdotH{BoldOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(N)}{(b)} + \newpsfontdotH{SolidOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(E)}{(b)} +% + \newpsfontdot{asterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6B>} + \newpsfontdot{Asterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6B>} + \newpsfontdot{Asterisk*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<4A>} + \newpsfontdotH{SolidAsterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(J)}{(b)} + \newpsfontdot{BoldAsterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<4B>} + \newpsfontdot{Basterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<4B>} +% + \newpsfontdot{Bar}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<69>} + \newpsfontdot{|}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<69>} + \newpsfontdot{BoldBar}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<49>} + \newpsfontdot{B|}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<49>} +% + \newpsfontdotH{triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)} + \newpsfontdotH{Btriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)} + \newpsfontdotH{Triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)} + \newpsfontdotH{BoldTriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)} + \newpsfontdot{triangle*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<75>} + \newpsfontdot{SolidTriangle}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<75>} +% + \newpsfontdotH{square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)} + \newpsfontdot{square*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<72>} + \newpsfontdot{SolidSquare}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<72>} + \newpsfontdotH{Bsquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)} + \newpsfontdotH{Square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)} + \newpsfontdotH{BoldSquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)} +% + \newpsfontdotH{diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} + \newpsfontdotH{Diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} + \newpsfontdotH{BoldDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} + \newpsfontdotH{Bdiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} + \newpsfontdot{diamond*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6C>} + \newpsfontdot{SolidDiamond}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6C>} +% + \newpsfontdotH{pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)} + \newpsfontdotH{Bpentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)} + \newpsfontdotH{BoldPentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)} + \newpsfontdotH{Pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)} + \newpsfontdot{pentagon*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<71>} + \newpsfontdot{SolidPentagon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<71>} +% + \newpsfontdotH{Hexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(h)}{(G)} + \newpsfontdot{SolidHexagon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<47>} + \newpsfontdotH{BoldHexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(H)}{(G)} + \newpsfontdot{BoldHexagon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<48>} +% + \newpsfontdotH{Octogon}[1 0 0 1 0 0]{PSTricksDotFont}{(f)}{(g)} + \newpsfontdot{Octogon*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<67>} + \newpsfontdotH{BoldOctogon}[1 0 0 1 0 0]{PSTricksDotFont}{(F)}{(g)} + \newpsfontdot{SolidOctogon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<67>} +%% %% END: pstricks-dots.tex \endinput diff --git a/graphics/pstricks/base/generic/pstricks-tex.def b/graphics/pstricks/base/generic/pstricks-tex.def index 0e69a13917..85df2b710b 100644 --- a/graphics/pstricks/base/generic/pstricks-tex.def +++ b/graphics/pstricks/base/generic/pstricks-tex.def @@ -1,6 +1,7 @@ -%% $Id: pstricks-tex.def 169 2021-08-31 17:46:12Z herbert $ +%% $Id: pstricks-tex.def 276 2021-09-27 11:28:22Z herbert $ %% pstricks-tex.def -%% Copyright 2017- Herbert Voss +% +%% fileversion and filedate see main file pstricks.tex % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 diff --git a/graphics/pstricks/base/generic/pstricks-xetex.def b/graphics/pstricks/base/generic/pstricks-xetex.def index 68049094a2..61495720b2 100644 --- a/graphics/pstricks/base/generic/pstricks-xetex.def +++ b/graphics/pstricks/base/generic/pstricks-xetex.def @@ -1,7 +1,5 @@ -%% $Id: pstricks-xetex.def 4 2020-06-09 08:32:19Z herbert $ +%% $Id: pstricks-xetex.def 276 2021-09-27 11:28:22Z herbert $ %% -%% Copyright 2019- Herbert Voss -% % 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. @@ -13,6 +11,7 @@ % The xdvipdfmx driver does not support all node macros. In the following % there are alternatives defined: % +%% fileversion and filedate see main file pstricks.tex %% \ncput -> \NCput % \def\NCput{\pst@object{NCput}} diff --git a/graphics/pstricks/base/generic/pstricks.tex b/graphics/pstricks/base/generic/pstricks.tex index 1ce453ecf5..d98e585069 100644 --- a/graphics/pstricks/base/generic/pstricks.tex +++ b/graphics/pstricks/base/generic/pstricks.tex @@ -70,7 +70,7 @@ \XKV@tempa } % -\def\ProvidesPackageRCS#1{\typeout{Loading #1}}% +\def\ProvidesPackageRCS#1{\typeout{Loading #1}}% needed for the pgf packages %\@ifnextchar[\ProvidesPackageRCS@i{\ProvidesPackageRCS@i[] }}%$ %\def\ProvidesPackageRCS@i[#1]#2{} @@ -81,8 +81,8 @@ \fi \let\pgfforeach\foreach % -\def\fileversion{3.10a} -\def\filedate{2021/09/25} +\def\fileversion{3.11} +\def\filedate{2021/09/27} \pst@addfams{pstricks} % %\define@boolkey[psset]{pstricks}[Pst@]{useURWfonts}[true]{} @@ -489,7 +489,6 @@ \@ifundefined{pst@ATH}{\def\pst@ATH<#1>{}}{} % \pstheader{pstricks.pro} -%\pstheader{pstricks-fonts.pro} \pstheader{pst-algparser.pro} \pstheader{pst-tools.pro} % @@ -3759,12 +3758,19 @@ pop \def\tx@RotEnd{ RotEnd } \def\pst@rotate#1#2{% + \ifx\relax#1\relax\else \setbox#2=\hbox{\pst@Verb{% check for empty #1 (#1) /strAngle ED strAngle length 0 eq { 0 }{ #1 } ifelse %\ifPSTlualatex neg \fi \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}% + \fi }% +% \setbox#2=\hbox{\pst@Verb{% check for empty #1 +% (#1) /strAngle ED strAngle length 0 eq { 0 }{ #1 } ifelse +% %\ifPSTlualatex neg \fi +% \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}% + \def\psput@cartesian#1{% \hbox to \z@{\kern\pst@dimg{\vbox to \z@{\vss\box#1\vskip\pst@dimh}\hss}}% } @@ -4100,9 +4106,9 @@ pop \ifshowgrid\ifnum\showgridp@s=0\psgrid[style=gridstyle]\fi\fi % ----------- 1.10/12 end hv ------------------- \ignorespaces% % 2008-12-07 - \pstVerb{\pst@number\pslinewidth setlinewidth 0 setgray}% default setting (needed for lualatex) \ifPst@pgffunctions\pstVerb{ pgffunctions }\fi% hv 2013-04-17 } + \def\pic@coor{(0,0)(0,0)(10,10)} \def\endpspicture{% \ifshowgrid\ifnum\showgridp@s>0 @@ -4141,6 +4147,8 @@ pop \@namedef{endpspicture*}{\endpspicture} % \ifx\pstcustomize\relax \input pstricks.con \fi +\pstVerb{0.8 setlinewidth 0 setgray}% default setting (needed for lualatex) + \catcode`\@=\PstAtCode\relax % \endinput diff --git a/graphics/pstricks/base/latex/pstricks.sty b/graphics/pstricks/base/latex/pstricks.sty index ad58f86fca..b671da7580 100644 --- a/graphics/pstricks/base/latex/pstricks.sty +++ b/graphics/pstricks/base/latex/pstricks.sty @@ -1,4 +1,4 @@ -% $Id: pstricks.sty 181 2021-09-04 06:35:45Z herbert $ +% $Id: pstricks.sty 263 2021-09-24 17:58:30Z herbert $ %% %% This is file `pstricks.sty'. %% @@ -84,7 +84,6 @@ \DeclareOption*{\PassOptionsToPackage\CurrentOption{\pst@ColorPackage}} \ProcessOptions\relax -%\RequirePackage{iftex} \ifpst@useCalc \RequirePackage{pst-calculate} \fi diff --git a/graphics/pstricks/contrib/pst-fill/Changes b/graphics/pstricks/contrib/pst-fill/Changes index 9310a2082c..8b7ad7e33b 100644 --- a/graphics/pstricks/contrib/pst-fill/Changes +++ b/graphics/pstricks/contrib/pst-fill/Changes @@ -1,4 +1,6 @@ pst-fill.sty -------- + pst-fill.tex -------- +1.02 2021-10-01 make it run under lualatex 1.01 2007-03-10 bugfix for incomplete ifx (hv) diff --git a/graphics/pstricks/contrib/pst-fill/Makefile b/graphics/pstricks/contrib/pst-fill/Makefile deleted file mode 100644 index 1586e6f076..0000000000 --- a/graphics/pstricks/contrib/pst-fill/Makefile +++ /dev/null @@ -1,49 +0,0 @@ - -# `Makefile' for `pst-fill.pdf', hv, 2006/08/11 - -.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps - -MAIN = pst-fill - -LATEX = latex - -ARCHNAME = $(MAIN)-$(shell date +%y%m%d) - -ARCHFILES = $(MAIN).dtx $(MAIN).ins Makefile - -all : $(MAIN).sty doc clean - -$(MAIN).sty : $(MAIN).dtx -%.sty : %.dtx - tex $(basename $<).ins - -doc: $(MAIN).pdf - -$(MAIN).pdf : $(MAIN).ps - GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< - -$(MAIN).ps : $(MAIN).dvi - dvips $< - -$(MAIN).dvi : $(MAIN).dtx - $(LATEX) $< - if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi - if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi - makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ - $(basename $<).glo - makeindex -s gind.ist -t $(basename $<).ilg -o $(basename $<).ind \ - $(basename $<).idx - $(LATEX) $< - $(LATEX) $< - -clean : - $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out) - $(RM) $(addprefix $(MAIN), .dvi .ps) - -veryclean : clean - $(RM) $(MAIN).pdf - -arch : - zip $(ARCHNAME).zip $(ARCHFILES) - -# EOF diff --git a/graphics/pstricks/contrib/pst-fill/README b/graphics/pstricks/contrib/pst-fill/README index 71304960df..6a97aba507 100644 --- a/graphics/pstricks/contrib/pst-fill/README +++ b/graphics/pstricks/contrib/pst-fill/README @@ -1,20 +1,8 @@ pst-fill: tiling and filing of areas and characters - -pst-fill.dtx - The dtx file -pst-fill.ins - The ins file -pst-fill.pdf - The documentation, generated from the docstrip file - -to get the sty, the tex and the pdf file, run the Makefile or alternative - -latex pst-fill.ins -latex pst-fill.dtx -makeindex -s gind.ist pst-fill -makeindex -s gglo.ist -o pst-fill.gls pst-fill.glo -latex pst-fill.dtx -dvips pst-fill.dvi -ps2pdf pst-fill.ps - +pst-fill.sty - The latex file +pst-fill.tex - The tex file +pst-fill-doc.pdf - The documentation, generated from the docstrip file This version of pst-fill uses the extended version of the keyval package. So be sure that you @@ -23,7 +11,10 @@ package. So be sure that you - do not load another package after pst-fill, which loads the old keyval.sty or pst-key.tex +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. -- -Herbert Voss 2006-11-06 +hvoss@tug.org \ No newline at end of file diff --git a/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.bib b/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.bib new file mode 100644 index 0000000000..a92704ac2d --- /dev/null +++ b/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.bib @@ -0,0 +1,168 @@ +@STRING{tugboat = {TUGboat} } +@STRING{beiprogramm = {{\TeX}-Beiprogramm} } +@STRING{bretter = {Bretter, die die Welt bedeuten} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{editorial = {Editorial} } +@STRING{fremdebuehne = {Von fremden B{\"u}hnen} } +@STRING{fundus = {Aus dem Fundus} } +@STRING{hinterbuehne = {Hinter der B{\"u}hne} } +@STRING{leserbrief = {Leserbrief(e)} } +@STRING{magazin = {Magazin} } +@STRING{rezension = {Rezensionen} } +@STRING{schonimmer = {Was Sie schon immer {\"u}ber {\TeX} wissen wollten \dots} } +@STRING{theaterkasse = {Von der Theaterkasse} } +@STRING{theatertage = {{\TeX}-Theatertage} } + +@manual{PostScript95, +author= {Adobe Systems~Incorporated}, +title = {PostScript Language Reference Manual}, +publisher = {Addison-Wesley}, +edition=2, +date ={1995} +} + +@article{Bolek98, +author={Piotr Bolek}, +title={\MP{} and patterns}, +journal = tugboat, +volume=19, +number=3, +pages= {276--283}, +date = {1998-09}, +} +% +@article{MLgraphTSI, +author={Emmanuel Chailloux and Guy Cousineau and Ascánder Suárez}, +title={Programmation fonctionnelle de graphismes pour la production +d'illustrations techniques}, +journal={Technique et science informatique}, +volume=15, +number=7, +pages={977--1007}, +date= {1996}, +} +% +@book{Deledicq97, +author={André Deledicq}, +title={Le monde des pavages}, +Publisher={ACL Editions}, +date={1997}, +} +% +@article{EsperetGirou98, +author={Philippe Esperet and Denis Girou}, +title={Coloriage du pavage dit de Truchet}, +journal={Cahiers GUTenberg}, +Number=31, +pages={ 5--18}, +date={1998-12}, +} + +@article{Girou94, + author = {Denis Girou}, + title = {Pr\'esentation de {PST}ricks}, + journal = {Cahier {GUT}enberg}, + year = 1994, + volume = {16}, + month = apr, + pages = {21-70}, +} + +@book{LGC97, +author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = {2}, + year = {2007}, + location = {Boston, Mass.} +} + +@book{GS87, +author={Branko Grünbaum and Geoffrey Shephard}, +title= {Tilings and Patterns}, +publisher={Freeman and Company}, +date={1987}, +} +@book{Hoenig97, +author= {Alan Hoenig}, +title= {\TeX{} Unbound: \LaTeX{} \& \TeX{}}, +subtitle={Strategies, Fonts, Graphics, and More}, +publisher={Oxford University Press}, +date={1997}, +} +% +@ctan{XYpic, +title = {The Xypic package}, +subtitle = {Flexible diagramming macros}, +author = {Rose, Kristoffer H. and Moore, Ross}, +url = {https://ctan.org/pkg/xypic}, +urldate = {2021-09-30}, +date = {}, +version = {3.8.9}, +} +% +@article{LAAN96, +author= {Kees van der Laan}, +title= {Paradigms: Just a little bit of PostScript}, +journal={MAPS}, +volume =17, +pages = {137--150}, +date = {1996}, +} +% +@article{LAAN97, +author= {Kees van der Laan}, +title= {Tiling in PostScript and \MF{} -- Escher's +wink}, +journal={MAPS}, +volume =19, +number=2, +pages = {39--67}, +date = {1997}, +} + +@ctan{vanZandt93, + Title = {PSTricks -- {\PS} macros for {G}eneric \TeX}, + author = {Timothy Van Zandt and Herbert Voß} , + date = 2016, + url = {http://PSTricks.tug.org/}, + urldate={2016-04-18}, +} +% +@article{vanZandtGirou94, + author = {Timothy Van Zandt and Denis Girou}, + title = {Inside PSTricks}, + journal = {TUGboat}, + year = {1994}, + volume = {15}, + month = sep, + pages = {239--246} +} + +% +@Book{voss07, + author = {Herbert Vo\ss{}}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {7}, + publisher = {DANTE and Lehmanns Media}, + year = {2016}, + location = {Heidelberg and Berlin} +} + +@Book{PSTricksE, + author = {Herbert Vo\ss{}}, + title = {\texttt{PSTricks} -- {G}raphics and {P}ost{S}cript for \LaTeX}, + edition = {1}, + publisher = {UIT}, + year = {2011}, + location = {Cambridge -- UK} +} +% +@jornal{Wang65, +author= {Hao Wang}, +title={Games, Logic and Computers}, +jpurnal={Scientific American}, +pages={98--106}, +date ={1965-11}, +} + diff --git a/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.pdf b/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.pdf new file mode 100644 index 0000000000..4e2abf14df Binary files /dev/null and b/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.pdf differ diff --git a/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.tex b/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.tex new file mode 100644 index 0000000000..edcbfdd308 --- /dev/null +++ b/graphics/pstricks/contrib/pst-fill/doc/pst-fill-doc.tex @@ -0,0 +1,1238 @@ +\RequirePackage{pdfmanagement-testphase} +\DeclareDocumentMetadata{} +%% $Id: pst-fill-doc.tex 293 2021-10-01 11:24:25Z herbert $ +\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false, + headings=small, headinclude=false,footinclude=false,oneside]{pst-doc} + +\usepackage{hvlogos,hvextern} +\usepackage{pstricks,pst-grad} +\usepackage{pst-text,pst-node} +\usepackage[tiling]{pst-fill} + +\input random.tex + +\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} +\makeatletter +\newcommand\acro[1]{\textsc{#1}\@} +\def\CTAN{\acro{CTAN}} +\let\texttub\textsl % % redefined in other situations +\def\TUB{\texttub{TUGboat}} +\def\TUG{\TeX\ \UG} +\def\tug{\acro{TUG}} +\def\UG{Users Group} +\newcommand\CTANdirectory[1]{\expandafter\urldef\csname CTAN@#1\endcsname\path} +\newcommand\CTANfile[1]{\expandafter\urldef\csname CTAN@#1\endcsname\path} +\newcommand\CTANref[1]{\expandafter\@setref\csname CTAN@#1\endcsname\relax{#1}} +\makeatother +\CTANdirectory{mpattern}{graphics/metapost/macros/mpattern} +\CTANdirectory{pstricks}{graphics/pstricks} +\CTANdirectory{pst-fill.sty}{graphics/pstricks/latex/pst-fill.sty} +\CTANdirectory{pst-fill}{graphics/pstricks/generic/pst-fill.tex} +\CTANdirectory{Roegel}{graphics/metapost/contrib/macros/truchet} +\CTANdirectory{xypic}{macros/generic/diagrams/xypic} +% +\definecolor{LemonChiffon}{rgb}{1.,0.98,0.8} +\definecolor{LightBlue} {rgb}{0.8,0.85,0.95} +\definecolor{PaleGreen} {rgb}{0.88,1,0.88} +\definecolor{PeachPuff} {rgb}{1.0,0.85,0.73} +% +\newcommand{\FillPackage}{\texttt{`pst-fill'}} +\newcommand{\XYpic}{% + \leavevmode\hbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}-pic}} +\psset{dimen=middle} +% +% % Translation in PSTricks from the one drawn by Emmanuel Chailloux and +% % Guy Cousineau for the MLgraph system +% % (see /ftp.ens.fr:/pub/unix/lang/MLgraph/version-2.1/MLgraph-refman.ps.gz) +% % The kangaroo itself is reproduce from an original picture from Raoul Raba + \newcommand{\DimX}{2.47} + \newcommand{\DimY}{4.8} + \newcommand{\DimXDivTwo}{1.235} +% + \newcommand\KangarooItself[1]{% + \pspolygon[fillstyle=solid,fillcolor=#1]% + (52.5,68)(55,72.5)(55.8,76.5)(56.8,79.8)(58.2,83)(60,85.8)(61.5,86.5) + (64,87)(66,87.5)(67.8,87.3)(70,87)(71.5,87.3)(73,88)(74.7,88.5) + (76,90.3)(77,91.5)(72.8,93.8)(69,96)(64.5,99)(59.4,103)(56.2,106.3) + (53,110.5)(49.5,115.5)(47.2,119.9)(45.7,126)(43.2,123)(41.5,121)(37.5,125) + (37,122.5)(36.8,120)(37,117)(37.6,113.5)(38.6,110)(40,106.3)(42,102.3) + (43.5,99.5)(45,97)(46.2,94)(46.8,91.7)(47.2,88)(47,83.5)(46.3,80.8) + (45.3,78.5)(42.5,76.5)(39.5,75.8)(36,75.9)(33,75.9)(29,76.2)(26,77) + (22.3,77.5)(18,78.4)(12.8,79.3)(8.6,80)(5.5,80.3)(3,80.5)(0,80) + (-5.2,78.5)(-9,76.3)(-11.2,74.8)(-13,72.5)(-16.5,68)(-16.5,68)(-19.5,62.5) + (-22,58)(-25.5,53)(-29,48.5)(-32.5,45)(-36,42)(-39,39.5)(-44,37) + (-49,35)(-51,34)(-53.5,34.5)(-55.5,36)(-56.5,38)(-56.5,40.5)(-55,41.5) + (-53.5,41)(-51.5,41)(-50.5,43)(-50.5,44.5)(-51,47)(-51.5,47.2)(-56.5,47) + (-58.5,46.5)(-60,44.7)(-62,42.3)(-63,39.5)(-63.5,36.3)(-63.5,33)(-63.1,29.5) + (-61.5,26)(-58,23.6)(-54,22.2)(-50.7,22)(-47.5,22)(-44.5,22.3)(-41,23.5) + (-36.8,25.8)(-33,28)(-28.5,31)(-23.4,35)(-20.2,38.3)(-17,42.5)(-13.5,47.5) + (-11.2,51.9)(-9.7,58)(-7.2,55)(-5.5,53)(-1.5,57)(-1,54.5)(-0.8,52) + (-1,49)(-1.6,45.5)(-2.6,42)(-4,38.3)(-6,34.3)(-7.5,31.5)(-9,29) + (-10.2,26)(-10.8,23.7)(-11.2,20)(-11,15.5)(-10.3,12.8)(-9.3,10.5)(-6.5,8.5) + (-3.5,7.8)(0,7.9)(3,7.9)(7,8.2)(10,9)(13.7,9.5)(18,10.4) + (23.2,11.3)(27.4,12)(30.5,12.3)(33,12.5)(36,12)(41.2,10.5)(45,8.3) + (47.2,6.8)(49,4.5)(52.5,0)(50,4.5)(49.2,8.5)(48.2,11.8)(46.8,15) + (45,17.8)(43.5,18.5)(41,19)(39,19.5)(37.2,19.3)(35,19)(33.5,19.3) + (32,20)(30.3,20.5)(29,22.3)(28,23.5)(28,23.5)(24.5,22.3)(21.5,22) + (18.3,22)(15,22.2)(11,23.6)(7.5,26)(5.9,29.5)(5.5,33)(5.5,36.3) + (6,39.5)(7,42.3)(9,44.7)(10.5,46.5)(12.5,47)(17.5,47.2)(18,47) + (18.5,44.5)(18.5,43)(17.5,41)(15.5,41)(14,41.5)(12.5,40.5)(12.5,38) + (13.5,36)(15.5,34.5)(18,34)(20,35)(25,37)(30,39.5)(33,42) + (36.5,45)(40,48.5)(43.5,53)(47,58)(49.5,62.5)(52.5,68) + \pscircle*[linecolor=white](58.2,98.3){2\psxunit} +\pscircle*(58.2,97.3){\psxunit} +% Mouth +\psline(71.5,88)(70,89.3)(68.5,90.3)(67,91.9)% +% Tear +\psline(42,121)(45,118)(47,115.3)(48.5,112.7)(50,110)(51.8,106.5) + (52.5,103.7)(53,100.5)% +\pspolygon(41.2,115.8)(43.2,114.7)(45,112.5)(47,109.8)(48,107)(49.5,104.2)% + (50.5,101.6)(51,98.5)(47.7,100.6)(46,102.2)(44.8,104)(43.5,106) + (42.5,108)(41.7,110.5)(41,113.2)} +% +\newcommand\Kangaroo[1]{% + \begin{pspicture}(\DimX,\DimY) + \psset{unit=0.035278cm}% + \KangarooItself{#1}% + \end{pspicture}} +% +\newcommand\KangarooPstChart[1]{{% + \psset{xunit=0.006784,yunit=0.00735,linewidth=0.01}% + \begin{pspicture}(-65.5,0)(82,126)% + \KangarooItself{#1}% + \end{pspicture}}} +% +% +% For the possible index and changes log +\setlength{\columnseprule}{0.6pt} +% +% Beginning of the documentation itself +\title{\texttt{pst-fill}\\A PSTricks package for filling and tiling areas} +%\author{Timothy Van Zandt\thanks{\protect\url{tvz@econ.insead.fr}. (documentation by +\author{Timothy Van Zandt\\Denis Girou\\ Herbert Voß} +% +%\date{\shortstack{\today --- Version 1.00\\ +% {\small Documentation revised \today}}} + +\addbibresource{\jobname.bib} + +\begin{document} +\settitle +\tableofcontents +% +\begin{abstract} + \FillPackage{} is a PSTricks \cite{vanZandt93},\cite{Girou94},\cite{vanZandtGirou94}, +\cite{Hoenig97},\cite{LGC97} +package to draw easily + various kinds of filling and tiling of areas. It is also a good example of + the great power and flexibility of PSTricks, as in fact it is a very short + program (it body is around 200~lines long) but nevertheless really powerful. + + It was written in 1994 by Timothy \textsc{van Zandt} but + publicly available only in PSTricks 97 and without any documentation. + We describe here the version \emph{97 patch 2} of December 12, 1997, which + is the original one modified by myself to manage \emph{tilings} in the + so-called \emph{automatic} mode. This article would like to serve both of + reference manual and of user's guide. +% +This package is available on \CTAN{} in the + \texttt{graphics/pstricks} directory (files \texttt{latex/pst-fill.sty} and + \texttt{generic/pst-fill.tex}). +\end{abstract} +% +\section{Introduction} + + Here we will refer as \emph{filling} as the operation which consist to fill +a defined area by a pattern (or a composition of patterns). We will refer as +\emph{tiling} as the operation which consist to do the same thing, but with +the control of the starting point, which is here the upper left corner. +The pattern is positioned relatively to this point. This make an essential +difference between the two modes, as without control of the starting point we +can't draw \emph{tilings} (sometimes called \emph{tesselations}) as used in +many fields of Art and Science% +\footnote{For an extensive presentation of tilings, in their history and usage +in many fields, see the reference book \cite{GS87}. + +In the \TeX{} world, few work was done on tilings. You can look at the +\emph{tile} extension of the \XYpic{} package \cite{XYpic}, at the articles of +Kees \textsc{van der Laan} \cite[paragraph 7]{LAAN96} (the tiling was in +fact directly done in PostScript) and \cite{LAAN97}, at the \MP{} program +(available on \path{CTAN:graphics/metapost/contrib/macros/truchet}) by Denis \textsc{Roegel} for the +\textsc{Truchet} contest in 1995 \cite{EsperetGirou98} and at the \MP{} +package \cite{Bolek98} to draw patterns, which have a strong connection with +tilings.} + +Nevertheless, as tilings are a wide and difficult field in mathematics, this +package is limited to simple ones, mainly \emph{monohedral} tilings with one +prototile (which can be composite, see section \ref{sec:KindTiles}). With some +experience and wiliness we can do more and obtained easily rather +sophisticated results, but obviously hyperbolic tilings like the famous +\textsc{Escher} ones or aperiodic tilings like the \textsc{Penrose} ones are +not in the capabilities of this package. For more complex needs, we must used +low level and more painfull technics, with the basic \cs{multido} +and \cs{multirput} macros. + + +\newcommand\Square{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}} +\newcommand\Tiling[2][]{% + \begin{pspicture}#2 + \psframe[fillstyle=boxfill,#1]#2 +\end{pspicture}} + + +\section{Package history and description of it two different modes} +% + As already said, this package was written in 1994 by Timothy \textsc{van +Zandt}. Two modes were defined, called respectively \emph{manual} and +\emph{automatic}. For both, the pattern is generated on contiguous positions in +a rather large area which include the region to fill, later cut to the +required dimensions by clipping mechanism. In the first mode, the pattern is +explicitely inserted in the PostScript file each time. In the second one, the +result is the same but with an unique explicit insertion of the pattern and a +repetition done by PostScript. Nevertheless, in this method, the control of +the starting point was loosed, so it allowed only to \emph{fill} a region and +not to \emph{tile} it. + +Between the two modes, \emph{tiling} and filling is a difference: for filling the current point +is taken into account and two identical objects in a line may differ in the output. + +\pstFillSetDefaults + See the difference between the two modes, \emph{tiling}: +{\psset{unit=0.5} + \psboxfill{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}} + \begin{pspicture}(3,3.3) + \psframe[fillstyle=boxfill](3,3) + \end{pspicture} +} +and \emph{filling}: +{% +\makeatletter +\pst@def{BoxFill}<% + gsave + gsave \tx@STV CM grestore dtransform CM idtransform + abs /h ED abs /w ED + pathbbox + h div round 2 add cvi /y2 ED + w div round 2 add cvi /x2 ED + h div round 2 sub cvi /y1 ED + w div round 2 sub cvi /x1 ED + /y2 y2 y1 sub def + /x2 x2 x1 sub def + CP + y1 h mul sub neg /y1 ED + x1 w mul sub neg /x1 ED + clip + y2 { + /x x1 def + x2 { + save CP x y1 T moveto Box restore + /x x w add def + } repeat + /y1 y1 h add def + } repeat + currentpoint currentfont grestore setfont moveto> + \makeatother +% + \psset{unit=0.5} + \psboxfill{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}} + \begin{pspicture}(3,3.3) + \psframe[fillstyle=boxfill](3,3) + \end{pspicture} + or + \begin{pspicture}(3,3.3) + \psframe[fillstyle=boxfill](3,3) + \end{pspicture} +} +as we can see that initial position is arbitrary and dependent of +the current point. + + +It's clear that usage of filling is very restrictive comparing to tiling, +as desired effects required very often the possibility to control the starting +point. So, this mode was of limited interest, but unfortunately the +\emph{manual} one has the very big disadvantage to require very huge amounts +of ressources, mainly in disk space and consequently in printing time. +A small tiling can require sometimes several megabytes in \emph{manual} mode! +So, it was very often not really usable in practice. + +It is why I modified the code, to allow tilings in \emph{automatic} mode, +controlling in this mode too the starting point. And most of the time, that is +to say if some special options are not used, the tiling is done exactly in the +region described, which make it faster. So there is no more reason to use the +\emph{manual} mode, apart very special cases where \emph{automatic} one cannot +work, as explained later -- currently, I know only one case. + + To load this modified \emph{automatic} mode, with \LaTeX{} use +simply:\newline +\verb+\usepackage[tiling]{pst-fill}+\newline +and in plain \TeX{} after:\newline +\verb+\input{pst-fill}+\newline +add the following definition:\newline +\verb+\def\PstTiling{1}+ + +To obtain the original behaviour, just don't use the \emph{tiling} optional +keyword at loading. + +Take care than in \emph{tiling} mode, I introduce also some other changes. +First I define aliases on some parameter names for consistancy (all specific +parameters will begin by the \texttt{fill} prefix in this case) and I change +some default values, which were not well adapted for tilings (\Lkeyword{fillsep} +is set to 0 and as explained \Lkeyword{fillsize} set to \Lkeyval{auto}). I rename +\Lkeyword{fillcycle} to \Lkeyword{fillcyclex}. I also restore normal way so that +the frame of the area is drawn and all line (\Lkeyword{linestyle}, +\Lkeyword{linecolor}, \texttt{doubleline}, etc.) parameters are now active (but +there are not in non \emph{tiling} mode). And I also introduce new parameters +to control the tilings (see below). + + \textbf{In all the following examples, we will consider only the +\Lkeyword{tiling} mode.} +% + To do a tiling, we have just to define the pattern with the +\Lcs{psboxfill} macro and to use the new \Lkeyword{fillstyle} +\Lkeyval{boxfill}. +% + Note that tilings are drawn from left to right and top to bottom, which can +have an importance in some circonstances. +% + PostScript programmers can be also interested to know that, even in the +\emph{automatic} mode, the iterations of the pattern are managed directly by +the PostScript code of the package which used only PostScript Level 1 +operators. The special ones introduced in Level 2 for drawing of patterns +\cite[section 4.9]{PostScript95} are not used. +% + And first, for conveniance, we define a simple \Lcs{Tiling} macro, which +will simplify our examples: +% +\begin{verbatim} + \newcommand{\Tiling}[2][]{% + \begin{pspicture}#2 + \psframe[fillstyle=boxfill,#1]#2 + \end{pspicture}} +\end{verbatim} +% +\subsection{Parameters} +% + There are \textbf{14} specific parameters available to change the way the +filling/tiling is defined, and one debugging option. +% +\begin{description} + \item [\Lkeyword{fillangle} (real)\hfill :] the value of the rotation + applied to the patterns (\emph{Default:~0}). +\end{description} +% +\pstFillSetDefaults +% + In this case, we must force the tiling area to be notably larger than the +area to cover, to be sure that the defined area will be covered after rotation. +\begin{LTXexample}[width=4cm,pos=l] +\newcommand\Cross{\begin{pspicture}(1,1) + \psline[linecolor=red,dimen=middle](0,0.5)(1,0.5) + \psline[linecolor=blue,dimen=middle](0.5,0)(0.5,1) +\end{pspicture}} +\psset{unit=0.5cm} +\psboxfill{\Cross} +\Tiling[fillangle=0]{(3,3)} \\[2pt] +\Tiling[fillangle=45]{(3,3)}\\[2pt] +\Tiling[fillangle=-60]{(3,3)} +\end{LTXexample} + + +\begin{description} + \item[\Lkeyword{fillsepx} (real$\|$dim) :] value of the horizontal + separation between consecutive patterns (\emph{Default:~0 for + tilings\footnote{This option is not part of the original package + and is available only if the + \texttt{tiling} keyword is used when loading the package.} , 2pt otherwise}). + \item [\Lkeyword{fillsepy} (real$\|$dim)\hfill :] value of the vertical + separation between consecutive patterns (\emph{Default:~0 for + ti\-lings\footnote{ebd.}, 2pt otherwise}). +%\addtocounter{footnote}{-1} + \item [\Lkeyword{fillsep} (real$\|$dim)\hfill :] value of horizontal and + vertical separations between consecutive patterns (\emph{Default:~0 for + tilings\footnote{ebd.}, 2pt otherwise}). +\end{description} + + These values can be negative, which allow the tiles to overlap. + +\begin{LTXexample}[width=\linewidth] +\psset{unit=0.5cm} +\psboxfill{\Square} +\Tiling[fillsepx=2mm]{(3,3)} \quad +\Tiling[fillsepy=1mm]{(3,3)} \quad +\Tiling[fillsep=0.5]{(3,3)} \quad +\Tiling[fillsep=-0.5]{(3,3)} +\end{LTXexample} + + + + +\begin{description} + \item [\Lkeyword{fillcyclex}\footnotemark\ (integer)\hfill :] Shift + coefficient applied to each row (\emph{Default:~0}). + \footnote{It was \texttt{fillcycle} in the original version.} + \item [\Lkeyword{fillcycley}\footnotemark\ (integer)\hfill :] Same thing for + columns (\emph{Default:~0}). + \item [\Lkeyword{fillcycle}\footnote{ebd.} (integer)\hfill :] Allow to fix + both \Lkeyword{fillcyclex} and \Lkeyword{fillcycley} directly to the same value + (\emph{Default:~0}). +\end{description} + + For instance, if \Lkeyword{fillcyclex} is 2, the second row of patterns will +be horizontally shifted by a factor of $\frac{1}{2}=0.5$, and by a factor of +0.333 if \Lkeyword{fillcyclex} is 3, etc.). These values can be negative. + +\begin{LTXexample}[width=\linewidth] +\psset{unit=0.5} +\psboxfill{\Square} +\newcommand\TilingA[1]{\Tiling[fillcyclex=#1]{(3,3)}} +\TilingA{0} \TilingA{1} \quad +\TilingA{2} \TilingA{3}\quad +\TilingA{4} \TilingA{5}\quad +\TilingA{6} \TilingA{-3}\\[3mm] +\Tiling[fillcycley=2]{(3,3)}\quad +\Tiling[fillcycley=3]{(3,3)}\quad +\Tiling[fillcycley=-3]{(3,3)}\quad +\Tiling[fillcycle=2]{(3,3)} +\end{LTXexample} + +\begin{description} + \item [\Lkeyword{fillmovex}\footnotemark\ (real$\|$dim)\hfill :] value of the + horizontal moves between consecutive patterns (\emph{Default:~0}). + \item [\Lkeyword{fillmovey}\footnotemark\ (real$\|$dim)\hfill :] value of the + vertical moves between consecutive patterns (\emph{Default:~0}). + \item [\Lkeyword{fillmove}\footnotemark\ (real$\|$dim)\hfill :] value of + horizontal and vertical moves between consecutive patterns + (\emph{Default:~0}). +\end{description} + + These parameters allow the patterns to overlap and to draw some special +kinds of tilings. They are implemented only for the \emph{automatic} and +\emph{tiling} modes and their values can be negative. + + In some cases, the effect of these parameters will be the same that with the +\texttt{fillcycle?} ones, but you can see that it is not true for some other +values. + +\begin{LTXexample} +\psset{unit=0.5} +\psboxfill{\Square} +\Tiling[fillmovex=0.5]{(3,3)}\quad +\Tiling[fillmovey=0.5]{(3,3)}\quad +\Tiling[fillmove=0.5]{(3,3)}\quad +\Tiling[fillmove=-0.5]{(3,3)} +\end{LTXexample} + +\begin{description} + \item [\Lkeyword{fillsize} + (auto$\|$\{(real$\|$dim,real$\|$dim)(real$\|$dim,real$\|$dim)\}) :] The + choice of \emph{automatic} mode or the size of the area in \emph{manual} + mode. If first pair values are not given, (0,0) is used. (\emph{Default: + auto when \emph{tiling} mode is used, {(-15cm,-15cm)(15cm,15cm)} + otherwise}). +\end{description} + + As explained in the introduction, the \emph{manual} mode can require very +huge amount of computer ressources. So, it usage is to discourage in front off +the \emph{automatic} mode. It seems only useful in special circonstances, in +fact when the \emph{automatic} mode failed, which is known only in one case, +for some kinds of EPS files, as the ones produce by dump of portions of +screens (see \ref{sec:GraphicFiles}). + +\begin{description} + \item [\Lkeyword{fillloopaddx}\footnotemark\ (integer)\hfill :] number of + times the pattern is added on left and right positions (\emph{Default:~0}). + \item [\Lkeyword{fillloopaddy}\footnotemark\ (integer)\hfill :] number of + times the pattern is added on top and bottom positions (\emph{Default:~0}). + \item [\Lkeyword{fillloopadd}\footnotemark\ (integer)\hfill :] number of + times the pattern is added on left, right, top and bottom positions + (\emph{Default:~0}). +\end{description} + + These parameters are only useful in special circonstances, as for complex +patterns when the size of the rectangular box used to tile the area doesn't +correspond to the pattern itself (see an example in Figure~\ref{fig:Sheeps}) +and also sometimes when the size of the pattern is not a divisor of the size +of the area to fill and that the number of loop repeats is not properly +computed, which can occur. + + They are implemented only for the \emph{tiling} mode. + + + +\begin{description} + \item [\Lkeyword{PstDebug}\footnotemark\ (integer, 0 or 1)\hfill :] to + require to see the exact tiling done, without clipping (\emph{Default:~0}). +\end{description} + + + It's mainly useful for debugging or to understand better how the tilings +are done. It is implemented only for the \emph{tiling} mode. + + +%\begin{LTXexample}[width=\linewidth] +\psset{unit=0.3cm,PstDebug=1} +\psboxfill{\Square} +\psset{linewidth=1mm} +\Tiling{(2,2)}\hfill \Tiling[fillcyclex=2]{(2,2)}\hfill\Tiling[fillmove=0.5]{(2,2)} +%\end{LTXexample} + +\begin{lstlisting} +\psset{unit=0.3cm,PstDebug=1} +\psboxfill{\Square} +\psset{linewidth=1mm} +\Tiling{(2,2)}\hfill \Tiling[fillcyclex=2]{(2,2)}\hfill\Tiling[fillmove=0.5]{(2,2)} +\end{lstlisting} + +\psset{unit=1cm,PstDebug=0,linewidth=0.8pt} + +\section{Examples} + + In fact this unique \Lcs{psboxfill} macro allow a lot a variations and +different usages. We will try here to demonstrate this. + +\subsection{Kind of tiles} +\label{sec:KindTiles} + + Of course, we can access to all the power of PSTricks macros to define the +\emph{tiles} (\emph{patterns}) used. So, we can define complicated ones. + + Here we give four other Archimedian tilings (those built with only some +regular polygons) among the twelve existing, first discovered completely by +Johanes \textsc{Kepler} at the beginning of 17th century \cite{GS87}, the two +other \emph{regular} ones with the tiling by squares, formed by a unique +regular polygon, and two other formed by two different regular polygons. + +\begin{LTXexample}[pos=t] + \newcommand{\Triangle}{% + \begin{pspicture}(1,1) + \pstriangle[dimen=middle](0.5,0)(1,1) + \end{pspicture}} + \newcommand\Hexagon{ + \begin{pspicture}(0.866,0.75)% sin(60)=0.866 + \pspolygon[dimen=middle]% % Hexagon + (0.5;30)(0.5;90)(0.5;150)(0.5;210)(0.5;270)(0.5;330) + \end{pspicture}} + \psset{unit=0.5cm} + \psboxfill{\Triangle} + \Tiling{(4,4)}\qquad + \Tiling[fillcyclex=2]{(4,4)}\qquad + \psboxfill{\Hexagon} + \Tiling[fillcyclex=2,fillloopaddy=1]{(5,5)} +\end{LTXexample} + +\begin{LTXexample}[pos=t] + \newcommand{\ArchimedianA}{%Archimedian tiling 3^2.4.3.4 + \psset{dimen=middle} + % sin(60)=0.866 + \begin{pspicture}(1.866,1.866) + \psframe(1,1) + \psline(1,0)(1.866,0.5)(1,1)(0.5,1.866)(0,1)(-0.866,0.5) + \psline(0,0)(0.5,-0.866) + \end{pspicture}} + \newcommand{\ArchimedianB}{% Archimedian tiling 4.8^2 + \psset{dimen=middle,unit=1.5cm} + % sin(22.5)=0.3827 ; cos(22.5)=0.9239 + \begin{pspicture}(1.3066,0.6533) + \SpecialCoor + % Octogon + \pspolygon(0.5;22.5)(0.5;67.5)(0.5;112.5)(0.5;157.5) + (0.5;202.5)(0.5;247.5)(0.5;292.5)(0.5;337.5) + \end{pspicture}} + + \psset{unit=0.5cm} + \psboxfill{\ArchimedianA} + \Tiling[fillmove=0.5]{(7,7)}\hfill + \psboxfill{\ArchimedianB} + \Tiling[fillcyclex=2,fillloopaddy=1]{(7,7)} +\end{LTXexample} + + We can of course tile an area arbitrarily defined. And with the +\Lkeyword{addfillstyle} parameter\footnote{Introduced in PSTricks 97.}, we can +easily mix the \Lkeyword{boxfill} style with another one. + +\begin{LTXexample}[width=6cm] + \psset{unit=0.5cm,dimen=middle} + \psboxfill{% + \begin{pspicture}(1,1) + \psframe(1,1) + \pscircle(0.5,0.5){0.25} + \end{pspicture}} + \begin{pspicture}(4,6) + \pspolygon[fillstyle=boxfill,fillsep=0.25](0,1)(1,4)(4,6)(4,0)(2,1) + \end{pspicture}\hspace{1em} + \begin{pspicture}(4,4) +% \pscircle[linestyle=none,fillstyle=solid,fillcolor=yellow,fillsep=0.5, +% addfillstyle=boxfill](2,2){2} + \end{pspicture} +\end{LTXexample} +% + Various effects can be obtained, sometimes complicated ones very easily, as +in this example reproduced from one shown by Slavik \textsc{Jablan} in the +field of \emph{OpTiles}, inspired by the \emph{Op-art}: + +\begin{LTXexample}[pos=t] +\newcommand\ProtoTile{% + \begin{pspicture}(1,1)%%1/12=0.08333 + \psset{linestyle=none,linewidth=0, + hatchwidth=0.08333\psunit,hatchsep=0.08333\psunit} + \psframe[fillstyle=solid,fillcolor=black,addfillstyle=hlines,hatchcolor=white](1,1) + \pswedge[fillstyle=solid,fillcolor=white,addfillstyle=hlines]{1}{0}{90} + \end{pspicture}} +\newcommand\BasicTile{% + \begin{pspicture}(2,1) + \rput[lb](0,0){\ProtoTile}\rput[lb](1,0){\psrotateleft{\ProtoTile}} + \end{pspicture}} +\ProtoTile\hfill\BasicTile\hfill +\psboxfill{\BasicTile} +\Tiling[fillcyclex=2]{(4,4)} +\end{LTXexample} + + It is also directly possible to surimpose several different tilings. Here is +the splendid visual proof of the \textsc{Pytha\-gore} theorem done by the arab +mathematician \textsc{Annairizi} around the year 900, given by superposition +of two tilings by squares of different sizes. + +\begin{LTXexample}[pos=t] +\psset{unit=1.5,dimen=middle} +\begin{pspicture*}(3,3) + \psboxfill{\begin{pspicture}(1,1) + \psframe(1,1)\end{pspicture}} + \psframe[fillstyle=boxfill](3,3) + \psboxfill{\begin{pspicture}(1,1) + \rput{-37}{\psframe[linecolor=red](0.8,0.8)} + \end{pspicture}} + \psframe[fillstyle=boxfill](3,4) + \pspolygon[fillstyle=hlines,hatchangle=90](1,2)(1.64,1.53)(2,2) +\end{pspicture*} +\end{LTXexample} + + In a same way, it is possible to build tilings based on figurative patterns, +in the style of the famous \textsc{Escher} ones. Following an example of +Andr\'e \textsc{Deledicq} \cite{Deledicq97}, we first show a simple tiling of +the \emph{p1} category (according to the international classification of the +17~symmetry groups of the plane first discovered by the russian +crystalographer Jevgraf \textsc{Fedorov} at the end of the 19th century): + +\begin{LTXexample}[pos=t] + \newcommand\SheepHead[1]{% + \begin{pspicture}(3,1.5) + \pscustom[liftpen=2,fillstyle=solid,fillcolor=#1]{% + \pscurve(0.5,-0.2)(0.6,0.5)(0.2,1.3)(0,1.5)(0,1.5) + (0.4,1.3)(0.8,1.5)(2.2,1.9)(3,1.5)(3,1.5)(3.2,1.3) + (3.6,0.5)(3.4,-0.3)(3,0)(2.2,0.4)(0.5,-0.2)} + \pscircle*(2.65,1.25){0.12\psunit} %Eye + \psccurve*(3.5,0.3)(3.35,0.45)(3.5,0.6)(3.6,0.4)% Muzzle + % Mouth + \pscurve(3,0.35)(3.3,0.1)(3.6,0.05) + % Ear + \pscurve(2.3,1.3)(2.1,1.5)(2.15,1.7)\pscurve(2.1,1.7)(2.35,1.6)(2.45,1.4) + \end{pspicture}} + \psboxfill{\psset{unit=0.5}\SheepHead{yellow}\SheepHead{cyan}} + \Tiling[fillcyclex=2,fillloopadd=1]{(10,5)} +\end{LTXexample} +\label{fig:Sheeps} + + Now a tiling of the \emph{pg} category (the code for the kangaroo itself is +too long to be shown here, but has no difficulties ; the kangaroo is reproduce +from an original picture from Raoul \textsc{Raba} and here is a translation in +PSTricks from the one drawn by Emmanuel \textsc{Chailloux} and Guy +\textsc{Cousineau} for their MLgraph system \cite{MLgraphTSI}): + +\begin{LTXexample}[pos=t] +\psboxfill{\psset{unit=0.4} + \Kangaroo{yellow}\Kangaroo{red}\Kangaroo{cyan}\Kangaroo{green}% + \psscalebox{-1 1}{% + \rput(1.235,4.8){\Kangaroo{green}\Kangaroo{cyan}\Kangaroo{red}\Kangaroo{yellow}}}} + \Tiling[fillloopadd=1]{(10,6)} +\end{LTXexample} + + And here a \textsc{Wang} tiling \cite{Wang65}, \cite[chapter +11]{GS87}, based on very simple tiles of the form of a square and composed +of four colored triangles. Such tilings are built with only a matching color +constraint. Despite of it simplicity, it is an important kind of tilings, as +\textsc{Wang} and others used them to study the special class of +\emph{aperiodic} tilings, and also because it was shown that surprisingly this +tiling is similar to a \textsc{Turing} machine. + +\begin{LTXexample}[pos=t] + \newcommand{\WangTile}[4]{% + \begin{pspicture}(1,1) + \pspolygon*[linecolor=#1](0,0)(0,1)(0.5,0.5) + \pspolygon*[linecolor=#2](0,1)(1,1)(0.5,0.5) + \pspolygon*[linecolor=#3](1,1)(1,0)(0.5,0.5) + \pspolygon*[linecolor=#4](1,0)(0,0)(0.5,0.5) + \end{pspicture}} + \newcommand{\WangTileA}{\WangTile{cyan}{yellow}{cyan}{cyan}} + \newcommand{\WangTileB}{\WangTile{yellow}{cyan}{cyan}{red}} + \newcommand{\WangTileC}{\WangTile{cyan}{red}{yellow}{yellow}} + \newcommand{\WangTiles}[1][]{% + \begin{pspicture}(3,3) \psset{ref=lb} + \rput(0,2){\WangTileB} \rput(1,2){\WangTileA}% + \rput(2,2){\WangTileC} \rput(0,1){\WangTileC}% + \rput(1,1){\WangTileB} \rput(2,1){\WangTileA} + \rput(0,0){\WangTileA} \rput(1,0){\WangTileC}% + \rput(2,0){\WangTileB} + #1 + \end{pspicture}} + \WangTileA\hfill\WangTileB\hfill\WangTileC\hfill + \WangTiles[{\psgrid[subgriddiv=0,gridlabels=0](3,3)}]\hfill + \psset{unit=0.4} \psboxfill{\WangTiles} \Tiling{(12,12)} +\end{LTXexample} + +\subsection{External graphic files} +\label{sec:GraphicFiles} + + We can also fill an arbitrary area with an external image. We have only, +as usual, to matter of the \emph{BoundingBox} definition if there is no one +provided or if it is not the accurate one, as for the well known +\texttt{tiger} picture part of the \texttt{ghostscript} distribution. + +\begin{LTXexample}[pos=t] + \psboxfill{%Strangely require x1=x2... + \begin{pspicture}(0,1)(0,4.1) + \includegraphics[bb=17 176 560 74,width=3cm]{images/tiger} + \end{pspicture}} + \Tiling{(6,6.2)} +\end{LTXexample} + + Nevertheless, there are some special files for which the \emph{automatic} +mode doesn't work, specially for some files obtained by a screen dump, as in +the next example, where a picture was reduced before it conversion in the +\emph{Encapsulated PostScript} format by a screen dump utility. In this case, +usage of the \emph{manual} mode is the only alternative, at the price of the +real multiple inclusion of the EPS file. We must take care to specify the +correct \texttt{fillsize} parameter, because otherwise the default values are +large and will load the file many times, perhaps just really using few +occurrences as the other ones would be clipped... + +\begin{LTXexample}[pos=t] + \psboxfill{\includegraphics{images/flowers}} + \begin{pspicture}(8,4) + \psellipse[fillstyle=boxfill,fillsize={(8,4)}](4,2)(4,2) + \end{pspicture} +\end{LTXexample} + +\subsection{Tiling of characters} + + We can also use the \cs{psboxfill} macro to fill the interior of characters +for special effects like these ones: + +\begin{LTXexample}[pos=t] + \DeclareFixedFont{\bigsf}{T1}{phv}{b}{n}{4.5cm} + \DeclareFixedFont{\smallrm}{T1}{ptm}{m}{n}{3mm} + \psboxfill{\smallrm Since 182 days...} + \begin{pspicture*}(8,4) + \centerline{% + \pscharpath[fillstyle=gradient,gradangle=-45, + gradmidpoint=0.5,addfillstyle=boxfill, + fillangle=45,fillsep=0.7mm] + {\rput[b](0,0.1){\bigsf 2000}}} + \end{pspicture*} +\end{LTXexample} + +\begin{LTXexample}[pos=t] + \DeclareFixedFont{\mediumrm}{T1}{ptm}{m}{n}{2cm} + \psboxfill{% + \psset{unit=0.1,linewidth=0.2pt} + \Kangaroo{PeachPuff}\Kangaroo{PaleGreen}% + \Kangaroo{LightBlue}\Kangaroo{LemonChiffon}% + \psscalebox{-1 1}{% + \rput(1.235,4.8){% + \Kangaroo{LemonChiffon}\Kangaroo{LightBlue}% + \Kangaroo{PaleGreen}\Kangaroo{PeachPuff}}}}% +% A kangaroo of kangaroos... + \begin{pspicture}(8,2) + \pscharpath[linestyle=none,fillstyle=boxfill,fillloopadd=1] + {\rput[b](4,0){\mediumrm Kangaroo}} + \end{pspicture} +\end{LTXexample} + +\subsection{Other kinds of usage} + + Other kinds of usage can be imagined. For instance, we can use tilings in a +sort of degenerated way to draw some special lines made by a unique or +multiple repeating patterns. But it can be only a special dashed line, as here +with three different dashes: + +\begin{LTXexample}[pos=t] + \newcommand{\Dashes}{% + \psset{dimen=middle} + \begin{pspicture}(0,-0.5\pslinewidth)(1,0.5\pslinewidth) + \rput(0,0){\psline(0.4,0)}% + \rput(0.5,0){\psline(0.2,0)}% + \rput(0.8,0){\psline(0.1,0)} + \end{pspicture}} + + \newcommand{\SpecialDashedLine}[3]{% + \psboxfill{#3} + \Tiling[linestyle=none] + {(#1,-0.5\pslinewidth)(#2,0.5\pslinewidth)}} + + \SpecialDashedLine{0}{7}{\Dashes} + + \psset{unit=0.5,linewidth=1mm,linecolor=red} + \SpecialDashedLine{0}{10}{\Dashes} +\end{LTXexample} + + It allows also to use special patterns in business graphics, as in the +following example generated by \texttt{PstChart}\footnote{A personal +development to draw business charts with PSTricks, not distributed.}. + + +\vspace{3mm} +\begin{figure}[!ht] +\centering +\psset{unit=0.75cm} +% Generated by pstchart.sh version 0.21 (11/28/97) +{\psset{dimen=middle} +\psset{xunit=2,yunit=5} +\begin{pspicture}(-0.6,-0.2)(6.6,2.3) +% Title + \rput(3,2.200){\shortstack{Fantaisist repartition of kangaroos\\ + in the world (in thousands)}} +% Frame background + \psframe*[linecolor=LemonChiffon!40](0,0)(6,2.000) +% Graduations + \multido{\r=0.0+0.500,\n=0+500}{5}{\rput[r](-0.12,\r){\psscalebox{0.8}{\n}}} +% Minor ticks + \multips(0,0.100)(0,0.100){19}{\psline[unit=4.8pt](1,0)} + \multips(6,0.100)(0,0.100){19}{\psline[unit=4.8pt](-1,0)} +% Major ticks + \multips(0,0.500)(0,0.500){3}{\psline[unit=9.6pt](1,0)} + \multips(6,0.500)(0,0.500){3}{\psline[unit=9.6pt](-1,0)} +% Lines from major ticks marks + \multips(0,0.500)(0,0.500){3}{\psline[linestyle=dotted,linewidth=0.6pt](6,0)} +% Drawing for the data + \psset{linestyle=none,fillcycley=1,fillcyclex=1,fillloopaddy=2} + \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{red}} + \rput(0.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,1.8)} + \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{yellow}} + \rput(1.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.8)} + \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{cyan}} + \rput(2.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.55)} + \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{magenta}} + \rput(3.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.5)} + \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{green}} + \rput(4.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.2)} +% Bottom labels + \uput{0.2}[270]{0}(1,0){\psscalebox{0.7}{Oceania}} + \uput{0.2}[270]{0}(2,0){\psscalebox{0.7}{Africa}} + \uput{0.2}[270]{0}(3,0){\psscalebox{0.7}{Asia}} + \uput{0.2}[270]{0}(4,0){\psscalebox{0.7}{America}} + \uput{0.2}[270]{0}(5,0){\psscalebox{0.7}{Europe}} +% Frame box around the chart + \psframe[linestyle=solid](0,0)(6,2.000) +\end{pspicture}} + \caption{Bar chart generated by PstChart, with bars filled by patterns} + \label{fig:PstChart} +\end{figure} + + +\section{``Dynamic'' tilings} + + In some cases, tilings used non \emph{static} tiles, that is to say that the +\emph{prototile(s)}, even if unique, can have several forms, by instance +specified by different colors or rotations, not fixed before generation or +varying each time. + +\subsection{Lewthwaite-Pickover-Truchet tiling} + + + + + + We give here for example the so-called \emph{Truchet} tiling, which much be +in fact better called \emph{Lewthwaite-Pick\-over-Truchet (LPT)} tiling% +\footnote{For description of the context, history and references about +S\'ebastien \textsc{Truchet} and this tiling, see \cite{EsperetGirou98}.}. + + The unique prototile is only a square with two opposite circle arcs. +This tile has obviously two positions, if we rotate it from 90 degrees (see +the two tiles on the next figure). A \emph{LPT tiling} is a tiling with +randomly oriented LPT tiles. We can see that even if it is very simple in it +principle, it draw sophisticated curves with strange properties. + + Nevertheless, in the straightforward way \FillPackage{} does not work, +because the \Lcs{psboxfill} macro store the content of the tile used in a +\TeX{} box, which is static. So the calling to the random function is done +only one time, which explain that only one rotation of the tile is used for +all the tiling. It's only the one of the two rotations which could differ from +one drawing to the next one... + +% Truchet (Lewthwaite-Pickover-Truchet) tiling +% -------------------------------------------- + +\begin{LTXexample}[pos=t] +% LPT prototile + \newcommand\ProtoTileLPT{% + \psset{dimen=middle} + \begin{pspicture}(1,1) + \psframe(1,1) + \psarc(0,0){0.5}{0}{90} + \psarc(1,1){0.5}{-180}{-90} + \end{pspicture}} + +% LPT tile + \newcount\Boolean + \newcommand{\BasicTileLPT}{% +% From random.tex by Donald Arseneau + \setrannum{\Boolean}{0}{1}% + \ifnum\Boolean=0 + \ProtoTileLPT% + \else + \psrotateleft{\ProtoTileLPT}% + \fi} + + \ProtoTileLPT\hfill\psrotateleft{\ProtoTileLPT}\hfill + \psset{unit=0.5} + \psboxfill{\BasicTileLPT} + \Tiling{(5,5)} +\end{LTXexample} + + + But, for simple cases, there is a solution to this problem using a mixture +of PSTricks and PostScript programming. Here the PSTricks +construction \Lcs{pscustom}\verb+{+\Lcs{code}\verb+{...}}+ allow to insert PostScript code +inside the \LaTeX{} + PSTricks one. + + Programmation is less straightforward, but it has also the advantage to be +notably faster, as all the tilings operations are done in PostScript, and +mainly to not be limited by \TeX{} memory (the \TeX{} + PSTricks solution +I wrote in 1995 for the colored problem was limited to small sizes for this +reason). Just note also that \Lcs{pslbrace} and \Lcs{psrbrace} are two +PSTricks macros to define and be able to insert the \verb+{+ and \verb+}+ +characters. + + + + +\begin{LTXexample}[pos=t] +% LPT prototile +\newcommand\ProtoTileLPT{% + \psset{dimen=middle} + \psframe(1,1) + \psarc[linecolor=blue](0,0){0.5}{0}{90} + \psarc[linecolor=red](1,1){0.5}{-180}{-90}} + +\newcount\InitCounter + +\ifPSTlualatex + \newcommand\BasicTileLPT{% + \InitCounter=\the\time + \begin{pspicture}(1,1) + \pstverb{ + rand \the\InitCounter\space add 2 mod 0 eq + {\luaPSTbox\hbox{\ProtoTileLPT}}% + { 1 0 \csname tx@ScreenCoor\endcsname translate + \luaPSTbox\hbox{\psrotateleft{\ProtoTileLPT}}} ifelse /.TeXBox findresource exec + }% + \end{pspicture}} +\else + \newcommand\BasicTileLPT{% + \InitCounter=\the\time + \pscustom{\code{% + rand \the\InitCounter\space add 2 mod 0 eq \pslbrace}} + \begin{pspicture}(1,1) + \ProtoTileLPT + \end{pspicture}% + \pscustom{\code{\psrbrace \pslbrace}} + \psrotateleft{\ProtoTileLPT}% + \pscustom{\code{\psrbrace ifelse}}} +\fi +\psset{fillcycley=1,fillcyclex=1,fillloopaddy=2,unit=0.4,linewidth=0.8pt} +\psboxfill{\BasicTileLPT} +\Tiling{(10,10)} +\end{LTXexample} + + + + + Using the very surprising fact (see \cite{EsperetGirou98}) that +coloration of these tiles do not depend of their neighbors (even if it is +difficult to believe as the opposite seems obvious!) but only of the parity of +the value of row and column positions, we can directly program in the same way +a colored version of the LPT tiling. + + We have also introduce in the \FillPackage{} code for \emph{tiling} mode two +new accessible Post\-Script variables, \texttt{row} and +\texttt{column}\footnotemark, which can be useful in some circonstances, like +this one. + + + + + +\newcommand\ProtoTileLPT[2]{% + \psset{dimen=middle,linestyle=none,fillstyle=solid} + \psframe[fillcolor=#1](1,1) + \psset{fillcolor=#2} + \pswedge(0,0){0.5}{0}{90} + \pswedge(1,1){0.5}{-180}{-90}} + +\newcount\InitCounter + +\ifPSTlualatex + \newcommand\BasicTileLPT[2]{% + \InitCounter=\the\time + \begin{pspicture}(1,1)% + \pstverb{ + rand \the\InitCounter\space sub 2 mod 0 eq { + \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{% + \ProtoTileLPT{#1}{#2}% + }} {\luaPSTbox\hbox{% + \ProtoTileLPT{#2}{#1}% + }} ifelse /.TeXBox findresource exec + } { + 1 0 \csname tx@ScreenCoor\endcsname translate + \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{% + \psrotateleft{\ProtoTileLPT{#2}{#1}}% + }} {\luaPSTbox\hbox{% + \psrotateleft{\ProtoTileLPT{#1}{#2}}% + }} ifelse /.TeXBox findresource exec + } ifelse + }% + \end{pspicture}} +\else + \newcommand\BasicTileLPT[2]{% + \InitCounter=\the\time + \pscustom{\code{% + rand \the\InitCounter\space sub 2 mod 0 eq \pslbrace + row column add 2 mod 0 eq \pslbrace}} + \begin{pspicture}(1,1)\ProtoTileLPT{#1}{#2}\end{pspicture}% + \pscustom{\code{\psrbrace \pslbrace}} + \ProtoTileLPT{#2}{#1}% + \pscustom{\code{% + \psrbrace ifelse \psrbrace \pslbrace row column add 2 mod 0 eq \pslbrace}} + \psrotateleft{\ProtoTileLPT{#2}{#1}}\pscustom{\code{\psrbrace \pslbrace}} + \psrotateleft{\ProtoTileLPT{#1}{#2}}\pscustom{\code{\psrbrace ifelse \psrbrace ifelse}}} +\fi + +\psboxfill{\BasicTileLPT{red}{yellow}} +\Tiling{(4,4)}\hfill +\psset{unit=0.4}\psboxfill{\BasicTileLPT{blue}{cyan}} +\Tiling{(15,15)} + + +\psset{unit=1cm} +\begin{lstlisting} +\newcommand\ProtoTileLPT[2]{% + \psset{dimen=middle,linestyle=none,fillstyle=solid} + \psframe[fillcolor=#1](1,1) + \psset{fillcolor=#2} + \pswedge(0,0){0.5}{0}{90} + \pswedge(1,1){0.5}{-180}{-90}} + +\newcount\InitCounter + + \newcommand\BasicTileLPT[2]{% + \InitCounter=\the\time + \begin{pspicture}(1,1)% + \pstverb{ + rand \the\InitCounter\space sub 2 mod 0 eq { + \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{% + \ProtoTileLPT{#1}{#2}% + }} {\luaPSTbox\hbox{% + \ProtoTileLPT{#2}{#1}% + }} ifelse /.TeXBox findresource exec + } { + 1 0 \csname tx@ScreenCoor\endcsname translate + \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{% + \psrotateleft{\ProtoTileLPT{#2}{#1}}% + }} {\luaPSTbox\hbox{% + \psrotateleft{\ProtoTileLPT{#1}{#2}}% + }} ifelse /.TeXBox findresource exec + } ifelse + }% + \end{pspicture}} + + \psboxfill{\BasicTileLPT{red}{yellow}} + \Tiling{(4,4)}\hfill + \psset{unit=0.4}\psboxfill{\BasicTileLPT{blue}{cyan}} + \Tiling{(15,15)} +\end{lstlisting} + + + Another classic example is to generate coordinates and numerotation for a +grid. Of course, it is possible to do it directly in PSTricks using nested +\Lcs{multido} commands. It would be clearly easy to program, but, nevertheless, +for users who have a little knowledge of PostScript programming, this offer +an alternative which is useful for large cases, because on this way it will +be notably faster and less computer ressources consuming. + + Remember here that the tiling is drawn from left to right, and top to +bottom, and note that the PostScript variable \texttt{x2} give the total +number of columns. + + + +\begin{externalDocument}[ +% grfOptions={width=0.48\linewidth}, +% pages={1,3}, +% frame, + compiler=lualatex, +% showFilename, + crop, + cropmargin=5, + eps, + force, + %runs=2, + code, + docType=latex, + %frame, + %lstOptions={columns=fixed} + ]{pst-fill-doc} +\RequirePackage{pdfmanagement-testphase} +\DeclareDocumentMetadata{uncompress} +\documentclass{article} +\pagestyle{empty} +\usepackage[tiling]{pst-fill} +%StartVisiblePreamble +\newcommand\Square{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}} +\newcommand\Tiling[2][]{% + \begin{pspicture}#2 \psframe[fillstyle=boxfill,#1]#2\end{pspicture}} +\newcommand\ProtoTile{% + \Square + \pscustom{% + \moveto(-0.9,0.75) % In PSTricks units + \code{\ifPSTlualatex\txfillDict\fi + /Times-Italic findfont 8 scalefont setfont + (\string\() show row 3 string cvs show (,) show + column 3 string cvs show (\string\)) show \ifPSTlualatex end \fi} + \moveto(-0.5,0.25) % In PSTricks units + \code{\ifPSTlualatex\txfillDict\fi + /Times-Bold findfont 18 scalefont setfont + 1 0 0 setrgbcolor % Red color + /center { dup stringwidth pop 2 div neg 0 rmoveto } def + row 1 sub x2 mul column add 3 string cvs + center show \ifPSTlualatex end \fi }}} +%StopVisiblePreamble +\begin{document} +\psset{fillcycley=0,fillcyclex=0,fillloopaddy=0} +\psboxfill{\ProtoTile} +\Tiling{(6,4)} +\end{document} +\end{externalDocument} + + + +\subsection{A complete example: the Poisson equation} + + To finish, we will show a complete real example, a drawing to explain the +method used to solve the \textsc{Poisson} equation by a domain +decomposition method, adapted to distributed memory computers. The +objective is to show the communications required between processes and the +position of the data to exchange. This code also show some useful and powerful +technics for PSTricks programming (look specially at the way some higher level +macros are defined, and how the same object is used to draw the four +neighbors). + +\psset{unit=1cm} +\newcommand{\Pattern}[1]{% + \begin{pspicture}(-0.25,-0.25)(0.25,0.25)\rput{*0}{\psdot[dotstyle=#1]} + \end{pspicture}} +\newcommand{\West}{\Pattern{o}} \newcommand{\South}{\Pattern{x}} +\newcommand{\Central}{\Pattern{+}}\newcommand{\North}{\Pattern{square}} +\newcommand{\East}{\Pattern{triangle}} +\newcommand{\Cross}{% + \pspolygon[unit=0.5,linewidth=0.2,linecolor=red](0,0)(0,1)(1,1)(1,2)(2,2)(2,1)% + (3,1)(3,0)(2,0)(2,-1)(1,-1)(1,0)} +\newcommand{\StylePosition}[1]{\LARGE\textcolor{red}{\textbf{#1}}} +\newcommand{\SubDomain}[4]{% + \psboxfill{#4}\begin{psclip}{\psframe[linestyle=none]#1}% + \psframe[linestyle=#3](5,5)\psframe[fillstyle=boxfill]#2% + \end{psclip}} +\newcommand{\SendArea}[1]{\psframe[fillstyle=solid,fillcolor=cyan]#1} +\newcommand{\ReceiveData}[2]{% + \psboxfill{#2}\psframe[fillstyle=solid,fillcolor=yellow,addfillstyle=boxfill]#1}% +\newcommand{\Neighbor}[2]{% + \begin{pspicture}(5,5) + \rput{*0}(2.5,2.5){\StylePosition{#1}} + \ReceiveData{(0.5,0)(4.5,0.5)}{\Central}\SendArea{(0.5,0.5)(4.5,1)}% + \SubDomain{(5,2)}{(0.5,0.5)(4.5,3)}{dashed}{#2}% + \pcarc[arcangle=45,arrows=->](0.5,-1.25)(0.5,0.25)% + \pcarc[arcangle=45,arrows=->,linestyle=dotted,dotsep=2pt](4.5,0.75)(4.5,-0.75)% + \end{pspicture}}% + \psset{dimen=middle,dotscale=2,fillloopadd=2} +\begin{pspicture}(-5.7,-5.7)(5.7,5.7) + \rput(0,0){% + \begin{pspicture}(5,5) + \ReceiveData{(0,0.5)(0.5,4.5)}{\West} \ReceiveData{(4.5,0.5)(5,4.5)}{\East} + \ReceiveData{(0.5,4.5)(4.5,5)}{\North}\ReceiveData{(0.5,0)(4.5,0.5)}{\South} + \SendArea{(0.5,0.5)(1,4.5)}\SendArea{(4,0.5)(4.5,4.5)} + \SendArea{(0.5,0.5)(4.5,1)}\SendArea{(0.5,4)(4.5,4.5)} + \SubDomain{(5,5)}{(0.5,0.5)(4.5,4.5)}{solid}{\Central} + \psline(1,0.5)(1,4.5)\psline(4,0.5)(4,4.5)% + \rput(1.5,4){\Cross}\rput(2,2){\Cross}% + \end{pspicture}}% + \rput(0,5.5){\Neighbor{N}{\North}}\rput{-90}(5.5,0){\Neighbor{E}{\East}}% + \rput{90}(-5.5,0){\Neighbor{W}{\West}}\rput{180}(0,-5.5){\Neighbor{S}{\South}}% +\end{pspicture} + +\begin{lstlisting} + \newcommand{\Pattern}[1]{% + \begin{pspicture}(-0.25,-0.25)(0.25,0.25)\rput{*0}{\psdot[dotstyle=#1]} + \end{pspicture}} + \newcommand{\West}{\Pattern{o}} \newcommand{\South}{\Pattern{x}} + \newcommand{\Central}{\Pattern{+}}\newcommand{\North}{\Pattern{square}} + \newcommand{\East}{\Pattern{triangle}} + \newcommand{\Cross}{% + \pspolygon[unit=0.5,linewidth=0.2,linecolor=red](0,0)(0,1)(1,1)(1,2)(2,2)(2,1) + (3,1)(3,0)(2,0)(2,-1)(1,-1)(1,0)} + \newcommand{\StylePosition}[1]{\LARGE\textcolor{red}{\textbf{#1}}} + \newcommand{\SubDomain}[4]{% + \psboxfill{#4} + \begin{psclip}{\psframe[linestyle=none]#1} + \psframe[linestyle=#3](5,5)\psframe[fillstyle=boxfill]#2 + \end{psclip}} + \newcommand{\SendArea}[1]{\psframe[fillstyle=solid,fillcolor=cyan]#1} + \newcommand{\ReceiveData}[2]{% + \psboxfill{#2} + \psframe[fillstyle=solid,fillcolor=yellow,addfillstyle=boxfill]#1} + \newcommand{\Neighbor}[2]{% + \begin{pspicture}(5,5) + \rput{*0}(2.5,2.5){\StylePosition{#1}} + \ReceiveData{(0.5,0)(4.5,0.5)}{\Central}\SendArea{(0.5,0.5)(4.5,1)} + \SubDomain{(5,2)}{(0.5,0.5)(4.5,3)}{dashed}{#2}% +% Receive and send arrows + \pcarc[arcangle=45,arrows=->](0.5,-1.25)(0.5,0.25) + \pcarc[arcangle=45,arrows=->,linestyle=dotted,dotsep=2pt](4.5,0.75)(4.5,-0.75) + \end{pspicture}} + \psset{dimen=middle,dotscale=2,fillloopadd=2} + \begin{pspicture}(-5.7,-5.7)(5.7,5.7) +% Central domain + \rput(0,0){% + \begin{pspicture}(5,5) +% Receive from West, East, North and South + \ReceiveData{(0,0.5)(0.5,4.5)}{\West} \ReceiveData{(4.5,0.5)(5,4.5)}{\East} + \ReceiveData{(0.5,4.5)(4.5,5)}{\North}\ReceiveData{(0.5,0)(4.5,0.5)}{\South} +% send area for West, East, North and South + \SendArea{(0.5,0.5)(1,4.5)} \SendArea{(4,0.5)(4.5,4.5)} + \SendArea{(0.5,0.5)(4.5,1)} \SendArea{(0.5,4)(4.5,4.5)} +% Central domain + \SubDomain{(5,5)}{(0.5,0.5)(4.5,4.5)}{solid}{\Central} +% Redraw overlapped linesY + \psline(1,0.5)(1,4.5) \psline(4,0.5)(4,4.5) +% Two crossesY + \rput(1.5,4){\Cross} \rput(2,2){\Cross} + \end{pspicture}} +% The four neighborsY + \rput(0,5.5){\Neighbor{N}{\North}} \rput{-90}(5.5,0){\Neighbor{E}{\East}} + \rput{90}(-5.5,0){\Neighbor{W}{\West}} \rput{180}(0,-5.5){\Neighbor{S}{\South}} + \end{pspicture} +\end{lstlisting} +% + +\section{Debugging} + +For debugging (to debug, set PstDebug=1) +we now use the one from pstricks to prevent a clash with package +pstricks 2004-06-22 +% \define@key[psset]{pst-fill}{PstDebug}{\pst@getint{#1}\psk@PstDebug} + \psset{PstDebug=0} + +\printbibliography +\printindex + + +\end{document} + diff --git a/graphics/pstricks/contrib/pst-fill/latex/pst-fill.sty b/graphics/pstricks/contrib/pst-fill/latex/pst-fill.sty new file mode 100644 index 0000000000..d5a2eb9736 --- /dev/null +++ b/graphics/pstricks/contrib/pst-fill/latex/pst-fill.sty @@ -0,0 +1,23 @@ +%% +%% This is file `pst-fill.sty', +%% +%% Denis Girou (CNRS/IDRIS - France) +%% Herbert Voss +%% (C) 2007-2021 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-fill' is a PSTricks package for filling and tiling areas +%% +\RequirePackage{pstricks} +\ProvidesPackage{pst-fill}[2010/03/20 package wrapper for pst-fill.tex (hv)] +\DeclareOption{tiling}{\def\PstTiling{true}} +\ProcessOptions\relax +\input{pst-fill.tex} +\ProvidesFile{pst-fill.tex} [\filedate\space v\fileversion\space `PST-fill' (tvz,dg,hv)] +\endinput +%% +%% End of file `pst-fill.sty'. diff --git a/graphics/pstricks/contrib/pst-fill/pst-fill.dtx b/graphics/pstricks/contrib/pst-fill/pst-fill.dtx deleted file mode 100644 index 43961608a2..0000000000 --- a/graphics/pstricks/contrib/pst-fill/pst-fill.dtx +++ /dev/null @@ -1,1817 +0,0 @@ -% \iffalse meta-comment, etc. -%% -%% Package `pst-fill.dtx' -%% -%% Denis Girou (CNRS/IDRIS - France) -%% Herbert Voss -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -%% -%% DESCRIPTION: -%% `pst-fill' is a PSTricks package for filling and tiling areas -%% -% \fi -% \changes{v1.01}{2007/03/10}{bugfix for incomplete ifx (hv)} -% \changes{v1.00}{2006/11/06}{use pst-xkey for extend keys (hv)} -% \changes{v0.99}{2004/08/17}{merge the VTeX and TeX versions (patch 4) (hv)} -% \changes{v0.98}{2004/06/22}{delete the Pst@Debug option and use the -% the one from pstricks to prevent a clash with pst-gr3d (hv)} -% \changes{v0.97}{2001/10/09}{make it work with VTeX (mv)} -% \changes{v0.94}{1997/04/08}{With a \PstTiling macro defined (or "tiling" optional parameter -% on \textbackslash usepackage[tiling]{pst-fill}), this file run exactly as -% the original boxfill.tex file from Timothy, version 0.94, -% except a correction in \textbackslash pst@ManualFillCycle to avoid a division by 0. -% It's the default.} -% \changes{v0.93}{1997/04/07}{With a \textbackslash PstTiling macro defined (or "tiling" optional parameter -% on \textbackslash usepackage[tiling]{pst-fill}) there are several add-ons -% and changes to do `tiling' rather than `filling' in "automatic" mode : -% - we fix the position of the beginning of tiling, -% - we allow normally the framing of the area as expected, using -% the line.... parameters -% - we define move parameters fillmovex, fillmovey and fillmove, -% - we define fillcyclex as previous fillcycle parameter, and add the -% fillcycley and fillcycle (both fillcyclex and fillcycley) ones -% - we can extend the tiling area using fillloopaddx, fillloopaddy and -% fillloopadd parameters, -% - we can debug and see the whole tiling area without clipping using -% PstDebug parameter, -% - for names consistancy, we can use fillangle in place of boxfillangle -% and fillsize in place of boxfillsize, -% - default value for fillsep is 0 and for fillsize is auto.} -% -% \DoNotIndex{\!,\",\#,\$,\%,\&,\',\(,\+,\*,\,,\-,\.,\/,\:,\;,\<,\=,\>,\?} -% \DoNotIndex{\@,\@B,\@K,\@cTq,\@f,\@fPl,\@ifnextchar,\@nameuse,\@oVk} -% \DoNotIndex{\[,\\,\],\^,\_,\ } -% \DoNotIndex{\^,\\^,\\\^,$\^$,$\\^$,$\\^$} -% \DoNotIndex{\0,\2,\4,\5,\6,\7,\8,} -% \DoNotIndex{\A,\a} -% \DoNotIndex{\B,\b,\Bc,\begin,\Bq,\Bqc} -% \DoNotIndex{\C,\c,\catcode,\cJA,\CodelineIndex,\csname} -% \DoNotIndex{\D,\def,\define@key,\Df,\divide,\DocInput,\documentclass,\pst@addfams} -% \DoNotIndex{\eCN,\edef,\else,\eHd,\eMcj,\EnableCrossrefs,\end,\endcsname} -% \DoNotIndex{\endCenterExample,\endExample,\endinput,\endpsclip} -% \DoNotIndex{\PrintIndex,\PrintChanges,\ProvidesFile} -% \DoNotIndex{\endpspicture,\endSideBySideExample,\Example} -% \DoNotIndex{\F,\f,\FdUrr,\fi,\filedate,\fileversion,\FV@Environment} -% \DoNotIndex{\FV@UseKeyValues,\FV@XRightMargin,\FVB@Example,\fvset} -% \DoNotIndex{\G,\g,\GetFileInfo,\gr,\GradientLoaded,\gsFKrbK@o,\gsj,\gsOX} -% \DoNotIndex{\hbadness,\hfuzz,\HLEmphasize,\HLMacro,\HLMacro@i} -% \DoNotIndex{\HLReverse,\HLReverse@i,\hqcu,\HqY} -% \DoNotIndex{\I,\i,\ifx,\input,\Ir,\IU} -% \DoNotIndex{\j,\jl,\JT,\JVodH} -% \DoNotIndex{\K,\k,\kfSlL} -% \DoNotIndex{\L,\let} -% \DoNotIndex{\message,\mHNa,\mIU} -% \DoNotIndex{\N,\nB,\newcmykcolor,\newdimen,\newif,\nW} -% \DoNotIndex{\O,\oCDJDo,\ocQhVI,\OnlyDescription,\oRKJ} -% \DoNotIndex{\P,\p,\ProvidesPackage,\psframe,\pslinewidth,\psset} -% \DoNotIndex{\PstAtCode,\PSTricksLoaded} -% \DoNotIndex{\q,\Qr,\qssRXq,\qu,\qXjFQp,\qYL} -% \DoNotIndex{\R,\r,\RecordChanges,\relax,\RlaYI,\rN,\Rp,\rp,\RPDXNn,\rput} -% \DoNotIndex{\S,\scalebox,\SgY,\SideBySide@Example,\SideBySideExample} -% \DoNotIndex{\SgY,\sk,\Sp,\space,\sZb} -% \DoNotIndex{\T,\the,\tw@} -% \DoNotIndex{\u,\UiSWGEf@,\uJi,\usepackage,\uVQdMM,\UYj} -% \DoNotIndex{\VerbatimEnvironment,\VerbatimInput,\VrC@} -% \DoNotIndex{\WhZ,\WjKCYb,\WNs} -% \DoNotIndex{\XkN,\XW} -% \DoNotIndex{\Z,\ZCM,\Ze} -% \DoNotIndex{\addtocounter,\advance,\alph,\arabic,\AtBeginDocument,\AtEndDocument} -% \DoNotIndex{\AtEndOfPackage,\begingroup,\bfseries,\bgroup,\box,\csname} -% \DoNotIndex{\else,\endcsname,\endgroup,\endinput,\expandafter,\fi} -% \DoNotIndex{\TeX,\z@,\p@,\@one,\xdef,\thr@@,\string,\sixt@@n,\reset,\or,\multiply,\repeat,\RequirePackage} -% \DoNotIndex{\@cclvi,\@ne,\@ehpa,\@nil,\copy,\dp,\global,\hbox,\hss,\ht,\ifodd,\ifdim,\ifcase,\kern} -% \DoNotIndex{\chardef,\loop,\leavevmode,\ifnum,\lower} -% \setcounter{IndexColumns}{2} -% -% ^^A To extend the height used for the text -% -% ^^A Aligned labels in a description environment -%\newenvironment{Description}[1]{% -%\begin{list}{nothing}{\setlength{\leftmargin}{#1} -%\setlength{\labelwidth}{\leftmargin}\setlength{\labelsep}{1mm}}} -%{\end{list}} -% -% ^^A For macro names -%\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} -% -% -% ^^A From ltugboat.cls -% ^^A For references -%\makeatletter -%\newcommand\acro[1]{\textsc{#1}\@} -%\def\CTAN{\acro{CTAN}} -%\let\texttub\textsl % ^^A redefined in other situations -%\def\TUB{\texttub{TUGboat}} -%\def\TUG{\TeX\ \UG} -%\def\tug{\acro{TUG}} -%\def\UG{Users Group} -% ^^A For the bibliography -%\let\@internalcite\cite -%\def\cite{\def\@citeseppen{-1000}% -% \def\@cite##1##2{(##1\if@tempswa , ##2\fi)}% -% \def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} -%\def\etal{et\,al.\@} -%\newcommand\CTANdirectory[1]{\expandafter\urldef -% \csname CTAN@#1\endcsname\path} -%\newcommand\CTANfile[1]{\expandafter\urldef -% \csname CTAN@#1\endcsname\path} -%\newcommand\CTANref[1]{\expandafter\@setref\csname CTAN@#1\endcsname -% \relax{#1}} -%\makeatother -% ^^A Define CTAN addresses -%\CTANdirectory{mpattern}{graphics/metapost/macros/mpattern} -%\CTANdirectory{pstricks}{graphics/pstricks} -%\CTANdirectory{pst-fill.sty}{graphics/pstricks/latex/pst-fill.sty} -%\CTANdirectory{pst-fill}{graphics/pstricks/generic/pst-fill.tex} -%\CTANdirectory{Roegel}{graphics/metapost/contrib/macros/truchet} -%\CTANdirectory{xypic}{macros/generic/diagrams/xypic} -% -% ^^A Personal macros (D.G.) -% ^^A ---------------------- -% -% ^^A Some colors used -%\definecolor{LemonChiffon}{rgb}{1.,0.98,0.8} -%\definecolor{LightBlue} {rgb}{0.8,0.85,0.95} -%\definecolor{PaleGreen} {rgb}{0.88,1,0.88} -%\definecolor{PeachPuff} {rgb}{1.0,0.85,0.73} -% -% ^^A To define a unique string for TeX and LaTeX -%\newcommand{\AllTeX}{% -%{\rm(L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em)% -%T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} -% -% ^^A Bibliography style -%\bibliographystyle{ltugbib} -% -% ^^A Name macros -%\newcommand{\FillPackage}{\textsf{`pst-fill'}} -%\newcommand{\XYpic}{% -%\leavevmode\hbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}-pic}} -% -%\makeatletter -% -% ^^A Example environments -% ^^A (do not use in them the four JXYZ characters, that we will use -% ^^A as escape characters!) -% -% ^^A Default PSTricks parameters -% \psset{dimen=middle} -% -% ^^A Translation in PSTricks from the one drawn by Emmanuel Chailloux and -% ^^A Guy Cousineau for the MLgraph system -% ^^A (see /ftp.ens.fr:/pub/unix/lang/MLgraph/version-2.1/MLgraph-refman.ps.gz) -% ^^A The kangaroo itself is reproduce from an original picture from Raoul Raba -% \newcommand{\DimX}{2.47} -% \newcommand{\DimY}{4.8} -% \newcommand{\DimXDivTwo}{1.235} -% -% \newcommand{\KangarooItself}[1]{% -% ^^A Body -% \pspolygon[fillstyle=solid,fillcolor=#1]% -% (52.5,68)(55,72.5)(55.8,76.5)(56.8,79.8)(58.2,83)(60,85.8)(61.5,86.5) -% (64,87)(66,87.5)(67.8,87.3)(70,87)(71.5,87.3)(73,88)(74.7,88.5) -% (76,90.3)(77,91.5)(72.8,93.8)(69,96)(64.5,99)(59.4,103)(56.2,106.3) -% (53,110.5)(49.5,115.5)(47.2,119.9)(45.7,126)(43.2,123)(41.5,121)(37.5,125) -% (37,122.5)(36.8,120)(37,117)(37.6,113.5)(38.6,110)(40,106.3)(42,102.3) -% (43.5,99.5)(45,97)(46.2,94)(46.8,91.7)(47.2,88)(47,83.5)(46.3,80.8) -% (45.3,78.5)(42.5,76.5)(39.5,75.8)(36,75.9)(33,75.9)(29,76.2)(26,77) -% (22.3,77.5)(18,78.4)(12.8,79.3)(8.6,80)(5.5,80.3)(3,80.5)(0,80) -% (-5.2,78.5)(-9,76.3)(-11.2,74.8)(-13,72.5)(-16.5,68)(-16.5,68)(-19.5,62.5) -% (-22,58)(-25.5,53)(-29,48.5)(-32.5,45)(-36,42)(-39,39.5)(-44,37) -% (-49,35)(-51,34)(-53.5,34.5)(-55.5,36)(-56.5,38)(-56.5,40.5)(-55,41.5) -% (-53.5,41)(-51.5,41)(-50.5,43)(-50.5,44.5)(-51,47)(-51.5,47.2)(-56.5,47) -% (-58.5,46.5)(-60,44.7)(-62,42.3)(-63,39.5)(-63.5,36.3)(-63.5,33)(-63.1,29.5) -% (-61.5,26)(-58,23.6)(-54,22.2)(-50.7,22)(-47.5,22)(-44.5,22.3)(-41,23.5) -% (-36.8,25.8)(-33,28)(-28.5,31)(-23.4,35)(-20.2,38.3)(-17,42.5)(-13.5,47.5) -% (-11.2,51.9)(-9.7,58)(-7.2,55)(-5.5,53)(-1.5,57)(-1,54.5)(-0.8,52) -% (-1,49)(-1.6,45.5)(-2.6,42)(-4,38.3)(-6,34.3)(-7.5,31.5)(-9,29) -% (-10.2,26)(-10.8,23.7)(-11.2,20)(-11,15.5)(-10.3,12.8)(-9.3,10.5)(-6.5,8.5) -% (-3.5,7.8)(0,7.9)(3,7.9)(7,8.2)(10,9)(13.7,9.5)(18,10.4) -% (23.2,11.3)(27.4,12)(30.5,12.3)(33,12.5)(36,12)(41.2,10.5)(45,8.3) -% (47.2,6.8)(49,4.5)(52.5,0)(50,4.5)(49.2,8.5)(48.2,11.8)(46.8,15) -% (45,17.8)(43.5,18.5)(41,19)(39,19.5)(37.2,19.3)(35,19)(33.5,19.3) -% (32,20)(30.3,20.5)(29,22.3)(28,23.5)(28,23.5)(24.5,22.3)(21.5,22) -% (18.3,22)(15,22.2)(11,23.6)(7.5,26)(5.9,29.5)(5.5,33)(5.5,36.3) -% (6,39.5)(7,42.3)(9,44.7)(10.5,46.5)(12.5,47)(17.5,47.2)(18,47) -% (18.5,44.5)(18.5,43)(17.5,41)(15.5,41)(14,41.5)(12.5,40.5)(12.5,38) -% (13.5,36)(15.5,34.5)(18,34)(20,35)(25,37)(30,39.5)(33,42) -% (36.5,45)(40,48.5)(43.5,53)(47,58)(49.5,62.5)(52.5,68) -% ^^A Eye -% \pscircle*[linecolor=white](58.2,98.3){2\psxunit} -% \pscircle*(58.2,97.3){\psxunit} -% ^^A Mouth -% \psline(71.5,88)(70,89.3)(68.5,90.3)(67,91.9) -% ^^A Tear -% \psline(42,121)(45,118)(47,115.3)(48.5,112.7)(50,110)(51.8,106.5) -% (52.5,103.7)(53,100.5) -% \pspolygon(41.2,115.8)(43.2,114.7)(45,112.5)(47,109.8)(48,107)(49.5,104.2)% -% (50.5,101.6)(51,98.5)(47.7,100.6)(46,102.2)(44.8,104)(43.5,106) -% (42.5,108)(41.7,110.5)(41,113.2)} -% -% \newcommand{\Kangaroo}[1]{% -% \begin{pspicture}(\DimX,\DimY) -% \psset{unit=0.035278} -% \KangarooItself{#1} -% \end{pspicture}} -% -% \newcommand{\KangarooPstChart}[1]{{% -% \psset{xunit=0.006784,yunit=0.00735,linewidth=0.01} -% \begin{pspicture}(-65.5,0)(82,126) -% \KangarooItself{#1} -% \end{pspicture}}} -% -% -% ^^A For the possible index and changes log -% \setlength{\columnseprule}{0.6pt} -% -% ^^A Beginning of the documentation itself -%\title{\texttt{pst-fill}\\A PSTricks package for filling and tiling areas} -%\author{Timothy Van Zandt\thanks{\protect\url{tvz@econ.insead.fr}. (documentation by -% Denis Girou (\protect\url{Denis.Girou@idris.fr}) and Herbert Vo\ss (\protect\url{hvoss@tug.org}).}} -% -%\date{\shortstack{\today --- Version 1.00\\ -% {\small Documentation revised \today}}} -% \maketitle -% \tableofcontents -% -%\begin{abstract} -% \FillPackage{} is a PSTricks \cite{vanZandt93},\cite{Girou94},\cite{vanZandtGirou94}, -%\cite{Hoenig97},\cite{LGC97} package to draw easily -% various kinds of filling and tiling of areas. It is also a good example of -% the great power and flexibility of PSTricks, as in fact it is a very short -% program (it body is around 200~lines long) but nevertheless really powerful. -% -% \hspace{5mm} It was written in 1994 by Timothy \textsc{van Zandt} but -% publicly available only in PSTricks 97 and without any documentation. -% We describe here the version \emph{97 patch 2} of December 12, 1997, which -% is the original one modified by myself to manage \emph{tilings} in the -% so-called \emph{automatic} mode. This article would like to serve both of -% reference manual and of user's guide. -% -%This package is available on \CTAN{} in the -% \texttt{graphics/pstricks} directory (files \texttt{latex/pst-fill.sty} and -% \texttt{generic/pst-fill.tex}). -%\end{abstract} -% -%\section{Introduction} -% -% Here we will refer as \emph{filling} as the operation which consist to fill -%a defined area by a pattern (or a composition of patterns). We will refer as -%\emph{tiling} as the operation which consist to do the same thing, but with -%the control of the starting point, which is here the upper left corner. -%The pattern is positioned relatively to this point. This make an essential -%difference between the two modes, as without control of the starting point we -%can't draw \emph{tilings} (sometimes called \emph{tesselations}) as used in -%many fields of Art and Science% -%\footnote{For an extensive presentation of tilings, in their history and usage -%in many fields, see the reference book \cite{GS87}. -% -% In the \TeX{} world, few work was done on tilings. You can look at the -%\emph{tile} extension of the \XYpic{} package \cite{XYpic}, at the articles of -%Kees \textsc{van der Laan} \cite[paragraph 7]{LAAN96} (the tiling was in -%fact directly done in PostScript) and \cite{LAAN97}, at the \MP{} program -%(available on \CTANref{Roegel}) by Denis \textsc{Roegel} for the -%\textsc{Truchet} contest in 1995 \cite{EsperetGirou98} and at the \MP{} -%package \cite{Bolek98} to draw patterns, which have a strong connection with -%tilings.}. -% -% Nevertheless, as tilings are a wide and difficult field in mathematics, this -%package is limited to simple ones, mainly \emph{monohedral} tilings with one -%prototile (which can be composite, see section \ref{sec:KindTiles}). With some -%experience and wiliness we can do more and obtained easily rather -%sophisticated results, but obviously hyperbolic tilings like the famous -%\textsc{Escher} ones or aperiodic tilings like the \textsc{Penrose} ones are -%not in the capabilities of this package. For more complex needs, we must used -%low level and more painfull technics, with the basic \cs{multido} -%and \cs{multirput} macros. -% -%\section{Package history and description of it two different modes} -% -% As already said, this package was written in 1994 by Timothy \textsc{van -%Zandt}. Two modes were defined, called respectively \emph{manual} and -%\emph{automatic}. For both, the pattern is generated on contiguous positions in -%a rather large area which include the region to fill, later cut to the -%required dimensions by clipping mechanism. In the first mode, the pattern is -%explicitely inserted in the PostScript file each time. In the second one, the -%result is the same but with an unique explicit insertion of the pattern and a -%repetition done by PostScript. Nevertheless, in this method, the control of -%the starting point was loosed, so it allowed only to \emph{fill} a region and -%not to \emph{tile} it. -% -% See the difference between the two modes, \emph{tiling}: -% {\psset{unit=0.5cm}% -% \psboxfill{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}} -% \begin{pspicture}(3,3.3) -% \psframe[fillstyle=boxfill](3,3) -% \end{pspicture}} -% and \emph{filling}: -%{% -% \makeatletter -%\pst@def{BoxFill}< -% gsave -% gsave \tx@STV CM grestore dtransform CM idtransform -% abs /h ED abs /w ED -% pathbbox -% h div round 2 add cvi /y2 ED -% w div round 2 add cvi /x2 ED -% h div round 2 sub cvi /y1 ED -% w div round 2 sub cvi /x1 ED -% /y2 y2 y1 sub def -% /x2 x2 x1 sub def -% CP -% y1 h mul sub neg /y1 ED -% x1 w mul sub neg /x1 ED -% clip -% y2 { -% /x x1 def -% x2 { -% save CP x y1 T moveto Box restore -% /x x w add def -% } repeat -% /y1 y1 h add def -% } repeat -% currentpoint currentfont grestore setfont moveto> -% \makeatother -% -% \psset{unit=0.5} -% \psboxfill{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}} -% \begin{pspicture}(3,3.3) -% \psframe[fillstyle=boxfill](3,3) -% \end{pspicture} -% or -% \begin{pspicture}(3,3.3) -% \psframe[fillstyle=boxfill](3,3) -% \end{pspicture} -%} -%as we can see that initial position is arbitrary and dependent of -%the current point. -% -% -% It's clear that usage of filling is very restrictive comparing to tiling, -%as desired effects required very often the possibility to control the starting -%point. So, this mode was of limited interest, but unfortunately the -%\emph{manual} one has the very big disadvantage to require very huge amounts -%of ressources, mainly in disk space and consequently in printing time. -%A small tiling can require sometimes several megabytes in \emph{manual} mode! -%So, it was very often not really usable in practice. -% -%It is why I modified the code, to allow tilings in \emph{automatic} mode, -%controlling in this mode too the starting point. And most of the time, that is -%to say if some special options are not used, the tiling is done exactly in the -%region described, which make it faster. So there is no more reason to use the -%\emph{manual} mode, apart very special cases where \emph{automatic} one cannot -%work, as explained later -- currently, I know only one case. -% -% To load this modified \emph{automatic} mode, with \LaTeX{} use -%simply:\newline -%\verb+\usepackage[tiling]{pst-fill}+\newline -%and in plain \TeX{} after:\newline -%\verb+\input{pst-fill}+\newline -%add the following definition:\newline -%\verb+\def\PstTiling{true}+ -% -% To obtain the original behaviour, just don't use the \emph{tiling} optional -%keyword at loading. -% -% Take care than in \emph{tiling} mode, I introduce also some other changes. -%First I define aliases on some parameter names for consistancy (all specific -%parameters will begin by the \texttt{fill} prefix in this case) and I change -%some default values, which were not well adapted for tilings (\texttt{fillsep} -%is set to 0 and as explained \texttt{fillsize} set to \texttt{auto}). I rename -%\texttt{fillcycle} to \texttt{fillcyclex}. I also restore normal way so that -%the frame of the area is drawn and all line (\texttt{linestyle}, -%\texttt{linecolor}, \texttt{doubleline}, etc.) parameters are now active (but -%there are not in non \emph{tiling} mode). And I also introduce new parameters -%to control the tilings (see below). -% -% \textbf{In all the following examples, we will consider only the -% \emph{tiling} mode.} -% -% To do a tiling, we have just to define the pattern with the -% \verb+\psboxfill+ macro and to use the new \texttt{fillstyle} -% \verb+boxfill+. -% -% Note that tilings are drawn from left to right and top to bottom, which can -%have an importance in some circonstances. -% -% PostScript programmers can be also interested to know that, even in the -%\emph{automatic} mode, the iterations of the pattern are managed directly by -%the PostScript code of the package which used only PostScript Level 1 -%operators. The special ones introduced in Level 2 for drawing of patterns -%\cite[section 4.9]{PostScript95} are not used. -% -% And first, for conveniance, we define a simple \cs{Tiling} macro, which -%will simplify our examples: -% -%\begin{verbatim} -% \newcommand{\Tiling}[2][]{% -% \edef\Temp{#1}% -% \begin{pspicture}#2 -% \ifx\Temp\empty -% \psframe[fillstyle=boxfill]#2 -% \else -% \psframe[fillstyle=boxfill,#1]#2 -% \fi -% \end{pspicture}} -%\end{verbatim} -% -% -%\newcommand{\Tiling}[2][]{% -% \edef\Temp{#1}% -% \begin{pspicture}#2 -% \ifx\Temp\empty -% \psframe[fillstyle=boxfill]#2 -% \else -% \psframe[fillstyle=boxfill,#1]#2 -% \fi -% \end{pspicture}} -% -%\subsection{Parameters} -% -% There are \textbf{14} specific parameters available to change the way the -% filling/tiling is defined, and one debugging option. -% -% \begin{Description}{2cm} -% \item [fillangle (real)\hfill :] the value of the rotation -% applied to the patterns (\emph{Default:~0}). -% \end{Description} -% -% -% In this case, we must force the tiling area to be notably larger than the -% area to cover, to be sure that the defined area will be covered after rotation. -% \lstset{gobble=2} -% \begin{LTXexample} -% \newcommand{\Square}{% -% \begin{pspicture}(1,1) -% \psframe[dimen=middle](1,1) -% \end{pspicture}} -% \psset{unit=0.5} -% \psboxfill{\Square} -% \Tiling[fillangle=45]{(3,3)}\quad -% \Tiling[fillangle=-60]{(3,3)} -% \end{LTXexample} -% -% \newcommand{\Square}{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}} -% -% \begin{Description}{2cm} -% \setcounter{footnote}{1} -% \item[\texttt{fillsepx} (real$\|$dim) :] value of the horizontal -% separation between consecutive patterns (\emph{Default:~0 for -% tilings\footnotemark, 2pt otherwise}). \footnotetext{This option was added -% by me, is not part of the original package and is available only if the -% \texttt{tiling} keyword is used when loading the package.} -% \setcounter{footnote}{1} -% \item [\texttt{fillsepy} (real$\|$dim)\hfill :] value of the vertical -% separation between consecutive patterns (\emph{Default:~0 for -% ti\-lings\footnotemark, 2pt otherwise}). -% \setcounter{footnote}{1} -% \item [\texttt{fillsep} (real$\|$dim)\hfill :] value of horizontal and -% vertical separations between consecutive patterns (\emph{Default:~0 for -% tilings\footnotemark, 2pt otherwise}). -% \end{Description} -% -% These values can be negative, which allow the tiles to overlap. -% -% \begin{LTXexample} -% \psset{unit=0.5} -% \psboxfill{\Square} -% \Tiling[fillsepx=2mm]{(3,3)} -% \Tiling[fillsepy=1mm]{(3,3)}\\ -% \Tiling[fillsep=0.5]{(3,3)} -% \Tiling[fillsep=-0.5]{(3,3)} -% \end{LTXexample} -% -% \begin{Description}{2cm} -% \item [\texttt{fillcyclex}\footnotemark\ (integer)\hfill :] Shift -% coefficient applied to each row (\emph{Default:~0}). -% \footnotetext{It was \texttt{fillcycle} in the original version.} -% \setcounter{footnote}{1} -% \item [\texttt{fillcycley}\footnotemark\ (integer)\hfill :] Same thing for -% columns (\emph{Default:~0}). -% \setcounter{footnote}{1} -% \item [\texttt{fillcycle}\footnotemark\ (integer)\hfill :] Allow to fix -% both \texttt{fillcyclex} and \texttt{fillcycley} directly to the same value -% (\emph{Default:~0}). -% \end{Description} -% -% For instance, if \texttt{fillcyclex} is 2, the second row of patterns will -% be horizontally shifted by a factor of $\frac{1}{2}=0.5$, and by a factor of -% 0.333 if \texttt{fillcyclex} is 3, etc.). These values can be negative. -% -% \begin{LTXexample}[width=0.35\linewidth] -% \psset{unit=0.5} -% \psboxfill{\Square} -% \newcommand{\TilingA}[1]{\Tiling[fillcyclex=#1]{(3,3)}} -% \TilingA{0} \TilingA{1}\\ -% \TilingA{2} \TilingA{3}\\[3mm] -% \TilingA{4} \TilingA{5}\\ -% \TilingA{6} \TilingA{-3}\\[3mm] -% \Tiling[fillcycley=2]{(3,3)} -% \Tiling[fillcycley=3]{(3,3)}\\ -% \Tiling[fillcycley=-3]{(3,3)} -% \Tiling[fillcycle=2]{(3,3)} -% \end{LTXexample} -% -% \begin{Description}{2cm} -% \setcounter{footnote}{1} -% \item [\texttt{fillmovex}\footnotemark\ (real$\|$dim)\hfill :] value of the -% horizontal moves between consecutive patterns (\emph{Default:~0}). -% \setcounter{footnote}{1} -% \item [\texttt{fillmovey}\footnotemark\ (real$\|$dim)\hfill :] value of the -% vertical moves between consecutive patterns (\emph{Default:~0}). -% \setcounter{footnote}{1} -% \item [\texttt{fillmove}\footnotemark\ (real$\|$dim)\hfill :] value of -% horizontal and vertical moves between consecutive patterns -% (\emph{Default:~0}). -% \end{Description} -% -% These parameters allow the patterns to overlap and to draw some special -% kinds of tilings. They are implemented only for the \emph{automatic} and -% \emph{tiling} modes and their values can be negative. -% -% In some cases, the effect of these parameters will be the same that with the -% \texttt{fillcycle?} ones, but you can see that it is not true for some other -% values. -% -% \begin{LTXexample} -% \psset{unit=0.5} -% \psboxfill{\Square} -% \Tiling[fillmovex=0.5]{(3,3)} -% \Tiling[fillmovey=0.5]{(3,3)}\\ -% \Tiling[fillmove=0.5]{(3,3)} -% \Tiling[fillmove=-0.5]{(3,3)} -% \end{LTXexample} -% -% \begin{Description}{2cm} -% \item [\texttt{fillsize} -% (auto$\|$\{(real$\|$dim,real$\|$dim)(real$\|$dim,real$\|$dim)\}) :] The -% choice of \emph{automatic} mode or the size of the area in \emph{manual} -% mode. If first pair values are not given, (0,0) is used. (\emph{Default: -% auto when \emph{tiling} mode is used, {(-15cm,-15cm)(15cm,15cm)} -% otherwise}). -% \end{Description} -% -% As explained in the introduction, the \emph{manual} mode can require very -% huge amount of computer ressources. So, it usage is to discourage in front off -% the \emph{automatic} mode. It seems only useful in special circonstances, in -% fact when the \emph{automatic} mode failed, which is known only in one case, -% for some kinds of EPS files, as the ones produce by dump of portions of -% screens (see \ref{sec:GraphicFiles}). -% -% \begin{Description}{2cm} -% \setcounter{footnote}{1} -% \item [\texttt{fillloopaddx}\footnotemark\ (integer)\hfill :] number of -% times the pattern is added on left and right positions (\emph{Default:~0}). -% \setcounter{footnote}{1} -% \item [\texttt{fillloopaddy}\footnotemark\ (integer)\hfill :] number of -% times the pattern is added on top and bottom positions (\emph{Default:~0}). -% \setcounter{footnote}{1} -% \item [\texttt{fillloopadd}\footnotemark\ (integer)\hfill :] number of -% times the pattern is added on left, right, top and bottom positions -% (\emph{Default:~0}). -% \end{Description} -% -% These parameters are only useful in special circonstances, as for complex -% patterns when the size of the rectangular box used to tile the area doesn't -% correspond to the pattern itself (see an example in Figure~\ref{fig:Sheeps}) -% and also sometimes when the size of the pattern is not a divisor of the size -% of the area to fill and that the number of loop repeats is not properly -% computed, which can occur. -% -% They are implemented only for the \emph{tiling} mode. -% -% \begin{Description}{2cm} -% \setcounter{footnote}{1} -% \item [\texttt{PstDebug}\footnotemark\ (integer, 0 or 1)\hfill :] to -% require to see the exact tiling done, without clipping (\emph{Default:~0}). -% \end{Description} -% -% It's mainly useful for debugging or to understand better how the tilings -% are done. It is implemented only for the \emph{tiling} mode. -% -% \begin{LTXexample} -% \psset{unit=0.3,PstDebug=1} -% \psboxfill{\Square} -% \psset{linewidth=1mm} -% \Tiling{(2,2)}\\[5mm] -% \Tiling[fillcyclex=2]{(2,2)}\\[1cm] -% \Tiling[fillmove=0.5]{(2,2)} -% \end{LTXexample} -% -% \vspace{3cm} -% \section{Examples} -% -% In fact this unique \cs{psboxfill} macro allow a lot a variations and -% different usages. We will try here to demonstrate this. -% -% \subsection{Kind of tiles} -% \label{sec:KindTiles} -% -% Of course, we can access to all the power of PSTricks macros to define the -% \emph{tiles} (\emph{patterns}) used. So, we can define complicated ones. -% -% Here we give four other Archimedian tilings (those built with only some -% regular polygons) among the twelve existing, first discovered completely by -% Johanes \textsc{Kepler} at the beginning of 17th century \cite{GS87}, the two -% other \emph{regular} ones with the tiling by squares, formed by a unique -% regular polygon, and two other formed by two different regular polygons. -% -% \begin{LTXexample}[pos=t] -% \newcommand{\Triangle}{% -% \begin{pspicture}(1,1) -% \pstriangle[dimen=middle](0.5,0)(1,1) -% \end{pspicture}} -% \newcommand{\Hexagon}{ -% ^^A sin(60)=0.866 -% \begin{pspicture}(0.866,0.75) -% \SpecialCoor -% ^^A Hexagon -% \pspolygon[dimen=middle]% -% (0.5;30)(0.5;90)(0.5;150)(0.5;210)(0.5;270)(0.5;330) -% \end{pspicture}} -% -% \psset{unit=0.5} -% \psboxfill{\Triangle} -% \Tiling{(4,4)}\hfill -% ^^A The two other regular tilings -% \Tiling[fillcyclex=2]{(4,4)}\hfill -% \psboxfill{\Hexagon} -% \Tiling[fillcyclex=2,fillloopaddy=1]{(5,5)} -% \end{LTXexample} -% -% \begin{LTXexample}[pos=t] -% \newcommand{\ArchimedianA}{% -% ^^A Archimedian tiling 3^2.4.3.4 -% \psset{dimen=middle} -% ^^A sin(60)=0.866 -% \begin{pspicture}(1.866,1.866) -% \psframe(1,1) -% \psline(1,0)(1.866,0.5)(1,1)(0.5,1.866)(0,1)(-0.866,0.5) -% \psline(0,0)(0.5,-0.866) -% \end{pspicture}} -% \newcommand{\ArchimedianB}{% -% ^^A Archimedian tiling 4.8^2 -% \psset{dimen=middle,unit=1.5} -% ^^A sin(22.5)=0.3827 ; cos(22.5)=0.9239 -% \begin{pspicture}(1.3066,0.6533) -% \SpecialCoor -% ^^A Octogon -% \pspolygon(0.5;22.5)(0.5;67.5)(0.5;112.5)(0.5;157.5) -% (0.5;202.5)(0.5;247.5)(0.5;292.5)(0.5;337.5) -% \end{pspicture}} -% -% \psset{unit=0.5} -% \psboxfill{\ArchimedianA} -% \Tiling[fillmove=0.5]{(7,7)}\hfill -% \psboxfill{\ArchimedianB} -% \Tiling[fillcyclex=2,fillloopaddy=1]{(7,7)} -% \end{LTXexample} -% -% \setcounter{footnote}{3} -% We can of course tile an area arbitrarily defined. And with the -% \texttt{addfillstyle} parameter\footnote{Introduced in PSTricks 97.}, we can -% easily mix the \texttt{boxfill} style with another one. -% -% \begin{LTXexample}[width=6cm] -% \psset{unit=0.5,dimen=middle} -% \psboxfill{% -% \begin{pspicture}(1,1) -% \psframe(1,1) -% \pscircle(0.5,0.5){0.25} -% \end{pspicture}} -% \begin{pspicture}(4,6) -% \pspolygon[fillstyle=boxfill,fillsep=0.25](0,1)(1,4)(4,6)(4,0)(2,1) -% \end{pspicture}\hspace{1em} -% \begin{pspicture}(4,4) -%% \pscircle[linestyle=none,fillstyle=solid,fillcolor=yellow,fillsep=0.5, -%% addfillstyle=boxfill](2,2){2} -% \end{pspicture} -% \end{LTXexample} -% -% Various effects can be obtained, sometimes complicated ones very easily, as -% in this example reproduced from one shown by Slavik \textsc{Jablan} in the -% field of \emph{OpTiles}, inspired by the \emph{Op-art}: -% -% \begin{LTXexample}[pos=t] -% \newcommand{\ProtoTile}{% -% \begin{pspicture}(1,1)%%% 1/12=0.08333 -% \psset{linestyle=none,linewidth=0, -% hatchwidth=0.08333\psunit,hatchsep=0.08333\psunit} -% \psframe[fillstyle=solid,fillcolor=black,addfillstyle=hlines,hatchcolor=white](1,1) -% \pswedge[fillstyle=solid,fillcolor=white,addfillstyle=hlines]{1}{0}{90} -% \end{pspicture}} -% \newcommand{\BasicTile}{% -% \begin{pspicture}(2,1) -% \rput[lb](0,0){\ProtoTile}\rput[lb](1,0){\psrotateleft{\ProtoTile}} -% \end{pspicture}} -% \ProtoTile\hfill\BasicTile\hfill -% \psboxfill{\BasicTile} -% \Tiling[fillcyclex=2]{(4,4)} -% \end{LTXexample} -% -% It is also directly possible to surimpose several different tilings. Here is -% the splendid visual proof of the \textsc{Pytha\-gore} theorem done by the arab -% mathematician \textsc{Annairizi} around the year 900, given by superposition -% of two tilings by squares of different sizes. -% -% \begin{LTXexample}[pos=t] -% \psset{unit=1.5,dimen=middle} -% \begin{pspicture*}(3,3) -% \psboxfill{\begin{pspicture}(1,1) -% \psframe(1,1)\end{pspicture}} -% \psframe[fillstyle=boxfill](3,3) -% \psboxfill{\begin{pspicture}(1,1) -% \rput{-37}{\psframe[linecolor=red](0.8,0.8)} -% \end{pspicture}} -% \psframe[fillstyle=boxfill](3,4) -% \pspolygon[fillstyle=hlines,hatchangle=90](1,2)(1.64,1.53)(2,2) -% \end{pspicture*} -% \end{LTXexample} -% -% In a same way, it is possible to build tilings based on figurative patterns, -% in the style of the famous \textsc{Escher} ones. Following an example of -% Andr\'e \textsc{Deledicq} \cite{Deledicq97}, we first show a simple tiling of -% the \emph{p1} category (according to the international classification of the -% 17~symmetry groups of the plane first discovered by the russian -% crystalographer Jevgraf \textsc{Fedorov} at the end of the 19th century): -% -% \begin{LTXexample}[pos=t] -% \newcommand{\SheepHead}[1]{% -% \begin{pspicture}(3,1.5) -% \pscustom[liftpen=2,fillstyle=solid,fillcolor=#1]{% -% \pscurve(0.5,-0.2)(0.6,0.5)(0.2,1.3)(0,1.5)(0,1.5) -% (0.4,1.3)(0.8,1.5)(2.2,1.9)(3,1.5)(3,1.5)(3.2,1.3) -% (3.6,0.5)(3.4,-0.3)(3,0)(2.2,0.4)(0.5,-0.2)} -% \pscircle*(2.65,1.25){0.12\psunit} % Eye -% \psccurve*(3.5,0.3)(3.35,0.45)(3.5,0.6)(3.6,0.4)% Muzzle -% ^^A % Mouth -% \pscurve(3,0.35)(3.3,0.1)(3.6,0.05) -% ^^A % Ear -% \pscurve(2.3,1.3)(2.1,1.5)(2.15,1.7)\pscurve(2.1,1.7)(2.35,1.6)(2.45,1.4) -% \end{pspicture}} -% \psboxfill{\psset{unit=0.5}\SheepHead{yellow}\SheepHead{cyan}} -% \Tiling[fillcyclex=2,fillloopadd=1]{(10,5)} -% \end{LTXexample} -% \label{fig:Sheeps} -% -% Now a tiling of the \emph{pg} category (the code for the kangaroo itself is -% too long to be shown here, but has no difficulties ; the kangaroo is reproduce -% from an original picture from Raoul \textsc{Raba} and here is a translation in -% PSTricks from the one drawn by Emmanuel \textsc{Chailloux} and Guy -% \textsc{Cousineau} for their MLgraph system \cite{MLgraphTSI}): -% -% \begin{LTXexample}[pos=t] -% \psboxfill{\psset{unit=0.4} -% \Kangaroo{yellow}\Kangaroo{red}\Kangaroo{cyan}\Kangaroo{green}% -% \psscalebox{-1 1}{% -% \rput(1.235,4.8){\Kangaroo{green}\Kangaroo{cyan}\Kangaroo{red}\Kangaroo{yellow}}}} -% \Tiling[fillloopadd=1]{(10,6)} -% \end{LTXexample} -% -% And here a \textsc{Wang} tiling \cite{Wang65}, \cite[chapter -% 11]{GS87}, based on very simple tiles of the form of a square and composed -% of four colored triangles. Such tilings are built with only a matching color -% constraint. Despite of it simplicity, it is an important kind of tilings, as -% \textsc{Wang} and others used them to study the special class of -% \emph{aperiodic} tilings, and also because it was shown that surprisingly this -% tiling is similar to a \textsc{Turing} machine. -% -% \begin{LTXexample}[pos=t] -% \newcommand{\WangTile}[4]{% -% \begin{pspicture}(1,1) -% \pspolygon*[linecolor=#1](0,0)(0,1)(0.5,0.5) -% \pspolygon*[linecolor=#2](0,1)(1,1)(0.5,0.5) -% \pspolygon*[linecolor=#3](1,1)(1,0)(0.5,0.5) -% \pspolygon*[linecolor=#4](1,0)(0,0)(0.5,0.5) -% \end{pspicture}} -% \newcommand{\WangTileA}{\WangTile{cyan}{yellow}{cyan}{cyan}} -% \newcommand{\WangTileB}{\WangTile{yellow}{cyan}{cyan}{red}} -% \newcommand{\WangTileC}{\WangTile{cyan}{red}{yellow}{yellow}} -% \newcommand{\WangTiles}[1][]{% -% \begin{pspicture}(3,3) \psset{ref=lb} -% \rput(0,2){\WangTileB} \rput(1,2){\WangTileA}% -% \rput(2,2){\WangTileC} \rput(0,1){\WangTileC}% -% \rput(1,1){\WangTileB} \rput(2,1){\WangTileA} -% \rput(0,0){\WangTileA} \rput(1,0){\WangTileC}% -% \rput(2,0){\WangTileB} -% #1 -% \end{pspicture}} -% \WangTileA\hfill\WangTileB\hfill\WangTileC\hfill -% \WangTiles[{\psgrid[subgriddiv=0,gridlabels=0](3,3)}]\hfill -% \psset{unit=0.4} \psboxfill{\WangTiles} \Tiling{(12,12)} -% \end{LTXexample} -% -% \subsection{External graphic files} -% \label{sec:GraphicFiles} -% -% We can also fill an arbitrary area with an external image. We have only, -% as usual, to matter of the \emph{BoundingBox} definition if there is no one -% provided or if it is not the accurate one, as for the well known -% \texttt{tiger} picture part of the \texttt{ghostscript} distribution. -% -% \begin{LTXexample}[pos=t] -% \psboxfill{%% Strangely require x1=x2... -% \begin{pspicture}(0,1)(0,4.1) -% \includegraphics[bb=17 176 560 74,width=3cm]{tiger} -% \end{pspicture}} -% \Tiling{(6,6.2)} -% \end{LTXexample} -% -% Nevertheless, there are some special files for which the \emph{automatic} -% mode doesn't work, specially for some files obtained by a screen dump, as in -% the next example, where a picture was reduced before it conversion in the -% \emph{Encapsulated PostScript} format by a screen dump utility. In this case, -% usage of the \emph{manual} mode is the only alternative, at the price of the -% real multiple inclusion of the EPS file. We must take care to specify the -% correct \texttt{fillsize} parameter, because otherwise the default values are -% large and will load the file many times, perhaps just really using few -% occurrences as the other ones would be clipped... -% -% \begin{LTXexample}[pos=t] -% \psboxfill{\includegraphics{flowers}} -% \begin{pspicture}(8,4) -% \psellipse[fillstyle=boxfill,fillsize={(8,4)}](4,2)(4,2) -% \end{pspicture} -% \end{LTXexample} -% -% \subsection{Tiling of characters} -% -% We can also use the \cs{psboxfill} macro to fill the interior of characters -% for special effects like these ones: -% -% \begin{LTXexample}[pos=t] -% \DeclareFixedFont{\bigsf}{T1}{phv}{b}{n}{4.5cm} -% \DeclareFixedFont{\smallrm}{T1}{ptm}{m}{n}{3mm} -% \psboxfill{\smallrm Since 182 days...} -% \begin{pspicture*}(8,4) -% \centerline{% -% \pscharpath[fillstyle=gradient,gradangle=-45, -% gradmidpoint=0.5,addfillstyle=boxfill, -% fillangle=45,fillsep=0.7mm] -% {\rput[b](0,0.1){\bigsf 2000}}} -% \end{pspicture*} -% \end{LTXexample} -% -% \begin{LTXexample}[pos=t] -% \DeclareFixedFont{\mediumrm}{T1}{ptm}{m}{n}{2cm} -% \psboxfill{% -% \psset{unit=0.1,linewidth=0.2pt} -% \Kangaroo{PeachPuff}\Kangaroo{PaleGreen}% -% \Kangaroo{LightBlue}\Kangaroo{LemonChiffon}% -% \psscalebox{-1 1}{% -% \rput(1.235,4.8){% -% \Kangaroo{LemonChiffon}\Kangaroo{LightBlue}% -% \Kangaroo{PaleGreen}\Kangaroo{PeachPuff}}}} -% ^^A % A kangaroo of kangaroos... -% \begin{pspicture}(8,2) -% \pscharpath[linestyle=none,fillstyle=boxfill,fillloopadd=1] -% {\rput[b](4,0){\mediumrm Kangaroo}} -% \end{pspicture} -% \end{LTXexample} -% -% \subsection{Other kinds of usage} -% -% Other kinds of usage can be imagined. For instance, we can use tilings in a -% sort of degenerated way to draw some special lines made by a unique or -% multiple repeating patterns. But it can be only a special dashed line, as here -% with three different dashes: -% -% \begin{LTXexample}[pos=t] -% \newcommand{\Dashes}{% -% \psset{dimen=middle} -% \begin{pspicture}(0,-0.5\pslinewidth)(1,0.5\pslinewidth) -% \rput(0,0){\psline(0.4,0)}% -% \rput(0.5,0){\psline(0.2,0)}% -% \rput(0.8,0){\psline(0.1,0)} -% \end{pspicture}} -% -% \newcommand{\SpecialDashedLine}[3]{% -% \psboxfill{#3} -% \Tiling[linestyle=none] -% {(#1,-0.5\pslinewidth)(#2,0.5\pslinewidth)}} -% -% \SpecialDashedLine{0}{7}{\Dashes} -% -% \psset{unit=0.5,linewidth=1mm,linecolor=red} -% \SpecialDashedLine{0}{10}{\Dashes} -% \end{LTXexample} -% -% It allow also to use special patterns in business graphics, as in the -% following example generated by \texttt{PstChart}\footnote{A personal -% development to draw business charts with PSTricks, not distributed.}. -% -% \vspace{3mm} -% \begin{figure}[!ht] -% \centering -% \psset{unit=0.75} -% ^^A % Generated by pstchart.sh version 0.21 (11/28/97) -% {\psset{dimen=middle} -% \psset{xunit=2,yunit=0.005} -% \begin{pspicture}(-0.6,-200)(6.6,2300) -% ^^A % Title -% \rput(3,2200){\shortstack{Fantaisist repartition of kangaroos\\ -% in the world (in thousands)}} -% ^^A % Frame background -% \psframe[fillstyle=solid,fillcolor=LemonChiffon](0,0)(6,2000) -% ^^A % Graduations -% \multido{\n=0+500}{5}{\rput[r](-0.12,\n){\psscalebox{0.8}{\n}}} -% ^^A % Minor ticks -% \multips(0,100)(0,100){19}{\psline[unit=4.8pt](1,0)} -% \multips(6,100)(0,100){19}{\psline[unit=4.8pt](-1,0)} -% ^^A % Major ticks -% \multips(0,500)(0,500){3}{\psline[unit=9.6pt](1,0)} -% \multips(6,500)(0,500){3}{\psline[unit=9.6pt](-1,0)} -% ^^A % Lines from major ticks marks -% \multips(0,500)(0,500){3}{\psline[linestyle=dotted,linewidth=0.6pt](6,0)} -% ^^A % Drawing for the data -% \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{red}} -% \psframe[linestyle=none,fillstyle=boxfill,fillloopaddy=1](0.61,0)(1.39,1800) -% \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{yellow}} -% \psframe[linestyle=none,fillstyle=boxfill,fillloopaddy=1](1.61,0)(2.39,800) -% \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{cyan}} -% \psframe[linestyle=none,fillstyle=boxfill,fillloopaddy=1](2.61,0)(3.39,550) -% \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{magenta}} -% \psframe[linestyle=none,fillstyle=boxfill,fillloopaddy=1](3.61,0)(4.39,500) -% \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{green}} -% \psframe[linestyle=none,fillstyle=boxfill,fillloopaddy=1](4.61,0)(5.39,200) -% ^^A % Bottom labels -% \uput{0.2}[270]{0}(1,0){\psscalebox{0.7}{Oceania}} -% \uput{0.2}[270]{0}(2,0){\psscalebox{0.7}{Africa}} -% \uput{0.2}[270]{0}(3,0){\psscalebox{0.7}{Asia}} -% \uput{0.2}[270]{0}(4,0){\psscalebox{0.7}{America}} -% \uput{0.2}[270]{0}(5,0){\psscalebox{0.7}{Europe}} -% ^^A % Frame box around the chart -% \psframe[linestyle=solid](0,0)(6,2000) -% \end{pspicture}} -% \caption{Bar chart generated by PstChart, with bars filled by patterns} -% \label{fig:PstChart} -% \end{figure} -% -% \section{``Dynamic'' tilings} -% -% In some cases, tilings used non \emph{static} tiles, that is to say that the -% \emph{prototile(s)}, even if unique, can have several forms, by instance -% specified by different colors or rotations, not fixed before generation or -% varying each time. -% -% \subsection{Lewthwaite-Pickover-Truchet tiling} -% -% We give here for example the so-called \emph{Truchet} tiling, which much be -% in fact better called \emph{Lewthwaite-Pick\-over-Truchet (LPT)} tiling% -% \footnote{For description of the context, history and references about -% S\'ebastien \textsc{Truchet} and this tiling, see \cite{EsperetGirou98}.}. -% -% The unique prototile is only a square with two opposite circle arcs. -% This tile has obviously two positions, if we rotate it from 90 degrees (see -% the two tiles on the next figure). A \emph{LPT tiling} is a tiling with -% randomly oriented LPT tiles. We can see that even if it is very simple in it -% principle, it draw sophisticated curves with strange properties. -% -% Nevertheless, in the straightforward way \FillPackage{} does not work, -% because the \cs{psboxfill} macro store the content of the tile used in a -% \TeX{} box, which is static. So the calling to the random function is done -% only one time, which explain that only one rotation of the tile is used for -% all the tiling. It's only the one of the two rotations which could differ from -% one drawing to the next one... -% -% ^^A % Truchet (Lewthwaite-Pickover-Truchet) tiling -% ^^A % -------------------------------------------- -% -% \begin{LTXexample}[pos=t] -% ^^A % LPT prototile -% \newcommand{\ProtoTileLPT}{% -% \psset{dimen=middle} -% \begin{pspicture}(1,1) -% \psframe(1,1) -% \psarc(0,0){0.5}{0}{90} -% \psarc(1,1){0.5}{-180}{-90} -% \end{pspicture}} -% -% ^^A % LPT tile -% \newcount\Boolean -% \newcommand{\BasicTileLPT}{% -% ^^A % From random.tex by Donald Arseneau -% \setrannum{\Boolean}{0}{1}% -% \ifnum\Boolean=0 -% \ProtoTileLPT% -% \else -% \psrotateleft{\ProtoTileLPT}% -% \fi} -% -% \ProtoTileLPT\hfill\psrotateleft{\ProtoTileLPT}\hfill -% \psset{unit=0.5} -% \psboxfill{\BasicTileLPT} -% \Tiling{(5,5)} -% \end{LTXexample} -% -% But, for simple cases, there is a solution to this problem using a mixture -% of PSTricks and PostScript programming. Here the PSTricks -% construction \verb+\pscustom{\code{...}}+ allow to insert PostScript code -% inside the \LaTeX{} + PSTricks one. -% -% Programmation is less straightforward, but it has also the advantage to be -% notably faster, as all the tilings operations are done in PostScript, and -% mainly to not be limited by \TeX{} memory (the \TeX{} + PSTricks solution -% I wrote in 1995 for the colored problem was limited to small sizes for this -% reason). Just note also that \cs{pslbrace} and \cs{psrbrace} are two -% PSTricks macros to define and be able to insert the \verb+{+ and \verb+}+ -% characters. -% -% \begin{LTXexample}[pos=t] -% ^^A % LPT prototile -% \newcommand{\ProtoTileLPT}{% -% \psset{dimen=middle} -% \psframe(1,1) -% \psarc(0,0){0.5}{0}{90} -% \psarc(1,1){0.5}{-180}{-90}} -% -% ^^A % Counter to change the random seed -% \newcount\InitCounter -% ^^A % LPT tile -% \newcommand{\BasicTileLPT}{% -% \InitCounter=\the\time -% \pscustom{\code{% -% rand \the\InitCounter\space sub 2 mod 0 eq \pslbrace}} -% \begin{pspicture}(1,1) -% \ProtoTileLPT -% \end{pspicture}% -% \pscustom{\code{\psrbrace \pslbrace}} -% \psrotateleft{\ProtoTileLPT}% -% \pscustom{\code{\psrbrace ifelse}}} -% -% \psset{unit=0.4,linewidth=0.4pt} -% \psboxfill{\BasicTileLPT} -% \Tiling{(15,15)} -% \end{LTXexample} -% -% Using the very surprising fact (see \cite{EsperetGirou98}) that -% coloration of these tiles do not depend of their neighbors (even if it is -% difficult to believe as the opposite seems obvious!) but only of the parity of -% the value of row and column positions, we can directly program in the same way -% a colored version of the LPT tiling. -% -% \setcounter{footnote}{1} -% We have also introduce in the \FillPackage{} code for \emph{tiling} mode two -% new accessible Post\-Script variables, \texttt{row} and -% \texttt{column}\footnotemark, which can be useful in some circonstances, like -% this one. -% -% \begin{LTXexample}[pos=t] -% ^^A % LPT prototile -% \newcommand{\ProtoTileLPT}[2]{% -% \psset{dimen=middle,linestyle=none,fillstyle=solid} -% \psframe[fillcolor=#1](1,1) -% \psset{fillcolor=#2} -% \pswedge(0,0){0.5}{0}{90} \pswedge(1,1){0.5}{-180}{-90}} -% ^^A % Counter to change the random seed -% \newcount\InitCounter -% ^^A % LPT tile -% \newcommand{\BasicTileLPT}[2]{% -% \InitCounter=\the\time -% \pscustom{\code{% -% rand \the\InitCounter\space sub 2 mod 0 eq \pslbrace -% row column add 2 mod 0 eq \pslbrace}} -% \begin{pspicture}(1,1)\ProtoTileLPT{#1}{#2}\end{pspicture}% -% \pscustom{\code{\psrbrace \pslbrace}} -% \ProtoTileLPT{#2}{#1}% -% \pscustom{\code{% -% \psrbrace ifelse \psrbrace \pslbrace row column add 2 mod 0 eq \pslbrace}} -% \psrotateleft{\ProtoTileLPT{#2}{#1}}\pscustom{\code{\psrbrace \pslbrace}} -% \psrotateleft{\ProtoTileLPT{#1}{#2}}\pscustom{\code{\psrbrace ifelse \psrbrace ifelse}}} -% \psboxfill{\BasicTileLPT{red}{yellow}} -% \Tiling{(4,4)}\hfill -% \psset{unit=0.4}\psboxfill{\BasicTileLPT{blue}{cyan}} -% \Tiling{(15,15)} -% \end{LTXexample} -% -% Another classic example is to generate coordinates and numerotation for a -% grid. Of course, it is possible to do it directly in PSTricks using nested -% \cs{multido} commands. It would be clearly easy to program, but, nevertheless, -% for users who have a little knowledge of PostScript programming, this offer -% an alternative which is useful for large cases, because on this way it will -% be notably faster and less computer ressources consuming. -% -% Remember here that the tiling is drawn from left to right, and top to -% bottom, and note that the PostScript variable \texttt{x2} give the total -% number of columns. -% -% \begin{LTXexample}[pos=t] -% ^^A % \Escape will be the \ character -% {\catcode`\!=0\catcode`\\=11!gdef!Escape{\}} -% \newcommand{\ProtoTile}{% -% \Square\pscustom{% -% \moveto(-0.9,0.75) % In PSTricks units -% \code{ /Times-Italic findfont 8 scalefont setfont -% (\Escape() show row 3 string cvs show (,) show -% column 3 string cvs show (\Escape)) show} -% \moveto(-0.5,0.25) % In PSTricks units -% \code{ /Times-Bold findfont 18 scalefont setfont -% 1 0 0 setrgbcolor % Red color -% /center {dup stringwidth pop 2 div neg 0 rmoveto} def -% row 1 sub x2 mul column add 3 string cvs center show}}} -% \psboxfill{\ProtoTile} -% \Tiling{(6,4)} -% \end{LTXexample} -% -% \subsection{A complete example: the Poisson equation} -% -% To finish, we will show a complete real example, a drawing to explain the -% method used to solve the \textsc{Poisson} equation by a domain -% decomposition method, adapted to distributed memory computers. The -% objective is to show the communications required between processes and the -% position of the data to exchange. This code also show some useful and powerful -% technics for PSTricks programming (look specially at the way some higher level -% macros are defined, and how the same object is used to draw the four -% neighbors). -% -%\psset{unit=1cm} -%\newcommand{\Pattern}[1]{% -% \begin{pspicture}(-0.25,-0.25)(0.25,0.25)\rput{*0}{\psdot[dotstyle=#1]} -% \end{pspicture}} -%\newcommand{\West}{\Pattern{o}} \newcommand{\South}{\Pattern{x}} -%\newcommand{\Central}{\Pattern{+}}\newcommand{\North}{\Pattern{square}} -%\newcommand{\East}{\Pattern{triangle}} -%\newcommand{\Cross}{% -% \pspolygon[unit=0.5,linewidth=0.2,linecolor=red](0,0)(0,1)(1,1)(1,2)(2,2)(2,1)% -% (3,1)(3,0)(2,0)(2,-1)(1,-1)(1,0)} -%\newcommand{\StylePosition}[1]{\LARGE\textcolor{red}{\textbf{#1}}} -%\newcommand{\SubDomain}[4]{% -% \psboxfill{#4}\begin{psclip}{\psframe[linestyle=none]#1}% -% \psframe[linestyle=#3](5,5)\psframe[fillstyle=boxfill]#2% -% \end{psclip}} -%\newcommand{\SendArea}[1]{\psframe[fillstyle=solid,fillcolor=cyan]#1} -%\newcommand{\ReceiveData}[2]{% -% \psboxfill{#2}\psframe[fillstyle=solid,fillcolor=yellow,addfillstyle=boxfill]#1}% -%\newcommand{\Neighbor}[2]{% -% \begin{pspicture}(5,5) -% \rput{*0}(2.5,2.5){\StylePosition{#1}} -% \ReceiveData{(0.5,0)(4.5,0.5)}{\Central}\SendArea{(0.5,0.5)(4.5,1)}% -% \SubDomain{(5,2)}{(0.5,0.5)(4.5,3)}{dashed}{#2}% -% \pcarc[arcangle=45,arrows=->](0.5,-1.25)(0.5,0.25)% -% \pcarc[arcangle=45,arrows=->,linestyle=dotted,dotsep=2pt](4.5,0.75)(4.5,-0.75)% -% \end{pspicture}}% -% \psset{dimen=middle,dotscale=2,fillloopadd=2} -%\begin{pspicture}(-5.7,-5.7)(5.7,5.7) -% \rput(0,0){% -% \begin{pspicture}(5,5) -% \ReceiveData{(0,0.5)(0.5,4.5)}{\West} \ReceiveData{(4.5,0.5)(5,4.5)}{\East} -% \ReceiveData{(0.5,4.5)(4.5,5)}{\North}\ReceiveData{(0.5,0)(4.5,0.5)}{\South} -% \SendArea{(0.5,0.5)(1,4.5)}\SendArea{(4,0.5)(4.5,4.5)} -% \SendArea{(0.5,0.5)(4.5,1)}\SendArea{(0.5,4)(4.5,4.5)} -% \SubDomain{(5,5)}{(0.5,0.5)(4.5,4.5)}{solid}{\Central} -% \psline(1,0.5)(1,4.5)\psline(4,0.5)(4,4.5)% -% \rput(1.5,4){\Cross}\rput(2,2){\Cross}% -% \end{pspicture}}% -% \rput(0,5.5){\Neighbor{N}{\North}}\rput{-90}(5.5,0){\Neighbor{E}{\East}}% -% \rput{90}(-5.5,0){\Neighbor{W}{\West}}\rput{180}(0,-5.5){\Neighbor{S}{\South}}% -%\end{pspicture} -% -% \begin{lstlisting} -% \newcommand{\Pattern}[1]{% -% \begin{pspicture}(-0.25,-0.25)(0.25,0.25)\rput{*0}{\psdot[dotstyle=#1]} -% \end{pspicture}} -% \newcommand{\West}{\Pattern{o}} \newcommand{\South}{\Pattern{x}} -% \newcommand{\Central}{\Pattern{+}}\newcommand{\North}{\Pattern{square}} -% \newcommand{\East}{\Pattern{triangle}} -% \newcommand{\Cross}{% -% \pspolygon[unit=0.5,linewidth=0.2,linecolor=red](0,0)(0,1)(1,1)(1,2)(2,2)(2,1) -% (3,1)(3,0)(2,0)(2,-1)(1,-1)(1,0)} -% \newcommand{\StylePosition}[1]{\LARGE\textcolor{red}{\textbf{#1}}} -% \newcommand{\SubDomain}[4]{% -% \psboxfill{#4} -% \begin{psclip}{\psframe[linestyle=none]#1} -% \psframe[linestyle=#3](5,5)\psframe[fillstyle=boxfill]#2 -% \end{psclip}} -% \newcommand{\SendArea}[1]{\psframe[fillstyle=solid,fillcolor=cyan]#1} -% \newcommand{\ReceiveData}[2]{% -% \psboxfill{#2} -% \psframe[fillstyle=solid,fillcolor=yellow,addfillstyle=boxfill]#1} -% \newcommand{\Neighbor}[2]{% -% \begin{pspicture}(5,5) -% \rput{*0}(2.5,2.5){\StylePosition{#1}} -% \ReceiveData{(0.5,0)(4.5,0.5)}{\Central}\SendArea{(0.5,0.5)(4.5,1)} -% \SubDomain{(5,2)}{(0.5,0.5)(4.5,3)}{dashed}{#2}% -% ^^A % Receive and send arrows -% \pcarc[arcangle=45,arrows=->](0.5,-1.25)(0.5,0.25) -% \pcarc[arcangle=45,arrows=->,linestyle=dotted,dotsep=2pt](4.5,0.75)(4.5,-0.75) -% \end{pspicture}} -% \psset{dimen=middle,dotscale=2,fillloopadd=2} -% \begin{pspicture}(-5.7,-5.7)(5.7,5.7) -% ^^A % Central domain -% \rput(0,0){% -% \begin{pspicture}(5,5) -% ^^A % Receive from West, East, North and South -% \ReceiveData{(0,0.5)(0.5,4.5)}{\West} \ReceiveData{(4.5,0.5)(5,4.5)}{\East} -% \ReceiveData{(0.5,4.5)(4.5,5)}{\North}\ReceiveData{(0.5,0)(4.5,0.5)}{\South} -% ^^A % send area for West, East, North and South -% \SendArea{(0.5,0.5)(1,4.5)} \SendArea{(4,0.5)(4.5,4.5)} -% \SendArea{(0.5,0.5)(4.5,1)} \SendArea{(0.5,4)(4.5,4.5)} -% ^^A % Central domain -% \SubDomain{(5,5)}{(0.5,0.5)(4.5,4.5)}{solid}{\Central} -% ^^A % Redraw overlapped linesY -% \psline(1,0.5)(1,4.5) \psline(4,0.5)(4,4.5) -% ^^A % Two crossesY -% \rput(1.5,4){\Cross} \rput(2,2){\Cross} -% \end{pspicture}} -% ^^A % The four neighborsY -% \rput(0,5.5){\Neighbor{N}{\North}} \rput{-90}(5.5,0){\Neighbor{E}{\East}} -% \rput{90}(-5.5,0){\Neighbor{W}{\West}} \rput{180}(0,-5.5){\Neighbor{S}{\South}} -% \end{pspicture} -% \end{lstlisting} -% -% -% -% Bibliography -% \begin{thebibliography}{99} -% \bibitem{PostScript95} Adobe, Systems~Incorporated, \emph{PostScript Language -% Reference Manual}, Addison-Wesley, 2~edition, 1995. -% -% \bibitem{Bolek98} Piotr Bolek, \MP{} and patterns, \emph{\TUB}, Volume~19, -% Number~3, pages 276--283, September 1998, \CTANref{mpattern}. -% -% \bibitem{MLgraphTSI} Emmanuel Chailloux, Guy Cousineau and Asc\'ander -% Su\'arez, Programmation fonctionnelle de graphismes pour la production -% d'illustrations techniques, \emph{Technique et science informatique}, -% Volume~15, Number~7, pages 977--1007, 1996 (in french). -% -% \bibitem{Deledicq97} Andr\'e Deledicq, \emph{Le monde des pavages}, ACL -% \'Editions, 1997 (in french). -% -% \bibitem{EsperetGirou98} Philippe Esperet and Denis Girou, -% Coloriage du pavage dit de Truchet, Cahiers GUTenberg, Number~31, -% pages 5--18, December~1998 (in french). -% -% \bibitem{Girou94} Denis Girou, Pr\'esentation de PSTricks, \emph{Cahiers -% GUTenberg}, Number~16, pages 21--70, February~1994 (in french). -% -% \bibitem{LGC97} Michel Goossens, Sebastian Rahtz and Frank Mittelbach, -% \emph{The \LaTeX{} Graphics Companion}, Addison-Wesley, 2005. -% -% \bibitem{GS87} Branko Gr\"unbaum and Geoffrey Shephard, \emph{Tilings and -% Patterns}, Freeman and Company, 1987. -% -% \bibitem{Hoenig97} Alan Hoenig, \emph{\TeX{} Unbound: \LaTeX{} \& \TeX{} -% Strategies, Fonts, Graphics, and More}, Oxford University Press, 1997. -% -% \bibitem{XYpic} Kristoffer~H. Rose and Ross Moore, \XYpic. Pattern and Tile -% extension, available from \CTAN, 1991-1998, \CTANref{xypic}. -% -% \bibitem{LAAN96} Kees van der Laan, Paradigms: Just a little bit of PostScript, -% \emph{MAPS}, Volume~17, pages 137--150, 1996. -% -% \bibitem{LAAN97} Kees van der Laan, Tiling in PostScript and \MF{} -- Escher's -% wink, \emph{MAPS}, Volume~19, Number~2, pages 39--67, 1997. -% -% \bibitem{vanZandt93} Timothy Van Zandt, PSTricks. PostScript macros for -% Generic \TeX, available from \CTAN, 1993, \CTANref{pstricks}. -% -% \bibitem{vanZandtGirou94} Timothy Van Zandt and Denis Girou, Inside PSTricks, -% \emph{\TUB}, Volume~15, Number~3, pages 239--246, September 1994. -% -% -% \bibitem{voss07} Herbert Vo\ss, PSTricks -- Graphics for \TeX\ and \LaTeX, DANTE/Lehmanns, 4th ed., 2007. -% \bibitem{Wang65} Hao Wang, Games, Logic and Computers, \emph{Scientific -% American}, pages 98--106, November 1965. -% \end{thebibliography} -% -% -% \StopEventually{} -% -% ^^A .................... End of the documentation part .................... -% -% \section{Driver file} -% -% The next bit of code contains the documentation driver file for \TeX{}, -% i.e., the file that will produce the documentation you are currently -% reading. It will be extracted from this file by the \texttt{docstrip} -% program. -% -% \begin{macrocode} -%<*driver> -\documentclass{ltxdoc} -\GetFileInfo{pst-fill.dtx} -% -\usepackage[T1]{fontenc} -\usepackage{lmodern} % For PDF -\usepackage{graphicx} % `graphicx' LaTeX standard package -\usepackage{showexpl} -\usepackage{mflogo} % For the MetaFont and MetaPost logos -\input{random.tex} % Random macros from Donald Arseneau -\usepackage{url} % URLs convenient typesetting -\usepackage{multido} % General loop macro -\usepackage[dvipsnames]{pstricks} % PSTricks with the `color' extension -\usepackage{pst-text} % PSTricks package for character path -\usepackage{pst-grad} % PSTricks package for gradient filling -\usepackage{pst-node} % PSTricks package for nodes -\usepackage[tiling]{pst-fill} % PSTricks package for filling/tiling -% -\AtBeginDocument{% -% \OnlyDescription % comment out for implementation details - \EnableCrossrefs - \CodelineIndex - \RecordChanges} -\AtEndDocument{% - \PrintIndex - \setcounter{IndexColumns}{1} - \PrintChanges} -\hbadness=7000 % Over and under full box warnings -\hfuzz=3pt -\begin{document} - \DocInput{pst-fill.dtx} -\end{document} -% -% \end{macrocode} -% -% \section{\texttt{pst-fill} \LaTeX{} wrapper} -% -% \begin{macrocode} -%<*latex-wrapper> -\RequirePackage{pstricks} -\ProvidesPackage{pst-fill}[2005/09/13 package wrapper for - pst-fill.tex (hv)] -\DeclareOption{tiling}{\def\PstTiling{true}} -\ProcessOptions\relax -\input{pst-fill.tex} -\ProvidesFile{pst-fill.tex} - [\filedate\space v\fileversion\space `PST-fill' (tvz,dg)] -% -% \end{macrocode} -% -% -% \section{Pst-Fill Package{} code} -% -% \begin{macrocode} -%<*pst-fill> -% \end{macrocode} -% -% \subsection{Preamble} -% -% Who we are. -% -% \begin{macrocode} -\def\fileversion{1.01} -\def\filedate{2007/03/10} -\message{`PST-Fill' v\fileversion, \filedate\space (tvz,dg,hv)} -\csname PSTboxfillLoaded\endcsname -\let\PSTboxfillLoaded\endinput -% \end{macrocode} -% -% Require the main PSTricks package. -% -% \begin{macrocode} -\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi -% \end{macrocode} -% -% interface to the extended `\textsf{keyval}' package. -% -% \begin{macrocode} -\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey\fi -% -% \end{macrocode} -% -% Catcodes changes and defining the family name for xkeyval. -% -% \begin{macrocode} -\edef\PstAtCode{\the\catcode`\@}\catcode`\@=11\relax - -\pst@addfams{pst-fill} -% -% \end{macrocode} -% -% -% \subsection{The size of the box} -% \begin{macro}{pst@@boxfillsize} -% \begin{macrocode} -% -\def\pst@@boxfillsize#1(#2,#3)#4(#5,#6)#7(#8\@nil{% - \begingroup - \ifx\@empty#7\relax - \pst@dima\z@ - \pst@dimb\z@ - \pssetxlength\pst@dimc{#2}% - \pssetylength\pst@dimd{#3}% - \else - \pssetxlength\pst@dima{#2}% - \pssetylength\pst@dimb{#3}% - \pssetxlength\pst@dimc{#5}% - \pssetylength\pst@dimd{#6}% - \fi - \xdef\pst@tempg{% - \pst@dima=\number\pst@dima sp - \pst@dimb=\number\pst@dimb sp - \pst@dimc=\number\pst@dimc sp - \pst@dimd=\number\pst@dimd sp }% - \endgroup - \let\psk@boxfillsize\pst@tempg} -% \end{macrocode} -% \end{macro} -% - -% \subsection{Definition of the parameters} -% -% \begin{macrocode} -\define@key[psset]{pst-fill}{boxfillsize}{% - \def\pst@tempg{#1}\def\pst@temph{auto}% - \ifx\pst@tempg\pst@temph - \let\psk@boxfillsize\relax - \else - \pst@@boxfillsize#1(\z@,\z@)\@empty(\z@,\z@)(\@nil - \fi} -\psset{boxfillsize={(-15cm,-15cm)(15cm,15cm)}} -\define@key[psset]{pst-fill}{boxfillcolor}{\pst@getcolor{#1}\psboxfillcolor} -\psset{boxfillcolor=black}% hv -\define@key[psset]{pst-fill}{boxfillangle}{\pst@getangle{#1}\psk@boxfillangle} -\psset{boxfillangle=0} -\define@key[psset]{pst-fill}{fillsepx}{% - \pst@getlength{#1}\psk@fillsepx} -\define@key[psset]{pst-fill}{fillsepy}{% - \pst@getlength{#1}\psk@fillsepy} -\define@key[psset]{pst-fill}{fillsep}{% - \pst@getlength{#1}\psk@fillsepx% - \let\psk@fillsepy\psk@fillsepx} -\psset{fillsep=2pt} - -\ifx\PstTiling\@undefined - \define@key[psset]{pst-fill}{fillcycle}{\pst@getint{#1}\psk@fillcycle} - \psset{fillcycle=0} -\else - \define@key[psset]{pst-fill}{fillangle}{\pst@getangle{#1}\psk@boxfillangle} - \define@key[psset]{pst-fill}{fillsize}{% - \def\pst@tempg{#1}\def\pst@temph{auto}% - \ifx\pst@tempg\pst@temph\let\psk@boxfillsize\relax - \else\pst@@boxfillsize#1(\z@,\z@)\@empty(\z@,\z@)(\@nil\fi} - \psset{fillsep=0,fillsize=auto} - \define@key[psset]{pst-fill}{fillcyclex}{\pst@getint{#1}\psk@fillcyclex} - \define@key[psset]{pst-fill}{fillcycley}{\pst@getint{#1}\psk@fillcycley} - \define@key[psset]{pst-fill}{fillcycle}{% - \pst@getint{#1}\psk@fillcyclex\let\psk@fillcycley\psk@fillcyclex} - \psset{fillcycle=0} - \define@key[psset]{pst-fill}{fillmovex}{\pst@getlength{#1}\psk@fillmovex} - \define@key[psset]{pst-fill}{fillmovey}{\pst@getlength{#1}\psk@fillmovey} - \define@key[psset]{pst-fill}{fillmove}{% - \pst@getlength{#1}\psk@fillmovex\let\psk@fillmovey\psk@fillmovex} - \psset{fillmove=0pt} - \define@key[psset]{pst-fill}{fillloopaddx}{\pst@getint{#1}\psk@fillloopaddx} - \define@key[psset]{pst-fill}{fillloopaddy}{\pst@getint{#1}\psk@fillloopaddy} - \define@key[psset]{pst-fill}{fillloopadd}{% - \pst@getint{#1}\psk@fillloopaddx\let\psk@fillloopaddy\psk@fillloopaddx} - \psset{fillloopadd=0} -% \end{macrocode} -% -% \begin{macrocode} -% For debugging (to debug, set PstDebug=1) -% we now use the one from pstricks to prevent a clash with package -% pstricks 2004-06-22 -%% \define@key[psset]{pst-fill}{PstDebug}{\pst@getint{#1}\psk@PstDebug} - \psset{PstDebug=0} -\fi -% DG addition end -% \end{macrocode} - -% \subsection{Definition of the fill box} -% \begin{macro}{psboxfill} -% \begin{macrocode} -\newbox\pst@fillbox -\def\psboxfill{\pst@killglue\pst@makebox\psboxfill@i} -\def\psboxfill@i{\setbox\pst@fillbox\box\pst@hbox\ignorespaces} -% \end{macrocode} -% \end{macro} -% \subsection{The main macros} -% -% \begin{macro}{psfs@boxfill} -% \begin{macrocode} -\def\psfs@boxfill{% - \ifvoid\pst@fillbox - \@pstrickserr{Fill box is empty. Use \string\psboxfill\space first.}\@ehpa - \else - \ifx\psk@boxfillsize\relax \pst@AutoBoxFill - \else\pst@ManualBoxFill\fi - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{pst@ManualBoxFill} -% \begin{macrocode} -\def\pst@ManualBoxFill{% - \leavevmode - \begingroup - \pst@FlushCode - \begin@psclip - \pstVerb{clip}% - \expandafter\pst@AddFillBox\psk@boxfillsize - \end@psclip - \endgroup} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{pst@FlushCode} -% \begin{macrocode} -\def\pst@FlushCode{% - \pst@Verb{% - /mtrxc CM def - CP CP T - \tx@STV - \psk@origin - \psk@swapaxes - \pst@newpath - \pst@code - mtrxc setmatrix - moveto - 0 setgray}% - \gdef\pst@code{}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{pst@AddFillBox} -% \begin{macrocode} -\def\pst@AddFillBox#1 #2 #3 #4 {% - \begingroup - \setbox\pst@fillbox=\vbox{% - \hbox{\unhcopy\pst@fillbox\kern\psk@fillsepx\p@}% - \vskip\psk@fillsepy\p@}% - \psk@boxfillsize - \pst@cnta=\pst@dimc - \advance\pst@cnta-\pst@dima - \divide\pst@cnta\wd\pst@fillbox - \pst@cntb=\pst@dimd - \advance\pst@cntb-\pst@dimb - \pst@dimd=\ht\pst@fillbox - \divide\pst@cntb\pst@dimd - \def\pst@tempa{% - \pst@tempg - \copy\pst@fillbox - \advance\pst@cntc\@ne - \ifnum\pst@cntc<\pst@cntd\expandafter\pst@tempa\fi}% - \let\pst@tempg\relax - \pst@cntc-\tw@ - \pst@cntd\pst@cnta - \setbox\pst@fillbox=\hbox to \z@{% - \kern\pst@dima - \kern-\wd\pst@fillbox - \pst@tempa - \hss}% - \pst@cntd\pst@cntb -%% DG modification begin - Dec. 11, 1997 - Patch 2 - \ifx\PstTiling\@undefined - \ifnum\psk@fillcycle=\z@\pst@ManualFillCycle\fi - \else - \ifnum\psk@fillcyclex=\z@\pst@ManualFillCycle\fi - \fi -%% DG modification end - \global\setbox\pst@boxg=\vbox to\z@{% - \offinterlineskip - \vss - \pst@tempa - \vskip\pst@dimb}% - \endgroup - \setbox\pst@fillbox\box\pst@boxg - \pst@rotate\psk@boxfillangle\pst@fillbox - \box\pst@fillbox} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{pst@ManualFillCycle} -% \begin{macrocode} -\def\pst@ManualFillCycle{% - \ifx\PstTiling\@undefined - \pst@cntg=\psk@fillcycle - \else - \pst@cntg=\psk@fillcyclex - \fi - \pst@dimg=\wd\pst@fillbox - \ifnum\pst@cntg=\z@ - \else - \divide\pst@dimg\pst@cntg - \fi - \ifnum\pst@cntg<\z@\pst@cntg=-\pst@cntg\fi - \advance\pst@cntg\m@ne - \pst@cnth=\pst@cntg - \def\pst@tempg{% - \ifnum\pst@cnth<\pst@cntg\advance\pst@cnth\@ne\else\pst@cnth\z@\fi - \moveright\pst@cnth\pst@dimg}} -% \end{macrocode} -% \end{macro} -% -%% Auto box fill: !! Fix dictionary -% -% \subsection{The PostScript subroutines} -% -% \begin{macrocode} -%% DG addition begin - Apr. 8, 1997 and Dec. 1997 - Patch 2 -\ifx\PstTiling\@undefined -\pst@def{AutoFillCycle}<% - /c ED - /n 0 def - /s { - /x x w c div n mul add def - /n n c abs 1 sub lt { n 1 add } { 0 } ifelse def - } def> - -\pst@def{BoxFill}<% - gsave - gsave \tx@STV CM grestore dtransform CM idtransform - abs /h ED abs /w ED - pathbbox - h div round 2 add cvi /y2 ED - w div round 2 add cvi /x2 ED - h div round 2 sub cvi /y1 ED - w div round 2 sub cvi /x1 ED - /y2 y2 y1 sub def - /x2 x2 x1 sub def - CP - y1 h mul sub neg /y1 ED - x1 w mul sub neg /x1 ED - clip - y2 { - /x x1 def - s - x2 { - save CP x y1 -%% patch 4 hv -------------- - \ifx\VTeXversion\undefined - \else -%%============ mv: 09-10-01 ??? this is likely to be a right change - neg -%%============ - \fi -%% end patch 4 -T moveto Box restore - /x x w add def - } repeat - /y1 y1 h add def - } repeat - % Next line not useful... To see that, suppress clipping (DG) - CP x y1 T moveto Box - currentpoint currentfont grestore setfont moveto> -\else -%% DG modification begin - Apr. 8, 1997 and Nov. / Dec. 1997 - Patch 2 -\pst@def{AutoFillCycleX}<% - /cX ED - /nX 0 def - /CycleX { - /x x w cX div nX mul add def - /nX nX cX abs 1 sub lt { nX 1 add } { 0 } ifelse def - } def> -\pst@def{AutoFillCycleY}<% - /cY ED - /mY 0 def - /nY 0 def - /CycleY { - /y1 y1 h cY div mY mul sub def - nY cY abs 1 sub lt { /nY nY 1 add def /mY 1 def } - { /nY 0 def /mY cY abs 1 sub neg def } ifelse - } def> - -\pst@def{BoxFill}<% - gsave - gsave \tx@STV CM grestore dtransform CM idtransform - abs /h ED abs /w ED - pathbbox - h div round 2 add cvi /y2 ED - w div round 2 add cvi /x2 ED - h div round 2 sub cvi /y1 ED - w div round 2 sub cvi /x1 ED - /CoefLoopX 0 def - /CoefLoopY 0 def - /CoefMoveX 0 def - /CoefMoveY 0 def - \psk@boxfillangle\space 0 ne {/CoefLoopX 8 def /CoefLoopY 8 def} if - \psk@fillcyclex\space 0 ne {/CoefLoopX CoefLoopX 1 add def} if - \psk@fillcycley\space 0 ne {/CoefLoopY CoefLoopY 1 add def} if - \psk@fillmovex\space 0 ne - {/CoefLoopX CoefLoopX 2 add def - \psk@fillmovex\space 0 gt {/CoefMoveX CoefLoopX def} - {/CoefMoveX CoefLoopX neg def} ifelse} if - \psk@fillmovey\space 0 ne - {/CoefLoopY CoefLoopY 2 add def - \psk@fillmovey\space 0 gt {/CoefMoveY CoefLoopY def} - {/CoefMoveY CoefLoopY neg def} ifelse} if - \psk@fillsepx\space 0 ne {/CoefLoopX CoefLoopX 1 add def} if - \psk@fillsepy\space 0 ne {/CoefLoopY CoefLoopY 1 add def} if - /CoefLoopX CoefLoopX \psk@fillloopaddx\space add def - /CoefLoopY CoefLoopY \psk@fillloopaddy\space add def - /x2 x2 x1 sub 4 sub CoefLoopX 2 mul add def - /y2 y2 y1 sub 4 sub CoefLoopY 2 mul add def -%% We must fix the origin of tiling, as it must not vary according other stuff -%% in the page! - w x1 CoefLoopX add CoefMoveX add mul - h y1 y2 add 1 sub CoefLoopY sub CoefMoveY sub mul moveto - CP - y1 h mul sub neg /y1 ED - x1 w mul sub neg /x1 ED -%% hv 2004-06-22 to prevent clash with pst-gr3d -%% \psk@PstDebug 0 eq {clip} if - \Pst@Debug 0 eq {clip} if -%% end hv - \psk@fillmovex\space \psk@fillmovey - gsave \tx@STV CM grestore dtransform CM idtransform - /hmove ED /wmove ED - /row 0 def - y2 { - /row row 1 add def - /column 0 def - /x x1 def - CycleX - save - x2 { - /column column 1 add def - CycleY - save CP x y1 -%% patch 4 hv -------------- - \ifx\VTeXversion\undefined - \else -%%============ mv: 09-10-01 ??? this is likely to be a right change - neg -%%============ - \fi - T moveto Box restore - /x x w add def - 0 hmove translate - } repeat - restore - /y1 y1 h add def - wmove 0 translate - } repeat - currentpoint currentfont grestore setfont moveto> -\fi -% \end{macrocode} - -% \begin{macrocode} -\def\pst@AutoBoxFill{% - \leavevmode - \begingroup - \pst@stroke - \pst@FlushCode - \pst@Verb{\psk@boxfillangle\space \tx@RotBegin}% - \pstVerb{\pst@dict /Box \pslbrace end}% - \ifx\PstTiling\@undefined - \else - \ifx\pst@tempa\@undefined % Undefined for instance for \pscharpath - \else\ifx\pst@tempa\@empty\else - \def\pst@temph{0}% - \ifx\pst@tempa\pst@temph - \else - \pstVerb{/TR {pop pop currentpoint translate \pst@tempa\space translate } def}% - \fi - \fi\fi - \fi - \hbox to \z@{\vbox to\z@{\vss\copy\pst@fillbox\vskip-\dp\pst@fillbox}\hss}% - \ifx\PstTiling\@undefined - \pstVerb{% - tx@Dict begin \psrbrace def - \ifnum\psk@fillcycle=\z@ - /s {} def - \else - \psk@fillcycle \tx@AutoFillCycle - \fi - \pst@number{\wd\pst@fillbox}% - \psk@fillsepx\space add - \pst@number{\ht\pst@fillbox}% - \pst@number{\dp\pst@fillbox}% - \psk@fillsepy\space add add - \tx@BoxFill - end}% - \else - \pstVerb{% - tx@Dict begin \psrbrace def - \ifnum\psk@fillcyclex=\z@ - /CycleX {} def - \else - \psk@fillcyclex\space \tx@AutoFillCycleX - \fi - \ifnum\psk@fillcycley=\z@ - /CycleY {} def - \else - \psk@fillcycley\space \tx@AutoFillCycleY - \fi - \pst@number{\wd\pst@fillbox}% - \psk@fillsepx\space add - \pst@number{\ht\pst@fillbox}% - \pst@number{\dp\pst@fillbox}% - \psk@fillsepy\space add add - \tx@BoxFill - end}% - \fi - \pst@Verb{\tx@RotEnd}% - \endgroup} -% \end{macrocode} -% \subsection{Closing} -% -% Catcodes restoration. -% -% \begin{macrocode} -\catcode`\@=\PstAtCode\relax -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \Finale -% -\endinput -%% -%% End of file `pst-fill.dtx' diff --git a/graphics/pstricks/contrib/pst-fill/pst-fill.ins b/graphics/pstricks/contrib/pst-fill/pst-fill.ins deleted file mode 100644 index 67c9404c2f..0000000000 --- a/graphics/pstricks/contrib/pst-fill/pst-fill.ins +++ /dev/null @@ -1,37 +0,0 @@ -%% `pst-fill.ins' -%% -%% Docstrip installation instruction file for docstyle `pst-fill' -%% -%% Herbert Voss -%% -%% 2006-11-06 -%% -\def\batchfile{pst-fill.ins} -\input docstrip.tex -\keepsilent -\Msg{*** Generating the `pst-fill' package ***} -\askforoverwritefalse -\generate{\file{pst-fill.tex}{\from{pst-fill.dtx}{pst-fill}}} -\generate{\file{pst-fill.sty}{\from{pst-fill.dtx}{latex-wrapper}}} - -\ifToplevel{% -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the files} -\Msg{* pst-fill.sty and pst-fill.tex in a directory/folder searched by TeX.} -\Msg{*} -\Msg{* To produce the documentation, run the file `pst-fill.dtx'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* If you require the commented code, desactivating the} -\Msg{* OnlyDescription macro, you must recompile, execute:} -\Msg{* `makeindex -s gind.ist pst-fill'} -\Msg{* `makeindex -s gglo.ist -o pst-fill.gls pst-fill.glo'} -\Msg{* and recompile.} -\Msg{*} -\Msg{***********************************************************} -} - -\endinput -%% -%% End of file `pst-fill.ins' diff --git a/graphics/pstricks/contrib/pst-fill/pst-fill.pdf b/graphics/pstricks/contrib/pst-fill/pst-fill.pdf deleted file mode 100644 index f09defc07e..0000000000 Binary files a/graphics/pstricks/contrib/pst-fill/pst-fill.pdf and /dev/null differ diff --git a/graphics/pstricks/contrib/pst-fill/tex/pst-fill.tex b/graphics/pstricks/contrib/pst-fill/tex/pst-fill.tex new file mode 100644 index 0000000000..53b2345838 --- /dev/null +++ b/graphics/pstricks/contrib/pst-fill/tex/pst-fill.tex @@ -0,0 +1,472 @@ +%% +%% This is Package `pst-fill' +%% +%% Denis Girou (CNRS/IDRIS - France) +%% Herbert Voss +%% (C) 2003-2021 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-fill' is a PSTricks package for filling and tiling areas +%% +%% \pscircle[linestyle=none,fillstyle=solid,fillcolor=yellow,fillsep=0.5, +%% addfillstyle=boxfill](2,2){2} +\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi +\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey\fi +\def\fileversion{1.02} +\def\filedate{2021/10/01} +\message{`PST-Fill' v\fileversion, \filedate\space (tvz,dg,hv)} +\csname PSTboxfillLoaded\endcsname +\let\PSTboxfillLoaded\endinput +\edef\PstAtCode{\the\catcode`\@}\catcode`\@=11\relax + +\pst@addfams{pst-fill} +\def\pst@@boxfillsize#1(#2,#3)#4(#5,#6)#7(#8\@nil{% + \begingroup + \ifx\@empty#7\relax + \pst@dima\z@ + \pst@dimb\z@ + \pssetxlength\pst@dimc{#2}% + \pssetylength\pst@dimd{#3}% + \else + \pssetxlength\pst@dima{#2}% + \pssetylength\pst@dimb{#3}% + \pssetxlength\pst@dimc{#5}% + \pssetylength\pst@dimd{#6}% + \fi + \xdef\pst@tempg{% + \pst@dima=\number\pst@dima sp + \pst@dimb=\number\pst@dimb sp + \pst@dimc=\number\pst@dimc sp + \pst@dimd=\number\pst@dimd sp }% + \endgroup + \let\psk@boxfillsize\pst@tempg} + +\define@key[psset]{pst-fill}{boxfillsize}{% + \def\pst@tempg{#1}\def\pst@temph{auto}% + \ifx\pst@tempg\pst@temph + \let\psk@boxfillsize\relax + \else + \pst@@boxfillsize#1(\z@,\z@)\@empty(\z@,\z@)(\@nil + \fi} +\psset{boxfillsize={(-15cm,-15cm)(15cm,15cm)}} +\define@key[psset]{pst-fill}{boxfillcolor}{\pst@getcolor{#1}\psboxfillcolor} +\psset{boxfillcolor=black}% hv +\define@key[psset]{pst-fill}{boxfillangle}{\pst@getangle{#1}\psk@boxfillangle} +\psset{boxfillangle=0} +\define@key[psset]{pst-fill}{fillsepx}{\pst@getlength{#1}\psk@fillsepx} +\define@key[psset]{pst-fill}{fillsepy}{\pst@getlength{#1}\psk@fillsepy} +\define@key[psset]{pst-fill}{fillsep}{% + \pst@getlength{#1}\psk@fillsepx% + \let\psk@fillsepy\psk@fillsepx} +\psset{fillsep=2pt} + +\ifx\PstTiling\@undefined + \define@key[psset]{pst-fill}{fillcycle}{\pst@getint{#1}\psk@fillcycle} + \psset{fillcycle=0} +\else + \define@key[psset]{pst-fill}{fillangle}{\pst@getangle{#1}\psk@boxfillangle} + \define@key[psset]{pst-fill}{fillsize}{% + \def\pst@tempg{#1}\def\pst@temph{auto}% + \ifx\pst@tempg\pst@temph\let\psk@boxfillsize\relax + \else\pst@@boxfillsize#1(\z@,\z@)\@empty(\z@,\z@)(\@nil\fi} + \psset{fillsep=0,fillsize=auto} + \define@key[psset]{pst-fill}{fillcyclex}{\pst@getint{#1}\psk@fillcyclex} + \define@key[psset]{pst-fill}{fillcycley}{\pst@getint{#1}\psk@fillcycley} + \define@key[psset]{pst-fill}{fillcycle}{% + \pst@getint{#1}\psk@fillcyclex\let\psk@fillcycley\psk@fillcyclex} + \psset{fillcycle=0} + \define@key[psset]{pst-fill}{fillmovex}{\pst@getlength{#1}\psk@fillmovex} + \define@key[psset]{pst-fill}{fillmovey}{\pst@getlength{#1}\psk@fillmovey} + \define@key[psset]{pst-fill}{fillmove}{% + \pst@getlength{#1}\psk@fillmovex\let\psk@fillmovey\psk@fillmovex} + \psset{fillmove=0pt} + \define@key[psset]{pst-fill}{fillloopaddx}{\pst@getint{#1}\psk@fillloopaddx} + \define@key[psset]{pst-fill}{fillloopaddy}{\pst@getint{#1}\psk@fillloopaddy} + \define@key[psset]{pst-fill}{fillloopadd}{% + \pst@getint{#1}\psk@fillloopaddx\let\psk@fillloopaddy\psk@fillloopaddx} + \psset{fillloopadd=0} +%% \define@key[psset]{pst-fill}{PstDebug}{\pst@getint{#1}\psk@PstDebug} + \psset{PstDebug=0} +\fi + +\def\pstFillSetDefaults{% + \psset{% + boxfillsize={(-15cm,-15cm)(15cm,15cm)}, + boxfillcolor=black, + boxfillangle=0, + fillsep=2pt, + fillsep=0,fillsize=auto, + fillcycle=0, + fillmove=0pt, + fillloopadd=0, + PstDebug=0}% +} + + +\def\txfillDict{ fill@Dict begin } + +\newbox\pst@fillbox +\def\psboxfill{\pst@killglue\pst@makebox\psboxfill@i} +\def\psboxfill@i{\null\setbox\pst@fillbox\box\pst@hbox\ignorespaces}% \null to prevent empty page +\def\psfs@boxfill{% + \ifvoid\pst@fillbox + \@pstrickserr{Fill box is empty. Use \string\psboxfill\space first.}\@ehpa + \else + \ifx\psk@boxfillsize\relax \pst@AutoBoxFill + \else\pst@ManualBoxFill\fi + \fi} + +\def\pst@ManualBoxFill{% + \leavevmode + \begingroup + \pst@FlushCode + \begin@psclip + \pstVerb{clip}% + \expandafter\pst@AddFillBox\psk@boxfillsize + \end@psclip + \endgroup} + +\def\pst@FlushCode{% + \pst@Verb{% + /mtrxc CM def + CP CP T + \tx@STV + \psk@origin + \psk@swapaxes + \pst@newpath + \pst@code + mtrxc setmatrix + moveto + 0 setgray}% + \gdef\pst@code{}} + +\def\pst@AddFillBox#1 #2 #3 #4 {% + \begingroup + \setbox\pst@fillbox=\vbox{% + \hbox{\unhcopy\pst@fillbox\kern\psk@fillsepx\p@}% + \vskip\psk@fillsepy\p@}% + \psk@boxfillsize + \pst@cnta=\pst@dimc + \advance\pst@cnta-\pst@dima + \divide\pst@cnta\wd\pst@fillbox + \pst@cntb=\pst@dimd + \advance\pst@cntb-\pst@dimb + \pst@dimd=\ht\pst@fillbox + \divide\pst@cntb\pst@dimd + \def\pst@@tempA{% + \pst@tempg + \copy\pst@fillbox + \advance\pst@cntc\@ne + \ifnum\pst@cntc<\pst@cntd\expandafter\pst@@tempA\fi}% + \let\pst@tempg\relax + \pst@cntc-\tw@ + \pst@cntd\pst@cnta + \setbox\pst@fillbox=\hbox to \z@{% + \kern\pst@dima + \kern-\wd\pst@fillbox + \pst@@tempA + \hss}% + \pst@cntd\pst@cntb +%% DG modification begin - Dec. 11, 1997 - Patch 2 + \ifx\PstTiling\@undefined + \ifnum\psk@fillcycle=\z@\pst@ManualFillCycle\fi + \else + \ifnum\psk@fillcyclex=\z@\pst@ManualFillCycle\fi + \fi +%% DG modification end + \global\setbox\pst@boxg=\vbox to\z@{% + \offinterlineskip + \vss + \pst@@tempA + \vskip\pst@dimb}% + \endgroup + \setbox\pst@fillbox\box\pst@boxg + \pst@rotate\psk@boxfillangle\pst@fillbox + \box\pst@fillbox} + +\def\pst@ManualFillCycle{% + \ifx\PstTiling\@undefined + \pst@cntg=\psk@fillcycle + \else + \pst@cntg=\psk@fillcyclex + \fi + \pst@dimg=\wd\pst@fillbox + \ifnum\pst@cntg=\z@ + \else + \divide\pst@dimg\pst@cntg + \fi + \ifnum\pst@cntg<\z@\pst@cntg=-\pst@cntg\fi + \advance\pst@cntg\m@ne + \pst@cnth=\pst@cntg + \def\pst@tempg{% + \ifnum\pst@cnth<\pst@cntg\advance\pst@cnth\@ne\else\pst@cnth\z@\fi + \moveright\pst@cnth\pst@dimg}} + +\ifx\PstTiling\@undefined + \pst@def{AutoFillCycle}<% + fill@Dict begin + /c ED + /n 0 def + /s { + /x x w c div n mul add def + /n n c abs 1 sub lt { n 1 add } { 0 } ifelse def + } def + end + > +\pst@def{BoxFill}<% + fill@Dict begin + gsave + gsave \tx@STV CM grestore dtransform CM idtransform + abs /h ED abs /w ED + pathbbox + h div round 2 add cvi /y2 ED + w div round 2 add cvi /x2 ED + h div round 2 sub cvi /y1 ED + w div round 2 sub cvi /x1 ED + /y2 y2 y1 sub def + /x2 x2 x1 sub def + CP + y1 h mul sub neg /y1 ED + x1 w mul sub neg /x1 ED + clip + y2 { + /x x1 def + s + x2 { + save CP x y1 + \ifx\VTeXversion\undefined + \else + neg + \fi + T moveto Box restore + /x x w add def + } repeat + /y1 y1 h add def + } repeat + % Next line not useful... To see that, suppress clipping (DG) + CP x y1 T moveto Box + end + currentpoint currentfont grestore setfont moveto + > +\else% Tiling is defined ----------------------------------- + \pst@def{AutoFillCycleX}< +% fill@Dict begin + /cX ED + /nX 0 def + /CycleX { + /x x w cX div nX mul add def + /nX nX cX abs 1 sub lt { nX 1 add } { 0 } ifelse def + } def +% end + > + \pst@def{AutoFillCycleY}<% +% fill@Dict begin + /cY ED + /mY 0 def + /nY 0 def + /CycleY { + /y1 y1 h cY div mY mul sub def + nY cY abs 1 sub lt { /nY nY 1 add def /mY 1 def } + { /nY 0 def /mY cY abs 1 sub neg def } ifelse + } def +% end + > + \pst@def{BoxFill}< + \ifPSTlualatex + /save /gsave load def + /restore /grestore load def + fill@Dict begin + \fi + gsave + gsave \tx@STV CM grestore dtransform CM idtransform + abs /h ED abs /w ED + pathbbox + \ifPSTlualatex + h div 2 add cvi /y2 ED + w div 2 add cvi /x2 ED + h div 2 sub cvi /y1 ED + w div 2 sub cvi /x1 ED + \else + h div round 2 add cvi /y2 ED + w div round 2 add cvi /x2 ED + h div round 2 sub cvi /y1 ED + w div round 2 sub cvi /x1 ED + \fi + /CoefLoopX 0 def + /CoefLoopY 0 def + /CoefMoveX 0 def + /CoefMoveY 0 def + \psk@boxfillangle\space 0 ne {/CoefLoopX 8 def /CoefLoopY 8 def} if + \psk@fillcyclex\space 0 ne {/CoefLoopX CoefLoopX 1 add def} if + \psk@fillcycley\space 0 ne {/CoefLoopY CoefLoopY 1 add def} if + \psk@fillmovex\space 0 ne + {/CoefLoopX CoefLoopX 2 add def + \psk@fillmovex\space 0 gt {/CoefMoveX CoefLoopX def} + {/CoefMoveX CoefLoopX neg def} ifelse} if + \psk@fillmovey\space 0 ne + {/CoefLoopY CoefLoopY 2 add def + \psk@fillmovey\space 0 gt {/CoefMoveY CoefLoopY def} + {/CoefMoveY CoefLoopY neg def} ifelse} if + \psk@fillsepx\space 0 ne {/CoefLoopX CoefLoopX 1 add def} if + \psk@fillsepy\space 0 ne {/CoefLoopY CoefLoopY 1 add def} if + /CoefLoopX CoefLoopX \psk@fillloopaddx\space add def + /CoefLoopY CoefLoopY \psk@fillloopaddy\space add def + /x2 x2 x1 sub 4 sub CoefLoopX 2 mul add def + /y2 y2 y1 sub 4 sub CoefLoopY 2 mul add def + %% We must fix the origin of tiling, as it must not vary according other stuff in the page! + w x1 CoefLoopX add CoefMoveX add mul + h y1 y2 add 1 sub CoefLoopY sub CoefMoveY sub mul moveto + CP + y1 h mul sub neg /y1 ED + x1 w mul sub neg /x1 ED + \Pst@Debug 0 eq {clip} if + \psk@fillmovex\space \psk@fillmovey + gsave \tx@STV CM grestore + dtransform CM idtransform + /hmove ED /wmove ED + /row 0 def + y2 { + /row row 1 add def + /column 0 def + /x x1 def + CycleX + save + x2 { + /column column 1 add def + CycleY + save CP x y1 + \ifPSTlualatex neg \fi + T moveto Box restore + /x x w add def + 0 hmove translate + } repeat + restore + /y1 y1 h add def + wmove 0 translate + } repeat + currentpoint + currentfont + grestore + setfont + moveto + \ifPSTlualatex end \fi + > +\fi % edn of tiling=true + +\ifPSTlualatex + \def\pst@AutoBoxFill{% + \leavevmode + \begingroup + \pst@stroke + \pst@FlushCode + \pst@Verb{\psk@boxfillangle\space \tx@RotBegin}% + \pstVerb{ + \pst@dict /Box [ /gsave cvx currentpoint /translate cvx \luaPSTbox\hbox{% + \ifx\PstTiling\@undefined + \else + \ifx\pst@tempa\@undefined % Undefined for instance for \pscharpath + \else\ifx\pst@tempa\@empty\else + \def\pst@temph{0}% + \ifx\pst@tempa\pst@temph + \else + \fi + \fi\fi + \fi + \hbox to \z@{\vbox to\z@{\vss\copy\pst@fillbox\vskip-\dp\pst@fillbox}\hss}% + } /.TeXBox findresource /grestore cvx ] cvx def + \ifx\PstTiling\@undefined + \ifnum\psk@fillcycle=\z@ + /s {} def + \else + \psk@fillcycle \tx@AutoFillCycle + \fi + \else + \ifnum\psk@fillcyclex=\z@ + /CycleX {} def + \else + \psk@fillcyclex\space \tx@AutoFillCycleX + \fi + \ifnum\psk@fillcycley=\z@ + /CycleY {} def + \else + \psk@fillcycley\space \tx@AutoFillCycleY + \fi + \fi + \pst@number{\wd\pst@fillbox}% + \psk@fillsepx\space add + \pst@number{\ht\pst@fillbox}% + \pst@number{\dp\pst@fillbox}% + \psk@fillsepy\space add add + \tx@BoxFill + end + }% + \pst@Verb{\tx@RotEnd}% + \endgroup} +\else%%%%%%%%%%%%%%% latex->dvips definition + \def\pst@AutoBoxFill{% + \leavevmode + \begingroup + \pst@stroke + \pst@FlushCode + \pst@Verb{\psk@boxfillangle\space \tx@RotBegin}% + \pstVerb{\pst@dict /Box \pslbrace end}% + \ifx\PstTiling\@undefined + \else + \ifx\pst@@tempA\@undefined % Undefined for instance for \pscharpath + \else\ifx\pst@@tempA\@empty\else + \def\pst@temph{0}% + \ifx\pst@@tempA\pst@temph + \else + \pstVerb{/TR {pop pop currentpoint translate \pst@@tempA\space translate } def}% + \fi + \fi\fi + \fi + \hbox to \z@{\vbox to\z@{\vss\copy\pst@fillbox\vskip-\dp\pst@fillbox}\hss}% + \ifx\PstTiling\@undefined + \pstVerb{% + tx@Dict begin \psrbrace def + \ifnum\psk@fillcycle=\z@ + /s {} def + \else + \psk@fillcycle \tx@AutoFillCycle + \fi + \pst@number{\wd\pst@fillbox}% + \psk@fillsepx\space add + \pst@number{\ht\pst@fillbox}% + \pst@number{\dp\pst@fillbox}% + \psk@fillsepy\space add add + \tx@BoxFill + end}% + \else + \pstVerb{% + tx@Dict begin \psrbrace def + \ifnum\psk@fillcyclex=\z@ + /CycleX {} def + \else + \psk@fillcyclex\space \tx@AutoFillCycleX + \fi + \ifnum\psk@fillcycley=\z@ + /CycleY {} def + \else + \psk@fillcycley\space \tx@AutoFillCycleY + \fi + \pst@number{\wd\pst@fillbox}% + \psk@fillsepx\space add + \pst@number{\ht\pst@fillbox}% + \pst@number{\dp\pst@fillbox}% + \psk@fillsepy\space add add + \tx@BoxFill + end}% + \fi + \pst@Verb{\tx@RotEnd}% + \endgroup} +\fi +% +\catcode`\@=\PstAtCode\relax +\endinput +%% +%% End of file `pst-fill.tex'. diff --git a/info/install-latex-guide-zh-cn/appendix/updateinfo.tex b/info/install-latex-guide-zh-cn/appendix/updateinfo.tex index 7debec6c3a..f88a3d9ab6 100644 --- a/info/install-latex-guide-zh-cn/appendix/updateinfo.tex +++ b/info/install-latex-guide-zh-cn/appendix/updateinfo.tex @@ -2,6 +2,12 @@ \chapter{版本信息} +\section*{v2021.10.1} + +\begin{enumerate} + \item 添加 ubuntu 和 WSL 在用户文件夹安装的相关内容 +\end{enumerate} + \section*{v2021.8.1} \begin{enumerate} diff --git a/info/install-latex-guide-zh-cn/chapter/ubuntu.tex b/info/install-latex-guide-zh-cn/chapter/ubuntu.tex index 5f3dd174e1..1634ed85d9 100644 --- a/info/install-latex-guide-zh-cn/chapter/ubuntu.tex +++ b/info/install-latex-guide-zh-cn/chapter/ubuntu.tex @@ -160,6 +160,38 @@ \end{lstlisting} 在各处替换. +\subsection{在用户文件夹安装}\label{subsec:ubuntu-user-folder} + +如果有用户打算在用户文件夹安装 \TeX{} Live, +那么可以不必调用权限, +直接执行 +\begin{lstlisting}[language=bash] + /mnt/texlive/install-tl +\end{lstlisting} +只不过这时安装路径需要选择 +\begin{lstlisting}[language=bash] + ~/texlive/2021 +\end{lstlisting} +安装完毕后, +继续修改环境变量为 +\begin{lstlisting} + # Add TeX Live to the PATH, MANPATH, INFOPATH + export PATH=~/texlive/2021/bin/x86_64-linux:$PATH + export MANPATH=~/texlive/2021/texmf-dist/doc/man:$MANPATH + export INFOPATH=~/texlive/2021/texmf-dist/doc/info:$INFOPATH +\end{lstlisting} +有关字体的处理变为 +\begin{lstlisting}[language=bash] + cp ~/texlive/2021/texmf-var/fonts/conf/texlive-fontconfig.conf ~/.fonts.conf/09-texlive.conf +\end{lstlisting} +然后执行 +\begin{lstlisting}[language=bash] + fc-cache -fv +\end{lstlisting} +实际上, +无论将 \TeX{} Live 安装到哪里, +字体的配置文件都可以仿照上面只复制于用户文件夹中. + \subsection{\texttt{fc-cache} 无法执行}\label{subsec:fc-cache} 这种情况往往是缺少了 fontconfig, diff --git a/info/install-latex-guide-zh-cn/chapter/wsl.tex b/info/install-latex-guide-zh-cn/chapter/wsl.tex index cbb5787095..da388c34ab 100644 --- a/info/install-latex-guide-zh-cn/chapter/wsl.tex +++ b/info/install-latex-guide-zh-cn/chapter/wsl.tex @@ -156,6 +156,12 @@ \end{lstlisting} 刷新字体缓存. +\subsection{在用户文件夹安装} + +WSL 同样也可以在用户文件夹中安装, +它的用户文件夹往往在主系统的系统盘中. +具体过程也可以参考第~\ref{subsec:ubuntu-user-folder}~节. + \section{卸载 \TeX{} Live} WSL 中的方法同 \ref{sec:ubuntu:uninstall}~节. diff --git a/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf b/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf index c6ad66c4b0..4e09d4ad5c 100644 Binary files a/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf and b/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf differ diff --git a/macros/generic/markdown/README.md b/macros/generic/markdown/README.md index 62d857935a..0543947bd6 100644 --- a/macros/generic/markdown/README.md +++ b/macros/generic/markdown/README.md @@ -1,11 +1,14 @@ Markdown ======== +[![license](https://img.shields.io/github/license/witiko/markdown)](LICENSE) [![release](https://img.shields.io/github/release/witiko/markdown.svg)][release] -[![ci](https://github.com/Witiko/markdown/workflows/Test/badge.svg)][ci] +[![docker pulls](https://img.shields.io/docker/pulls/witiko/markdown)][docker-witiko/markdown] +[![docker image size](https://img.shields.io/docker/image-size/witiko/markdown)][docker-witiko/markdown] +[![ci](https://github.com/witiko/markdown/actions/workflows/main.yml/badge.svg)][ci] - [release]: https://github.com/Witiko/markdown/releases/latest "Releases · Witiko/markdown" - [ci]: https://github.com/Witiko/markdown/actions "GitHub Actions" + [release]: https://github.com/Witiko/markdown/releases/latest "Releases · Witiko/markdown" + [ci]: https://github.com/Witiko/markdown/actions "GitHub Actions" The Markdown package converts [markdown][] markup to TeX commands. The functionality is provided both as a Lua module, and as plain TeX, LaTeX, and @@ -15,24 +18,155 @@ does not require any external programs, and makes it easy to redefine how each and every markdown element is rendered. Creative abuse of the markdown syntax is encouraged. 😉 - [markdown]: https://daringfireball.net/projects/markdown/basics "Daring Fireball: Markdown Basics" + [markdown]: https://daringfireball.net/projects/markdown/basics "Daring Fireball: Markdown Basics" - ![banner](banner.png "An example LaTeX document using the Markdown package") +Your first Markdown document +---------------------------- + +Using a text editor, create an empty directory named `workdir/`. In it, create +a text document named `workdir/document.tex` with the following content: + +``` latex +\documentclass{book} +\usepackage{markdown} +\markdownSetup{pipeTables,tableCaptions} +\begin{document} +\begin{markdown} +Introduction +============ +## Section +### Subsection +Hello *Markdown*! + +| Right | Left | Default | Center | +|------:|:-----|---------|:------:| +| 12 | 12 | 12 | 12 | +| 123 | 123 | 123 | 123 | +| 1 | 1 | 1 | 1 | + +: Table +\end{markdown} +\end{document} +``` + +Next, run the [LaTeXMK][] tool from +[our official Docker image][docker-witiko/markdown] on `document.tex`: + + docker run --rm -v "$PWD"/workdir:/workdir -w /workdir witiko/markdown \ + latexmk -lualatex -silent document.tex + +Alternatively, you can install [TeX Live][tex-live] (can take up to several +hours) and use its [LaTeXMK][] tool: + + latexmk -cd -lualatex -silent workdir/document.tex + +A PDF document named `workdir/document.pdf` should be produced and contain the +following output: + + ![banner](markdown.png "An example LaTeX document using the Markdown package") + +Congratulations, you have just typeset your first Markdown document! 🥳 + + [tex-live]: https://www.tug.org/texlive/ "TeX Live - TeX Users Group" + +Use Markdown for continuous integration +--------------------------------------- + +Can't live without the latest features of the Markdown package in your +continuous integration pipelines? It's ok, you can use +[our official Docker image][docker-witiko/markdown] as a drop-in replacement +for [the `texlive/texlive:latest` Docker image][docker-texlive/texlive]! +The following example shows a [GitHub Actions][github-actions] pipeline, which +will automatically typeset and prerelease a PDF document: + +``` yaml +name: Typeset and prerelease the book +on: + push: +jobs: + typeset: + runs-on: ubuntu-latest + container: + image: witiko/markdown:latest + steps: + - uses: actions/checkout@v2 + - run: latexmk -lualatex document.tex + - uses: marvinpinto/action-automatic-releases@latest + with: + title: The latest typeset book + automatic_release_tag: latest + prerelease: true + repo_token: ${{ secrets.GITHUB_TOKEN }} + files: document.pdf +``` + +In fact, this is how we automatically produce +[the latest documentation][techdoc-latest] for the Markdown package. + + [docker-witiko/markdown]: https://hub.docker.com/r/witiko/markdown/tags "witiko/markdown - Docker Image" + [docker-texlive/texlive]: https://hub.docker.com/r/texlive/texlive/tags "texlive/texlive - Docker Image" + + [github-actions]: https://docs.github.com/actions "GitHub Actions Documentation" + +Peek under the hood +------------------- + +Remember how we said that the Markdown package converts [markdown][] markup to +TeX commands? Let's see what that means and what we can do with this knowledge. + +Using a text editor, create an empty text document named `document.md` with +the following markdown content: + +``` markdown +Hello *Markdown*! $a_x + b_x = c_x$ +``` + +Next, run [the Lua command-line interface (CLI)][lua-cli] from +[our official Docker image][docker-witiko/markdown] on `document.md`: + + docker run --rm -i witiko/markdown markdown-cli hybrid=true < document.md + +We will receive the following output, where the markdown markup has been +replaced by TeX commands: + +``` tex +Hello \markdownRendererEmphasis{Markdown}! +$a\markdownRendererEmphasis{x + b}x = c_x$\relax +``` + +We can see right away that the Markdown package has incorrectly interpreted +`_x + b_` as an emphasized text. We can fix this by passing in the +`underscores=false` option: + + docker run --rm -i witiko/markdown markdown-cli hybrid=true underscores=false < document.md + +``` tex +Hello \markdownRendererEmphasis{Markdown}! +$a_x + b_x = c_x$\relax +``` + +Much better! If the Markdown package ever surprises you, use the Lua CLI to +peek under the hood and inspect the results of the conversion. + + [lua-cli]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#lua-command-line-interface "Markdown Package User Manual" Further information ------------------- For further information, consult one of the following: -1. The [user manual][manual], which can be produced by interpreting the - `markdown.ins` file using a Unicode-aware TeX engine, such as XeTeX - (`xetex markdown.ins`) or LuaTeX (`luatex markdown.ins`). The manual will - reside in the file `markdown.md` and the CSS stylesheet `markdown.css`. -2. The [technical documentation][techdoc], which can be typeset by running the - [LaTeXMK][] tool on the `markdown.dtx` file - (`latexmk markdown.dtx`) after [installing the Markdown package][install]. - [LaTeXMK][] should be included in your TeX distribution. The typeset - documentation will reside in the file `markdown.pdf`. +1. The user manual for either [the released version][manual-tex-live] or + [the latest development version][manual-latest], which can be produced by + interpreting the `markdown.ins` file using a Unicode-aware TeX engine, such + as XeTeX (`xetex markdown.ins`) or LuaTeX (`luatex markdown.ins`). The + manual will reside in the file `markdown.md` and the CSS stylesheet + `markdown.css`. +2. The technical documentation for either [the released version][techdoc-tex-live] + or [the latest development version][techdoc-latest], which can be typeset by + running the [LaTeXMK][] tool on the `markdown.dtx` file (`latexmk + markdown.dtx`) after [installing the Markdown package][install]. + [LaTeXMK][] should be included in your TeX distribution. + The typeset documentation will reside in the file `markdown.pdf`. 3. Tutorials and example documents by [Lian Tze Lim][liantze] at [Overleaf][]: - [How to write in Markdown on Overleaf][overleaf-1], - [Markdown into LaTeX with Style][overleaf-2], @@ -42,13 +176,15 @@ For further information, consult one of the following: - [Using Markdown in LaTeX documents][overleaf-6]. 4. My journal articles published by [TUGboat][]: - [Using Markdown inside TeX documents][tb119], - - [Markdown 2.7.0: Towards lightweight markup in TeX][tb124], and - - [Making Markdown into a Microwave Meal][tb129]. + - [Markdown 2.7.0: Towards lightweight markup in TeX][tb124], + - [Making Markdown into a Microwave Meal][tb129], and + - [Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX][tb131-preprint]. 5. My journal articles published by [CSTUG][] (in Czech): - [Rendering Markdown inside TeX Documents][10.5300/2016-1-4/78], and - [Markdown 2.8.1: Boldly Unto the Throne of Lightweight Markup in TeX][10.5300/2020-1-2/48]. 6. My talks: - - [Five Years of Markdown in LaTeX: What, Why, How, and Whereto][pv212-fall2020] (in Czech). + - [Five Years of Markdown in LaTeX: What, Why, How, and Whereto][pv212-fall2020] (in Czech), and + - [Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX][tb131-video] ([slides][tb131-slides]). [overleaf-1]: https://www.overleaf.com/learn/latex/Articles/How_to_write_in_Markdown_on_Overleaf "How to write in Markdown on Overleaf" [overleaf-2]: https://www.overleaf.com/learn/latex/Articles/Markdown_into_LaTeX_with_Style "Markdown into LaTeX with Style" @@ -57,28 +193,36 @@ For further information, consult one of the following: [overleaf-5]: https://www.overleaf.com/latex/examples/writing-posters-with-markdown/jtbgmmgqrqmh "Writing Posters with Markdown" [overleaf-6]: https://www.overleaf.com/latex/examples/using-markdown-in-latex-documents/whdrnpcpnwrm "Using Markdown in LaTeX documents" - [tb119]: https://www.tug.org/TUGboat/tb38-2/tb119novotny.pdf "Using Markdown inside TeX documents" - [tb124]: https://www.tug.org/TUGboat/tb40-1/tb124novotny-markdown.pdf "Markdown 2.7.0: Towards lightweight markup in TeX" - [tb129]: https://www.tug.org/TUGboat/tb41-3/tb129novotny-frozen.pdf "Making Markdown into a Microwave Meal" + [tb119]: https://www.tug.org/TUGboat/tb38-2/tb119novotny.pdf "Using Markdown inside TeX documents" + [tb124]: https://www.tug.org/TUGboat/tb40-1/tb124novotny-markdown.pdf "Markdown 2.7.0: Towards lightweight markup in TeX" + [tb129]: https://www.tug.org/TUGboat/tb41-3/tb129novotny-frozen.pdf "Making Markdown into a Microwave Meal" + + [tb131-preprint]: https://tug.org/TUGboat/production/42-2/tb131novotny-markdown.pdf "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" + [tb131-slides]: https://tug.org/tug2021/assets/pdf/tug2021-novotny-slides.pdf "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" + [tb131-video]: https://youtu.be/i2GJMnLCZls "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" [10.5300/2016-1-4/78]: https://bulletin.cstug.cz/pdf/2016-1-4.pdf#page=80 "Rendering Markdown inside TeX Documents" [10.5300/2020-1-2/48]: https://bulletin.cstug.cz/pdf/2020-1-2.pdf#page=50 "Markdown 2.8.1: Boldly Unto the Throne of Lightweight Markup in TeX" [pv212-fall2020]: https://is.muni.cz/el/fi/podzim2020/PV212/index.qwarp?prejit=5595952 - [install]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html#installation "Markdown Package User Manual" - [liantze]: http://liantze.penguinattack.org/ "Rants from the Lab" - [manual]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html "Markdown Package User Manual" - [overleaf]: https://www.overleaf.com/ "Overleaf: Real-time Collaborative Writing and Publishing Tools with Integrated PDF Preview" - [techdoc]: http://mirrors.ctan.org/macros/generic/markdown/markdown.pdf "A Markdown Interpreter for TeX" - [tugboat]: https://www.tug.org/tugboat/ "TUGboat - Communications of the TeX Users Group" - [cstug]: https://www.cstug.cz/ "Československé sdružení uživatelů TeXu" + [install]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#installation "Markdown Package User Manual" + [liantze]: https://liantze.penguinattack.org/ "Rants from the Lab" + [overleaf]: https://www.overleaf.com/ "Overleaf: Real-time Collaborative Writing and Publishing Tools with Integrated PDF Preview" + [tugboat]: https://www.tug.org/tugboat/ "TUGboat - Communications of the TeX Users Group" + [cstug]: https://www.cstug.cz/ "Československé sdružení uživatelů TeXu" + + [manual-latest]: https://witiko.github.io/markdown "Markdown Package User Manual" + [manual-tex-live]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html "Markdown Package User Manual" + + [techdoc-latest]: https://github.com/Witiko/markdown/releases/download/latest/markdown.pdf "A Markdown Interpreter for TeX" + [techdoc-tex-live]: https://mirrors.ctan.org/macros/generic/markdown/markdown.pdf "A Markdown Interpreter for TeX" Acknowledgements ---------------- -| Logo | Acknowledgement | -| ------------- | ------------- | +| Logo | Acknowledgement | +| ------------- | --------------- | | [][fimu] | I gratefully acknowledge the funding from the [Faculty of Informatics][fimu] at the [Masaryk University][mu] in Brno, Czech Republic, for the development of the Markdown package. | | [][overleaf] | Extensive user documentation for the Markdown package was kindly written by [Lian Tze Lim][liantze] and published by [Overleaf][]. | | [][omedym] | Support for content slicing (Lua options [`shiftHeadings`][option-shift-headings] and [`slice`][option-slice]) and pipe tables (Lua options [`pipeTables`][option-pipe-tables] and [`tableCaptions`][option-table-captions]) was graciously sponsored by [David Vins][dvins] and [Omedym][]. | @@ -88,16 +232,16 @@ Acknowledgements [mu]: https://www.muni.cz/en "Masaryk University" [Omedym]: https://www.omedym.com/ "Omedym" - [option-pipe-tables]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html#pipe-tables "Markdown Package User Manual" - [option-shift-headings]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html#option-shiftheadings "Markdown Package User Manual" - [option-slice]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html#slice "Markdown Package User Manual" - [option-table-captions]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html#option-tablecaptions "Markdown Package User Manual" + [option-pipe-tables]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#pipe-tables "Markdown Package User Manual" + [option-shift-headings]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#option-shiftheadings "Markdown Package User Manual" + [option-slice]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#slice "Markdown Package User Manual" + [option-table-captions]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#option-tablecaptions "Markdown Package User Manual" Contributing ------------ Apart from the example markdown documents, tests, and continuous integration, -which are placed in the `examples/`, `tests/`, and `.circleci/` directories, +which are placed in the `examples/`, `tests/`, and `.github/` directories, the complete source code and documentation of the package are placed in the `markdown.dtx` document following the [literate programming][] paradigm. Some useful commands, such as building the release archives and typesetting @@ -118,6 +262,12 @@ documentation is placed inside TeX comments and marked up using the [ltxdockit][] LaTeX document class. Support for typesetting the documentation is provided by the [doc][] LaTeX package. +To facilitate continuous integration and sharing of the Markdown package, +there exists an [official Docker image][docker-witiko/markdown], which can be +reproduced by running the `docker build` command on `Dockerfile` (`docker build +-t witiko/markdown .`). The `make docker-image` command is provided by +`Makefile` for convenience. + [doc]: https://ctan.org/pkg/doc "doc – Format LaTeX documentation" [DocStrip]: https://ctan.org/pkg/docstrip "docstrip – Remove comments from file" [LaTeXMK]: https://ctan.org/pkg/latexmk "latexmk – Fully automated LaTeX document generation" @@ -130,7 +280,7 @@ Citing Markdown When citing Markdown in academic papers and theses, please use the following BibTeX entry: -```bib +``` bib @article{novotny17markdown, author = {V\'{i}t Novotn\'{y}}, year = {2017}, @@ -144,3 +294,13 @@ BibTeX entry: urldate = {2020-07-31}, } ``` + +Alternatively, you can use the `Novotny:2017:UMI` key from the [`tugboat.bib`][tugboat.bib] +BibTeX file that is included in your TeX distribution like this: + +``` tex +\cite{Novotny:2017:UMI} +\bibliography{tugboat} +``` + + [tugboat.bib]: http://mirrors.ctan.org/info/digests/tugboat/biblio/tugboat.bib diff --git a/macros/generic/markdown/banner.png b/macros/generic/markdown/banner.png deleted file mode 100644 index b95a90c2cb..0000000000 Binary files a/macros/generic/markdown/banner.png and /dev/null differ diff --git a/macros/generic/markdown/examples/context.tex b/macros/generic/markdown/examples/context.tex index 7ed432344a..a049d9f81c 100644 --- a/macros/generic/markdown/examples/context.tex +++ b/macros/generic/markdown/examples/context.tex @@ -12,6 +12,7 @@ \def\markdownOptionContentBlocks{true} \def\markdownOptionPipeTables{true} \def\markdownOptionTableCaptions{true} +\def\markdownOptionTaskLists{true} \definetyping [latex] \setuptyping [latex] [option=TEX] \starttext diff --git a/macros/generic/markdown/examples/example.md b/macros/generic/markdown/examples/example.md index f0be0cddfa..2841cd156f 100644 --- a/macros/generic/markdown/examples/example.md +++ b/macros/generic/markdown/examples/example.md @@ -1,12 +1,13 @@ -This is an H1 -============= +# This is an H1 -This is an H2 -------------- +## This is an H2 ### This is an H3 + #### This is an H4 + ##### This is an H5 + ###### This is an H6 This is a text paragraph containing an ellipsis ... and followed by a horizontal rule. @@ -40,45 +41,56 @@ This is a table: This is a bullet list: - * The first item of a bullet list +* The first item of a bullet list - that spans several paragraphs, - * the second item of a bullet list, - * the third item of a bullet list. + that spans several paragraphs, +* the second item of a bullet list, +* the third item of a bullet list. This is a compact bullet list: - * The first item of a bullet list, - * the second item of a bullet list, - * the third item of a bullet list. +* The first item of a bullet list, +* the second item of a bullet list, +* the third item of a bullet list. This is an ordered list: - 5. The first item of an ordered list +5. The first item of an ordered list - that spans several paragraphs, - 6. the second item of an ordered list, - 7. the third item of an ordered list. + that spans several paragraphs, +6. the second item of an ordered list, +7. the third item of an ordered list. This is an ordered list using hash enumerators: - #. The first item of an ordered list +#. The first item of an ordered list - that spans several paragraphs, - #. the second item of an ordered list, - #. the third item of an ordered list. + that spans several paragraphs, +#. the second item of an ordered list, +#. the third item of an ordered list. This is a compact ordered list: - 5. The first item of an ordered list, - 6. the second item of an ordered list, - 7. the third item of an ordered list. +5. The first item of an ordered list, +6. the second item of an ordered list, +7. the third item of an ordered list. This is a compact ordered list using hash enumerators: - #. The first item of an ordered list, - #. the second item of an ordered list, - #. the third item of an ordered list. +#. The first item of an ordered list, +#. the second item of an ordered list, +#. the third item of an ordered list. + +This is a task list: + +* [ ] Some unfinished task +* [/] Some half-finished task +* [X] Some finished task +* An item of an unordered list + #. [ ] Some unfinished subtask + #. [.] Some half-finished subtask + #. [x] Some finished subtask + #. An item of an ordered list This is a definition list: @@ -86,12 +98,12 @@ Term 1 : Definition 1 -*Term 2* +Term 2 : Definition 2 - + Some code, part of Definition 2 - + Third paragraph of Definition 2. : Definition 3 @@ -100,7 +112,7 @@ This is a compact definition list: Term 1 : Definition 1 -*Term 2* +Term 2 : Definition 2 : Definition 3 diff --git a/macros/generic/markdown/examples/latex.tex b/macros/generic/markdown/examples/latex.tex index 07ebe631f9..cf820dfa36 100644 --- a/macros/generic/markdown/examples/latex.tex +++ b/macros/generic/markdown/examples/latex.tex @@ -20,12 +20,21 @@ definitionLists, footnotes, inlineFootnotes, + jekyllData, smartEllipses, fencedCode, contentBlocks, pipeTables, tableCaptions, + taskLists, ]{markdown} +\begin{markdown*}{hybrid} +--- +title: An Example *Markdown* Document +author: Vít Novotný +date: \today +--- +\end{markdown*} \begin{document} % Typeset the document `example.md` by letting the Markdown package handle % the conversion internally. diff --git a/macros/generic/markdown/markdown.dtx b/macros/generic/markdown/markdown.dtx index d32712738b..fad63a3791 100644 --- a/macros/generic/markdown/markdown.dtx +++ b/macros/generic/markdown/markdown.dtx @@ -1,12 +1,13 @@ % \iffalse +%<@@=markdown> %<*driver> \documentclass{ltxdockit} \usepackage[american]{babel} -\usepackage{amsmath,btxdockit,doc,fancyvrb,graphicx,hologo,microtype,minted} -\usepackage{fontspec} -\defaultfontfeatures[\rmfamily,\sffamily,\ttfamily]{} +\usepackage{amsmath,btxdockit,doc,fancyvrb,graphicx,hologo,microtype,minted,varioref} % Set up the style. +\usepackage{fontspec} +\defaultfontfeatures[\rmfamily,\sffamily,\ttfamily]{} \emergencystretch=1em \fvset{gobble=0,frame=single} \setcounter{secnumdepth}{4} @@ -30,29 +31,47 @@ % Define some markup. \let\pkg\relax % A package name +\def\inline#1{% Inline code + \textcolor{spot}{\text{\texttt{#1}}}} +\newcommand\acro[1]{% An acronym + \textsc{\MakeLowercase{#1}}} + +% Set up index. +\DisableCrossrefs +\usepackage{makeidx} +\usepackage[columns=1, totoc]{idxlayout} +\makeindex + \newcommand\mdef[1]{% A TeX macro definition + \index{#1@\cs{#1}|textit}% \phantomsection\label{macro:#1}\textcolor{spot}{\cs{#1}}} -\newcommand\m[1]{% A TeX macro reference +\newcommand\mref[1]{% A TeX macro reference + \index{#1@\cs{#1}}% \hyperref[macro:#1]{\textcolor{spot}{\cs{#1}}}} -\newcommand\envmdef[1]{% A TeX macro definition - \phantomsection\label{environment:#1}\t`#1`} -\newcommand\envm[1]{% A LaTeX environment reference - \hyperref[environment:#1]{\t`#1`}} + +\newcommand\envmdef[1]{% A LaTeX environment definition + \index{#1@\texttt{#1}|textit}% + \phantomsection\label{environment:#1}\inline{#1}} +\newcommand\envmref[1]{% A LaTeX environment reference + \index{#1@\texttt{#1}}% + \hyperref[environment:#1]{\inline{#1}}} + \newcommand\luamdef[1]{% A Lua object / method definition - \phantomsection\label{lua:#1}\t`#1`} -\newcommand\luam[1]{% A Lua object / method reference - \hyperref[lua:#1]{\t`#1`}} -\def\inline#1{% Inline code - \textcolor{spot}{\text{\texttt{#1}}}} -\def\t`#1`{\inline{#1}} + \index{#1@\texttt{#1}|textit}% + \phantomsection\label{lua:#1}\inline{#1}} +\newcommand\luamref[1]{% A Lua object / method reference + \index{#1@\texttt{#1}}% + \hyperref[lua:#1]{\inline{#1}}} + \newcommand\Optitem[2][]{\penalty -1000\relax % An option item definition + \index{#2@\texttt{#2}|textit}% \phantomsection\label{opt:#2}\optitem[#1]{#2}} \newcommand\Valitem[2][]{\penalty -1000\relax % A value item definition + \index{#2@\texttt{#2}}% \phantomsection\label{opt:#2}\valitem[#1]{#2}} \newcommand\Opt[1]{% An option / value item reference - \hyperref[opt:#1]{\t`#1`}} -\newcommand\acro[1]{% An acronym - \textsc{\MakeLowercase{#1}}} + \index{#1@\texttt{#1}}% + \hyperref[opt:#1]{\inline{#1}}} % Set up markdown. \usepackage[ @@ -62,23 +81,24 @@ headerAttributes, hybrid, html, + jekyllData, stripPercentSigns, underscores=false, theme=witiko/dot, theme=witiko/graphicx/http, + theme=witiko/markdown/techdoc, ]{markdown} -\markdownSetup{ - renderers = { - codeSpan = {\inline{#1}}, - link = {#1\footnote{See \url{#3}.}}, - headingFour = {% - \paragraph{#1}\leavevmode - \def\markdownRendererInterblockSeparator{% - \let\markdownRendererInterblockSeparator\par - }% - \noindent - }, - }, + +% Set up Unicode characters. +\usepackage{newunicodechar} +\newunicodechar{☒}{\markdownRendererTickedBox} +\newunicodechar{⌛}{\markdownRendererHalfTickedBox} +\newunicodechar{☐}{\markdownRendererUntickedBox} +\IfFileExists{emoji.sty}{ + \usepackage{emoji} + \newunicodechar{😉}{\emoji{winking-face}} +}{ + \newunicodechar{😉}{;-)} } % Set up the catcodes. @@ -86,94 +106,24 @@ \catcode`\^^B=8 % When we occasionally need subscripts , we will use `^^B` (STX). % Set up the title page. -\titlepage{% - title={A Markdown Interpreter for \TeX{}}, - subtitle={}, - url={https://github.com/witiko/markdown}, - author={Vít Novotný}, - email={witiko@mail.muni.cz}, - revision=\markdownVersion, - date={\today}} -\hypersetup{% - pdftitle={A Markdown Interpreter for \TeX{}}, - pdfauthor={Vít Novotný}} +\begin{markdown} +--- +title: A Markdown Interpreter for \TeX +url: https://github.com/witiko/markdown +author: Vít Novotný +email: witiko@mail.muni.cz +revision: \markdownVersion +date: \markdownLastModified +--- +\end{markdown} \CodelineIndex +% Set up the figures. +\usepackage{tikz} +\usepackage{mathabx,pgf-umlsd,tikz} +\usetikzlibrary{automata,arrows.meta,positioning,shapes.geometric} + % Set up the bibliography. -\begin{filecontents}[overwrite,nosearch,noheader]{markdown.bib} -@book{tantau21, - author = {Till Tantau and Joseph Wright and Vedran Miletić}, - title = {The Beamer class}, - date = {2021-02-10}, - url = {http://mirrors.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf}, - urldate = {2021-02-11}} -@online{sotkov17, - author = {Sotkov, Anton}, - title = {File transclusion syntax for Markdown}, - date = {2017-01-19}, - url = {https://github.com/iainc/Markdown-Content-Blocks}, - urldate = {2018-01-08}} -@book{luatex17, - author = {{Lua\TeX{} development team}}, - title = {Lua\TeX{} reference manual}, - year = {2017}, - month = {2}, - url = {http://www.luatex.org/svn/trunk/manual/luatex.pdf}, - urldate = {2018-01-08}} -@book{latex17, - author = {Braams, Johannes and Carlisle, David and Jeffrey, Alan and - Lamport, Leslie and Mittelbach, Frank and Rowley, Chris and - Schöpf, Rainer}, - title = {The \Hologo{LaTeX2e} Sources}, - date = {2017-04-15}, - url = {http://mirrors.ctan.org/macros/latex/base/source2e.pdf}, - urldate = {2018-01-08}} -@book{mittelbach17, - author = {Mittelbach, Frank}, - title = {The \texttt{doc} and \texttt{shortvrb} Packages}, - date = {2017-04-15}, - url = {http://mirrors.ctan.org/macros/latex/base/doc.pdf}, - urldate = {2018-02-19}} -@book{poore17, - author = {Poore, Geoffrey M.}, - title = {The \texttt{minted} Package}, - subtitle = {Highlighted source code in \LaTeX}, - date = {2017-07-19}, - version = {v2.5}, - url = {http://mirrors.ctan.org/macros/latex/contrib/minted/minted.pdf}, - urldate = {2020-09-01}} -@online{novotny15, - author = {Novotný, Vít}, - year = {2015}, - title = {TeXový interpret jazyka Markdown (markdown.sty)}, - location = {Brno, Czech Republic}, - publisher = {Masaryk University}, - url = {https://www.muni.cz/en/research/projects/32984}, - urldate = {2018-02-19}} -@book{ierusalimschy13, - author = {Ierusalimschy, Roberto}, - year = {2013}, - title = {Programming in Lua}, - edition = {3}, - isbn = {978-85-903798-5-0}, - pagetotal = {xviii, 347}, - location = {Rio de Janeiro}, - publisher = {PUC-Rio}} -@book{knuth86, - author = {Knuth, Donald Ervin}, - year = {1986}, - title = {The \TeX{}book}, - edition = {3}, - isbn = {0-201-13447-0}, - pagetotal = {ix, 479}, - publisher = {Addison-Wesley}} -@online{novotny21, - author = {Novotný, Vít}, - title = {\Hologo{LaTeX2e} no longer keys packages by pathnames}, - date = {2021-02-20}, - url = {https://github.com/latex3/latex2e/issues/510}, - urldate = {2021-02-21}} -\end{filecontents} \usepackage[ backend=biber, style=numeric, @@ -183,10 +133,9 @@ \addbibresource{markdown.bib} \begin{document} -\printtitlepage -\tableofcontents \DocInput{markdown.dtx} -\printbibliography +\printbibliography[heading=bibintoc] +\printindex \end{document} % %<*manual-css> @@ -542,12 +491,329 @@ abbr { } % +%<*techdoc-block-diagram> +\begingroup +\ifx\du\undefined\newlength{\du}\fi +\setlength{\du}{15\unitlength} +\begin{tikzpicture} +\pgftransformxscale{1.000000} +\pgftransformyscale{-1.23800} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (4.282853\du,-3.750000\du)--(4.282853\du,-1.850000\du)--(11.971656\du,-1.850000\du)--(11.971656\du,-3.750000\du)--cycle; +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (4.282853\du,-3.750000\du)--(4.282853\du,-1.850000\du)--(11.971656\du,-1.850000\du)--(11.971656\du,-3.750000\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (8.127254\du,-2.705000\du){\LaTeX{} layer}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (-5.055135\du,-3.788555\du)--(-5.055135\du,-1.888555\du)--(2.894865\du,-1.888555\du)--(2.894865\du,-3.788555\du)--cycle; +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-5.055135\du,-3.788555\du)--(-5.055135\du,-1.888555\du)--(2.894865\du,-1.888555\du)--(2.894865\du,-3.788555\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (-1.080135\du,-2.743555\du){\Hologo{ConTeXt} layer}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (-8.200000\du,-0.224996\du)--(-8.200000\du,1.675004\du)--(11.870000\du,1.675004\du)--(11.870000\du,-0.224996\du)--cycle; +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-8.200000\du,-0.224996\du)--(-8.200000\du,1.675004\du)--(11.870000\du,1.675004\du)--(11.870000\du,-0.224996\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (1.835000\du,0.820004\du){Plain \TeX{} layer}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (-11.150000\du,3.325006\du)--(-11.150000\du,5.225006\du)--(11.800000\du,5.225006\du)--(11.800000\du,3.325006\du)--cycle; +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-11.150000\du,3.325006\du)--(-11.150000\du,5.225006\du)--(11.800000\du,5.225006\du)--(11.800000\du,3.325006\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (0.325000\du,4.370006\du){Lua layer}; +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetarrowsstart{stealth} +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-9.906400\du,-5.181570\du)--(-9.937836\du,3.024193\du); +} +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetarrowsstart{stealth} +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-6.919693\du,-5.181570\du)--(-6.938734\du,-0.450800\du); +} +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetarrowsstart{stealth} +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-1.063746\du,-5.175791\du)--(-1.063746\du,-3.975793\du); +} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (-10.972500\du,-7.267480\du)--(-10.972500\du,-5.367480\du)--(11.977500\du,-5.367480\du)--(11.977500\du,-7.267480\du)--cycle; +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-10.972500\du,-7.267480\du)--(-10.972500\du,-5.367480\du)--(11.977500\du,-5.367480\du)--(11.977500\du,-7.267480\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (0.502500\du,-6.322480\du){User code}; +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetarrowsstart{stealth} +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (8.149986\du,-5.159541\du)--(8.149986\du,-3.959543\du); +} +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetarrowsstart{stealth} +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (-1.074995\du,-1.634548\du)--(-1.074995\du,-0.434550\du); +} +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetarrowsstart{stealth} +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (8.138736\du,-1.618298\du)--(8.138736\du,-0.418300\du); +} +\pgfsetlinewidth{0.040000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetarrowsstart{stealth} +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (1.689638\du,1.881695\du)--(1.689638\du,3.081693\du); +} +\end{tikzpicture} +\endgroup +% +%<*techdoc-bibliography> +@book{tantau21, + author = {Till Tantau and Joseph Wright and Vedran Miletić}, + title = {The Beamer class}, + date = {2021-02-10}, + url = {https://mirrors.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf}, + urldate = {2021-02-11}} +@online{sotkov17, + author = {Sotkov, Anton}, + title = {File transclusion syntax for Markdown}, + date = {2017-01-19}, + url = {https://github.com/iainc/Markdown-Content-Blocks}, + urldate = {2018-01-08}} +@book{luatex17, + author = {{Lua\TeX{} development team}}, + title = {Lua\TeX{} reference manual}, + year = {2017}, + month = {2}, + url = {http://www.luatex.org/svn/trunk/manual/luatex.pdf}, + urldate = {2018-01-08}} +@book{latex17, + author = {Braams, Johannes and Carlisle, David and Jeffrey, Alan and + Lamport, Leslie and Mittelbach, Frank and Rowley, Chris and + Schöpf, Rainer}, + title = {The \Hologo{LaTeX2e} Sources}, + date = {2017-04-15}, + url = {https://mirrors.ctan.org/macros/latex/base/source2e.pdf}, + urldate = {2018-01-08}} +@book{mittelbach17, + author = {Mittelbach, Frank}, + title = {The \texttt{doc} and \texttt{shortvrb} Packages}, + date = {2017-04-15}, + url = {https://mirrors.ctan.org/macros/latex/base/doc.pdf}, + urldate = {2018-02-19}} +@book{poore17, + author = {Poore, Geoffrey M.}, + title = {The \texttt{minted} Package}, + subtitle = {Highlighted source code in \LaTeX}, + date = {2017-07-19}, + version = {v2.5}, + url = {https://mirrors.ctan.org/macros/latex/contrib/minted/minted.pdf}, + urldate = {2020-09-01}} +@online{novotny15, + author = {Novotný, Vít}, + year = {2015}, + title = {TeXový interpret jazyka Markdown (markdown.sty)}, + location = {Brno, Czech Republic}, + publisher = {Masaryk University}, + url = {https://www.muni.cz/en/research/projects/32984}, + urldate = {2018-02-19}} +@book{ierusalimschy13, + author = {Ierusalimschy, Roberto}, + year = {2013}, + title = {Programming in Lua}, + edition = {3}, + isbn = {978-85-903798-5-0}, + pagetotal = {xviii, 347}, + location = {Rio de Janeiro}, + publisher = {PUC-Rio}} +@book{knuth86, + author = {Knuth, Donald Ervin}, + year = {1986}, + title = {The \TeX{}book}, + edition = {3}, + isbn = {0-201-13447-0}, + pagetotal = {ix, 479}, + publisher = {Addison-Wesley}} +@online{novotny21, + author = {Novotný, Vít}, + title = {\Hologo{LaTeX2e} no longer keys packages by pathnames}, + date = {2021-02-20}, + url = {https://github.com/latex3/latex2e/issues/510}, + urldate = {2021-02-21}} +% +%<*latex-themes-witiko-markdown-techdoc> +\ProvidesPackage{markdownthemewitiko_markdown_techdoc}[2021/09/10] +\RequirePackage{etoolbox} +\markdownSetup{ + renderers = { + codeSpan = {\inline{#1}}, + link = {#1\footnote{See \url{#3}.}}, + headingFour = {% + \paragraph{#1}\leavevmode + \def\markdownRendererInterblockSeparator{% + \let\markdownRendererInterblockSeparator\par + }% + \noindent + }, + jekyllDataEnd = {% + \AfterEndPreamble{% + \printtitlepage + \tableofcontents + {\def\addcontentsline##1##2##3{}\listoffigures}% + }% + }, + }, +} +\markdownSetupSnippet{options}{ + renderers = { + dlBegin = {\begin{optionlist}}, + dlItem = { + #1 + \begingroup + \markdownSetup{ + renderers = { + dlBegin = { + \begingroup + \markdownSetup{ + renderers = { + dlItem = {\item[####1]}, + dlItemEnd = {}}} + \begin{valuelist} + }, + dlEnd = { + \end{valuelist} + \endgroup + }, + }, + }% + }, + dlItemEnd = {\endgroup}, + dlEnd = {\end{optionlist}}, + } +} +\RequirePackage{expl3} +\ExplSyntaxOn +\keys_define:nn + { markdown/jekyllData } + { + author .code:n = + { + \gdef\ltd@title@author { #1 } + \hypersetup{ pdfauthor = { #1 } } + }, + title .code:n = + { + \gdef\ltd@title@title { #1 } + \gdef\ltd@title@subtitle { } + \hypersetup{ pdftitle = { #1 } } + }, + date .code:n = { \gdef\ltd@title@date { #1 } }, + email .code:n = { \gdef\ltd@title@email { #1 } }, + revision .code:n = { \gdef\ltd@title@revision { #1 } }, + url .code:n = { \gdef\ltd@title@url { #1 } }, + } +\ExplSyntaxOff +% %<*manual> --- title: Markdown Package User Manual author: Vít Novotný -date: v\markdownVersion{} (\markdownLastModified{}) +date: \markdownVersion{} (\markdownLastModified{}) --- % \fi @@ -564,7 +830,7 @@ functionality is provided both as a Lua module and as plain \TeX{}, \LaTeX{}, an containing markdown markup. Unlike other convertors, the Markdown package does not require any external programs, and makes it easy to redefine how each and every markdown element is rendered. Creative abuse of the markdown -syntax is encouraged. ;-) +syntax is encouraged. 😉 [markdown]: https://daringfireball.net/projects/markdown/basics (Daring Fireball: Markdown Basics) @@ -573,8 +839,8 @@ syntax is encouraged. ;-) % This document is a technical documentation for the \pkg{Markdown} package. It % consists of three sections. This section introduces the package and outlines -% its prerequisites. Section \ref{sec:interfaces} describes the interfaces -% exposed by the package. Section \ref{sec:implementation} describes the +% its prerequisites. Section \vref{sec:interfaces} describes the interfaces +% exposed by the package. Section \vref{sec:implementation} describes the % implementation of the package. The technical documentation contains only a % limited number of tutorials and code examples. You can find more of these in % the [user manual.][manual] @@ -597,12 +863,12 @@ documentation][techdoc]. % \fi % \begin{macrocode} local metadata = { - version = "2.10.1", + version = "$(VERSION)", comment = "A module for the conversion from markdown to plain TeX", author = "John MacFarlane, Hans Hagen, Vít Novotný", copyright = {"2009-2016 John MacFarlane, Hans Hagen", "2016-2021 Vít Novotný"}, - license = "LPPL 1.3" + license = "LPPL 1.3c" } % \end{macrocode} @@ -614,33 +880,6 @@ local metadata = { if not modules then modules = { } end modules['markdown'] = metadata % \end{macrocode} -% \par -% \begin{markdown} -% -% Feedback -%--------- -% Please use the \pkg{Markdown} project page on -% [GitHub](https://github.com/witiko/markdown/issues) to report bugs and submit -% feature requests. If you do not want to report a bug or request a feature but -% are simply in need of assistance, you might want to consider posting your -% question on the [\TeX-\LaTeX{} Stack Exchange.](https://tex.stackexchange.com) -% -% Acknowledgements -%----------------- -% The Lunamark Lua module provides speedy markdown parsing for the package. I -% would like to thank John Macfarlane, the creator of Lunamark, for releasing -% Lunamark under a permissive license. -% -% Funding by the the Faculty of Informatics at the Masaryk~University -% in~Brno~[@novotny15] is gratefully acknowledged. -% -% The \TeX{} implementation of the package draws inspiration from several -% sources including the source code of \Hologo{LaTeX2e}, the \pkg{minted} -% package by Geoffrey M. Poore, which likewise tackles the issue of -% interfacing with an external interpreter from \TeX{}, the \pkg{filecontents} -% package by Scott Pakin and others. -% -% \end{markdown} % \iffalse % %<*manual> @@ -648,36 +887,38 @@ modules['markdown'] = metadata Requirements ------------ -The package requires a working \TeX{} distribution. [\TeX{} Live][tl] ≥ 2013 is -known to work and so are recent installation of [Mik\TeX{}][mik]. If you are -using a minimal installation of a \TeX{} distribution, please consult the -[technical documentation][techdoc] for a detailed list of required packages. +The package requires either [our official Docker image][docker], which contains +the latest development version of the Markdown package, or a \TeX{} +distribution: [\TeX{} Live][tl] ≥ 2018 is known to work with the current +version of the Markdown package and so are recent versions of [Mik\TeX{}][mik]. +If you are using an older, incomplete, or atypical \TeX{} distribution, please +consult the [technical documentation][techdoc] for a detailed list of +requirements. + [docker]: https://hub.docker.com/r/witiko/markdown/tags (witiko/markdown - Docker Image) [tl]: https://www.tug.org/texlive/ (TeX Live - TeX Users Group) [mik]: https://miktex.org/ (Home - MiKTeXorg) Installation ------------ -The package comes pre-installed with [\TeX{} Live][tl] ≥ 2016 and with recent -installations of [MikTeX][mik]. Unless you explicitly wish to use the latest -version of the package, you are encouraged to skip this step. +If Markdown is not included in your \TeX{} distribution, you will need to +install it. -To install the package, first download the package from the repository -using Git: +First, download the package from the repository using Git: ``` sh git clone https://github.com/witiko/markdown `````` -Next, enter the directory named `markdown` and interpret the file named -`markdown.ins` file using a Unicode-aware \TeX{} engine, such as XeTeX or -LuaTeX: +Next, enter the directory named `markdown` and run the `make base` command using +GNU Make: ``` sh cd markdown -luatex markdown.ins +make base `````` This should produce the following files: * `markdown.lua`, the Lua module, + * `libraries/markdown-tinyyaml.lua`, an external library for reading \acro{yaml}, * `markdown-cli.lua`, the Lua command-line interface, * `markdown.tex`, the plain \TeX{} macro package, * `markdown.sty`, the \LaTeX{} package, @@ -692,16 +933,17 @@ To perform a local installation, place the above files into your \TeX{} directory structure. This is generally where the individual files should be placed: - * `/tex/luatex/markdown/markdown.lua` - * `/scripts/markdown/markdown-cli.lua` - * `/tex/generic/markdown/markdown.tex` - * `/tex/latex/markdown/markdown.sty` - * `/tex/latex/markdown/markdownthemewitiko_dot.sty` - * `/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty` - * `/tex/latex/markdown/markdownthemewitiko_tilde.sty` - * `/tex/context/third/markdown/t-markdown.tex` - -where `` corresponds to a root of your \TeX{} distribution, such as + * `⟨TEXMF⟩/tex/luatex/markdown/markdown.lua` + * `⟨TEXMF⟩/tex/luatex/markdown/markdown-tinyyaml.lua` + * `⟨TEXMF⟩/scripts/markdown/markdown-cli.lua` + * `⟨TEXMF⟩/tex/generic/markdown/markdown.tex` + * `⟨TEXMF⟩/tex/latex/markdown/markdown.sty` + * `⟨TEXMF⟩/tex/latex/markdown/markdownthemewitiko_dot.sty` + * `⟨TEXMF⟩/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty` + * `⟨TEXMF⟩/tex/latex/markdown/markdownthemewitiko_tilde.sty` + * `⟨TEXMF⟩/tex/context/third/markdown/t-markdown.tex` + +where `⟨TEXMF⟩` corresponds to a root of your \TeX{} distribution, such as `/usr/share/texmf` and `~/texmf` on UN\*X systems or `C:\Users\`\meta{Your username}`\texmf` on Windows systems. When in doubt, consult the manual of your \TeX{} distribution. @@ -788,7 +1030,14 @@ local md5 = require("md5") % \begin{markdown} % % All the abovelisted modules are statically linked into the current version of -% the Lua\TeX{} engine~[@luatex17, Section 3.3]. +% the Lua\TeX{} engine~[@luatex17, Section 3.3]. Beside these, we also carry +% the following third-party Lua libraries: +% +% \pkg{api7/lua-tinyyaml} +% +%: A library that provides a regex-based recursive descent \acro{yaml} +% (subset) parser that is used to read \acro{yaml} metadata when the +% \Opt{jekyllData} option is enabled. % % \end{markdown} % \iffalse @@ -802,17 +1051,17 @@ local md5 = require("md5") % \label{sec:texprerequisites} % The plain \TeX{} part of the package requires that the plain \TeX{} % format (or its superset) is loaded, all the Lua prerequisites (see -% Section \ref{sec:luaprerequisites}), and the following Lua module: +% Section \vref{sec:luaprerequisites}), and the following Lua module: % % \pkg{Lua File System} % %: A library that provides access to the filesystem via \acro{os}-specific % syscalls. It is used by the plain \TeX{} code to create the cache -% directory specified by the \m{markdownOptionCacheDir} macro before +% directory specified by the \mref{markdownOptionCacheDir} macro before % interfacing with the \pkg{Lunamark} library. \pkg{Lua File System} is % included in all releases of Lua\TeX{} (\TeX Live${}\geq{}2008$). % -% The plain \TeX{} code makes use of the \luam{isdir} method that was added +% The plain \TeX{} code makes use of the \luamref{isdir} method that was added % to the \pkg{Lua File System} library by the Lua\TeX{} engine % developers~[@luatex17, Section 3.2]. % @@ -820,12 +1069,12 @@ local md5 = require("md5") % engine~[@luatex17, Section~3.3]. % % Unless you convert markdown documents to \TeX{} manually using the Lua -% command-line interface (see Section~\ref{sec:lua-cli-interface}), the plain +% command-line interface (see Section \vref{sec:lua-cli-interface}), the plain % \TeX{} part of the package will require that either the Lua\TeX{} -% \m{directlua} primitive or the shell access file stream 18 is available in +% \mref{directlua} primitive or the shell access file stream 18 is available in % your \TeX{} engine. If only the shell access file stream is available in your % \TeX{} engine (as is the case with \hologo{pdfTeX} and \Hologo{XeTeX}) or if -% you enforce the use of shell using the \m{markdownMode} macro, then unless +% you enforce the use of shell using the \mref{markdownMode} macro, then unless % your \TeX{} engine is globally configured to enable shell access, you will % need to provide the `-shell-escape` parameter to your engine when typesetting % a document. @@ -854,14 +1103,14 @@ local md5 = require("md5") % \fi % \begin{markdown} % a \TeX{} engine that extends \Hologo{eTeX}, all the plain \TeX{} -% prerequisites (see Section \ref{sec:texprerequisites}), and the following +% prerequisites (see Section \vref{sec:texprerequisites}), and the following % \Hologo{LaTeX2e} packages: % % \pkg{keyval} % %: A package that enables the creation of parameter sets. This package is -% used to provide the \m{markdownSetup} macro, the package options -% processing, as well as the parameters of the \envm{markdown*} \LaTeX{} +% used to provide the \mref{markdownSetup} macro, the package options +% processing, as well as the parameters of the \envmref{markdown*} \LaTeX{} % environment. % % \end{markdown} @@ -882,56 +1131,85 @@ local md5 = require("md5") % \par % \begin{markdown} % -% The following packages are soft prerequisites and will not be loaded -% if the `plain` package option has been enabled (see Section -% \ref{sec:latexplain}): +% The following packages are soft prerequisites. They are only used to provide +% default token renderer prototypes (see sections +% \vref{sec:texrendererprototypes} and +% \vref{sec:latexdefaultrendererprototypes}) or \LaTeX{} themes (see Section +% \vref{sec:latexthemes}) and will not be loaded if the `plain` package option +% has been enabled (see Section \vref{sec:latexplain}): % % \pkg{url} % -%: A package that provides the \m{url} macro for the typesetting of -% \acro{url}s. It is used to provide the default token renderer -% prototype (see Section \ref{sec:texrendererprototypes}) for links. +%: A package that provides the \mref{url} macro for the typesetting of +% links. % % \pkg{graphicx} % -%: A package that provides the \m{includegraphics} macro for the typesetting -% of images. It is used to provide the corresponding default token renderer -% prototype (see Section \ref{sec:texrendererprototypes}). +%: A package that provides the \mref{includegraphics} macro for the typesetting +% of images. % % \pkg{paralist} % -%: A package that provides the \envm{compactitem}, \envm{compactenum}, and -% \envm{compactdesc} macros for the typesetting of tight bulleted lists, -% ordered lists, and definition lists. It is used to provide the -% corresponding default token renderer prototypes (see Section -% \ref{sec:texrendererprototypes}). +%: A package that provides the \envmref{compactitem}, \envmref{compactenum}, and +% \envmref{compactdesc} macros for the typesetting of tight bulleted lists, +% ordered lists, and definition lists. % % \pkg{ifthen} % %: A package that provides a concise syntax for the inspection of macro % values. It is used to determine whether or not the \pkg{paralist} package % should be loaded based on the user options, in the `witiko/dot` \LaTeX{} -% theme (see Section \ref{sec:latexthemes}), and to provide default token -% renderer prototypes (see Section \ref{sec:texrendererprototypes}). +% theme (see Section \vref{sec:latexthemes}), and to provide default token +% renderer prototypes. % % \pkg{fancyvrb} % -%: A package that provides the \m{VerbatimInput} macros for the verbatim -% inclusion of files containing code. It is used to provide the -% corresponding default token renderer prototype (see Section -% \ref{sec:texrendererprototypes}). +%: A package that provides the \mref{VerbatimInput} macros for the verbatim +% inclusion of files containing code. % % \pkg{csvsimple} % -%: A package that provides the default token renderer prototype for -% iA\,Writer content blocks with the \acro{csv} filename extension (see -% Section \ref{sec:texrendererprototypes}). +%: A package that provides the \mref{csvautotabular} macro for typesetting +% \acro{csv} files in the default renderer prototypes for iA\,Writer +% content blocks. % % \pkg{gobble} % -%: A package that provides the \m{\@gobblethree} \TeX{} command that -% is used in the default renderer prototype for citations (see -% Section \ref{sec:texrendererprototypes}). +%: A package that provides the \mref{\@gobblethree} \TeX{} command that +% is used in the default renderer prototype for citations. The package +% is included in \TeX Live${}\geq{}2016$. +% +% \pkg{amsmath} and \pkg{amssymb} +% +%: Packages that provide symbols used for drawing ticked and unticked +% boxes. +% +% \pkg{catchfile} +% +%: A package that catches the contents of a file and puts it in a macro. It +% is used in the `witiko/graphicx/http` \LaTeX{} theme, see Section +% \vref{sec:latexthemes}. +% +% \pkg{grffile} +% +%: A package that extends the name processing of package graphics to support +% a larger range of file names in $2006\leq{}$\TeX{} Live${}\leq{}2019$. +% Since \TeX{} Live${}\geq{}2020$, the functionality of the package has +% been integrated in the \LaTeXe{} kernel. It is used in the `witiko/dot` +% and `witiko/graphicx/http` \LaTeX{} themes, see Section +% \vref{sec:latexthemes}. +% +% \pkg{etoolbox} +% +%: A package that is used to polyfill the general hook management system in +% the default renderer prototypes for \acro{yaml} metadata, see Section +% \ref{sec:latexyamlmetadata}. +% +% \pkg{expl3} +% +%: A package that enables the expl3 language from the \LaTeX3 kernel in +% \TeX{} Live${}\leq{}2019$. It is used in the default renderer prototypes +% for \acro{yaml} metadata, see Section \ref{sec:latexyamlmetadata}. % % \end{markdown} % \iffalse @@ -944,14 +1222,46 @@ local md5 = require("md5") %### \Hologo{ConTeXt} Prerequisites % The \Hologo{ConTeXt} part of the package requires that either the Mark II or % the Mark IV format is loaded, all the plain \TeX{} prerequisites (see -% Section \ref{sec:texprerequisites}), and the following \Hologo{ConTeXt} +% Section \vref{sec:texprerequisites}), and the following \Hologo{ConTeXt} % modules: % % \pkg{m-database} % %: A module that provides the default token renderer prototype for % iA\,Writer content blocks with the \acro{csv} filename extension (see -% Section \ref{sec:texrendererprototypes}). +% Section \vref{sec:texrendererprototypes}). +% +% Feedback +%--------- +% Please use the \pkg{Markdown} project page on +% [GitHub](https://github.com/witiko/markdown/issues) to report bugs and submit +% feature requests. If you do not want to report a bug or request a feature but +% are simply in need of assistance, you might want to consider posting your +% question to the [\TeX-\LaTeX{} Stack Exchange.](https://tex.stackexchange.com) +% community question answering web site under the `markdown` tag. +% +% Acknowledgements +%----------------- +% The Lunamark Lua module provides speedy markdown parsing for the package. I +% would like to thank John Macfarlane, the creator of Lunamark, for releasing +% Lunamark under a permissive license, which enabled its use in the Markdown +% package. +% +% Extensive user documentation for the Markdown package was kindly written by +% Lian Tze Lim and published by Overleaf. +% +% Funding by the the Faculty of Informatics at the Masaryk~University +% in~Brno~[@novotny15] is gratefully acknowledged. +% +% Support for content slicing (Lua options \Opt{shiftHeadings} and \Opt{slice}) +% and pipe tables (Lua options \Opt{pipeTables} and \Opt{tableCaptions}) was +% graciously sponsored by David Vins and Omedym. +% +% The \TeX{} implementation of the package draws inspiration from several +% sources including the source code of \Hologo{LaTeX2e}, the \pkg{minted} +% package by Geoffrey M. Poore, which likewise tackles the issue of +% interfacing with an external interpreter from \TeX{}, the \pkg{filecontents} +% package by Scott Pakin and others. % % Interfaces %=========== @@ -960,12 +1270,25 @@ local md5 = require("md5") % along with usage notes and examples. It is aimed at the user of the package. % % Since neither \TeX{} nor Lua provide interfaces as a language construct, the -% separation to interfaces and implementations is purely abstract. It serves as -% a means of structuring this documentation and as a promise to the user that -% if they only access the package through the interface, the future minor -% versions of the package should remain backwards compatible. -% -% \end{markdown} +% separation to interfaces and implementations is a *gentlemen's agreement*. It +% serves as a means of structuring this documentation and as a promise to the +% user that if they only access the package through the interface, the future +% minor versions of the package should remain backwards compatible. +% +% Figure \vref{fig:block-diagram} shows the high-level structure of the Markdown +% package: The translation from markdown to \TeX{} *token renderers* is exposed +% by the Lua layer. The plain \TeX{} layer exposes the conversion capabilities +% of Lua as \TeX{} macros. The \LaTeX{} and \Hologo{ConTeXt} layers provide +% syntactic sugar on top of plain \TeX{} macros. The user can interface with +% any and all layers. +% +% \end{markdown} +% \begin{figure} +% \centering +% \input markdown-figure-block-diagram +% \caption{A block diagram of the \pkg{Markdown} package} +% \label{fig:block-diagram} +% \end{figure} % \iffalse % %<*manual> @@ -977,6 +1300,15 @@ In this section, we will take the necessary steps to typeset our first markdown document in \TeX{}. This will serve as our first hands-on experience with the package and also as a reassurance that the package has been correctly installed. +If you are using [our official Docker image][docker], you need to prefix all +commands in this section with `docker run --rm -v "$PWD"/workdir:/workdir -w +/workdir witiko/markdown`. For example, instead of `luatex document.tex`, you +would execute the following command: +``` sh +docker run --rm -v "$PWD"/workdir:/workdir -w /workdir witiko/markdown \ + luatex document.tex +`````` + ### Using Lua Using a text editor, create a text document named `document.tex` with the @@ -1145,7 +1477,7 @@ In this section, I will describe the individual parts of the Markdown package. Each part will be shown by example, leaving the implementation details to the [technical documentation][techdoc]. - [techdoc]: http://mirrors.ctan.org/macros/generic/markdown/markdown.pdf + [techdoc]: https://mirrors.ctan.org/macros/generic/markdown/markdown.pdf (A Markdown Interpreter for \TeX{}) /markdown-interfaces.md @@ -1191,7 +1523,7 @@ module and a command-line interface (CLI). % % The Lua interface provides the conversion from \acro{utf}-\oldstylenums8 % encoded markdown to plain \TeX{}. This interface is used by the plain \TeX{} -% implementation (see Section \ref{sec:teximplementation}) and will be of +% implementation (see Section \vref{sec:teximplementation}) and will be of % interest to the developers of other packages and Lua modules. % % The Lua interface is implemented by the `markdown` Lua module. @@ -1208,7 +1540,7 @@ local M = {metadata = metadata} % The Lua interface exposes the \luamdef{new}`(options)` method. This % method creates converter functions that perform the conversion from markdown % to plain \TeX{} according to the table `options` that contains options -% recognized by the Lua interface. (see Section \ref{sec:luaoptions}). The +% recognized by the Lua interface. (see Section \vref{sec:luaoptions}). The % `options` parameter is optional; when unspecified, the behaviour will be % the same as if `options` were an empty table. % @@ -1402,26 +1734,7 @@ package. local defaultOptions = {} % \end{macrocode} % \begingroup -% \markdownSetup{ -% renderers = { -% dlBegin = {\begin{optionlist}}, -% dlItem = { -% #1 -% \begingroup -% \markdownSetup{ -% renderers = { -% dlBegin = { -% \begingroup -% \markdownSetup{ -% renderers = { -% dlItem = {\item[####1]}, -% dlItemEnd = {}}} -% \begin{valuelist}}, -% dlEnd = { -% \end{valuelist} -% \endgroup}}}}, -% dlItemEnd = {\endgroup}, -% dlEnd = {\end{optionlist}}}} +% \markdownSetup{snippet=witiko/markdown/techdoc/options} % \par % \iffalse % @@ -1608,7 +1921,7 @@ defaultOptions.cacheDir = "." The frozen cache makes it possible to later typeset a plain \TeX{} document that contains markdown documents without invoking Lua using - the \m{markdownOptionFrozenCache} plain \TeX{} option. As a result, the + the \mref{markdownOptionFrozenCache} plain \TeX{} option. As a result, the plain \TeX{} document becomes more portable, but further changes in the order and the content of markdown documents will not be reflected. @@ -3257,7 +3570,7 @@ defaultOptions.contentBlocks = false % : The filename of the JSON file that maps filename extensions to programming language names in the iA\,Writer content blocks. -% See Section~\ref{sec:texcontentblockrenderers} for more information. +% See Section \vref{sec:texcontentblockrenderers} for more information. % \end{markdown} % \iffalse @@ -3698,7 +4011,7 @@ defaultOptions.fencedCode = false The frozen cache makes it possible to later typeset a plain \TeX{} document that contains markdown documents without invoking Lua using - the \m{markdownOptionFrozenCache} plain \TeX{} option. As a result, the + the \mref{markdownOptionFrozenCache} plain \TeX{} option. As a result, the plain \TeX{} document becomes more portable, but further changes in the order and the content of markdown documents will not be reflected. @@ -4471,7 +4784,7 @@ defaultOptions.html = false #### Option `hybrid` -`hybrid` (default value: `true`) +`hybrid` (default value: `false`) % \fi % \begin{markdown} @@ -4645,7 +4958,96 @@ $\sqrt{-1}$ *equals* $i$. \startmarkdown $\sqrt{-1}$ *equals* $i$. \stopmarkdown - + +\stoptext +```````` +Next, invoke LuaTeX from the terminal: +``` sh +context document.tex +````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> \$\\sqrt {-1}\$ *equals* \$i\$. +> +> √-̅1̅ *equals* $i$. + +% +%<*lua,lua-cli> +% \fi +% \begin{macrocode} +defaultOptions.hybrid = false +% \end{macrocode} +% \par +% \iffalse +% +%<*manual-options> + +#### Option `inlineFootnotes` + +`inlineFootnotes` (default value: `false`) + +% \fi +% \begin{markdown} +% +% \Optitem[false]{inlineFootnotes}{\opt{true}, \opt{false}} +% +: true + + : Enable the pandoc inline footnote syntax extension: + + ``` md + Here is an inline note.^[Inlines notes are easier to + write, since you don't have to pick an identifier and + move down to type the note.] + `````` + +: false + + : Disable the pandoc inline footnote syntax extension. + +% \end{markdown} +% \iffalse + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[inlineFootnotes]{markdown} +\begin{document} +\begin{markdown} +Here is an inline note.^[Inlines notes are easier to +write, since you don't have to pick an identifier and +move down to type the note.] +\end{markdown} +\end{document} +``````` +Next, invoke LuaTeX from the terminal: +``` sh +lualatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> Here is an inline note.^[Inlines notes are easier to +> write, since you don't have to pick an identifier and +> move down to type the note.] + +##### \Hologo{ConTeXt} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\usemodule[t][markdown] +\def\markdownOptionInlineFootnotes{true} +\starttext +\startmarkdown +Here is an inline note.^[Inlines notes are easier to +write, since you don't have to pick an identifier and +move down to type the note.] +\stopmarkdown \stoptext ```````` Next, invoke LuaTeX from the terminal: @@ -4655,60 +5057,108 @@ context document.tex A PDF document named `document.pdf` should be produced and contain the following text: -> \$\\sqrt {-1}\$ *equals* \$i\$. -> -> √-̅1̅ *equals* $i$. +> Here is an inline note.^[Inlines notes are easier to +> write, since you don't have to pick an identifier and +> move down to type the note.] % %<*lua,lua-cli> % \fi % \begin{macrocode} -defaultOptions.hybrid = false +defaultOptions.inlineFootnotes = false % \end{macrocode} % \par % \iffalse % %<*manual-options> -#### Option `inlineFootnotes` +#### Option `jekyllData` -`inlineFootnotes` (default value: `false`) +`jekyllData` (default value: `false`) % \fi % \begin{markdown} % -% \Optitem[false]{inlineFootnotes}{\opt{true}, \opt{false}} +% \Optitem[false]{jekyllData}{\opt{true}, \opt{false}} % : true - : Enable the pandoc inline footnote syntax extension: - - ``` md - Here is an inline note.^[Inlines notes are easier to - write, since you don't have to pick an identifier and - move down to type the note.] - `````` + : Enable the Pandoc `yaml_metadata_block` syntax extension for entering + metadata in \acro{yaml}: + + ~~~~~~ yaml + --- + title: 'This is the title: it contains a colon' + author: + - Author One + - Author Two + keywords: [nothing, nothingness] + abstract: | + This is the abstract. + + It consists of two paragraphs. + --- + ~~~~~~~~~~~ : false - : Disable the pandoc inline footnote syntax extension. + : Disable the Pandoc `yaml_metadata_block` syntax extension for entering + metadata in \acro{yaml}. % \end{markdown} % \iffalse +##### Plain \TeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\input markdown +\def\markdownOptionJekyllData{true} +\def\markdownRendererJekyllDataString#1#2{\gdef\name{#2}} +\def\markdownRendererJekyllDataNumber#1#2{\gdef\age{#2}} +\def\markdownRendererJekyllDataEnd{% + \name{} is \age{} years old.} +\markdownBegin +--- +name: Jane Doe +age: 99 +--- +\markdownEnd +\bye +``````` +Next, invoke LuaTeX from the terminal: +``` sh +luatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> Jane Doe is 99 years old. + ##### \LaTeX{} Example {.unnumbered} Using a text editor, create a text document named `document.tex` with the following content: ``` tex \documentclass{article} -\usepackage[inlineFootnotes]{markdown} +\usepackage[jekyllData]{markdown} +\markdownSetup{ + renderers = { + jekyllDataString = {\gdef\name{#2}}, + jekyllDataNumber = {\gdef\age{#2}}, + jekyllDataEnd = {\name{} is \age{} years old.}, + } +} \begin{document} + \begin{markdown} -Here is an inline note.^[Inlines notes are easier to -write, since you don't have to pick an identifier and -move down to type the note.] +--- +name: Jane Doe +age: 99 +--- \end{markdown} + \end{document} ``````` Next, invoke LuaTeX from the terminal: @@ -4718,9 +5168,7 @@ lualatex document.tex A PDF document named `document.pdf` should be produced and contain the following text: -> Here is an inline note.^[Inlines notes are easier to -> write, since you don't have to pick an identifier and -> move down to type the note.] +> Jane Doe is 99 years old. ##### \Hologo{ConTeXt} Example {.unnumbered} @@ -4728,31 +5176,36 @@ Using a text editor, create a text document named `document.tex` with the following content: ``` tex \usemodule[t][markdown] -\def\markdownOptionInlineFootnotes{true} +\def\markdownOptionJekyllData{true} +\def\markdownRendererJekyllDataString#1#2{\gdef\name{#2}} +\def\markdownRendererJekyllDataNumber#1#2{\gdef\age{#2}} +\def\markdownRendererJekyllDataEnd{% + \name{} is \age{} years old.} \starttext + \startmarkdown -Here is an inline note.^[Inlines notes are easier to -write, since you don't have to pick an identifier and -move down to type the note.] +--- +name: Jane Doe +age: 99 +--- \stopmarkdown + \stoptext -```````` +``````` Next, invoke LuaTeX from the terminal: ``` sh context document.tex -````` +`````` A PDF document named `document.pdf` should be produced and contain the following text: -> Here is an inline note.^[Inlines notes are easier to -> write, since you don't have to pick an identifier and -> move down to type the note.] +> Jane Doe is 99 years old. % %<*lua,lua-cli> % \fi % \begin{macrocode} -defaultOptions.inlineFootnotes = false +defaultOptions.jekyllData = false % \end{macrocode} % \par % \iffalse @@ -5244,7 +5697,7 @@ defaultOptions.slice = "^ $" : true : Convert any ellipses in the input to the - \m{markdownRendererEllipsis} \TeX{} macro. + \mref{markdownRendererEllipsis} \TeX{} macro. : false @@ -5442,12 +5895,12 @@ defaultOptions.smartEllipses = false : Make the number in the first item of an ordered lists significant. The item numbers will be passed to the - \m{markdownRendererOlItemWithNumber} \TeX{} macro. + \mref{markdownRendererOlItemWithNumber} \TeX{} macro. : false : Ignore the numbers in the ordered list items. Each item will only - produce a \m{markdownRendererOlItem} \TeX{} macro. + produce a \mref{markdownRendererOlItem} \TeX{} macro. % \end{markdown} % \iffalse @@ -5687,7 +6140,7 @@ defaultOptions.stripIndent = false : false - : Enable the Pandoc `table_captions` syntax extension. + : Disable the Pandoc `table_captions` syntax extension. % \end{markdown} % \iffalse @@ -5772,6 +6225,106 @@ defaultOptions.tableCaptions = false % %<*manual-options> +#### Option `taskLists` + +`taskLists` (default value: `false`) + +% \fi +% \begin{markdown} +% +% \Optitem[false]{taskLists}{\opt{true}, \opt{false}} +% +: true + + : Enable the Pandoc `task_lists` syntax extension. + + + ``` md + - [ ] an unticked task list item + - [/] a half-checked task list item + - [X] a ticked task list item + `````` + +: false + + : Disable the Pandoc `task_lists` syntax extension. + +% \end{markdown} +% \iffalse + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[taskLists]{markdown} +\markdownSetup{ + renderers = { + untickedBox = No, + halfTickedBox = Maybe, + tickedBox = Yes, + }, +} +\begin{document} +\begin{markdown} +- [ ] you can't. +- [/] I can? +- [X] I can! +\end{markdown} +\end{document} +``````` +Next, invoke LuaTeX from the terminal: +``` sh +lualatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> - No you can't. +> - Maybe I can? +> - Yes I can! + +##### \Hologo{ConTeXt} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\usemodule[t][markdown] +\def\markdownOptionTaskLists{true} +\def\markdownRendererUntickedBox{No} +\def\markdownRendererHalftickedBox{Maybe} +\def\markdownRendererTickedBox{Yes} +\starttext +\startmarkdown +- [ ] you can't. +- [/] I can? +- [X] I can! +\stopmarkdown +\stoptext +```````` +Next, invoke LuaTeX from the terminal: +``` sh +context document.tex +````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> - No you can't. +> - Maybe I can? +> - Yes I can! + +% +%<*lua,lua-cli> +% \fi +% \begin{macrocode} +defaultOptions.taskLists = false +% \end{macrocode} +% \par +% \iffalse +% +%<*manual-options> + #### Option `texComments` `texComments` (default value: `false`) @@ -5892,10 +6445,10 @@ defaultOptions.texComments = false : Lists whose bullets do not consist of multiple paragraphs will be passed to the - \m{markdownRendererOlBeginTight}, \m{markdownRendererOlEndTight}, - \m{markdownRendererUlBeginTight}, \m{markdownRendererUlEndTight}, - \m{markdownRendererDlBeginTight}, and - \m{markdownRendererDlEndTight} \TeX{} macros. + \mref{markdownRendererOlBeginTight}, \mref{markdownRendererOlEndTight}, + \mref{markdownRendererUlBeginTight}, \mref{markdownRendererUlEndTight}, + \mref{markdownRendererDlBeginTight}, and + \mref{markdownRendererDlEndTight} \TeX{} macros. : false @@ -6117,11 +6670,61 @@ defaultOptions.underscores = true % %### Command-Line Interface % \label{sec:lua-cli-interface} -% To provide finer control over the conversion and to simplify debugging, a -% command-line Lua interface for converting a Markdown document to \TeX{} is -% also provided. -% -% \end{markdown} +% The high-level operation of the Markdown package involves the communication +% between several programming layers: the plain \TeX{} layer hands markdown +% documents to the Lua layer. Lua converts the documents to \TeX{}, and hands +% the converted documents back to plain \TeX{} layer for typesetting, see +% Figure \vref{fig:sequence-diagram-tex-interface}. +% +% This procedure has the advantage of being fully automated. However, it also +% has several important disadvantages: The converted \TeX{} documents are +% cached on the file system, taking up increasing amount of space. Unless the +% \TeX{} engine includes a Lua interpreter, the package also requires shell +% access, which opens the door for a malicious actor to access the system. +% Last, but not least, the complexity of the procedure impedes debugging. +% +% A solution to the above problems is to decouple the conversion from the +% typesetting. For this reason, a command-line Lua interface for converting a +% markdown document to \TeX{} is also provided, see +% Figure \vref{fig:sequence-diagram-lua-cli}. +% +% \end{markdown} +% \begin{figure} +% \centering +% \begin{sequencediagram} +% \newthread{user}{User}{} +% \newinst[4]{tex}{\TeX{}}{} +% \newinst[4]{lua}{Lua}{} +% \begin{call}{user}{\footnotesize\cs{jobname.tex}}{tex}{\footnotesize\cs{jobname.pdf}} +% \begin{call}{tex}{\footnotesize\cs{jobname.markdown.in}}{lua}{\footnotesize\cs{jobname.markdown.out}} +% \end{call} +% \begin{call}{tex}{\footnotesize\cs{input}\cs{jobname.markdown.out}}{tex}{} +% \end{call} +% \end{call} +% \end{sequencediagram} +% \caption[A sequence diagram of typesetting a document using the \TeX{} +% interface]{A sequence diagram of the Markdown package typesetting a +% markdown document using the \TeX{} interface} +% \label{fig:sequence-diagram-tex-interface} +% \end{figure} +% \begin{figure} +% \centering +% \begin{sequencediagram} +% \newthread{user}{User}{} +% \newinst[4]{tex}{\TeX{}}{} +% \newinst[4]{lua}{Lua}{} +% \begin{call}{user}{\footnotesize$\langle$\textit{document}$\rangle$\texttt{.md}}{lua}{\footnotesize$\langle$\textit{document}$\rangle$\texttt{.tex}} +% \end{call} +% \begin{call}{user}{\footnotesize\cs{jobname.tex}}{tex}{\footnotesize\cs{jobname.pdf}} +% \begin{call}{tex}{\footnotesize\cs{input} $\langle$\textit{document}$\rangle$}{tex}{} +% \end{call} +% \end{call} +% \end{sequencediagram} +% \caption[A sequence diagram of typesetting a document using the Lua CLI]% +% {A sequence diagram of the Markdown package typesetting a markdown document +% using the Lua command-line interface} +% \label{fig:sequence-diagram-lua-cli} +% \end{figure} % \begin{macrocode} HELP_STRING = [[ @@ -6173,14 +6776,14 @@ for i = 1, #arg do % Unless the `-`{}`-` argument has been specified before, an argument % containing the equals sign (`=`) is assumed to be an option specification in % a \meta{key}`=`\meta{value} format. The available options are listed in -% Section~\ref{sec:luaoptions}. +% Section \vref{sec:luaoptions}. % \end{markdown} % \begin{macrocode} elseif arg[i]:match("=") then key, value = arg[i]:match("(.-)=(.*)") % \end{macrocode} % \begin{markdown} -% The \luam{defaultOptions} table is consulted to identify whether \meta{value} +% The \luamref{defaultOptions} table is consulted to identify whether \meta{value} % should be parsed as a string or as a boolean. % \end{markdown} % \begin{macrocode} @@ -6264,10 +6867,6 @@ end % \input hello % ``````` % -% This shows another advantage of using the command-line interface compared to -% using a higher-level \TeX{} interface: it is unnecessary to provide shell -% access for the \TeX{} engine. -% % \end{markdown} % \iffalse % @@ -6335,13 +6934,13 @@ pdftex --shell-escape document.tex % % The plain \TeX{} interface provides macros for the typesetting of markdown % input from within plain \TeX{}, for setting the Lua interface options (see -% Section \ref{sec:luaoptions}) used during the conversion from markdown to +% Section \vref{sec:luaoptions}) used during the conversion from markdown to % plain \TeX{} and for changing the way markdown the tokens are rendered. % % \end{markdown} % \begin{macrocode} -\def\markdownLastModified{2021/08/31}% -\def\markdownVersion{2.10.1}% +\def\markdownLastModified{$(LAST_MODIFIED)}% +\def\markdownVersion{$(VERSION)}% % \end{macrocode} % \par % \begin{markdown} @@ -6352,15 +6951,15 @@ pdftex --shell-escape document.tex % \input markdown % ``````` % \noindent It is expected that the special plain \TeX{} characters have the -% expected category codes, when \m{input}ting the file. +% expected category codes, when \mref{input}ting the file. % %### Typesetting Markdown % \label{sec:textypesetting} % The interface exposes the \mdef{markdownBegin}, \mdef{markdownEnd}, and % \mdef{markdownInput} macros. % -% The \m{markdownBegin} macro marks the beginning of a markdown document -% fragment and the \m{markdownEnd} macro marks its end. +% The \mref{markdownBegin} macro marks the beginning of a markdown document +% fragment and the \mref{markdownEnd} macro marks its end. % % \end{markdown} % \begin{macrocode} @@ -6370,24 +6969,24 @@ pdftex --shell-escape document.tex % \par % \begin{markdown} % -% You may prepend your own code to the \m{markdownBegin} macro and redefine the -% \m{markdownEnd} macro to produce special effects before and after the +% You may prepend your own code to the \mref{markdownBegin} macro and redefine the +% \mref{markdownEnd} macro to produce special effects before and after the % markdown block. % % There are several limitations to the macros you need to be aware of. -% The first limitation concerns the \m{markdownEnd} macro, which must be +% The first limitation concerns the \mref{markdownEnd} macro, which must be % visible directly from the input line buffer (it may not be produced as a % result of input expansion). Otherwise, it will not be recognized as the end -% of the markdown string. As a corrolary, the \m{markdownEnd} string +% of the markdown string. As a corrolary, the \mref{markdownEnd} string % may not appear anywhere inside the markdown input. % % Another limitation concerns spaces at the right end of an input line. In % markdown, these are used to produce a forced line break. However, any such % spaces are removed before the lines enter the input buffer of -% \TeX{}~[@knuth86, p. 46]. As a corrolary, the \m{markdownBegin} macro also +% \TeX{}~[@knuth86, p. 46]. As a corrolary, the \mref{markdownBegin} macro also % ignores them. % -% The \m{markdownBegin} and \m{markdownEnd} macros will also consume the rest +% The \mref{markdownBegin} and \mref{markdownEnd} macros will also consume the rest % of the lines at which they appear. In the following example plain \TeX{} % code, the characters `c`, `e`, and `f` will not appear in the output. % @@ -6401,11 +7000,11 @@ pdftex --shell-escape document.tex % \bye % ``````` % -% Note that you may also not nest the \m{markdownBegin} and \m{markdownEnd} +% Note that you may also not nest the \mref{markdownBegin} and \mref{markdownEnd} % macros. % % The following example plain \TeX{} code showcases the usage of the -% \m{markdownBegin} and \m{markdownEnd} macros: +% \mref{markdownBegin} and \mref{markdownEnd} macros: % % ``` tex % \input markdown @@ -6415,7 +7014,7 @@ pdftex --shell-escape document.tex % \bye % ``````` % -% The \m{markdownInput} macro accepts a single parameter containing the +% The \mref{markdownInput} macro accepts a single parameter containing the % filename of a markdown document and expands to the result of the conversion % of the input markdown document to plain \TeX{}. % @@ -6427,10 +7026,10 @@ pdftex --shell-escape document.tex % \begin{markdown} % % This macro is not subject to the abovelisted limitations of the -% \m{markdownBegin} and \m{markdownEnd} macros. +% \mref{markdownBegin} and \mref{markdownEnd} macros. % % The following example plain \TeX{} code showcases the usage of the -% \m{markdownInput} macro: +% \mref{markdownInput} macro: % % ``` tex % \input markdown @@ -6443,7 +7042,7 @@ pdftex --shell-escape document.tex % % The plain \TeX{} options are represented by \TeX{} commands. Some of them map % directly to the options recognized by the Lua interface (see -% Section~\ref{sec:luaoptions}), while some of them are specific to the plain +% Section \vref{sec:luaoptions}), while some of them are specific to the plain % \TeX{} interface. % % \end{markdown} @@ -6467,7 +7066,7 @@ interfaces. %#### Finalizing and Freezing the Cache % The \mdef{markdownOptionFinalizeCache} option corresponds to the Lua % interface \Opt{finalizeCache} option, which creates an output file -% \m{markdownOptionFrozenCacheFileName} (frozen cache) that contains a mapping +% \mref{markdownOptionFrozenCacheFileName} (frozen cache) that contains a mapping % between an enumeration of the markdown documents in the plain \TeX{} document % and their auxiliary files cached in the \Opt{cacheDir} directory. % @@ -6486,7 +7085,7 @@ interfaces. % \begin{markdown} % The \mdef{markdownOptionFrozenCache} option uses the mapping previously -% created by the \m{markdownOptionFinalizeCache} option, +% created by the \mref{markdownOptionFinalizeCache} option, % \iffalse created by the Lua interface \Opt{finalizeCache} option, % \fi @@ -6497,18 +7096,18 @@ defaults to `false`. % The standard usage of the above two options is as follows: % \iffalse -The standard usage of the \Opt{finalizeCache} and \m{markdownOptionFrozenCache} +The standard usage of the \Opt{finalizeCache} and \mref{markdownOptionFrozenCache} options is as follows: % \fi 1. Remove the \Opt{cacheDir} cache directory with stale auxiliary cache files. -% 2. Enable the \m{markdownOptionFinalizeCache} option. +% 2. Enable the \mref{markdownOptionFinalizeCache} option. % \iffalse 2. Enable the \Opt{finalizeCache} option. % \fi 3. Typeset the plain \TeX{} document to populate and finalize the cache. -4. Enable the \m{markdownOptionFrozenCache} option. +4. Enable the \mref{markdownOptionFrozenCache} option. 5. Publish the source code of the plain \TeX{} document and the \Opt{cacheDir} directory. @@ -6527,13 +7126,13 @@ For more information, see the examples for the \Opt{finalizeCache} option. % % The \mdef{markdownOptionHelperScriptFileName} macro sets the filename of the % helper Lua script file that is created during the conversion from markdown to -% plain \TeX{} in \TeX{} engines without the \m{directlua} primitive. It -% defaults to \m{jobname}`.markdown.lua`, where \m{jobname} is the base name +% plain \TeX{} in \TeX{} engines without the \mref{directlua} primitive. It +% defaults to \mref{jobname}`.markdown.lua`, where \mref{jobname} is the base name % of the document being typeset. % % The expansion of this macro must not contain quotation marks (`"`) or % backslash symbols (`\`). Mind that \TeX{} engines tend to -% put quotation marks around \m{jobname}, when it contains spaces. +% put quotation marks around \mref{jobname}, when it contains spaces. % % \end{markdown} % \begin{macrocode} @@ -6544,9 +7143,9 @@ For more information, see the examples for the \Opt{finalizeCache} option. % % The \mdef{markdownOptionInputTempFileName} macro sets the filename of the % temporary input file that is created during the conversion from markdown to -% plain \TeX{} in \m{markdownMode} other than `2`. It defaults to -% \m{jobname}`.markdown.out`. The same limitations as in the case of the -% \m{markdownOptionHelperScriptFileName} macro apply here. +% plain \TeX{} in \mref{markdownMode} other than `2`. It defaults to +% \mref{jobname}`.markdown.out`. The same limitations as in the case of the +% \mref{markdownOptionHelperScriptFileName} macro apply here. % % \end{markdown} % \begin{macrocode} @@ -6557,9 +7156,9 @@ For more information, see the examples for the \Opt{finalizeCache} option. % % The \mdef{markdownOptionOutputTempFileName} macro sets the filename of the % temporary output file that is created during the conversion from markdown to -% plain \TeX{} in \m{markdownMode} other than `2`. It defaults to -% \m{jobname}`.markdown.out`. The same limitations apply here as in the case -% of the \m{markdownOptionHelperScriptFileName} macro. +% plain \TeX{} in \mref{markdownMode} other than `2`. It defaults to +% \mref{jobname}`.markdown.out`. The same limitations apply here as in the case +% of the \mref{markdownOptionHelperScriptFileName} macro. % % \end{markdown} % \begin{macrocode} @@ -6570,9 +7169,9 @@ For more information, see the examples for the \Opt{finalizeCache} option. % % The \mdef{markdownOptionErrorTempFileName} macro sets the filename of the % temporary output file that is created when a Lua error is encountered during -% the conversion from markdown to plain \TeX{} in \m{markdownMode} other than -% `2`. It defaults to \m{jobname}`.markdown.err`. The same limitations -% apply here as in the case of the \m{markdownOptionHelperScriptFileName} +% the conversion from markdown to plain \TeX{} in \mref{markdownMode} other than +% `2`. It defaults to \mref{jobname}`.markdown.err`. The same limitations +% apply here as in the case of the \mref{markdownOptionHelperScriptFileName} % macro. % % \end{markdown} @@ -6591,7 +7190,7 @@ For more information, see the examples for the \Opt{finalizeCache} option. % your \TeX{} engine for the package to function correctly. We need this macro % to make the Lua implementation aware where it should store the helper files. % The same limitations apply here as in the case of the -% \m{markdownOptionHelperScriptFileName} macro. +% \mref{markdownOptionHelperScriptFileName} macro. % % \end{markdown} % \begin{macrocode} @@ -6602,10 +7201,10 @@ For more information, see the examples for the \Opt{finalizeCache} option. % % The \mdef{markdownOptionCacheDir} macro corresponds to the Lua interface % \Opt{cacheDir} option that sets the path to the directory that will contain -% the produced cache files. The option defaults to `_markdown_`\m{jobname}, +% the produced cache files. The option defaults to `_markdown_`\mref{jobname}, % which is a similar naming scheme to the one used by the \pkg{minted} \LaTeX{} % package. The same limitations apply here as in the case of the -% \m{markdownOptionHelperScriptFileName} macro. +% \mref{markdownOptionHelperScriptFileName} macro. % % \end{markdown} % \begin{macrocode} @@ -6619,7 +7218,7 @@ For more information, see the examples for the \Opt{finalizeCache} option. % file (frozen cache) that will contain a mapping between an enumeration of the % markdown documents in the plain \TeX{} document and their auxiliary cache % files. The option defaults to `frozenCache.tex`. The same limitations apply -% here as in the case of the \m{markdownOptionHelperScriptFileName} macro. +% here as in the case of the \mref{markdownOptionHelperScriptFileName} macro. % % \end{markdown} % \begin{macrocode} @@ -6695,13 +7294,13 @@ bug](https://github.com/witiko/markdown/issues). % %#### Lua Interface Options % The following macros map directly to the options recognized by the Lua -% interface (see Section \ref{sec:luaoptions}) and are not processed by the +% interface (see Section \vref{sec:luaoptions}) and are not processed by the % plain \TeX{} implementation, only passed along to Lua. They are undefined, which % makes them fall back to the default values provided by the Lua interface. % % For the macros that correspond to the non-boolean options recognized by the % Lua interface, the same limitations apply here in the case of the -% \m{markdownOptionHelperScriptFileName} macro. +% \mref{markdownOptionHelperScriptFileName} macro. % % \end{markdown} % \begin{macrocode} @@ -6721,6 +7320,7 @@ bug](https://github.com/witiko/markdown/issues). \let\markdownOptionHtml\undefined \let\markdownOptionHybrid\undefined \let\markdownOptionInlineFootnotes\undefined +\let\markdownOptionJekyllData\undefined \let\markdownOptionPipeTables\undefined \let\markdownOptionPreserveTabs\undefined \let\markdownOptionShiftHeadings\undefined @@ -6729,6 +7329,7 @@ bug](https://github.com/witiko/markdown/issues). \let\markdownOptionStartNumber\undefined \let\markdownOptionStripIndent\undefined \let\markdownOptionTableCaptions\undefined +\let\markdownOptionTaskLists\undefined \let\markdownOptionTeXComments\undefined \let\markdownOptionTightLists\undefined % \end{macrocode} @@ -6781,7 +7382,7 @@ A PDF document named `document.pdf` should be produced and contain the text % % The \mdef{markdownOptionStripPercentSigns} macro controls whether a percent % sign (`%`) at the beginning of a line will be discarded when buffering -% Markdown input (see Section~\ref{sec:buffering}) or not. Notably, this +% Markdown input (see Section \vref{sec:buffering}) or not. Notably, this % enables the use of markdown when writing \TeX{} package documentation using % the \pkg{Doc} \LaTeX{}~package~[@mittelbach17] or similar. The recognized % values of the macro are `true` (discard) and `false` (retain). It defaults @@ -6819,10 +7420,99 @@ In this section, I will describe the individual token renderers. % % The following \TeX{} macros may occur inside the output of the % converter functions exposed by the Lua interface (see Section -% \ref{sec:luaconversion}) and represent the parsed markdown tokens. These +% \vref{sec:luaconversion}) and represent the parsed markdown tokens. These % macros are intended to be redefined by the user who is typesetting a % document. By default, they point to the corresponding prototypes (see Section -% \ref{sec:texrendererprototypes}). +% \vref{sec:texrendererprototypes}). + +#### Tickbox Renderers +The macros named \mdef{markdownRendererTickedBox}, +\mdef{markdownRendererHalfTickedBox}, and \mdef{markdownRendererUntickedBox} +represent ticked and unticked boxes, respectively. These macros will either be +produced, when the \Opt{taskLists} option is enabled, or when the Ballot Box +with X (☒, U+2612), Hourglass (⌛, U+231B) or Ballot Box (☐, U+2610) Unicode +characters are encountered in the markdown input, respectively. + +% \end{markdown} +% +% \iffalse + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[taskLists]{markdown} +\markdownSetup{ + renderers = { + untickedBox = No, + tickedBox = Yes, + }, +} +\begin{document} +\begin{markdown} +- [ ] you can't. +- [x] I can! +\end{markdown} +\end{document} +``````` +Next, invoke LuaTeX from the terminal: +``` sh +lualatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> - No you can't. +> - Yes I can! + +##### \Hologo{ConTeXt} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\usemodule[t][markdown] +\def\markdownOptionTaskLists{true} +\def\markdownRendererUntickedBox{No} +\def\markdownRendererTickedBox{Yes} +\starttext +\startmarkdown +- [ ] you can't. +- [x] I can! +\stopmarkdown +\stoptext +```````` +Next, invoke LuaTeX from the terminal: +``` sh +context document.tex +````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> - No you can't. +> - Yes I can! + +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererTickedBox{% + \markdownRendererTickedBoxPrototype}% +\def\markdownRendererHalfTickedBox{% + \markdownRendererHalfTickedBoxPrototype}% +\def\markdownRendererUntickedBox{% + \markdownRendererUntickedBoxPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} #### Interblock Separator Renderer The \mdef{markdownRendererInterblockSeparator} macro represents a separator @@ -7762,7 +8452,7 @@ and the title of the content block. The \mdef{markdownRendererContentBlockOnlineImage} macro represents an iA\,Writer online image content block. The macro receives the same arguments -as \m{markdownRendererContentBlock}. +as \mref{markdownRendererContentBlock}. % \end{markdown} % @@ -9410,6 +10100,29 @@ corresponds to the emphasized span of text. The \mdef{markdownRendererBlockQuoteBegin} macro represents the beginning of a block quote. The macro receives no arguments. +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererBlockQuoteBegin{% + \markdownRendererBlockQuoteBeginPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererBlockQuoteEnd} macro represents the end of a block +quote. The macro receives no arguments. + % \end{markdown} % % \iffalse @@ -9516,39 +10229,16 @@ Next, invoke LuaTeX from the terminal: ``` sh context document.tex `````` -A PDF document named `document.pdf` should be produced and contain the -following text: - -> A quote from William Shakespeare's King Lear: -> -> > This is the excellent foppery of the world that when we are -> > sick in fortune—often the surfeit of our own behavior—we -> > make guilty of our disasters the sun, the moon, and the -> > stars [...] - -% -%<*tex> -% \fi -% -% \begin{macrocode} -\def\markdownRendererBlockQuoteBegin{% - \markdownRendererBlockQuoteBeginPrototype}% -% \end{macrocode} -% \par -% -% \iffalse -% -%<*manual-tokens> -% \fi -% -% \begin{markdown} +A PDF document named `document.pdf` should be produced and contain the +following text: -The \mdef{markdownRendererBlockQuoteEnd} macro represents the end of a block -quote. The macro receives no arguments. +> A quote from William Shakespeare's King Lear: +> +> > This is the excellent foppery of the world that when we are +> > sick in fortune—often the surfeit of our own behavior—we +> > make guilty of our disasters the sun, the moon, and the +> > stars [...] -% \end{markdown} -% -% \iffalse % %<*tex> % \fi @@ -9694,6 +10384,328 @@ following text except for the filename, which may differ: % \iffalse % %<*manual-tokens> +% \fi +% \begin{markdown} + +#### YAML Metadata Renderers +The \mdef{markdownRendererJekyllDataBegin} macro represents the beginning of a +\acro{yaml} document. This macro will only be produced when the \Opt{jekyllData} +option is enabled. The macro receives no arguments. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataBegin{% + \markdownRendererJekyllDataBeginPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataEnd} macro represents the end of a +\acro{yaml} document. This macro will only be produced when the +\Opt{jekyllData} option is enabled. The macro receives no arguments. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataEnd{% + \markdownRendererJekyllDataEndPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataMappingBegin} macro represents the +beginning of a mapping in a \acro{yaml} document. This macro will only be +produced when the \Opt{jekyllData} option is enabled. The macro receives two +arguments: the scalar key in the parent structure, cast to a string following +\acro{yaml} serialization rules, and the number of items in the mapping. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataMappingBegin{% + \markdownRendererJekyllDataMappingBeginPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataMappingEnd} macro represents the +end of a mapping in a \acro{yaml} document. This macro will only be produced +when the \Opt{jekyllData} option is enabled. The macro receives no arguments. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataMappingEnd{% + \markdownRendererJekyllDataMappingEndPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataSequenceBegin} macro represents the +beginning of a sequence in a \acro{yaml} document. This macro will only be +produced when the \Opt{jekyllData} option is enabled. The macro receives two +arguments: the scalar key in the parent structure, cast to a string following +\acro{yaml} serialization rules, and the number of items in the sequence. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataSequenceBegin{% + \markdownRendererJekyllDataSequenceBeginPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataBoolean} macro represents a boolean scalar +value in a \acro{yaml} document. This macro will only be produced when the +\Opt{jekyllData} option is enabled. The macro receives two arguments: the +scalar key in the parent structure, and the scalar value, both cast to a string +following \acro{yaml} serialization rules. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataBoolean{% + \markdownRendererJekyllDataBooleanPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataNumber} macro represents a numeric scalar +value in a \acro{yaml} document. This macro will only be produced when the +\Opt{jekyllData} option is enabled. The macro receives two arguments: the +scalar key in the parent structure, and the scalar value, both cast to a string +following \acro{yaml} serialization rules. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataNumber{% + \markdownRendererJekyllDataNumberPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataString} macro represents a string scalar +value in a \acro{yaml} document. This macro will only be produced when the +\Opt{jekyllData} option is enabled. The macro receives two arguments: the +scalar key in the parent structure, cast to a string following \acro{yaml} +serialization rules, and the scalar value. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataString{% + \markdownRendererJekyllDataStringPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +The \mdef{markdownRendererJekyllDataEmpty} macro represents an empty scalar +value in a \acro{yaml} document. This macro will only be produced when the +\Opt{jekyllData} option is enabled. The macro receives one argument: the +scalar key in the parent structure, cast to a string following \acro{yaml} +serialization rules. + +% \end{markdown} +% +% \iffalse +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataEmpty{% + \markdownRendererJekyllDataEmptyPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> + +##### Plain \TeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\input markdown +\def\markdownOptionJekyllData{true} +\def\markdownRendererJekyllDataString#1#2{\gdef\name{#2}} +\def\markdownRendererJekyllDataNumber#1#2{\gdef\age{#2}} +\def\markdownRendererJekyllDataEnd{% + \name{} is \age{} years old.} +\markdownBegin +--- +name: Jane Doe +age: 99 +--- +\markdownEnd +\bye +``````` +Next, invoke LuaTeX from the terminal: +``` sh +luatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> Jane Doe is 99 years old. + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[jekyllData]{markdown} +\markdownSetup{ + renderers = { + jekyllDataString = {\gdef\name{#2}}, + jekyllDataNumber = {\gdef\age{#2}}, + jekyllDataEnd = {\name{} is \age{} years old.}, + } +} +\begin{document} + +\begin{markdown} +--- +name: Jane Doe +age: 99 +--- +\end{markdown} + +\end{document} +``````` +Next, invoke LuaTeX from the terminal: +``` sh +lualatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> Jane Doe is 99 years old. + +##### \Hologo{ConTeXt} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\usemodule[t][markdown] +\def\markdownOptionJekyllData{true} +\def\markdownRendererJekyllDataString#1#2{\gdef\name{#2}} +\def\markdownRendererJekyllDataNumber#1#2{\gdef\age{#2}} +\def\markdownRendererJekyllDataEnd{% + \name{} is \age{} years old.} +\starttext + +\startmarkdown +--- +name: Jane Doe +age: 99 +--- +\stopmarkdown + +\stoptext +``````` +Next, invoke LuaTeX from the terminal: +``` sh +context document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> Jane Doe is 99 years old. + % \fi % % \begin{markdown} @@ -10267,7 +11279,7 @@ following text: The \mdef{markdownRendererTextCite} macro represents a string of one or more text citations. This macro will only be produced, when the \Opt{citations} option is enabled. The macro receives parameters in the same -format as the \m{markdownRendererCite} macro. +format as the \mref{markdownRendererCite} macro. % \end{markdown} % @@ -10650,11 +11662,11 @@ following text: % \begin{markdown} % % The following \TeX{} macros provide definitions for the token renderers (see -% Section \ref{sec:texrenderersuser}) that have not been redefined by the +% Section \vref{sec:texrenderersuser}) that have not been redefined by the % user. These macros are intended to be redefined by macro package authors % who wish to provide sensible default token renderers. They are also redefined % by the \LaTeX{} and \Hologo{ConTeXt} implementations (see sections -% \ref{sec:lateximplementation} and \ref{sec:contextimplementation}). +% \vref{sec:lateximplementation} and \vref{sec:contextimplementation}). % % \end{markdown} % \begin{macrocode} @@ -10706,6 +11718,16 @@ following text: \def\markdownRendererBlockQuoteEndPrototype{}% \def\markdownRendererInputVerbatimPrototype#1{}% \def\markdownRendererInputFencedCodePrototype#1#2{}% +\def\markdownRendererJekyllDataBooleanPrototype#1#2{}% +\def\markdownRendererJekyllDataEmptyPrototype#1{}% +\def\markdownRendererJekyllDataNumberPrototype#1#2{}% +\def\markdownRendererJekyllDataStringPrototype#1#2{}% +\def\markdownRendererJekyllDataBeginPrototype{}% +\def\markdownRendererJekyllDataEndPrototype{}% +\def\markdownRendererJekyllDataSequenceBeginPrototype#1#2{}% +\def\markdownRendererJekyllDataSequenceEndPrototype{}% +\def\markdownRendererJekyllDataMappingBeginPrototype#1#2{}% +\def\markdownRendererJekyllDataMappingEndPrototype{}% \def\markdownRendererHeadingOnePrototype#1{}% \def\markdownRendererHeadingTwoPrototype#1{}% \def\markdownRendererHeadingThreePrototype#1{}% @@ -10718,6 +11740,9 @@ following text: \def\markdownRendererTextCitePrototype#1{}% \def\markdownRendererTablePrototype#1#2#3{}% \def\markdownRendererInlineHtmlCommentPrototype#1{}% +\def\markdownRendererTickedBoxPrototype{}% +\def\markdownRendererHalfTickedBoxPrototype{}% +\def\markdownRendererUntickedBoxPrototype{}% % \end{macrocode} % \par % \begin{markdown} @@ -10726,7 +11751,7 @@ following text: % The \mdef{markdownInfo}, \mdef{markdownWarning}, and \mdef{markdownError} % macros perform logging for the Markdown package. Their first argument % specifies the text of the info, warning, or error message. -% The \m{markdownError} macro receives a second argument that provides a help +% The \mref{markdownError} macro receives a second argument that provides a help % text. You may redefine these macros to redirect and process the info, % warning, and error messages. % @@ -10745,9 +11770,9 @@ following text: % \par % \begin{markdown} % -% The \mdef{markdownReadAndConvert} macro implements the \m{markdownBegin} +% The \mdef{markdownReadAndConvert} macro implements the \mref{markdownBegin} % macro. The first argument specifies the token sequence that will terminate -% the markdown input (\m{markdownEnd} in the instance of the \m{markdownBegin} +% the markdown input (\mref{markdownEnd} in the instance of the \mref{markdownBegin} % macro) when the plain \TeX{} special characters have had their category % changed to *other*. The second argument specifies the token sequence % that will actually be inserted into the document, when the ending token @@ -10775,7 +11800,7 @@ following text: % \begin{markdown} % The macro is exposed in the interface, so that the user can create their own % markdown environments. Due to the way the arguments are passed to Lua (see -% Section \ref{sec:directlua}), the first argument may not contain the +% Section \vref{sec:directlua}), the first argument may not contain the % string `]]` (regardless of the category code of the bracket symbol (`]`)). % % The \mdef{markdownMode} macro specifies how the plain \TeX{} implementation @@ -10783,13 +11808,13 @@ following text: % as follows: % % - `0` – Shell escape via the 18 output file stream -% - `1` – Shell escape via the Lua \luam{os.execute} method +% - `1` – Shell escape via the Lua \luamref{os.execute} method % - `2` – Direct Lua access % % By defining the macro, the user can coerce the package to use a specific mode. % If the user does not define the macro prior to loading the plain \TeX{} % implementation, the correct value will be automatically detected. The outcome -% of changing the value of \m{markdownMode} after the implementation has been +% of changing the value of \mref{markdownMode} after the implementation has been % loaded is undefined. % % \end{markdown} @@ -10836,8 +11861,8 @@ idioms, such as package options and environments. The \LaTeX{} interface accepts the same options as the plain \TeX{} interface, but now the options are specified as \meta{key}${}={}$\meta{value} pairs and -they are passed either as package options, in the \m{markdownSetup} command, or -as parameters for the \envm{markdown*} \LaTeX{} environment. +they are passed either as package options, in the \mref{markdownSetup} command, or +as parameters for the \envmref{markdown*} \LaTeX{} environment. Using a text editor, create a text document named `document.tex` with the following content: @@ -10879,10 +11904,10 @@ pdflatex --shell-escape document.tex % % The \LaTeX{} interface provides \LaTeX{} environments for the typesetting of % markdown input from within \LaTeX{}, facilities for setting Lua interface -% options (see Section \ref{sec:luaoptions}) used during the conversion from +% options (see Section \vref{sec:luaoptions}) used during the conversion from % markdown to plain \TeX{}, and facilities for changing the way markdown tokens % are rendered. The rest of the interface is inherited from the plain \TeX{} -% interface (see Section \ref{sec:texinterface}). +% interface (see Section \vref{sec:texinterface}). % % The \LaTeX{} interface is implemented by the `markdown.sty` file, which % can be loaded from the \LaTeX{} document preamble as follows: @@ -10892,10 +11917,10 @@ pdflatex --shell-escape document.tex % \end{Verbatim} % \begin{markdown} % where \meta{options} are the \LaTeX{} interface options (see Section -% \ref{sec:latexoptions}). Note that \meta{options} inside the \m{usepackage} +% \vref{sec:latexoptions}). Note that \meta{options} inside the \mref{usepackage} % macro may not set the `markdownRenderers` (see Section -% \ref{sec:latexrenderers}) and `markdownRendererPrototypes` (see Section -% \ref{sec:latexrendererprototypes}) keys. This limitation is due to the way +% \vref{sec:latexrenderers}) and `markdownRendererPrototypes` (see Section +% \vref{sec:latexrendererprototypes}) keys. This limitation is due to the way % \Hologo{LaTeX2e} parses package options. % % \end{markdown} @@ -10904,12 +11929,12 @@ pdflatex --shell-escape document.tex % %### Typesetting Markdown % The interface exposes the \envmdef{markdown} and \envmdef{markdown*} -% \LaTeX{} environments, and redefines the \m{markdownInput} command. +% \LaTeX{} environments, and redefines the \mref{markdownInput} command. % -% The \envm{markdown} and \envm{markdown*} \LaTeX{} environments are used to +% The \envmref{markdown} and \envmref{markdown*} \LaTeX{} environments are used to % typeset markdown document fragments. The starred version of the -% \envm{markdown} environment accepts \LaTeX{} interface options (see -% Section \ref{sec:latexoptions}) as its only argument. These options will +% \envmref{markdown} environment accepts \LaTeX{} interface options (see +% Section \vref{sec:latexoptions}) as its only argument. These options will % only influence this markdown document fragment. % % \end{markdown} @@ -10919,17 +11944,17 @@ pdflatex --shell-escape document.tex % \end{macrocode} % \markdownBegin % -% You may prepend your own code to the \m{markdown} macro and append your own -% code to the \m{endmarkdown} macro to produce special effects before and after -% the \envm{markdown} \LaTeX{} environment (and likewise for the starred +% You may prepend your own code to the \mref{markdown} macro and append your own +% code to the \mref{endmarkdown} macro to produce special effects before and after +% the \envmref{markdown} \LaTeX{} environment (and likewise for the starred % version). % -% Note that the \envm{markdown} and \envm{markdown*} \LaTeX{} environments are -% subject to the same limitations as the \m{markdownBegin} and \m{markdownEnd} +% Note that the \envmref{markdown} and \envmref{markdown*} \LaTeX{} environments are +% subject to the same limitations as the \mref{markdownBegin} and \mref{markdownEnd} % macros exposed by the plain \TeX{} interface. % % The following example \LaTeX{} code showcases the usage of the -% \envm{markdown} and \envm{markdown*} environments: +% \envmref{markdown} and \envmref{markdown*} environments: % ``` tex % \documentclass{article} \documentclass{article} % \usepackage{markdown} \usepackage{markdown} @@ -10942,16 +11967,16 @@ pdflatex --shell-escape document.tex % \end{document} \end{document} % ``````` % -% The \m{markdownInput} macro accepts a single mandatory parameter containing +% The \mref{markdownInput} macro accepts a single mandatory parameter containing % the filename of a markdown document and expands to the result of the % conversion of the input markdown document to plain \TeX{}. Unlike the -% \m{markdownInput} macro provided by the plain \TeX{} interface, this macro -% also accepts \LaTeX{} interface options (see Section \ref{sec:latexoptions}) +% \mref{markdownInput} macro provided by the plain \TeX{} interface, this macro +% also accepts \LaTeX{} interface options (see Section \vref{sec:latexoptions}) % as its optional argument. These options will only influnce this markdown % document. % % The following example \LaTeX{} code showcases the usage of the -% \m{markdownInput} macro: +% \mref{markdownInput} macro: % ``` tex % \documentclass{article} % \usepackage{markdown} @@ -10970,18 +11995,18 @@ pdflatex --shell-escape document.tex % part is optional, and \meta{key} will be interpreted as \meta{key}`=true` % if the `=`\meta{value} part has been omitted. % -% Except for the `plain` option described in Section \ref{sec:latexplain}, and -% the \LaTeX{} themes described in Section \ref{sec:latexthemes}, and the -% \LaTeX{} setup snippets described in Section \ref{sec:latexsetupsnippets}, +% Except for the `plain` option described in Section \vref{sec:latexplain}, and +% the \LaTeX{} themes described in Section \vref{sec:latexthemes}, and the +% \LaTeX{} setup snippets described in Section \vref{sec:latexsetupsnippets}, % \LaTeX{} options map directly to the options recognized by the plain -% \TeX{} interface (see Section \ref{sec:texoptions}) and to the markdown token +% \TeX{} interface (see Section \vref{sec:texoptions}) and to the markdown token % renderers and their prototypes recognized by the plain \TeX{} interface (see -% Sections \ref{sec:texrenderersuser} and \ref{sec:texrendererprototypes}). +% Sections \vref{sec:texrenderersuser} and \vref{sec:texrendererprototypes}). % % The \LaTeX{} options may be specified when loading the \LaTeX{} package, when -% using the \envm{markdown*} \LaTeX{} environment or the \m{markdownInput} -% macro (see Section \ref{sec:latexinterface}), or via the \mdef{markdownSetup} -% macro. The \m{markdownSetup} macro receives the options to set up as its only +% using the \envmref{markdown*} \LaTeX{} environment or the \mref{markdownInput} +% macro (see Section \vref{sec:latexinterface}), or via the \mdef{markdownSetup} +% macro. The \mref{markdownSetup} macro receives the options to set up as its only % argument: % % \markdownEnd @@ -10992,7 +12017,7 @@ pdflatex --shell-escape document.tex % \begin{markdown} % % We may also store \LaTeX{} options as *setup snippets* and invoke them later -% using the \mdef{markdownSetupSnippet} macro. The \m{markdownSetupSnippet} +% using the \mdef{markdownSetupSnippet} macro. The \mref{markdownSetupSnippet} % macro receives two arguments: the name of the setup snippet and the options % to store: % @@ -11014,8 +12039,8 @@ pdflatex --shell-escape document.tex % \end{macrocode} % \begin{markdown} % -% See Section \ref{sec:latexthemes} for information on interactions between -% setup snippets and \LaTeX{} themes. See Section \ref{sec:latexsetupsnippets} +% See Section \vref{sec:latexthemes} for information on interactions between +% setup snippets and \LaTeX{} themes. See Section \vref{sec:latexsetupsnippets} % for information about invoking the stored setup snippets. % % \end{markdown} @@ -11040,8 +12065,8 @@ other packages used in a document. Additionally, if we redefine token renderers and renderer prototypes ourselves, the default definitions will bring no benefit to us. Using the `plain` package option, we can keep the default definitions from the plain \TeX{} implementation (see Section -\ref{sec:textokenrendererprototypes}) and prevent the soft \LaTeX{} -prerequisites in Section \ref{sec:latexprerequisites} from being loaded: +\vref{sec:textokenrendererprototypes}) and prevent the soft \LaTeX{} +prerequisites in Section \vref{sec:latexprerequisites} from being loaded: ``` tex \usepackage[plain]{markdown} @@ -11084,7 +12109,7 @@ high-level goals without low-level programming. % (\texttt{_}), the theme name is a value that is *qualified* and contains no % underscores, and a value is qualified if and only if it contains at least one % forward slash. Themes are inspired by the Beamer \LaTeX{} package, which -% provides similar functionality with its \m{usetheme} macro [@tantau21, +% provides similar functionality with its \mref{usetheme} macro [@tantau21, % Section 15.1]. % % Theme names must be qualified to minimize naming conflicts between different @@ -11103,7 +12128,7 @@ high-level goals without low-level programming. % package named `markdownthemewitiko_beamer_MU.sty`. % % If the \LaTeX{} option with key `theme` is (repeatedly) specified in the -% \m{usepackage} macro, the loading of the theme(s) will be postponed in +% \mref{usepackage} macro, the loading of the theme(s) will be postponed in % first-in-first-out order until after the Markdown \LaTeX{} package has been % loaded. Otherwise, the theme(s) will be loaded immediately. For example, % there is a theme named `witiko/dot`, which typesets fenced code blocks with @@ -11163,7 +12188,7 @@ would use the following code in the preamble of your document: % \begin{markdown} % % The \LaTeX{} themes have a useful synergy with the setup snippets (see -% Section \ref{sec:latexoptions}): To make it less likely that different +% Section \vref{sec:latexoptions}): To make it less likely that different % themes will define setup snippets with the same name, we will prepend % \meta{theme name}`/` before the snippet name and use the result as the % snippet name. For example, if the `witiko/dot` theme defines the `product` @@ -11239,7 +12264,7 @@ Example themes provided with the Markdown package include: % \end{document} % ```````` % Typesetting the above document produces the output shown in -% Figure~\ref{fig:witiko/dot}. +% Figure \vref{fig:witiko/dot}. % ``` dot Various formats of mathemathical formulae \label{fig:witiko/dot} % digraph tree { % margin = 0; @@ -11266,7 +12291,7 @@ Example themes provided with the Markdown package include: % ``` The theme requires a Unix-like operating system with GNU Diffutils and Graphviz installed. The theme also requires shell access unless the - \m{markdownOptionFrozenCache} plain \TeX{} option is enabled. + \mref{markdownOptionFrozenCache} plain \TeX{} option is enabled. % \markdownEnd % \iffalse @@ -11347,19 +12372,19 @@ conference article: % \usepackage[theme=witiko/graphicx/http]{markdown} % \begin{document} % \begin{markdown} -% ![img](https://github.com/witiko/markdown/raw/master/banner.png +% ![img](https://github.com/witiko/markdown/raw/main/markdown.png % "The banner of the Markdown package") % \end{markdown} % \end{document} % ``````` % Typesetting the above document produces the output shown in -% Figure~\ref{fig:witiko/graphicx/http}. -% ![img](https://github.com/witiko/markdown/raw/master/banner.png +% Figure \vref{fig:witiko/graphicx/http}. +% ![img](https://github.com/witiko/markdown/raw/main/markdown.png % "The banner of the Markdown package \label{fig:witiko/graphicx/http}") The theme requires the \pkg{catchfile} \LaTeX{} package and a Unix-like operating system with GNU Coreutils `md5sum` and either GNU Wget or cURL installed. The theme also requires shell access unless the - \m{markdownOptionFrozenCache} plain \TeX{} option is enabled. + \mref{markdownOptionFrozenCache} plain \TeX{} option is enabled. % \markdownEnd % \iffalse @@ -11373,7 +12398,7 @@ following content: \usepackage[theme=witiko/graphicx/http]{markdown} \begin{document} \begin{markdown} -![img](https://github.com/witiko/markdown/raw/master/banner.png +![img](https://github.com/witiko/markdown/raw/main/markdown.png "The banner of the Markdown package") \end{markdown} \end{document} @@ -11385,7 +12410,7 @@ lualatex document.tex A PDF document named `document.pdf` should be produced and contain the following image: -> ![img](https://github.com/witiko/markdown/raw/master/banner.png +> ![img](https://github.com/witiko/markdown/raw/main/markdown.png > "The banner of the Markdown package") % @@ -11393,7 +12418,6 @@ following image: % \fi % \begin{macrocode} \ProvidesPackage{markdownthemewitiko_graphicx_http}[2021/03/22]% -\RequirePackage{catchfile} % \end{macrocode} % \iffalse % @@ -11456,7 +12480,7 @@ following text, where the middot (`·`) denotes a non-breaking space: % \par % \begin{markdown} % -% Please, see Section~\ref{sec:latexthemesimplementation} for implementation +% Please, see Section \vref{sec:latexthemesimplementation} for implementation % details of the example themes. #### \LaTeX{} setup snippets @@ -11520,7 +12544,7 @@ The following ordered list will be preceded by roman numerals: %#### Plain \TeX{} Interface Options % The following options map directly to the option macros exposed by the plain -% \TeX{} interface (see Section \ref{sec:texoptions}). +% \TeX{} interface (see Section \vref{sec:texoptions}). % % \markdownEnd % \iffalse @@ -11564,6 +12588,8 @@ The following ordered list will be preceded by roman numerals: \def\markdownOptionFootnotes{#1}}% \define@key{markdownOptions}{fencedCode}[true]{% \def\markdownOptionFencedCode{#1}}% +\define@key{markdownOptions}{jekyllData}[true]{% + \def\markdownOptionJekyllData{#1}}% \define@key{markdownOptions}{hashEnumerators}[true]{% \def\markdownOptionHashEnumerators{#1}}% \define@key{markdownOptions}{headerAttributes}[true]{% @@ -11590,6 +12616,8 @@ The following ordered list will be preceded by roman numerals: \def\markdownOptionStripIndent{#1}}% \define@key{markdownOptions}{tableCaptions}[true]{% \def\markdownOptionTableCaptions{#1}}% +\define@key{markdownOptions}{taskLists}[true]{% + \def\markdownOptionTaskLists{#1}}% \define@key{markdownOptions}{texComments}[true]{% \def\markdownOptionTeXComments{#1}}% \define@key{markdownOptions}{tightLists}[true]{% @@ -11602,7 +12630,7 @@ The following ordered list will be preceded by roman numerals: % \par % \begin{markdown} % -% The \m{markdownOptionFinalizeCache} and \m{markdownOptionFrozenCache} plain +% The \mref{markdownOptionFinalizeCache} and \mref{markdownOptionFrozenCache} plain % \TeX{} options are exposed through \LaTeX{} options with keys `finalizeCache` % and `frozenCache`. % @@ -11640,8 +12668,8 @@ The following ordered list will be preceded by roman numerals: % \begin{markdown} % % The following example \LaTeX{} code showcases a possible configuration of -% plain \TeX{} interface options \m{markdownOptionHybrid}, -% \m{markdownOptionSmartEllipses}, and \m{markdownOptionCacheDir}. +% plain \TeX{} interface options \mref{markdownOptionHybrid}, +% \mref{markdownOptionSmartEllipses}, and \mref{markdownOptionCacheDir}. % ``` tex % \markdownSetup{ % hybrid, @@ -11656,7 +12684,7 @@ The following ordered list will be preceded by roman numerals: % The \LaTeX{} interface recognizes an option with the `renderers` key, % whose value must be a list of options that map directly to the markdown token % renderer macros exposed by the plain \TeX{} interface (see Section -% \ref{sec:texrenderersuser}). +% \vref{sec:texrenderersuser}). % % \end{markdown} % \begin{macrocode} @@ -11756,6 +12784,26 @@ The following ordered list will be preceded by roman numerals: \renewcommand\markdownRendererInputVerbatim[1]{#1}}% \define@key{markdownRenderers}{inputFencedCode}{% \renewcommand\markdownRendererInputFencedCode[2]{#1}}% +\define@key{markdownRenderers}{jekyllDataBoolean}{% + \renewcommand\markdownRendererJekyllDataBoolean[2]{#1}}% +\define@key{markdownRenderers}{jekyllDataEmpty}{% + \renewcommand\markdownRendererJekyllDataEmpty[1]{#1}}% +\define@key{markdownRenderers}{jekyllDataNumber}{% + \renewcommand\markdownRendererJekyllDataNumber[2]{#1}}% +\define@key{markdownRenderers}{jekyllDataString}{% + \renewcommand\markdownRendererJekyllDataString[2]{#1}}% +\define@key{markdownRenderers}{jekyllDataBegin}{% + \renewcommand\markdownRendererJekyllDataBegin{#1}}% +\define@key{markdownRenderers}{jekyllDataEnd}{% + \renewcommand\markdownRendererJekyllDataEnd{#1}}% +\define@key{markdownRenderers}{jekyllDataSequenceBegin}{% + \renewcommand\markdownRendererJekyllDataSequenceBegin[2]{#1}}% +\define@key{markdownRenderers}{jekyllDataSequenceEnd}{% + \renewcommand\markdownRendererJekyllDataSequenceEnd{#1}}% +\define@key{markdownRenderers}{jekyllDataMappingBegin}{% + \renewcommand\markdownRendererJekyllDataMappingBegin[2]{#1}}% +\define@key{markdownRenderers}{jekyllDataMappingEnd}{% + \renewcommand\markdownRendererJekyllDataMappingEnd{#1}}% \define@key{markdownRenderers}{headingOne}{% \renewcommand\markdownRendererHeadingOne[1]{#1}}% \define@key{markdownRenderers}{headingTwo}{% @@ -11780,12 +12828,18 @@ The following ordered list will be preceded by roman numerals: \renewcommand\markdownRendererTable[3]{#1}}% \define@key{markdownRenderers}{inlineHtmlComment}{% \renewcommand\markdownRendererInlineHtmlComment[1]{#1}}% +\define@key{markdownRenderers}{tickedBox}{% + \renewcommand\markdownRendererTickedBox{#1}}% +\define@key{markdownRenderers}{halfTickedBox}{% + \renewcommand\markdownRendererHalfTickedBox{#1}}% +\define@key{markdownRenderers}{untickedBox}{% + \renewcommand\markdownRendererUntickedBox{#1}}% % \end{macrocode} % \par % \begin{markdown} % % The following example \LaTeX{} code showcases a possible configuration of the -% \m{markdownRendererLink} and \m{markdownRendererEmphasis} markdown token +% \mref{markdownRendererLink} and \mref{markdownRendererEmphasis} markdown token % renderers. % ``` tex % \markdownSetup{ @@ -11801,7 +12855,7 @@ The following ordered list will be preceded by roman numerals: % The \LaTeX{} interface recognizes an option with the `rendererPrototypes` % key, whose value must be a list of options that map directly to the markdown % token renderer prototype macros exposed by the plain \TeX{} interface (see -% Section \ref{sec:texrendererprototypes}). +% Section \vref{sec:texrendererprototypes}). % % \end{markdown} % \begin{macrocode} @@ -11901,6 +12955,26 @@ The following ordered list will be preceded by roman numerals: \renewcommand\markdownRendererInputVerbatimPrototype[1]{#1}}% \define@key{markdownRendererPrototypes}{inputFencedCode}{% \renewcommand\markdownRendererInputFencedCodePrototype[2]{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataBoolean}{% + \renewcommand\markdownRendererJekyllDataBooleanPrototype[2]{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataEmpty}{% + \renewcommand\markdownRendererJekyllDataEmptyPrototype[1]{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataNumber}{% + \renewcommand\markdownRendererJekyllDataNumberPrototype[2]{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataString}{% + \renewcommand\markdownRendererJekyllDataStringPrototype[2]{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataBegin}{% + \renewcommand\markdownRendererJekyllDataBeginPrototype{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataEnd}{% + \renewcommand\markdownRendererJekyllDataEndPrototype{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataSequenceBegin}{% + \renewcommand\markdownRendererJekyllDataSequenceBeginPrototype[2]{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataSequenceEnd}{% + \renewcommand\markdownRendererJekyllDataSequenceEndPrototype{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataMappingBegin}{% + \renewcommand\markdownRendererJekyllDataMappingBeginPrototype[2]{#1}}% +\define@key{markdownRendererPrototypes}{jekyllDataMappingEnd}{% + \renewcommand\markdownRendererJekyllDataMappingEndPrototype{#1}}% \define@key{markdownRendererPrototypes}{headingOne}{% \renewcommand\markdownRendererHeadingOnePrototype[1]{#1}}% \define@key{markdownRendererPrototypes}{headingTwo}{% @@ -11925,12 +12999,18 @@ The following ordered list will be preceded by roman numerals: \renewcommand\markdownRendererTablePrototype[3]{#1}}% \define@key{markdownRendererPrototypes}{inlineHtmlComment}{% \renewcommand\markdownRendererInlineHtmlCommentPrototype[1]{#1}}% +\define@key{markdownRendererPrototypes}{tickedBox}{% + \renewcommand\markdownRendererTickedBoxPrototype{#1}}% +\define@key{markdownRendererPrototypes}{halfTickedBox}{% + \renewcommand\markdownRendererHalfTickedBoxPrototype{#1}}% +\define@key{markdownRendererPrototypes}{untickedBox}{% + \renewcommand\markdownRendererUntickedBoxPrototype{#1}}% % \end{macrocode} % \par % \begin{markdown} % % The following example \LaTeX{} code showcases a possible configuration of the -% \m{markdownRendererImagePrototype} and \m{markdownRendererCodeSpanPrototype} +% \mref{markdownRendererImagePrototype} and \mref{markdownRendererCodeSpanPrototype} % markdown token renderer prototypes. % ``` tex % \markdownSetup{ @@ -12003,7 +13083,7 @@ texexec --passon=--shell-escape document.tex % The \Hologo{ConTeXt} interface provides a start-stop macro pair for the % typesetting of markdown input from within \Hologo{ConTeXt}. The rest of the % interface is inherited from the plain \TeX{} interface (see Section -% \ref{sec:texinterface}). +% \vref{sec:texinterface}). % % \end{markdown} % \begin{macrocode} @@ -12020,7 +13100,7 @@ texexec --passon=--shell-escape document.tex % \usemodule[t][markdown] % ``````` % \noindent It is expected that the special plain \TeX{} characters have the -% expected category codes, when \m{input}ting the file. +% expected category codes, when \mref{input}ting the file. % %### Typesetting Markdown % The interface exposes the \mdef{startmarkdown} and \mdef{stopmarkdown} macro @@ -12034,16 +13114,16 @@ texexec --passon=--shell-escape document.tex % \par % \begin{markdown} % -% You may prepend your own code to the \m{startmarkdown} macro and redefine the -% \m{stopmarkdown} macro to produce special effects before and after the +% You may prepend your own code to the \mref{startmarkdown} macro and redefine the +% \mref{stopmarkdown} macro to produce special effects before and after the % markdown block. % -% Note that the \m{startmarkdown} and \m{stopmarkdown} macros -% are subject to the same limitations as the \m{markdownBegin} and -% \m{markdownEnd} macros exposed by the plain \TeX{} interface. +% Note that the \mref{startmarkdown} and \mref{stopmarkdown} macros +% are subject to the same limitations as the \mref{markdownBegin} and +% \mref{markdownEnd} macros exposed by the plain \TeX{} interface. % % The following example \Hologo{ConTeXt} code showcases the usage of the -% \m{startmarkdown} and \m{stopmarkdown} macros: +% \mref{startmarkdown} and \mref{stopmarkdown} macros: % ``` tex % \usemodule[t][markdown] % \starttext @@ -12057,13 +13137,22 @@ texexec --passon=--shell-escape document.tex %=============== % \label{sec:implementation} % This part of the documentation describes the implementation of the interfaces -% exposed by the package (see Section \ref{sec:interfaces}) and is aimed at the +% exposed by the package (see Section \vref{sec:interfaces}) and is aimed at the % developers of the package, as well as the curious users. % +% Figure \vref{fig:block-diagram} shows the high-level structure of the Markdown +% package: The translation from markdown to \TeX{} *token renderers* is +% performed by the Lua layer. The plain \TeX{} layer provides default +% definitions for the token renderers. The \LaTeX{} and \Hologo{ConTeXt} layers +% correct idiosyncrasies of the respective \TeX{} formats, and provide +% format-specific default definitions for the token renderers. +% +% \end{markdown} % \iffalse % %<*lua> % \fi +% \begin{markdown} % % Lua Implementation %------------------- @@ -12075,7 +13164,7 @@ texexec --passon=--shell-escape document.tex % other formats, such as DocBook, Groff, or \acro{HTML}. These were stripped % from the module and the remaining markdown reader and plain \TeX{} writer % were hidden behind the converter functions exposed by the Lua interface (see -% Section \ref{sec:luainterface}). +% Section \vref{sec:luainterface}). % % \end{markdown} % \begin{macrocode} @@ -12234,7 +13323,7 @@ end % % The \luamdef{util.rope_to_string} method converts a rope `rope` to a % string and returns it. For the definition of a rope, see the definition of -% the \luam{util.walk} method. +% the \luamref{util.walk} method. % % \end{markdown} % \begin{macrocode} @@ -12248,7 +13337,7 @@ end % \begin{markdown} % % The \luamdef{util.rope_last} method retrieves the last item in a rope. For -% the definition of a rope, see the definition of the \luam{util.walk} method. +% the definition of a rope, see the definition of the \luamref{util.walk} method. % % \end{markdown} % \begin{macrocode} @@ -14480,16 +15569,16 @@ end % %### Plain \TeX{} Writer % \label{sec:texwriter} -% This section documents the \luam{writer} object, which implements the +% This section documents the \luamref{writer} object, which implements the % routines for producing the \TeX{} output. The object is an amalgamate of the % generic, \TeX{}, \LaTeX{} writer objects that were located in the % `lunamark/writer/generic.lua`, `lunamark/writer/tex.lua`, and % `lunamark/writer/latex.lua` files in the Lunamark Lua module. % % Although not specified in the Lua interface (see Section -% \ref{sec:luainterface}), the \luam{writer} object is exported, so that the +% \vref{sec:luainterface}), the \luamref{writer} object is exported, so that the % curious user could easily tinker with the methods of the objects produced by -% the \luam{writer.new} method described below. The user should be aware, +% the \luamref{writer.new} method described below. The user should be aware, % however, that the implementation may change in a future revision. % % \end{markdown} @@ -14501,10 +15590,10 @@ M.writer = {} % % The \luamdef{writer.new} method creates and returns a new \TeX{} writer % object associated with the Lua interface options (see Section -% \ref{sec:luaoptions}) `options`. When `options` are unspecified, it is +% \vref{sec:luaoptions}) `options`. When `options` are unspecified, it is % assumed that an empty table was passed to the method. % -% The objects produced by the \luam{writer.new} method expose instance methods +% The objects produced by the \luamref{writer.new} method expose instance methods % and variables of their own. As a convention, I will refer to these % \meta{member}s as `writer->`\meta{member}. All member variables are % immutable unless explicitly stated otherwise. @@ -14518,7 +15607,7 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Make the `options` table inherit from the \luam{defaultOptions} table. +% Make the `options` table inherit from the \luamref{defaultOptions} table. % % \end{markdown} % \begin{macrocode} @@ -14530,7 +15619,7 @@ function M.writer.new(options) % % Parse the \Opt{slice} option and define \luamdef{writer->slice\_begin} % \luamdef{writer->slice\_end}, and \luamdef{writer->is\_writing}. The -% \luam{writer->is\_writing} member variable is mutable. +% \luamref{writer->is\_writing} member variable is mutable. % % \end{markdown} % \begin{macrocode} @@ -14681,29 +15770,12 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Define a table \luamdef{escaped_chars} containing the mapping from special -% plain \TeX{} characters (including the active pipe character (`|`) of -% \Hologo{ConTeXt}) to their escaped variants. Define tables -% \luamdef{escaped_uri_chars}, \luamdef{escaped_citation_chars}, and -% \luamdef{escaped_minimal_strings} containing the mapping from special plain -% characters and character strings that need to be escaped even in content -% that will not be typeset. +% Define tables \luamdef{escaped_uri_chars}, \luamdef{escaped_citation_chars}, +% and \luamdef{escaped_minimal_strings} containing the mapping from special +% plain characters and character strings that always need to be escaped. % % \end{markdown} % \begin{macrocode} - local escaped_chars = { - ["{"] = "\\markdownRendererLeftBrace{}", - ["}"] = "\\markdownRendererRightBrace{}", - ["$"] = "\\markdownRendererDollarSign{}", - ["%"] = "\\markdownRendererPercentSign{}", - ["&"] = "\\markdownRendererAmpersand{}", - ["_"] = "\\markdownRendererUnderscore{}", - ["#"] = "\\markdownRendererHash{}", - ["^"] = "\\markdownRendererCircumflex{}", - ["\\"] = "\\markdownRendererBackslash{}", - ["~"] = "\\markdownRendererTilde{}", - ["|"] = "\\markdownRendererPipe{}", - } local escaped_uri_chars = { ["{"] = "\\markdownRendererLeftBrace{}", ["}"] = "\\markdownRendererRightBrace{}", @@ -14714,27 +15786,54 @@ function M.writer.new(options) ["{"] = "\\markdownRendererLeftBrace{}", ["}"] = "\\markdownRendererRightBrace{}", ["%"] = "\\markdownRendererPercentSign{}", - ["#"] = "\\markdownRendererHash{}", ["\\"] = "\\markdownRendererBackslash{}", + ["#"] = "\\markdownRendererHash{}", } local escaped_minimal_strings = { ["^^"] = "\\markdownRendererCircumflex\\markdownRendererCircumflex ", + ["☒"] = "\\markdownRendererTickedBox{}", + ["⌛"] = "\\markdownRendererHalfTickedBox{}", + ["☐"] = "\\markdownRendererUntickedBox{}", + } +% \end{macrocode} +% \par +% \begin{markdown} +% +% Define a table \luamdef{escaped_chars} containing the mapping from special +% plain \TeX{} characters (including the active pipe character (`|`) of +% \Hologo{ConTeXt}) that need to be escaped for typeset content. +% +% \end{markdown} +% \begin{macrocode} + local escaped_chars = { + ["{"] = "\\markdownRendererLeftBrace{}", + ["}"] = "\\markdownRendererRightBrace{}", + ["%"] = "\\markdownRendererPercentSign{}", + ["\\"] = "\\markdownRendererBackslash{}", + ["#"] = "\\markdownRendererHash{}", + ["$"] = "\\markdownRendererDollarSign{}", + ["&"] = "\\markdownRendererAmpersand{}", + ["_"] = "\\markdownRendererUnderscore{}", + ["^"] = "\\markdownRendererCircumflex{}", + ["~"] = "\\markdownRendererTilde{}", + ["|"] = "\\markdownRendererPipe{}", } % \end{macrocode} % \par % \begin{markdown} % -% Use the \luam{escaped_chars}, \luam{escaped_uri_chars}, -% \luam{escaped_citation_chars}, and \luam{escaped_minimal_strings} tables -% to create the \luamdef{escape}, \luamdef{escape_citation}, and -% \luamdef{escape_uri} escaper functions. +% Use the \luamref{escaped_chars}, \luamref{escaped_uri_chars}, +% \luamref{escaped_citation_chars}, and \luamref{escaped_minimal_strings} tables +% to create the \luamdef{escape}, \luamdef{escape_citation}, +% \luamdef{escape_uri}, and \luamdef{escape_minimal} escaper functions. % % \end{markdown} % \begin{macrocode} - local escape = util.escaper(escaped_chars) + local escape = util.escaper(escaped_chars, escaped_minimal_strings) local escape_citation = util.escaper(escaped_citation_chars, escaped_minimal_strings) local escape_uri = util.escaper(escaped_uri_chars, escaped_minimal_strings) + local escape_minimal = util.escaper({}, escaped_minimal_strings) % \end{macrocode} % \par % \begin{markdown} @@ -14744,15 +15843,15 @@ function M.writer.new(options) % function that will transform an input citation name `c` to the output format, % and \luamdef{writer->uri} as a function that will transform an input % \acro{uri} `u` to the output format. If the \Opt{hybrid} option is enabled, -% use identity functions. Otherwise, use the \luam{escape}, -% \luam{escape_citation}, and \luam{escape_uri} functions. +% use the \luamref{escape_minimal}. Otherwise, use the \luamref{escape}, +% \luamref{escape_citation}, and \luamref{escape_uri} functions. % % \end{markdown} % \begin{macrocode} if options.hybrid then - self.string = function(s) return s end - self.citation = function(c) return c end - self.uri = function(u) return u end + self.string = escape_minimal + self.citation = escape_minimal + self.uri = escape_minimal else self.string = escape self.citation = escape_citation @@ -14763,8 +15862,8 @@ function M.writer.new(options) % \begin{markdown} % % Define \luamdef{writer->escape} as a function that will transform an input -% plain text span to the output format. Unlike the \luam{writer->string} -% function, \luam{writer->escape} always uses the \luam{escape} function, +% plain text span to the output format. Unlike the \luamref{writer->string} +% function, \luamref{writer->escape} always uses the \luamref{escape} function, % even when the \Opt{hybrid} option is enabled. % % \end{markdown} @@ -14851,9 +15950,9 @@ function M.writer.new(options) % \begin{markdown} % % The \luamdef{languages_json} table maps programming language filename -% extensions to fence infostrings. All \luam{options.contentBlocksLanguageMap} +% extensions to fence infostrings. All `options.`\luamref{contentBlocksLanguageMap} % files located by the KPathSea library are loaded into a chain of tables. -% \luam{languages_json} corresponds to the first table and is chained with +% \luamref{languages_json} corresponds to the first table and is chained with % the rest via Lua metatables. % % \end{markdown} @@ -14866,7 +15965,7 @@ function M.writer.new(options) % \begin{markdown} % % If the KPathSea library is unavailable, perhaps because we are using -% LuaMeta\TeX, we will only locate the \luam{options.contentBlocksLanguageMap} +% LuaMeta\TeX, we will only locate the `options.`\luamref{contentBlocksLanguageMap} % in the current working directory: % % \end{markdown} @@ -15066,6 +16165,24 @@ function M.writer.new(options) % \par % \begin{markdown} % +% Define \luamdef{writer->tickbox} as a function that will transform a +% number `f` to the output format. +% +% \end{markdown} +% \begin{macrocode} + function self.tickbox(f) + if f == 1.0 then + return "☒ " + elseif f == 0.0 then + return "☐ " + else + return "⌛ " + end + end +% \end{macrocode} +% \par +% \begin{markdown} +% % Define \luamdef{writer->strong} as a function that will transform a strongly % emphasized span `s` of input text to the output format. % @@ -15123,9 +16240,104 @@ function M.writer.new(options) % \par % \begin{markdown} % +% Define \luamdef{writer->jekyllData} as a function that will transform an +% input \acro{yaml} table `d` to the output format. The table is the value for +% the key `p` in the parent table; if `p` is nil, then the table has no parent. +% All scalar keys and values encountered in the table will be cast to a string +% following \acro{yaml} serialization rules. String values will also be +% transformed using the function `t`. +% +% \end{markdown} +% \begin{macrocode} + function self.jekyllData(d, t, p) + if not self.is_writing then return "" end + + local buf = {} + + local keys = {} + for k, _ in pairs(d) do + table.insert(keys, k) + end + table.sort(keys) + + if not p then + table.insert(buf, "\\markdownRendererJekyllDataBegin") + end + + if #d > 0 then + table.insert(buf, "\\markdownRendererJekyllDataSequenceBegin{") + table.insert(buf, self.uri(p or "null")) + table.insert(buf, "}{") + table.insert(buf, #keys) + table.insert(buf, "}") + else + table.insert(buf, "\\markdownRendererJekyllDataMappingBegin{") + table.insert(buf, self.uri(p or "null")) + table.insert(buf, "}{") + table.insert(buf, #keys) + table.insert(buf, "}") + end + + for _, k in ipairs(keys) do + local v = d[k] + local typ = type(v) + k = tostring(k or "null") + if typ == "table" and next(v) ~= nil then + table.insert( + buf, + self.jekyllData(v, t, k) + ) + else + k = self.uri(k) + v = tostring(v) + if typ == "boolean" then + table.insert(buf, "\\markdownRendererJekyllDataBoolean{") + table.insert(buf, k) + table.insert(buf, "}{") + table.insert(buf, v) + table.insert(buf, "}") + elseif typ == "number" then + table.insert(buf, "\\markdownRendererJekyllDataNumber{") + table.insert(buf, k) + table.insert(buf, "}{") + table.insert(buf, v) + table.insert(buf, "}") + elseif typ == "string" then + table.insert(buf, "\\markdownRendererJekyllDataString{") + table.insert(buf, k) + table.insert(buf, "}{") + table.insert(buf, t(v)) + table.insert(buf, "}") + elseif typ == "table" then + table.insert(buf, "\\markdownRendererJekyllDataEmpty{") + table.insert(buf, k) + table.insert(buf, "}") + else + error(format("Unexpected type %s for value of " .. + "YAML key %s", typ, k)) + end + end + end + + if #d > 0 then + table.insert(buf, "\\markdownRendererJekyllDataSequenceEnd") + else + table.insert(buf, "\\markdownRendererJekyllDataMappingEnd") + end + + if not p then + table.insert(buf, "\\markdownRendererJekyllDataEnd") + end + + return buf + end +% \end{macrocode} +% \par +% \begin{markdown} +% % Define \luamdef{writer->active\_headings} as a stack of identifiers % of the headings that are currently active. The -% \luam{writer->active\_headings} member variable is mutable. +% \luamref{writer->active\_headings} member variable is mutable. % % \end{markdown} % \begin{macrocode} @@ -15271,8 +16483,8 @@ function M.writer.new(options) % \end{markdown} % \begin{macrocode} function self.set_state(s) - previous_state = self.get_state() - for key, value in pairs(state) do + local previous_state = self.get_state() + for key, value in pairs(s) do self[key] = value end return previous_state @@ -15283,14 +16495,14 @@ function M.writer.new(options) % % Define \luamdef{writer->defer_call} as a function that will encapsulate the % input function `f`, so that `f` is called with the state of the writer at the -% time of calling \luam{writer->defer_call}. +% time of calling \luamref{writer->defer_call}. % % \end{markdown} % \begin{macrocode} function self.defer_call(f) - state = self.get_state() + local previous_state = self.get_state() return function(...) - state = self.set_state(state) + local state = self.set_state(previous_state) local return_value = f(...) self.set_state(state) return return_value @@ -15305,7 +16517,7 @@ end % %### Parsers % The \luamdef{parsers} hash table stores \acro{peg} patterns that are -% static and can be reused between different \luam{reader} objects. +% static and can be reused between different \luamref{reader} objects. % % \end{markdown} % \begin{macrocode} @@ -15403,7 +16615,47 @@ parsers.spnl = parsers.optionalspace * (parsers.newline * parsers.optionalspace)^-1 parsers.line = parsers.linechar^0 * parsers.newline parsers.nonemptyline = parsers.line - parsers.blankline - +% \end{macrocode} +% \begin{figure} +% \hspace*{-0.1\textwidth} +% \begin{minipage}{1.2\textwidth} +% \centering +% \begin{tikzpicture}[shorten >=1pt, line width=0.1mm, >={Stealth[length=2mm]}, node distance=4.5cm, on grid, auto] +% \node[state, initial by diamond, accepting] (noop) {initial}; +% \node[state] (odd_backslash) [above right=of noop] {odd backslash}; +% \node[state] (even_backslash) [below right=of odd_backslash] {even backslash}; +% \node[state] (comment) [below=of noop] {comment}; +% \node[state] (leading_spaces) [below=of even_backslash, align=center] {leading tabs\\and spaces}; +% \node[state] (blank_line) [below right=of comment] {blank line}; +% \path[->] +% (noop) edge [in=150, out=180, loop] node [align=center, yshift=-0.75cm] {match [$^\wedge$\textbackslash\%]\\capture \textbackslash$\!^{2k}$\meta{match}\\reset $k$} () +% edge [bend right=10] node [below right=-0.2cm] {match \textbackslash} (odd_backslash) +% edge [bend left=30] node [left, align=center] {match \%\\capture \textbackslash$\!^k$\\reset $k$} (comment) +% (comment) edge [in=305, out=325, loop] node [xshift=-1.2cm] {match [$^\wedge$$\drsh$]} () +% edge [bend left=10] node {match $\drsh$} (leading_spaces) +% (leading_spaces) edge [loop below] node {match [\textvisiblespace$\rightleftarrows$]} () +% edge [bend right=90] node [right] {match \textbackslash} (odd_backslash) +% edge [bend left=10] node {match \%} (comment) +% edge [bend right=10] node {$\epsilon$} (blank_line) +% edge [bend left=10] node [align=center, right=0.3cm] {match [$^\wedge$\textvisiblespace$\rightleftarrows$$\drsh$\textbackslash\%]\\capture \meta{match}} (noop) +% (blank_line) edge [loop below] node {match [\textvisiblespace$\rightleftarrows$]} () +% edge [bend left=90] node [align=center, below=1.2cm] {match $\drsh$\\ capture $\drsh\drsh$} (noop) +% (odd_backslash) edge [bend right=10] node [align=center, xshift=-0.3cm, yshift=0.2cm] {match \textbackslash\\increment $k$} (even_backslash) +% edge [bend right=10] node [align=center, above left=-0.3cm, xshift=0.1cm] {match [$^\wedge$\textbackslash]\\for \%, capture \textbackslash$\!^k$\%\\for [$^\wedge$\%], capture \textbackslash$\!^{2k+1}$\meta{match}\\reset $k$} (noop) +% (even_backslash) edge [bend left=10] node {$\epsilon$} (noop); +% \end{tikzpicture} +% \caption{A pushdown automaton that recognizes \TeX{} comments} +% \label{fig:commented_line} +% \end{minipage} +% \end{figure} +% \begin{markdown} +% +% The \luamdef{parsers.commented_line}`^1` parser recognizes the regular +% language of \TeX{} comments, see an equivalent finite automaton in Figure +% \vref{fig:commented_line}. +% +% \end{markdown} +% \begin{macrocode} parsers.commented_line_letter = parsers.linechar + parsers.newline - parsers.backslash @@ -15442,7 +16694,9 @@ parsers.commented_line = Cg(Cc(""), "backslashes") + parsers.percent -- comment * parsers.line * parsers.optionalspace) -- leading tabs and spaces - + C(parsers.newline)) + + #(parsers.newline) + * Cb("backslashes") + * C(parsers.newline)) parsers.chunk = parsers.line * (parsers.optionallyindentedline - parsers.blankline)^0 @@ -15490,6 +16744,16 @@ parsers.bullet = ( parsers.bulletchar * #parsers.spacing + parsers.space * parsers.space * parsers.space * parsers.bulletchar * #parsers.spacing ) + +local function tickbox(interior) + return parsers.optionalspace * parsers.lbracket + * interior * parsers.rbracket * parsers.spacechar^1 +end + +parsers.ticked_box = tickbox(S("xX")) * Cc(1.0) +parsers.halfticked_box = tickbox(S("./")) * Cc(0.5) +parsers.unticked_box = tickbox(parsers.spacechar^1) * Cc(0.0) + % \end{macrocode} % \par % \begin{markdown} @@ -16052,6 +17316,11 @@ parsers.BacktickFencedCode * Cs(parsers.fencedline(parsers.backtick)^0) * parsers.fencetail(parsers.backtick) +parsers.JekyllFencedCode + = parsers.fencehead(parsers.dash) + * Cs(parsers.fencedline(parsers.dash)^0) + * parsers.fencetail(parsers.dash) + parsers.lineof = function(c) return (parsers.leader * (P(c) * parsers.optionalspace)^3 * (parsers.newline * parsers.blankline^1 @@ -16114,24 +17383,24 @@ end % %### Markdown Reader % \label{sec:markdownreader} -% This section documents the \luam{reader} object, which implements the +% This section documents the \luamref{reader} object, which implements the % routines for parsing the markdown input. The object corresponds to the % markdown reader object that was located in the % `lunamark/reader/markdown.lua` file in the Lunamark Lua module. % % Although not specified in the Lua interface (see Section -% \ref{sec:luainterface}), the \luam{reader} object is exported, so that the +% \vref{sec:luainterface}), the \luamref{reader} object is exported, so that the % curious user could easily tinker with the methods of the objects produced by -% the \luam{reader.new} method described below. The user should be aware, +% the \luamref{reader.new} method described below. The user should be aware, % however, that the implementation may change in a future revision. % % The \luamdef{reader.new} method creates and returns a new \TeX{} reader % object associated with the Lua interface options (see Section -% \ref{sec:luaoptions}) `options` and with a writer object `writer`. When +% \vref{sec:luaoptions}) `options` and with a writer object `writer`. When % `options` are unspecified, it is assumed that an empty table was passed to % the method. % -% The objects produced by the \luam{reader.new} method expose instance methods +% The objects produced by the \luamref{reader.new} method expose instance methods % and variables of their own. As a convention, I will refer to these % \meta{member}s as `reader->`\meta{member}. % @@ -16145,7 +17414,7 @@ function M.reader.new(writer, options) % \par % \begin{markdown} % -% Make the `options` table inherit from the \luam{defaultOptions} table. +% Make the `options` table inherit from the \luamref{defaultOptions} table. % % \end{markdown} % \begin{macrocode} @@ -16206,9 +17475,9 @@ function M.reader.new(writer, options) % \par % \begin{markdown} % -% The \luamdef{larsers} (as in ``local \luam{parsers}'') hash table stores +% The \luamdef{larsers} (as in ``local \luamref{parsers}'') hash table stores % \acro{peg} patterns that depend on the received `options`, which impedes -% their reuse between different \luam{reader} objects. +% their reuse between different \luamref{reader} objects. % % \end{markdown} % \begin{macrocode} @@ -16274,7 +17543,7 @@ function M.reader.new(writer, options) end end end - + local parse_blocks = create_parser("parse_blocks", function() @@ -16728,6 +17997,19 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline expandtabs(code)) end + larsers.JekyllData = P("---") + * parsers.blankline / 0 + * #(-parsers.blankline) -- if followed by blank, it's an hrule + * C((parsers.line - P("---") - P("..."))^0) + * (P("---") + P("...")) + / function(text) + local tinyyaml = require("markdown-tinyyaml") + data = tinyyaml.parse(text) + return writer.jekyllData(data, function(s) + return parse_blocks(s) + end, nil) + end + larsers.Blockquote = Cs(larsers.blockquote_body^1) / parse_blocks_toplevel / writer.blockquote @@ -16769,6 +18051,15 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline % \begin{macrocode} larsers.starter = parsers.bullet + larsers.enumerator + if options.taskLists then + larsers.tickbox = ( parsers.ticked_box + + parsers.halfticked_box + + parsers.unticked_box + ) / writer.tickbox + else + larsers.tickbox = parsers.fail + end + -- we use \001 as a separator between a tight list item and a -- nested list under it. larsers.NestedList = Cs((parsers.optionallyindentedline @@ -16786,14 +18077,14 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline larsers.TightListItem = function(starter) return -larsers.HorizontalRule - * (Cs(starter / "" * larsers.ListBlock * larsers.NestedList^-1) + * (Cs(starter / "" * larsers.tickbox^-1 * larsers.ListBlock * larsers.NestedList^-1) / parse_blocks) * -(parsers.blanklines * parsers.indent) end larsers.LooseListItem = function(starter) return -larsers.HorizontalRule - * Cs( starter / "" * larsers.ListBlock * Cc("\n") + * Cs( starter / "" * larsers.tickbox^-1 * larsers.ListBlock * Cc("\n") * (larsers.NestedList + larsers.ListContinuationBlock^0) * (parsers.blanklines / "\n\n") ) / parse_blocks @@ -16944,7 +18235,10 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline Blank = larsers.Blank, + JekyllData = larsers.JekyllData, + Block = V("ContentBlock") + + V("JekyllData") + V("Blockquote") + V("PipeTable") + V("Verbatim") @@ -17068,8 +18362,8 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline syntax.InlineNote = parsers.fail end - if not options.smartEllipses then - syntax.Smart = parsers.fail + if not options.jekyllData then + syntax.JekyllData = parsers.fail end if options.preserveTabs then @@ -17080,6 +18374,10 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline syntax.PipeTable = parsers.fail end + if not options.smartEllipses then + syntax.Smart = parsers.fail + end + local blocks_toplevel_t = util.table_copy(syntax) blocks_toplevel_t.Paragraph = larsers.ToplevelParagraph larsers.blocks_toplevel = Ct(blocks_toplevel_t) @@ -17126,7 +18424,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline % \begin{markdown} % When determining the name of the cache file, create salt for the hashing % function out of the package version and the passed options recognized by the -% Lua interface (see Section \ref{sec:luaoptions}). The \Opt{cacheDir} option +% Lua interface (see Section \vref{sec:luaoptions}). The \Opt{cacheDir} option % is disregarded. % \end{markdown} % \begin{macrocode} @@ -17142,7 +18440,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline % \end{macrocode} % \begin{markdown} % Produce the cache file and transform its filename to plain \TeX{} output -% via the \luam{writer->pack} method. +% via the \luamref{writer->pack} method. % \end{markdown} % \begin{macrocode} local name = util.cache(options.cacheDir, input, salt, function(input) @@ -17180,9 +18478,9 @@ end % \begin{markdown} % %### Conversion from Markdown to Plain \TeX{} -% The \luam{new} method returns the \luam{reader->convert} function of a reader +% The \luamref{new} method returns the \luamref{reader->convert} function of a reader % object associated with the Lua interface options (see Section -% \ref{sec:luaoptions}) `options` and with a writer object associated with +% \vref{sec:luaoptions}) `options` and with a writer object associated with % `options`. % % \end{markdown} @@ -17205,7 +18503,7 @@ return M %### Command-Line Implementation % \label{sec:lua-cli-implementation} % The command-line implementation provides the actual conversion routine for -% the command-line interface described in Section~\ref{sec:lua-cli-interface}. +% the command-line interface described in Section~\vref{sec:lua-cli-interface}. % % \end{markdown} % \begin{macrocode} @@ -17276,7 +18574,7 @@ end % The plain \TeX{} implementation provides macros for the interfacing between % \TeX{} and Lua and for the buffering of input text. These macros are then % used to implement the macros for the conversion from markdown to plain \TeX{} -% exposed by the plain \TeX{} interface (see Section \ref{sec:texinterface}). +% exposed by the plain \TeX{} interface (see Section \vref{sec:texinterface}). % %### Logging Facilities % \label{sec:texinterfacelogging} @@ -17302,12 +18600,12 @@ end % %### Finalizing and Freezing the Cache % -% When the \m{markdownOptionFinalizeCache} option is enabled, then the +% When the \mref{markdownOptionFinalizeCache} option is enabled, then the % \mdef{markdownFrozenCacheCounter} counter is used to enumerate the markdown % documents using the Lua interface \Opt{frozenCacheCounter} option. % -% When the \m{markdownOptionFrozenCache} option is enabled, then the -% \m{markdownFrozenCacheCounter} counter is used to render markdown documents +% When the \mref{markdownOptionFrozenCache} option is enabled, then the +% \mref{markdownFrozenCacheCounter} counter is used to render markdown documents % from the frozen cache without invoking Lua. % % \end{markdown} @@ -17386,14 +18684,17 @@ end \def\markdownRendererFootnotePrototype#1{#1}% \def\markdownRendererCitePrototype#1{}% \def\markdownRendererTextCitePrototype#1{}% +\def\markdownRendererTickedBoxPrototype{[X]}% +\def\markdownRendererHalfTickedBoxPrototype{[/]}% +\def\markdownRendererUntickedBoxPrototype{[ ]}% % \end{macrocode} % \par % \begin{markdown} % %### Lua Snippets % The \mdef{markdownLuaOptions} macro expands to a Lua table that -% contains the plain \TeX{} options (see Section \ref{sec:texoptions}) in a -% format recognized by Lua (see Section \ref{sec:luaoptions}). +% contains the plain \TeX{} options (see Section \vref{sec:texoptions}) in a +% format recognized by Lua (see Section \vref{sec:luaoptions}). % % \end{markdown} % \begin{macrocode} @@ -17456,6 +18757,9 @@ end \ifx\markdownOptionInlineFootnotes\undefined\else inlineFootnotes = \markdownOptionInlineFootnotes, \fi +\ifx\markdownOptionJekyllData\undefined\else + jekyllData = \markdownOptionJekyllData, +\fi \ifx\markdownOptionPipeTables\undefined\else pipeTables = \markdownOptionPipeTables, \fi @@ -17480,6 +18784,9 @@ end \ifx\markdownOptionTableCaptions\undefined\else tableCaptions = \markdownOptionTableCaptions, \fi +\ifx\markdownOptionTaskLists\undefined\else + taskLists = \markdownOptionTaskLists, +\fi \ifx\markdownOptionTeXComments\undefined\else texComments = \markdownOptionTeXComments, \fi @@ -17496,14 +18803,14 @@ end % % The \mdef{markdownPrepare} macro contains the Lua code that is executed prior % to any conversion from markdown to plain \TeX{}. It exposes the -% \luam{convert} function for the use by any further Lua code. +% \luamref{convert} function for the use by any further Lua code. % % \end{markdown} % \begin{macrocode} \def\markdownPrepare{% % \end{macrocode} % \begin{markdown} -% First, ensure that the \m{markdownOptionCacheDir} directory exists. +% First, ensure that the \mref{markdownOptionCacheDir} directory exists. % \end{markdown} % \begin{macrocode} local lfs = require("lfs") @@ -17515,7 +18822,7 @@ end % \begin{markdown} % Next, load the `markdown` module and create a converter function using % the plain \TeX{} options, which were serialized to a Lua table via the -% \m{markdownLuaOptions} macro. +% \mref{markdownLuaOptions} macro. % \end{markdown} % \begin{macrocode} local md = require("markdown") @@ -17569,8 +18876,8 @@ end % \par % \begin{markdown} % -% The \m{markdownReadAndConvert} macro is largely a rewrite of the -% \Hologo{LaTeX2e} \m{filecontents} macro to plain \TeX{}. +% The \mref{markdownReadAndConvert} macro is largely a rewrite of the +% \Hologo{LaTeX2e} \mref{filecontents} macro to plain \TeX{}. % % \end{markdown} % \begin{macrocode} @@ -17582,7 +18889,7 @@ end % backslash as an ordinary character inside the macro definition. Likewise, % swap the character codes of the percent sign (`%`) and the ampersand (`@`), % so that we can remove percent signs from the beginning of lines when -% \m{markdownOptionStripPercentSigns} is enabled. +% \mref{markdownOptionStripPercentSigns} is enabled. % \end{markdown} % \begin{macrocode} \catcode`\^^M=13% @@ -17596,7 +18903,7 @@ end % \end{macrocode} % \begin{markdown} % If we are not reading markdown documents from the frozen cache, -% open the \m{markdownOptionInputTempFileName} file for writing. +% open the \mref{markdownOptionInputTempFileName} file for writing. % \end{markdown} % \begin{macrocode} |markdownIfOption{FrozenCache}{}{@ @@ -17621,7 +18928,7 @@ end % \begin{markdown} % The \mdef{markdownReadAndConvertStripPercentSigns} macro will process the % individual lines of output, stipping away leading percent signs (`%`) when -% \m{markdownOptionStripPercentSigns} is enabled. +% \mref{markdownOptionStripPercentSigns} is enabled. % Notice the use of the comments (`@`) to ensure that the entire macro is at % a single line and therefore no (active) newline symbols % (`^^M`) are produced. @@ -17657,7 +18964,7 @@ end % \begin{markdown} % If we are not reading markdown documents from the frozen cache and the ending % token sequence does not appear in the line, store the line in the -% \m{markdownOptionInputTempFileName} file. +% \mref{markdownOptionInputTempFileName} file. % If we are reading markdown documents from the frozen cache and the % ending token sequence does not appear in the line, gobble the line. % \end{markdown} @@ -17670,10 +18977,10 @@ end % \end{macrocode} % \begin{markdown} % When the ending token sequence appears in the line, make the next newline -% character close the \m{markdownOptionInputTempFileName} file, return the +% character close the \mref{markdownOptionInputTempFileName} file, return the % character categories back to the former state, convert the -% \m{markdownOptionInputTempFileName} file from markdown to plain \TeX{}, -% \m{input} the result of the conversion, and expand the ending control +% \mref{markdownOptionInputTempFileName} file from markdown to plain \TeX{}, +% \mref{input} the result of the conversion, and expand the ending control % sequence. % \end{markdown} % \begin{macrocode} @@ -17707,7 +19014,7 @@ end % \begin{markdown} % Make the newline character active at expansion time and make it consume the % rest of the line on expansion. Throw away the rest of the first line and -% pass the second line to the \m{markdownReadAndConvertProcessLine} macro. +% pass the second line to the \mref{markdownReadAndConvertProcessLine} macro. % \end{markdown} % \begin{macrocode} |catcode`|^^M=13@ @@ -17730,10 +19037,10 @@ end % \label{sec:luabridge} % The following \TeX{} code is intended for \TeX{} engines that do not provide % direct access to Lua, but expose the shell of the operating system. This -% corresponds to the \m{markdownMode} values of `0` and `1`. +% corresponds to the \mref{markdownMode} values of `0` and `1`. % -% The \m{markdownLuaExecute} macro defined here and in Section -% \ref{sec:directlua} are meant to be indistinguishable to the remaining code. +% The \mref{markdownLuaExecute} macro defined here and in Section +% \vref{sec:directlua} are meant to be indistinguishable to the remaining code. % % The package assumes that although the user is not using the Lua\TeX{} engine, % their \TeX{} distribution contains it, and uses shell access to produce and @@ -17756,10 +19063,10 @@ end % whether the shell access is enabled (`1`), disabled (`0`), or restricted % (`2`). % -% Inherit the value of the the \m{pdfshellescape} (Lua\TeX{}, \Hologo{pdfTeX}) -% or the \m{shellescape} (\Hologo{XeTeX}) commands. If neither of these +% Inherit the value of the the \mref{pdfshellescape} (Lua\TeX{}, \Hologo{pdfTeX}) +% or the \mref{shellescape} (\Hologo{XeTeX}) commands. If neither of these % commands is defined and Lua is available, attempt to access the -% \luam{status.shell_escape} configuration item. +% \luamref{status.shell_escape} configuration item. % % If you cannot detect, whether the shell access is enabled, act as if it were. % @@ -17785,7 +19092,7 @@ end % % The \mdef{markdownExecuteDirect} macro executes the code it has received as % its first argument by writing it to the output file stream 18, if Lua is -% unavailable, or by using the Lua \luam{os.execute} method otherwise. +% unavailable, or by using the Lua \luamref{os.execute} method otherwise. % % \end{markdown} % \begin{macrocode} @@ -17800,8 +19107,8 @@ end % \begin{markdown} % % The \mdef{markdownExecute} macro is a wrapper on top of -% \m{markdownExecuteDirect} that checks the value of -% \m{markdownExecuteShellEscape} and prints an error message if the shell is +% \mref{markdownExecuteDirect} that checks the value of +% \mref{markdownExecuteShellEscape} and prints an error message if the shell is % inaccessible. % % \end{markdown} @@ -17820,8 +19127,8 @@ end % % The \mdef{markdownLuaExecute} macro executes the Lua code it has received as % its first argument. The Lua code may not directly interact with the \TeX{} -% engine, but it can use the \luam{print} function in the same manner it -% would use the \luam{tex.print} method. +% engine, but it can use the \luamref{print} function in the same manner it +% would use the \luamref{tex.print} method. % % \end{markdown} % \begin{macrocode} @@ -17837,7 +19144,7 @@ end |gdef|markdownLuaExecute#1{% % \end{macrocode} % \begin{markdown} -% Create the file \m{markdownOptionHelperScriptFileName} and fill it with the +% Create the file \mref{markdownOptionHelperScriptFileName} and fill it with the % input Lua code prepended with \pkg{kpathsea} initialization, so that Lua % modules from the \TeX{} distribution are available. % \end{markdown} @@ -17854,7 +19161,7 @@ end end) % \end{macrocode} % \begin{markdown} -% If there was an error, use the file \m{markdownOptionErrorTempFileName} to +% If there was an error, use the file \mref{markdownOptionErrorTempFileName} to % store the error message. % \end{markdown} % \begin{macrocode} @@ -17874,9 +19181,9 @@ end |immediate|closeout|markdownOutputFileStream % \end{macrocode} % \begin{markdown} -% Execute the generated \m{markdownOptionHelperScriptFileName} Lua script using +% Execute the generated \mref{markdownOptionHelperScriptFileName} Lua script using % the \TeX{}Lua binary and store the output in the -% \m{markdownOptionOutputTempFileName} file. +% \mref{markdownOptionOutputTempFileName} file. % \end{markdown} % \begin{macrocode} |markdownInfo{Executing a helper Lua script from the file @@ -17888,7 +19195,7 @@ end /|markdownOptionOutputTempFileName"}% % \end{macrocode} % \begin{markdown} -% \m{input} the generated \m{markdownOptionOutputTempFileName} file. +% \mref{input} the generated \mref{markdownOptionOutputTempFileName} file. % \end{markdown} % \begin{macrocode} |input|markdownOptionOutputTempFileName|relax}% @@ -17900,9 +19207,9 @@ end %### Direct Lua Access % \label{sec:directlua} % The following \TeX{} code is intended for \TeX{} engines that provide -% direct access to Lua (Lua\TeX{}). The macro \m{markdownLuaExecute} defined -% here and in Section \ref{sec:luabridge} are meant to be indistinguishable to -% the remaining code. This corresponds to the \m{markdownMode} value of `2`. +% direct access to Lua (Lua\TeX{}). The macro \mref{markdownLuaExecute} defined +% here and in Section \vref{sec:luabridge} are meant to be indistinguishable to +% the remaining code. This corresponds to the \mref{markdownMode} value of `2`. % % \end{markdown} % \begin{macrocode} @@ -17912,10 +19219,10 @@ end % \par % \begin{markdown} % -% The direct Lua access version of the \m{markdownLuaExecute} macro is defined -% in terms of the \m{directlua} primitive. The \luam{print} function is set as -% an alias to the \m{tex.print} method in order to mimic the behaviour of the -% \m{markdownLuaExecute} definition from Section \ref{sec:luabridge}, +% The direct Lua access version of the \mref{markdownLuaExecute} macro is defined +% in terms of the \mref{directlua} primitive. The \luamref{print} function is set as +% an alias to the \mref{tex.print} method in order to mimic the behaviour of the +% \mref{markdownLuaExecute} definition from Section \vref{sec:luabridge}, % % \end{markdown} % \begin{macrocode} @@ -17927,8 +19234,8 @@ end % %### Typesetting Markdown % -% The \m{markdownInput} macro uses an implementation of the -% \m{markdownLuaExecute} macro to convert the contents of the file whose +% The \mref{markdownInput} macro uses an implementation of the +% \mref{markdownLuaExecute} macro to convert the contents of the file whose % filename it has received as its single argument from markdown to plain % \TeX{}. % @@ -17957,7 +19264,7 @@ end % \begin{markdown} % If we are reading from the frozen cache, input it, expand the corresponding % `\markdownFrozenCache`\meta{number} macro, and increment -% \m{markdownFrozenCacheCounter}. +% \mref{markdownFrozenCacheCounter}. % \end{markdown} % \begin{macrocode} |markdownIfOption{FrozenCache}{% @@ -17998,7 +19305,7 @@ end % \end{macrocode} % \begin{markdown} % If we are finalizing the frozen cache, increment -% \m{markdownFrozenCacheCounter}. +% \mref{markdownFrozenCacheCounter}. % \end{markdown} % \begin{macrocode} |markdownIfOption{FinalizeCache}{% @@ -18025,8 +19332,8 @@ end % existing plain \TeX{} implementation. % % The \LaTeX{} implementation redefines the plain \TeX{} logging macros (see -% Section \ref{sec:texinterfacelogging}) to use the \LaTeX{} \m{PackageInfo}, -% \m{PackageWarning}, and \m{PackageError} macros. +% Section \vref{sec:texinterfacelogging}) to use the \LaTeX{} \mref{PackageInfo}, +% \mref{PackageWarning}, and \mref{PackageError} macros. % % \end{markdown} % \begin{macrocode} @@ -18043,8 +19350,8 @@ end % %### Logging Facilities % The \LaTeX{} implementation redefines the plain \TeX{} logging macros (see -% Section \ref{sec:texinterfacelogging}) to use the \LaTeX{} \m{PackageInfo}, -% \m{PackageWarning}, and \m{PackageError} macros. +% Section \vref{sec:texinterfacelogging}) to use the \LaTeX{} \mref{PackageInfo}, +% \mref{PackageWarning}, and \mref{PackageError} macros. % % \end{markdown} % \begin{macrocode} @@ -18054,9 +19361,9 @@ end % %### Typesetting Markdown % The \mdef{markdownInputPlainTeX} macro is used to store the original plain -% \TeX{} implementation of the \m{markdownInput} macro. The \m{markdownInput} +% \TeX{} implementation of the \mref{markdownInput} macro. The \mref{markdownInput} % is then redefined to accept an optional argument with options recognized by -% the \LaTeX{} interface (see Section \ref{sec:latexoptions}). +% the \LaTeX{} interface (see Section \vref{sec:latexoptions}). % % \end{markdown} % \begin{macrocode} @@ -18070,8 +19377,8 @@ end % \par % \begin{markdown} % -% The \envm{markdown}, and \envm{markdown*} \LaTeX{} environments are -% implemented using the \m{markdownReadAndConvert} macro. +% The \envmref{markdown}, and \envmref{markdown*} \LaTeX{} environments are +% implemented using the \mref{markdownReadAndConvert} macro. % % \end{markdown} % \begin{macrocode} @@ -18103,7 +19410,7 @@ end % \begin{markdown} % %### Options -% The supplied package options are processed using the \m{markdownSetup} macro. +% The supplied package options are processed using the \mref{markdownSetup} macro. % % \end{markdown} % \begin{macrocode} @@ -18144,6 +19451,15 @@ end % \end{macrocode} % \begin{markdown} % +% We load the \pkg{ifthen} and \pkg{grffile} packages, see also +% Section~\ref{sec:latexprerequisites}: +% +% \end{markdown} +% \begin{macrocode} +\RequirePackage{ifthen,grffile} +% \end{macrocode} +% \begin{markdown} +% % We store the previous definition of the fenced code token renderer prototype: % % \end{markdown} @@ -18155,12 +19471,11 @@ end % % If the infostring starts with `dot …`, we redefine the fenced code block % token renderer prototype, so that it typesets the code block via Graphviz -% tools if and only if the \m{markdownOptionFrozenCache} plain \TeX{} option is +% tools if and only if the \mref{markdownOptionFrozenCache} plain \TeX{} option is % disabled and the code block has not been previously typeset: % % \end{markdown} % \begin{macrocode} -\RequirePackage{ifthen} \renewcommand\markdownRendererInputFencedCode[2]{% \def\next##1 ##2\relax{% \ifthenelse{\equal{##1}{dot}}{% @@ -18210,8 +19525,17 @@ end % \end{macrocode} % \begin{markdown} % -% We define the \m{markdown@witiko@graphicx@http@counter} counter to enumerate -% the images for caching and the \m{markdown@witiko@graphicx@http@filename} +% We load the \pkg{catchfile} and \pkg{grffile} packages, see also +% Section~\ref{sec:latexprerequisites}: +% +% \end{markdown} +% \begin{macrocode} +\RequirePackage{catchfile,grffile} +% \end{macrocode} +% \begin{markdown} +% +% We define the \mref{markdown@witiko@graphicx@http@counter} counter to enumerate +% the images for caching and the \mref{markdown@witiko@graphicx@http@filename} % command, which will store the pathname of the file containing the pathname % of the downloaded image file. % @@ -18225,7 +19549,7 @@ end % \end{macrocode} % \begin{markdown} % -% We define the \m{markdown@witiko@graphicx@http@download} command, which will +% We define the \mref{markdown@witiko@graphicx@http@download} command, which will % receive two arguments that correspond to the URL of the online image and to % the pathname, where the online image should be downloaded. The command will % produce a shell command that tries to downloads the online image to the @@ -18261,7 +19585,7 @@ end % \begin{markdown} % % The image will be downloaded only if the image URL has the http or https -% protocols and the \m{markdownOptionFrozenCache} plain \TeX{} option is disabled: +% protocols and the \mref{markdownOptionFrozenCache} plain \TeX{} option is disabled: % % \end{markdown} % \begin{macrocode} @@ -18272,7 +19596,7 @@ end % \end{macrocode} % \begin{markdown} % -% The image will be downloaded to the pathname \m{markdownOptionCacheDir}`/`\meta{the MD5 digest of the image URL}`.`\meta{the suffix of the % image URL}: % @@ -18313,7 +19637,7 @@ end % % \end{markdown} % \begin{macrocode} - \CatchFileDef{\filename}{\filename}{}^^A + \CatchFileDef{\filename}{\filename}{\endlinechar=-1}^^A \markdown@witiko@graphicx@http@oldRendererImagePrototype^^A {#1}{#2}{\filename}{#4}^^A \endgroup @@ -18342,32 +19666,33 @@ end % \begin{markdown} % %### Token Renderer Prototypes +% \label{sec:latexdefaultrendererprototypes} % The following configuration should be considered placeholder. If the `plain` -% package option has been enabled (see Section \ref{sec:latexplain}), none of +% package option has been enabled (see Section \vref{sec:latexplain}), none of % it will take effect. % \end{markdown} % \begin{macrocode} \ifmarkdownLaTeXPlain\else % \end{macrocode} % \par -% \begin{markdown} -% -% If the \m{markdownOptionTightLists} macro expands to `false`, do not load +% \begin{markdown}% +% If the \mref{markdownOptionTightLists} macro expands to `false`, do not load % the \pkg{paralist} package. This is necessary for \Hologo{LaTeX2e} document % classes that do not play nice with \pkg{paralist}, such as \pkg{beamer}. -% If the \m{markdownOptionTightLists} is undefined and the \pkg{beamer} +% If the \mref{markdownOptionTightLists} is undefined and the \pkg{beamer} % document class is in use, then do not load the \pkg{paralist} package either. % % \end{markdown} % \begin{macrocode} \RequirePackage{ifthen} -\@ifundefined{markdownOptionTightLists}{% + +\ifx\markdownOptionTightLists\undefined \@ifclassloaded{beamer}{}{% \RequirePackage{paralist}}% -}{% +\else \ifthenelse{\equal{\markdownOptionTightLists}{false}}{}{% \RequirePackage{paralist}}% -}% +\fi % \end{macrocode} % \par % \begin{markdown} @@ -18395,6 +19720,8 @@ end olEndTight = {\markdownRendererOlEnd}, dlBeginTight = {\markdownRendererDlBegin}, dlEndTight = {\markdownRendererDlEnd}}}} +\RequirePackage{amsmath} +\RequirePackage{amssymb} \RequirePackage{csvsimple} \RequirePackage{fancyvrb} \RequirePackage{graphicx} @@ -18431,7 +19758,6 @@ end \label{fig:#1}% \end{figure}}, ulBegin = {\begin{itemize}}, - ulItem = {\item{}}, ulEnd = {\end{itemize}}, olBegin = {\begin{enumerate}}, olItem = {\item{}}, @@ -18441,6 +19767,9 @@ end dlItem = {\item[#1]}, dlEnd = {\end{description}}, emphasis = {\emph{#1}}, + tickedBox = {$\boxtimes$}, + halfTickedBox = {$\boxdot$}, + untickedBox = {$\square$}, blockQuoteBegin = {\begin{quotation}}, blockQuoteEnd = {\end{quotation}}, inputVerbatim = {\VerbatimInput{#1}}, @@ -18517,9 +19846,46 @@ end % \par % \begin{markdown} % -% There is a basic implementation for citations that uses the \LaTeX{} \m{cite} -% macro. There are also implementations that use the \pkg{natbib} \m{citep}, -% and \m{citet} macros, and the Bib\LaTeX{} \m{autocites} and \m{textcites} +%#### Tickboxes +% If the \Opt{taskLists} option is enabled, we will hide bullets in unordered +% list items with tickboxes. +% +% \end{markdown} +% \begin{macrocode} +\markdownSetup{ + rendererPrototypes = { + ulItem = {% + \futurelet\markdownLaTeXCheckbox\markdownLaTeXUlItem + }, + }, +} +\def\markdownLaTeXUlItem{% + \ifx\markdownLaTeXCheckbox\markdownRendererTickedBox + \item[\markdownLaTeXCheckbox]% + \expandafter\@gobble + \else + \ifx\markdownLaTeXCheckbox\markdownRendererHalfTickedBox + \item[\markdownLaTeXCheckbox]% + \expandafter\expandafter\expandafter\@gobble + \else + \ifx\markdownLaTeXCheckbox\markdownRendererUntickedBox + \item[\markdownLaTeXCheckbox]% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@gobble + \else + \item{}% + \fi + \fi + \fi +} +% \end{macrocode} +% \par +% \begin{markdown} +% +%#### Citations +% Here is a basic implementation for citations that uses the \LaTeX{} \mref{cite} +% macro. There are also implementations that use the \pkg{natbib} \mref{citep}, +% and \mref{citet} macros, and the Bib\LaTeX{} \mref{autocites} and \mref{textcites} % macros. These implementations will be used, when the respective packages are % loaded. % @@ -18748,6 +20114,7 @@ end % \par % \begin{markdown} % +%#### Links % Before consuming the parameters for the hyperlink renderer, we change the % category code of the hash sign (`#`) to other, so that it cannot be % mistaken for a parameter character. After the hyperlink has been typeset, @@ -18768,7 +20135,8 @@ end % \par % \begin{markdown} % -% There is a basic implementation of tables. If the \pkg{booktabs} package is +%#### Tables +% Here is a basic implementation of tables. If the \pkg{booktabs} package is % loaded, then it is used to produce horizontal lines. % % \end{markdown} @@ -18854,10 +20222,312 @@ end % \par % \begin{markdown} % +%#### YAML Metadata +% \label{sec:latexyamlmetadata} +% To parse the \acro{yaml} metadata we will use the expl3 language from the +% \LaTeX3 kernel. +% +% \end{markdown} +% \begin{macrocode} +\RequirePackage{expl3} +\ExplSyntaxOn +% \end{macrocode} +% \par +% \begin{markdown} +% +% To keep track of the current type of structure we inhabit when we are +% traversing a \acro{yaml} document, we will maintain the +% \mdef{g_\@\@_jekyll_data_datatypes_seq} stack. At every step of the traversal, +% the stack will contain one of the following constants at any position $p$: +% +% \mdef{c_\@\@_jekyll_data_sequence_tl} +% +%: The currently traversed branch of the \acro{yaml} document contains a sequence +% at depth $p$. +% +% \mdef{c_\@\@_jekyll_data_mapping_tl} +% +%: The currently traversed branch of the \acro{yaml} document contains a mapping +% at depth $p$. +% +% \mdef{c_\@\@_jekyll_data_scalar_tl} +% +%: The currently traversed branch of the \acro{yaml} document contains a scalar +% value at depth $p$. +% +% \end{markdown} +% \begin{macrocode} +\seq_new:N \g_@@_jekyll_data_datatypes_seq +\tl_const:Nn \c_@@_jekyll_data_sequence_tl { sequence } +\tl_const:Nn \c_@@_jekyll_data_mapping_tl { mapping } +\tl_const:Nn \c_@@_jekyll_data_scalar_tl { scalar } +% \end{macrocode} +% \par +% \begin{markdown} +% +% To keep track of our current place when we are traversing a \acro{yaml} +% document, we will maintain the +% \mdef{g_\@\@_jekyll_data_wildcard_absolute_address_seq} stack of keys using +% the \mdef{markdown_jekyll_data_push_address_segment:n} macro. +% +% \end{markdown} +% \begin{macrocode} +\seq_new:N \g_@@_jekyll_data_wildcard_absolute_address_seq +\cs_new:Nn \markdown_jekyll_data_push_address_segment:n + { + \seq_if_empty:NF + \g_@@_jekyll_data_datatypes_seq + { + \seq_get_right:NN + \g_@@_jekyll_data_datatypes_seq + \l_tmpa_tl +% \end{macrocode} +% \begin{markdown} +% +% If we are currently in a sequence, we will put an asterisk (`*`) instead of +% a key into \mref{g_\@\@_jekyll_data_wildcard_absolute_address_seq} to make +% it represent a *wildcard*. Keeping a wildcard instead of a precise address +% makes it easy for the users to react to *any* item of a sequence regardless +% of how many there are, which can often be useful. +% +% \end{markdown} +% \begin{macrocode} + \tl_if_eq:NNTF + \l_tmpa_tl + \c_@@_jekyll_data_sequence_tl + { + \seq_put_right:Nn + \g_@@_jekyll_data_wildcard_absolute_address_seq + { * } + } + { + \seq_put_right:Nn + \g_@@_jekyll_data_wildcard_absolute_address_seq + { #1 } + } + } + } +% \end{macrocode} +% \par +% \begin{markdown} +% +% Out of \mref{g_\@\@_jekyll_data_wildcard_absolute_address_seq}, we will +% construct the following two token lists: +% +% \mdef{g_\@\@_jekyll_data_wildcard_absolute_address_tl} +% +%: An *absolute wildcard*: The wildcard from the root of the document +% prefixed with a slash (`/`) with individual keys and asterisks also +% delimited by slashes. Allows the users to react to complex +% context-sensitive structures with ease. +% +%: For example, the `name` key in the following \acro{yaml} document +% would correspond to the `/*/person/name` absolute wildcard: +% ``` yaml +% [{person: {name: Elon, surname: Musk}}] +% ``` +% +% \mdef{g_\@\@_jekyll_data_wildcard_relative_address_tl} +% +%: A *relative wildcard*: The rightmost segment of the wildcard. Allows the +% users to react to simple context-free structures. +% +%: For example, the `name` key in the following \acro{yaml} document +% would correspond to the `name` relative wildcard: +% ``` yaml +% [{person: {name: Elon, surname: Musk}}] +% ``` +% +% We will construct \mref{g_\@\@_jekyll_data_wildcard_absolute_address_tl} +% using the \mdef{markdown_jekyll_data_concatenate_address:NN} macro and +% we will construct both token lists using the +% \mdef{markdown_jekyll_data_update_address_tls:} macro. +% +% \end{markdown} +% \begin{macrocode} +\tl_new:N \g_@@_jekyll_data_wildcard_absolute_address_tl +\tl_new:N \g_@@_jekyll_data_wildcard_relative_address_tl +\cs_new:Nn \markdown_jekyll_data_concatenate_address:NN + { + \seq_pop_left:NN #1 \l_tmpa_tl + \tl_set:Nx #2 { / \seq_use:Nn #1 { / } } + \seq_put_left:NV #1 \l_tmpa_tl + } +\cs_new:Nn \markdown_jekyll_data_update_address_tls: + { + \markdown_jekyll_data_concatenate_address:NN + \g_@@_jekyll_data_wildcard_absolute_address_seq + \g_@@_jekyll_data_wildcard_absolute_address_tl + \seq_get_right:NN + \g_@@_jekyll_data_wildcard_absolute_address_seq + \g_@@_jekyll_data_wildcard_relative_address_tl + } +% \end{macrocode} +% \par +% \begin{markdown} +% +% To make sure that the stacks and token lists stay in sync, we will use the +% \mdef{markdown_jekyll_data_push:nN} and \mdef{markdown_jekyll_data_pop:} +% macros. +% +% \end{markdown} +% \begin{macrocode} +\cs_new:Nn \markdown_jekyll_data_push:nN + { + \markdown_jekyll_data_push_address_segment:n + { #1 } + \seq_put_right:NV + \g_@@_jekyll_data_datatypes_seq + #2 + \markdown_jekyll_data_update_address_tls: + } +\cs_new:Nn \markdown_jekyll_data_pop: + { + \seq_pop_right:NN + \g_@@_jekyll_data_wildcard_absolute_address_seq + \l_tmpa_tl + \seq_pop_right:NN + \g_@@_jekyll_data_datatypes_seq + \l_tmpa_tl + \markdown_jekyll_data_update_address_tls: + } +% \end{macrocode} +% \par +% \begin{markdown} +% +% To interface with the user, we use `markdown/jekyllData` key--values from the +% l3keys module of the \LaTeX3 kernel. The default setup will invoke the +% \mref{title}, \mref{author}, and \mref{date} macros when scalar values for +% keys that correspond to the `title`, `author`, and `date` relative wildcards +% are encountered, respectively. +% +% \end{markdown} +% \begin{macrocode} +\keys_define:nn + { markdown/jekyllData } + { + author .code:n = { \author{#1} }, + date .code:n = { \date{#1} }, + title .code:n = { \title{#1} }, + } +% \end{macrocode} +% \begin{markdown} +% +% To set a single key--value, we will use the +% \mdef{markdown_jekyll_data_set_keyval:Nn} macro, ignoring unknown keys. +% To set key--values for both absolute and relative wildcards, we will use the +% \mdef{markdown_jekyll_data_set_keyvals:nn} macro. +% +% \end{markdown} +% \begin{macrocode} +\cs_new:Nn \markdown_jekyll_data_set_keyval:nn + { + \keys_set_known:nn + { markdown/jekyllData } + { { #1 } = { #2 } } + } +\cs_generate_variant:Nn + \markdown_jekyll_data_set_keyval:nn + { Vn } +\cs_new:Nn \markdown_jekyll_data_set_keyvals:nn + { + \markdown_jekyll_data_push:nN + { #1 } + \c_@@_jekyll_data_scalar_tl + \markdown_jekyll_data_set_keyval:Vn + \g_@@_jekyll_data_wildcard_absolute_address_tl + { #2 } + \markdown_jekyll_data_set_keyval:Vn + \g_@@_jekyll_data_wildcard_relative_address_tl + { #2 } + \markdown_jekyll_data_pop: + } +% \end{macrocode} +% \par +% \begin{markdown} +% +% Finally, we will register our macros as token renderer prototypes +% to be able to react to the traversal of a \acro{yaml} document. +% +% \end{markdown} +% \begin{macrocode} +\markdownSetup{ + rendererPrototypes = { + jekyllDataSequenceBegin = { + \markdown_jekyll_data_push:nN + { #1 } + \c_@@_jekyll_data_sequence_tl + }, + jekyllDataMappingBegin = { + \markdown_jekyll_data_push:nN + { #1 } + \c_@@_jekyll_data_mapping_tl + }, + jekyllDataSequenceEnd = { + \markdown_jekyll_data_pop: + }, + jekyllDataMappingEnd = { + \markdown_jekyll_data_pop: + }, + jekyllDataBoolean = { + \markdown_jekyll_data_set_keyvals:nn + { #1 } + { #2 } + }, + jekyllDataEmpty = { }, + jekyllDataNumber = { + \markdown_jekyll_data_set_keyvals:nn + { #1 } + { #2 } + }, + jekyllDataString = { + \markdown_jekyll_data_set_keyvals:nn + { #1 } + { #2 } + }, +% \end{macrocode} +% \begin{markdown} +% +% To complement the default setup of our key--values, we will use +% the \mref{maketitle} macro to typeset the title page of a document +% at the end of \acro{yaml} metadata. If we are in the preamble, we will wait +% macro until after the beginning of the document. Otherwise, we will use +% the \mref{maketitle} macro straight away. +% +% \end{markdown} +% \begin{macrocode} + }, +} +\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} +\markdownSetup{ + rendererPrototypes = { + jekyllDataEnd = { + \IfFormatAtLeastTF + { 2020-10-01 } + { \AddToHook{begindocument/end}{\maketitle} } + { + \ifx\@onlypreamble\@notprerr + % We are in the document + \maketitle + \else + % We are in the preamble + \RequirePackage{etoolbox} + \AfterEndPreamble{\maketitle} + \fi + } + }, + }, +} + +\ExplSyntaxOff +% \end{macrocode} +% \par +% \begin{markdown} +% %### Miscellanea % When buffering user input, we should disable the bytes with the high bit set, % since these are made active by the \pkg{inputenc} package. We will do this by -% redefining the \m{markdownMakeOther} macro accordingly. The code is courtesy +% redefining the \mref{markdownMakeOther} macro accordingly. The code is courtesy % of Scott Pakin, the creator of the \pkg{filecontents} package. % % \end{markdown} @@ -18887,8 +20557,8 @@ end % after supplying the missing plain \TeX{} macros. % % The \Hologo{ConTeXt} implementation redefines the plain \TeX{} logging macros -% (see Section \ref{sec:texinterfacelogging}) to use the \Hologo{ConTeXt} -% \m{writestatus} macro. +% (see Section \vref{sec:texinterfacelogging}) to use the \Hologo{ConTeXt} +% \mref{writestatus} macro. % % \end{markdown} % \begin{macrocode} @@ -18902,8 +20572,8 @@ end % \begin{markdown} % % When buffering user input, we should disable the bytes with the high bit set, -% since these are made active by the \m{enableregime} macro. We will do this -% by redefining the \m{markdownMakeOther} macro accordingly. The code is +% since these are made active by the \mref{enableregime} macro. We will do this +% by redefining the \mref{markdownMakeOther} macro accordingly. The code is % courtesy of Scott Pakin, the creator of the \pkg{filecontents} \LaTeX{} % package. % @@ -18930,8 +20600,8 @@ end % \begin{markdown} % %### Typesetting Markdown -% The \m{startmarkdown} and \m{stopmarkdown} macros are implemented using the -% \m{markdownReadAndConvert} macro. +% The \mref{startmarkdown} and \mref{stopmarkdown} macros are implemented using the +% \mref{markdownReadAndConvert} macro. % % \end{markdown} % \begin{macrocode} @@ -19041,7 +20711,7 @@ end % \begin{markdown} % % The code fence infostring is used as a name from the \Hologo{ConTeXt} -% \m{definetyping} macro. This allows the user to set up code highlighting +% \mref{definetyping} macro. This allows the user to set up code highlighting % mapping as follows: % ````` tex % % Map the `TEX` syntax highlighter to the `latex` infostring. @@ -19147,6 +20817,9 @@ end \ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax\else \expandafter\gobbleoneargument \fi\markdownConTeXtRenderTableCell} +\def\markdownRendererTickedBox{$\boxtimes$} +\def\markdownRendererHalfTickedBox{$\boxdot$} +\def\markdownRendererUntickedBox{$\square$} % \end{macrocode} % \iffalse % diff --git a/macros/generic/markdown/markdown.html b/macros/generic/markdown/markdown.html index b0ff35085b..920955423f 100644 --- a/macros/generic/markdown/markdown.html +++ b/macros/generic/markdown/markdown.html @@ -6,116 +6,119 @@ Markdown Package User Manual - - - -
+

Markdown Package User Manual

Vít Novotný

-

v2.10.1 (2021/08/31)

+

2.11.0-0-g4505824 (2021/09/26)

-