summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-03-01 03:01:11 +0000
committerNorbert Preining <norbert@preining.info>2022-03-01 03:01:11 +0000
commit3e9a44ea155766214d8657ed79db2206592b6e8e (patch)
tree8bac160137045a4244d7a7462bb2ee51adc70e9c
parent7a8d1925127ad121a8f591db931524f9b8eacb93 (diff)
CTAN sync 202203010301
-rw-r--r--FILES.byname655
-rw-r--r--FILES.byname.gzbin2432769 -> 2432869 bytes
-rw-r--r--FILES.last07days730
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-A-v1.0.1.tex134
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-A-v2.0.tex339
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-B-v2.0.tex (renamed from graphics/pgf/contrib/tzplot/tzplot-doc-B-v1.0.1.tex)196
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-C-v2.0.tex (renamed from graphics/pgf/contrib/tzplot/tzplot-doc-C-v1.0.1.tex)2247
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-C1-v2.0.tex1691
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-C2-v2.0.tex1533
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-D-v2.0.tex (renamed from graphics/pgf/contrib/tzplot/tzplot-doc-D-v1.0.1.tex)1373
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc-E-v2.0.tex476
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc.pdfbin827727 -> 1263240 bytes
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot-doc.tex292
-rw-r--r--graphics/pgf/contrib/tzplot/tzplot.sty4445
-rw-r--r--macros/generic/markdown/VERSION2
-rw-r--r--macros/generic/markdown/docstrip.cfg2
-rw-r--r--macros/generic/markdown/examples/context-mkii.tex2
-rw-r--r--macros/generic/markdown/examples/context-mkiv.tex2
-rw-r--r--macros/generic/markdown/examples/latex.tex21
-rw-r--r--macros/generic/markdown/markdown.dtx1281
-rw-r--r--macros/generic/markdown/markdown.html4723
-rw-r--r--macros/generic/markdown/markdown.pdfbin743629 -> 761101 bytes
-rw-r--r--macros/latex/contrib/caption/README2
-rw-r--r--macros/latex/contrib/caption/bicaption.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-ams-smf.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-beamer.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-elsarticle.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-koma.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-light.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-memoir.dtx13
-rw-r--r--macros/latex/contrib/caption/caption-ntg.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-thesis.dtx2
-rw-r--r--macros/latex/contrib/caption/caption.dtx65
-rw-r--r--macros/latex/contrib/caption/caption3.dtx72
-rw-r--r--macros/latex/contrib/caption/fallback/v3.0/caption.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.1/caption.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.2/caption.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.2/caption3.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.3/caption.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.3/caption3.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.4/caption.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.4/caption3.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.5/caption.dtx2
-rw-r--r--macros/latex/contrib/caption/fallback/v3.5/caption3.dtx2
-rw-r--r--macros/latex/contrib/caption/ltcaption.dtx2
-rw-r--r--macros/latex/contrib/caption/subcaption.dtx2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx6
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin578301 -> 578235 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex18
-rw-r--r--macros/latex/contrib/hvfloat/Changes2
-rw-r--r--macros/latex/contrib/hvfloat/doc/hvfloat.pdfbin5744565 -> 5029031 bytes
-rw-r--r--macros/latex/contrib/hvfloat/doc/hvfloat.tex8
-rw-r--r--macros/latex/contrib/hvlogos/Changes2
-rw-r--r--macros/latex/contrib/hvlogos/README2
-rw-r--r--macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdfbin85963 -> 86065 bytes
-rw-r--r--macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex1
-rw-r--r--macros/latex/contrib/hvlogos/latex/hvlogos.sty37
-rw-r--r--macros/latex/contrib/lectureslides/README.md10
-rw-r--r--macros/latex/contrib/lectureslides/lectureslides-doc.pdfbin46715 -> 48424 bytes
-rw-r--r--macros/latex/contrib/lectureslides/lectureslides-doc.tex51
-rw-r--r--macros/latex/contrib/lectureslides/lectureslides.sty50
-rw-r--r--systems/doc/luatex/luatex-nodes.tex4
-rw-r--r--systems/doc/luatex/luatex.pdfbin1784731 -> 1784850 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl5
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb516
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2355256 -> 2356012 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
72 files changed, 14938 insertions, 6146 deletions
diff --git a/FILES.byname b/FILES.byname
index c2325a5849..aa40578dd5 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5212,7 +5212,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2022/02/27 | 248600 | FILES.last07days
+2022/02/28 | 249056 | 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
@@ -156675,16 +156675,19 @@
2021/07/25 | 12606 | graphics/pgf/contrib/tonevalue/tonevalue.tex
2021/07/25 | 156812 | graphics/pgf/contrib/tonevalue.zip
2021/03/01 | 945 | graphics/pgf/contrib/tzplot/README.txt
-2021/03/19 | 4916 | graphics/pgf/contrib/tzplot/tzplot-doc-A-v1.0.1.tex
-2021/03/20 | 59624 | graphics/pgf/contrib/tzplot/tzplot-doc-B-v1.0.1.tex
-2021/03/20 | 123599 | graphics/pgf/contrib/tzplot/tzplot-doc-C-v1.0.1.tex
-2021/03/20 | 54201 | graphics/pgf/contrib/tzplot/tzplot-doc-D-v1.0.1.tex
-2021/03/20 | 827727 | graphics/pgf/contrib/tzplot/tzplot-doc.pdf
-2021/03/20 | 12222 | graphics/pgf/contrib/tzplot/tzplot-doc.tex
+2022/02/28 | 13813 | graphics/pgf/contrib/tzplot/tzplot-doc-A-v2.0.tex
+2022/02/28 | 61711 | graphics/pgf/contrib/tzplot/tzplot-doc-B-v2.0.tex
+2022/02/28 | 51089 | graphics/pgf/contrib/tzplot/tzplot-doc-C1-v2.0.tex
+2022/02/28 | 44134 | graphics/pgf/contrib/tzplot/tzplot-doc-C2-v2.0.tex
+2022/02/28 | 91974 | graphics/pgf/contrib/tzplot/tzplot-doc-C-v2.0.tex
+2022/02/28 | 86025 | graphics/pgf/contrib/tzplot/tzplot-doc-D-v2.0.tex
+2022/02/28 | 14209 | graphics/pgf/contrib/tzplot/tzplot-doc-E-v2.0.tex
+2022/02/28 | 1263240 | graphics/pgf/contrib/tzplot/tzplot-doc.pdf
+2022/02/28 | 21383 | graphics/pgf/contrib/tzplot/tzplot-doc.tex
2017/09/25 | 635 | graphics/pgf/contrib/tzplot/tzplot.ist
2021/02/28 | 948 | graphics/pgf/contrib/tzplot/tzplot-oblivoirpartstyle.tex
-2021/03/20 | 111422 | graphics/pgf/contrib/tzplot/tzplot.sty
-2021/03/20 | 883139 | graphics/pgf/contrib/tzplot.zip
+2022/02/28 | 217944 | graphics/pgf/contrib/tzplot/tzplot.sty
+2022/02/28 | 1352871 | graphics/pgf/contrib/tzplot.zip
2020/10/16 | 689 | graphics/pgf/contrib/utfsym/doc/symbole.tex
2020/10/22 | 3582044 | graphics/pgf/contrib/utfsym/doc/utfsym.pdf
2020/10/22 | 4305 | graphics/pgf/contrib/utfsym/doc/utfsym.tex
@@ -185625,7 +185628,7 @@
2021/09/21 | 514924 | install/macros/generic/expkv.tds.zip
2022/02/04 | 232668 | install/macros/generic/iftex.tds.zip
2012/09/20 | 321508 | install/macros/generic/langcode.tds.zip
-2022/01/30 | 1096758 | install/macros/generic/markdown.tds.zip
+2022/02/28 | 1120328 | 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
@@ -185681,7 +185684,7 @@
2021/08/18 | 801818 | install/macros/latex/contrib/bytefield.tds.zip
2009/10/01 | 166291 | install/macros/latex/contrib/cachepic.tds.zip
2014/02/24 | 625238 | install/macros/latex/contrib/calculator.tds.zip
-2022/02/20 | 1680829 | install/macros/latex/contrib/caption.tds.zip
+2022/02/28 | 1680852 | install/macros/latex/contrib/caption.tds.zip
2019/12/10 | 304516 | install/macros/latex/contrib/catchfile.tds.zip
2011/08/07 | 511024 | install/macros/latex/contrib/ccaption.tds.zip
2009/10/20 | 291969 | install/macros/latex/contrib/changepage.tds.zip
@@ -200041,22 +200044,22 @@
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
-2022/01/30 | 4485 | macros/generic/markdown/docstrip.cfg
-2022/01/30 | 1449 | macros/generic/markdown/examples/context-mkii.tex
-2022/01/30 | 1640 | macros/generic/markdown/examples/context-mkiv.tex
-2022/01/30 | 3129 | macros/generic/markdown/examples/example.md
-2022/01/30 | 1205 | macros/generic/markdown/examples/latex.tex
-2022/01/30 | 75 | macros/generic/markdown/examples/scientists.csv
-2022/01/30 | 22371 | macros/generic/markdown/libraries/markdown-tinyyaml.lua
-2022/01/30 | 4530 | macros/generic/markdown/markdown.css
-2022/01/30 | 586131 | macros/generic/markdown/markdown.dtx
-2022/01/30 | 646225 | macros/generic/markdown/markdown.html
-2022/01/30 | 1333 | macros/generic/markdown/markdown.ins
-2022/01/30 | 743629 | macros/generic/markdown/markdown.pdf
-2022/01/30 | 140951 | macros/generic/markdown/markdown.png
-2022/01/30 | 16226 | macros/generic/markdown/README.md
-2022/01/30 | 31 | macros/generic/markdown/VERSION
-2022/01/30 | 1038473 | macros/generic/markdown.zip
+2022/02/28 | 4485 | macros/generic/markdown/docstrip.cfg
+2022/02/28 | 1491 | macros/generic/markdown/examples/context-mkii.tex
+2022/02/28 | 1682 | macros/generic/markdown/examples/context-mkiv.tex
+2022/02/28 | 3129 | macros/generic/markdown/examples/example.md
+2022/02/28 | 1639 | macros/generic/markdown/examples/latex.tex
+2022/02/28 | 75 | macros/generic/markdown/examples/scientists.csv
+2022/02/28 | 22371 | macros/generic/markdown/libraries/markdown-tinyyaml.lua
+2022/02/28 | 4530 | macros/generic/markdown/markdown.css
+2022/02/28 | 605587 | macros/generic/markdown/markdown.dtx
+2022/02/28 | 666305 | macros/generic/markdown/markdown.html
+2022/02/28 | 1333 | macros/generic/markdown/markdown.ins
+2022/02/28 | 761101 | macros/generic/markdown/markdown.pdf
+2022/02/28 | 140951 | macros/generic/markdown/markdown.png
+2022/02/28 | 16226 | macros/generic/markdown/README.md
+2022/02/28 | 31 | macros/generic/markdown/VERSION
+2022/02/28 | 1060738 | 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
@@ -207264,46 +207267,46 @@
2010/03/06 | 3264 | macros/latex/contrib/captdef/captdef.tex
2010/03/06 | 3423 | macros/latex/contrib/captdef/miscdoc.sty
2010/03/06 | 216809 | macros/latex/contrib/captdef.zip
-2022/02/20 | 66477 | macros/latex/contrib/caption/bicaption.dtx
-2022/02/20 | 149792 | macros/latex/contrib/caption/bicaption.pdf
-2022/02/20 | 50904 | macros/latex/contrib/caption/caption2.dtx
-2022/02/20 | 77411 | macros/latex/contrib/caption/caption2.pdf
-2022/02/20 | 190026 | macros/latex/contrib/caption/caption3.dtx
-2022/02/20 | 9302 | macros/latex/contrib/caption/caption-ams-smf.dtx
-2022/02/20 | 14993 | macros/latex/contrib/caption/caption-beamer.dtx
-2022/02/20 | 337424 | macros/latex/contrib/caption/caption.dtx
-2022/02/20 | 7614 | macros/latex/contrib/caption/caption-elsarticle.dtx
-2022/02/20 | 3922 | macros/latex/contrib/caption/caption.ins
-2022/02/20 | 19457 | macros/latex/contrib/caption/caption-koma.dtx
-2022/02/20 | 13417 | macros/latex/contrib/caption/caption-light.dtx
-2022/02/20 | 67305 | macros/latex/contrib/caption/caption-light.pdf
-2022/02/20 | 12559 | macros/latex/contrib/caption/caption-memoir.dtx
-2022/02/20 | 7724 | macros/latex/contrib/caption/caption-ntg.dtx
-2022/02/20 | 427518 | macros/latex/contrib/caption/caption.pdf
-2022/02/20 | 7890 | macros/latex/contrib/caption/caption-thesis.dtx
-2022/02/20 | 15737 | macros/latex/contrib/caption/cat.eps
-2022/02/20 | 9033 | macros/latex/contrib/caption/CHANGELOG
-2022/02/20 | 21191 | macros/latex/contrib/caption/elephant.eps
-2022/02/20 | 19008 | macros/latex/contrib/caption/fallback/v1/caption.dtx
-2022/02/20 | 21420 | macros/latex/contrib/caption/fallback/v2.0/caption2.dtx
-2022/02/20 | 46949 | macros/latex/contrib/caption/fallback/v2.1/caption2.dtx
-2022/02/20 | 182084 | macros/latex/contrib/caption/fallback/v3.0/caption.dtx
-2022/02/20 | 291007 | macros/latex/contrib/caption/fallback/v3.1/caption.dtx
-2022/02/20 | 135023 | macros/latex/contrib/caption/fallback/v3.2/caption3.dtx
-2022/02/20 | 164933 | macros/latex/contrib/caption/fallback/v3.2/caption.dtx
-2022/02/20 | 153316 | macros/latex/contrib/caption/fallback/v3.3/caption3.dtx
-2022/02/20 | 181048 | macros/latex/contrib/caption/fallback/v3.3/caption.dtx
-2022/02/20 | 157253 | macros/latex/contrib/caption/fallback/v3.4/caption3.dtx
-2022/02/20 | 169192 | macros/latex/contrib/caption/fallback/v3.4/caption.dtx
-2022/02/20 | 178837 | macros/latex/contrib/caption/fallback/v3.5/caption3.dtx
-2022/02/20 | 161734 | macros/latex/contrib/caption/fallback/v3.5/caption.dtx
-2022/02/20 | 30017 | macros/latex/contrib/caption/ltcaption.dtx
-2022/02/20 | 89996 | macros/latex/contrib/caption/ltcaption.pdf
-2022/02/20 | 3067 | macros/latex/contrib/caption/README
-2022/02/20 | 93723 | macros/latex/contrib/caption/subcaption.dtx
-2022/02/20 | 221744 | macros/latex/contrib/caption/subcaption.pdf
-2022/02/20 | 112 | macros/latex/contrib/caption/SUMMARY
-2022/02/20 | 1478106 | macros/latex/contrib/caption.zip
+2022/02/28 | 66490 | macros/latex/contrib/caption/bicaption.dtx
+2022/02/28 | 149792 | macros/latex/contrib/caption/bicaption.pdf
+2022/02/28 | 50904 | macros/latex/contrib/caption/caption2.dtx
+2022/02/28 | 77411 | macros/latex/contrib/caption/caption2.pdf
+2022/02/28 | 192575 | macros/latex/contrib/caption/caption3.dtx
+2022/02/28 | 9303 | macros/latex/contrib/caption/caption-ams-smf.dtx
+2022/02/28 | 14994 | macros/latex/contrib/caption/caption-beamer.dtx
+2022/02/28 | 334915 | macros/latex/contrib/caption/caption.dtx
+2022/02/28 | 7615 | macros/latex/contrib/caption/caption-elsarticle.dtx
+2022/02/28 | 3922 | macros/latex/contrib/caption/caption.ins
+2022/02/28 | 19458 | macros/latex/contrib/caption/caption-koma.dtx
+2022/02/28 | 13430 | macros/latex/contrib/caption/caption-light.dtx
+2022/02/28 | 67305 | macros/latex/contrib/caption/caption-light.pdf
+2022/02/28 | 12620 | macros/latex/contrib/caption/caption-memoir.dtx
+2022/02/28 | 7725 | macros/latex/contrib/caption/caption-ntg.dtx
+2022/02/28 | 427518 | macros/latex/contrib/caption/caption.pdf
+2022/02/28 | 7891 | macros/latex/contrib/caption/caption-thesis.dtx
+2022/02/28 | 15737 | macros/latex/contrib/caption/cat.eps
+2022/02/28 | 9033 | macros/latex/contrib/caption/CHANGELOG
+2022/02/28 | 21191 | macros/latex/contrib/caption/elephant.eps
+2022/02/28 | 19008 | macros/latex/contrib/caption/fallback/v1/caption.dtx
+2022/02/28 | 21420 | macros/latex/contrib/caption/fallback/v2.0/caption2.dtx
+2022/02/28 | 46949 | macros/latex/contrib/caption/fallback/v2.1/caption2.dtx
+2022/02/28 | 182082 | macros/latex/contrib/caption/fallback/v3.0/caption.dtx
+2022/02/28 | 291008 | macros/latex/contrib/caption/fallback/v3.1/caption.dtx
+2022/02/28 | 135024 | macros/latex/contrib/caption/fallback/v3.2/caption3.dtx
+2022/02/28 | 164934 | macros/latex/contrib/caption/fallback/v3.2/caption.dtx
+2022/02/28 | 153317 | macros/latex/contrib/caption/fallback/v3.3/caption3.dtx
+2022/02/28 | 181049 | macros/latex/contrib/caption/fallback/v3.3/caption.dtx
+2022/02/28 | 157254 | macros/latex/contrib/caption/fallback/v3.4/caption3.dtx
+2022/02/28 | 169193 | macros/latex/contrib/caption/fallback/v3.4/caption.dtx
+2022/02/28 | 178838 | macros/latex/contrib/caption/fallback/v3.5/caption3.dtx
+2022/02/28 | 161735 | macros/latex/contrib/caption/fallback/v3.5/caption.dtx
+2022/02/28 | 30030 | macros/latex/contrib/caption/ltcaption.dtx
+2022/02/28 | 89996 | macros/latex/contrib/caption/ltcaption.pdf
+2022/02/28 | 3067 | macros/latex/contrib/caption/README
+2022/02/28 | 93736 | macros/latex/contrib/caption/subcaption.dtx
+2022/02/28 | 221744 | macros/latex/contrib/caption/subcaption.pdf
+2022/02/28 | 112 | macros/latex/contrib/caption/SUMMARY
+2022/02/28 | 1478102 | macros/latex/contrib/caption.zip
2010/01/22 | 5956 | macros/latex/contrib/capt-of/capt-of.dtx
2010/01/22 | 1434 | macros/latex/contrib/capt-of/capt-of.ins
2010/01/22 | 85950 | macros/latex/contrib/capt-of/capt-of.pdf
@@ -210468,12 +210471,12 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2022/02/25 | 73774 | macros/latex/contrib/easybook/easybook.dtx
+2022/02/28 | 73774 | macros/latex/contrib/easybook/easybook.dtx
2022/01/02 | 2085 | macros/latex/contrib/easybook/easybook.ins
-2022/02/25 | 578301 | macros/latex/contrib/easybook/easybook.pdf
-2022/02/25 | 80914 | macros/latex/contrib/easybook/easybook.tex
+2022/02/28 | 578235 | macros/latex/contrib/easybook/easybook.pdf
+2022/02/28 | 80734 | macros/latex/contrib/easybook/easybook.tex
2022/02/11 | 787 | macros/latex/contrib/easybook/README.md
-2022/02/25 | 618940 | macros/latex/contrib/easybook.zip
+2022/02/28 | 618818 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -215256,7 +215259,7 @@
2021/06/01 | 2164 | macros/latex/contrib/hvarabic/latex/hvarabic.sty
2020/06/08 | 548 | macros/latex/contrib/hvarabic/README.md
2021/06/01 | 153159 | macros/latex/contrib/hvarabic.zip
-2022/02/22 | 3718 | macros/latex/contrib/hvfloat/Changes
+2022/02/28 | 3847 | macros/latex/contrib/hvfloat/Changes
2021/06/26 | 80294 | macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf
2021/05/17 | 2374 | macros/latex/contrib/hvfloat/doc/examples/after1s1c.tex
2021/06/26 | 86722 | macros/latex/contrib/hvfloat/doc/examples/after2s2c.pdf
@@ -215371,8 +215374,8 @@
2021/05/31 | 4184 | macros/latex/contrib/hvfloat/doc/examples/wide1s2c.tex
2021/06/26 | 121917 | macros/latex/contrib/hvfloat/doc/examples/wide2s2c.pdf
2021/05/31 | 3964 | macros/latex/contrib/hvfloat/doc/examples/wide2s2c.tex
-2022/02/22 | 5744565 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf
-2021/11/24 | 119853 | macros/latex/contrib/hvfloat/doc/hvfloat.tex
+2022/02/28 | 5029031 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf
+2022/02/28 | 119821 | macros/latex/contrib/hvfloat/doc/hvfloat.tex
2019/04/01 | 69089 | macros/latex/contrib/hvfloat/doc/images/CTAN.png
2021/03/12 | 1362739 | macros/latex/contrib/hvfloat/doc/images/felsen-wasser-small.pdf
2019/04/01 | 5208 | macros/latex/contrib/hvfloat/doc/images/frose.png
@@ -215382,19 +215385,19 @@
2021/06/20 | 918 | macros/latex/contrib/hvfloat/latex/hvfloat-fps.sty
2022/02/22 | 67638 | macros/latex/contrib/hvfloat/latex/hvfloat.sty
2020/06/07 | 563 | macros/latex/contrib/hvfloat/README
-2022/02/22 | 15079420 | macros/latex/contrib/hvfloat.zip
+2022/02/28 | 14332431 | macros/latex/contrib/hvfloat.zip
2017/12/12 | 533 | macros/latex/contrib/hvindex/Changes
2017/12/12 | 74896 | macros/latex/contrib/hvindex/doc/hvindex-doc.pdf
2017/12/12 | 7652 | macros/latex/contrib/hvindex/doc/hvindex-doc.tex
2017/12/12 | 3708 | macros/latex/contrib/hvindex/latex/hvindex.sty
2017/12/12 | 724 | macros/latex/contrib/hvindex/README
2017/12/12 | 77756 | macros/latex/contrib/hvindex.zip
-2022/01/08 | 432 | macros/latex/contrib/hvlogos/Changes
-2022/01/08 | 85963 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
-2022/01/08 | 5255 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
-2022/01/08 | 5998 | macros/latex/contrib/hvlogos/latex/hvlogos.sty
-2021/07/30 | 244 | macros/latex/contrib/hvlogos/README
-2022/01/08 | 88185 | macros/latex/contrib/hvlogos.zip
+2022/02/28 | 511 | macros/latex/contrib/hvlogos/Changes
+2022/02/28 | 86065 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
+2022/01/11 | 5289 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
+2022/02/28 | 6705 | macros/latex/contrib/hvlogos/latex/hvlogos.sty
+2022/02/28 | 244 | macros/latex/contrib/hvlogos/README
+2022/02/28 | 88462 | macros/latex/contrib/hvlogos.zip
2021/05/18 | 223 | macros/latex/contrib/hvqrurl/Changes
2021/05/18 | 105059 | macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf
2021/05/18 | 6429 | macros/latex/contrib/hvqrurl/doc/hvqrurl.tex
@@ -217469,11 +217472,11 @@
2020/11/07 | 352150 | macros/latex/contrib/leaflet.zip
2020/02/02 | 21505 | macros/latex/contrib/lectures/lectures.cls
2020/02/02 | 1073 | macros/latex/contrib/lectures/LICENSE
-2021/03/15 | 46715 | macros/latex/contrib/lectureslides/lectureslides-doc.pdf
-2021/03/15 | 4596 | macros/latex/contrib/lectureslides/lectureslides-doc.tex
-2021/03/15 | 2239 | macros/latex/contrib/lectureslides/lectureslides.sty
-2021/03/15 | 666 | macros/latex/contrib/lectureslides/README.md
-2021/03/15 | 48750 | macros/latex/contrib/lectureslides.zip
+2022/02/28 | 48424 | macros/latex/contrib/lectureslides/lectureslides-doc.pdf
+2022/02/28 | 4426 | macros/latex/contrib/lectureslides/lectureslides-doc.tex
+2022/02/28 | 2092 | macros/latex/contrib/lectureslides/lectureslides.sty
+2022/02/28 | 779 | macros/latex/contrib/lectureslides/README.md
+2022/02/28 | 49787 | macros/latex/contrib/lectureslides.zip
2020/02/02 | 2453 | macros/latex/contrib/lectures/README.md
2020/02/02 | 8846 | macros/latex/contrib/lectures.zip
2016/08/06 | 75633 | macros/latex/contrib/ledmac/djd17novL.eps
@@ -280182,14 +280185,14 @@
2019/02/28 | 340 | systems/texlive/tlnet/archive/arara.amd64-freebsd.r29036.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/arara.amd64-netbsd.r30191.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/arara.armhf-linux.r30015.tar.xz
-2021/12/22 | 2055584 | systems/texlive/tlnet/archive/arara.doc.r61370.tar.xz
+2022/02/28 | 2057000 | systems/texlive/tlnet/archive/arara.doc.r62257.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/arara.i386-cygwin.r29036.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/arara.i386-freebsd.r29036.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/arara.i386-linux.r29036.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/arara.i386-netbsd.r30191.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/arara.i386-solaris.r29036.tar.xz
-2021/12/22 | 10603980 | systems/texlive/tlnet/archive/arara.r61370.tar.xz
-2021/12/22 | 100240 | systems/texlive/tlnet/archive/arara.source.r61370.tar.xz
+2022/02/28 | 10626840 | systems/texlive/tlnet/archive/arara.r62257.tar.xz
+2022/02/28 | 100248 | systems/texlive/tlnet/archive/arara.source.r62257.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/arara.universal-darwin.r57908.tar.xz
2019/02/28 | 680 | systems/texlive/tlnet/archive/arara.win32.r29181.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/arara.x86_64-cygwin.r33557.tar.xz
@@ -281223,8 +281226,8 @@
2020/11/10 | 469024 | systems/texlive/tlnet/archive/bookmark.doc.r56885.tar.xz
2020/11/10 | 8272 | systems/texlive/tlnet/archive/bookmark.r56885.tar.xz
2020/11/10 | 19148 | systems/texlive/tlnet/archive/bookmark.source.r56885.tar.xz
-2021/06/29 | 97136 | systems/texlive/tlnet/archive/book-of-common-prayer.doc.r59742.tar.xz
-2021/06/29 | 2528 | systems/texlive/tlnet/archive/book-of-common-prayer.r59742.tar.xz
+2022/02/28 | 129528 | systems/texlive/tlnet/archive/book-of-common-prayer.doc.r62241.tar.xz
+2022/02/28 | 2776 | systems/texlive/tlnet/archive/book-of-common-prayer.r62241.tar.xz
2020/06/08 | 985580 | systems/texlive/tlnet/archive/bookshelf.doc.r55475.tar.xz
2020/06/08 | 4100 | systems/texlive/tlnet/archive/bookshelf.r55475.tar.xz
2020/06/08 | 29204 | systems/texlive/tlnet/archive/bookshelf.source.r55475.tar.xz
@@ -282014,7 +282017,7 @@
2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz
2020/03/04 | 392 | systems/texlive/tlnet/archive/collection-langportuguese.r54074.tar.xz
2020/03/07 | 380 | systems/texlive/tlnet/archive/collection-langspanish.r54141.tar.xz
-2022/02/24 | 6576 | systems/texlive/tlnet/archive/collection-latexextra.r62155.tar.xz
+2022/02/28 | 6596 | systems/texlive/tlnet/archive/collection-latexextra.r62245.tar.xz
2020/12/03 | 696 | systems/texlive/tlnet/archive/collection-latex.r57048.tar.xz
2021/02/24 | 772 | systems/texlive/tlnet/archive/collection-latexrecommended.r57862.tar.xz
2022/02/21 | 792 | systems/texlive/tlnet/archive/collection-luatex.r62106.tar.xz
@@ -282027,7 +282030,7 @@
2022/01/25 | 1608 | systems/texlive/tlnet/archive/collection-publishers.r61731.tar.xz
2020/03/04 | 340 | systems/texlive/tlnet/archive/collection-texworks.r54074.tar.xz
2020/03/04 | 388 | systems/texlive/tlnet/archive/collection-wintools.r54074.tar.xz
-2022/02/06 | 664 | systems/texlive/tlnet/archive/collection-xetex.r61886.tar.xz
+2022/02/28 | 652 | systems/texlive/tlnet/archive/collection-xetex.r62241.tar.xz
2019/02/28 | 272712 | systems/texlive/tlnet/archive/collref.doc.r46358.tar.xz
2019/02/28 | 1696 | systems/texlive/tlnet/archive/collref.r46358.tar.xz
2019/02/28 | 7172 | systems/texlive/tlnet/archive/collref.source.r46358.tar.xz
@@ -282319,8 +282322,10 @@
2020/06/24 | 31152 | systems/texlive/tlnet/archive/cquthesis.source.r55643.tar.xz
2019/02/28 | 29448 | systems/texlive/tlnet/archive/crbox.doc.r29803.tar.xz
2019/02/28 | 1544 | systems/texlive/tlnet/archive/crbox.r29803.tar.xz
-2022/02/21 | 120692 | systems/texlive/tlnet/archive/crefthe.doc.r62103.tar.xz
-2022/02/21 | 2676 | systems/texlive/tlnet/archive/crefthe.r62103.tar.xz
+2022/02/28 | 121396 | systems/texlive/tlnet/archive/create-theorem.doc.r62245.tar.xz
+2022/02/28 | 7256 | systems/texlive/tlnet/archive/create-theorem.r62245.tar.xz
+2022/02/28 | 124236 | systems/texlive/tlnet/archive/crefthe.doc.r62247.tar.xz
+2022/02/28 | 2912 | systems/texlive/tlnet/archive/crefthe.r62247.tar.xz
2020/03/24 | 34244 | systems/texlive/tlnet/archive/crimson.doc.r54512.tar.xz
2020/03/24 | 85172 | systems/texlive/tlnet/archive/crimsonpro.doc.r54512.tar.xz
2020/03/24 | 2563452 | systems/texlive/tlnet/archive/crimsonpro.r54512.tar.xz
@@ -284236,8 +284241,8 @@
2019/09/15 | 1812 | systems/texlive/tlnet/archive/fncylab.r52090.tar.xz
2019/02/28 | 175136 | systems/texlive/tlnet/archive/fnpara.doc.r25607.tar.xz
2019/02/28 | 3076 | systems/texlive/tlnet/archive/fnpara.r25607.tar.xz
-2022/02/04 | 516468 | systems/texlive/tlnet/archive/fnpct.doc.r61866.tar.xz
-2022/02/04 | 9700 | systems/texlive/tlnet/archive/fnpct.r61866.tar.xz
+2022/02/28 | 501724 | systems/texlive/tlnet/archive/fnpct.doc.r62249.tar.xz
+2022/02/28 | 14728 | systems/texlive/tlnet/archive/fnpct.r62249.tar.xz
2019/02/28 | 170056 | systems/texlive/tlnet/archive/fnspe.doc.r45360.tar.xz
2019/02/28 | 2492 | systems/texlive/tlnet/archive/fnspe.r45360.tar.xz
2019/02/28 | 209564 | systems/texlive/tlnet/archive/fntproof.doc.r20638.tar.xz
@@ -286777,14 +286782,14 @@
2019/02/28 | 352 | systems/texlive/tlnet/archive/luaotfload.amd64-freebsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.amd64-netbsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.armhf-linux.r34647.tar.xz
-2022/02/27 | 624896 | systems/texlive/tlnet/archive/luaotfload.doc.r62198.tar.xz
+2022/02/28 | 623992 | systems/texlive/tlnet/archive/luaotfload.doc.r62239.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/luaotfload.i386-cygwin.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-freebsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-linux.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-netbsd.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.i386-solaris.r34647.tar.xz
-2022/02/27 | 611384 | systems/texlive/tlnet/archive/luaotfload.r62198.tar.xz
-2022/02/27 | 7292 | systems/texlive/tlnet/archive/luaotfload.source.r62198.tar.xz
+2022/02/28 | 611056 | systems/texlive/tlnet/archive/luaotfload.r62239.tar.xz
+2022/02/28 | 7276 | systems/texlive/tlnet/archive/luaotfload.source.r62239.tar.xz
2021/02/25 | 348 | systems/texlive/tlnet/archive/luaotfload.universal-darwin.r57908.tar.xz
2019/02/28 | 692 | systems/texlive/tlnet/archive/luaotfload.win32.r34647.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/luaotfload.x86_64-cygwin.r34647.tar.xz
@@ -286860,8 +286865,8 @@
2022/02/23 | 12064 | systems/texlive/tlnet/archive/lua-widow-control.source.r62144.tar.xz
2021/10/08 | 123428 | systems/texlive/tlnet/archive/luaxml.doc.r60709.tar.xz
2021/10/08 | 32276 | systems/texlive/tlnet/archive/luaxml.r60709.tar.xz
-2021/11/09 | 55628 | systems/texlive/tlnet/archive/lutabulartools.doc.r61003.tar.xz
-2021/11/09 | 5848 | systems/texlive/tlnet/archive/lutabulartools.r61003.tar.xz
+2022/02/28 | 77912 | systems/texlive/tlnet/archive/lutabulartools.doc.r62253.tar.xz
+2022/02/28 | 5720 | systems/texlive/tlnet/archive/lutabulartools.r62253.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/lwarp.aarch64-linux.r46208.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/lwarp.amd64-freebsd.r43292.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/lwarp.amd64-netbsd.r43292.tar.xz
@@ -287147,8 +287152,8 @@
2019/02/28 | 1092 | systems/texlive/tlnet/archive/mceinleger.r15878.tar.xz
2021/09/13 | 232948 | systems/texlive/tlnet/archive/mcexam.doc.r60481.tar.xz
2021/09/13 | 11396 | systems/texlive/tlnet/archive/mcexam.r60481.tar.xz
-2022/02/21 | 962744 | systems/texlive/tlnet/archive/mcf2graph.doc.r62101.tar.xz
-2022/02/21 | 448 | systems/texlive/tlnet/archive/mcf2graph.r62101.tar.xz
+2022/02/28 | 958568 | systems/texlive/tlnet/archive/mcf2graph.doc.r62243.tar.xz
+2022/02/28 | 444 | systems/texlive/tlnet/archive/mcf2graph.r62243.tar.xz
2019/02/28 | 138716 | systems/texlive/tlnet/archive/mcite.doc.r18173.tar.xz
2019/02/28 | 391980 | systems/texlive/tlnet/archive/mciteplus.doc.r31648.tar.xz
2019/02/28 | 34344 | systems/texlive/tlnet/archive/mciteplus.r31648.tar.xz
@@ -288652,8 +288657,8 @@
2019/02/28 | 352 | systems/texlive/tlnet/archive/pedigree-perl.x86_64-linuxmusl.r46840.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/pedigree-perl.x86_64-linux.r25962.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/pedigree-perl.x86_64-solaris.r25962.tar.xz
-2021/12/17 | 26724 | systems/texlive/tlnet/archive/penlight.doc.r61326.tar.xz
-2021/12/17 | 99720 | systems/texlive/tlnet/archive/penlight.r61326.tar.xz
+2022/02/28 | 34912 | systems/texlive/tlnet/archive/penlight.doc.r62255.tar.xz
+2022/02/28 | 105380 | systems/texlive/tlnet/archive/penlight.r62255.tar.xz
2021/01/24 | 966168 | systems/texlive/tlnet/archive/penrose.doc.r57508.tar.xz
2021/01/24 | 7448 | systems/texlive/tlnet/archive/penrose.r57508.tar.xz
2021/01/24 | 13256 | systems/texlive/tlnet/archive/penrose.source.r57508.tar.xz
@@ -289109,17 +289114,17 @@
2019/02/28 | 15512 | systems/texlive/tlnet/archive/productbox.source.r20886.tar.xz
2022/02/18 | 10097128 | systems/texlive/tlnet/archive/profcollege.doc.r62060.tar.xz
2022/02/18 | 114136 | systems/texlive/tlnet/archive/profcollege.r62060.tar.xz
-2022/02/24 | 411928 | systems/texlive/tlnet/archive/proflycee.doc.r62157.tar.xz
-2022/02/24 | 6312 | systems/texlive/tlnet/archive/proflycee.r62157.tar.xz
+2022/02/28 | 475196 | systems/texlive/tlnet/archive/proflycee.doc.r62260.tar.xz
+2022/02/28 | 6472 | systems/texlive/tlnet/archive/proflycee.r62260.tar.xz
2019/02/28 | 49880 | systems/texlive/tlnet/archive/program.doc.r44214.tar.xz
2019/02/28 | 11780 | systems/texlive/tlnet/archive/program.r44214.tar.xz
2019/02/28 | 86236 | systems/texlive/tlnet/archive/progressbar.doc.r33822.tar.xz
2019/02/28 | 2324 | systems/texlive/tlnet/archive/progressbar.r33822.tar.xz
2019/02/28 | 80808 | systems/texlive/tlnet/archive/progress.doc.r19519.tar.xz
2019/02/28 | 4192 | systems/texlive/tlnet/archive/progress.r19519.tar.xz
-2021/12/18 | 679576 | systems/texlive/tlnet/archive/projlib.doc.r61338.tar.xz
-2021/12/18 | 16540 | systems/texlive/tlnet/archive/projlib.r61338.tar.xz
-2021/12/18 | 41248 | systems/texlive/tlnet/archive/projlib.source.r61338.tar.xz
+2022/02/28 | 692336 | systems/texlive/tlnet/archive/projlib.doc.r62251.tar.xz
+2022/02/28 | 16540 | systems/texlive/tlnet/archive/projlib.r62251.tar.xz
+2022/02/28 | 41260 | systems/texlive/tlnet/archive/projlib.source.r62251.tar.xz
2022/02/08 | 446708 | systems/texlive/tlnet/archive/proof-at-the-end.doc.r61933.tar.xz
2022/02/08 | 6944 | systems/texlive/tlnet/archive/proof-at-the-end.r61933.tar.xz
2022/02/08 | 20480 | systems/texlive/tlnet/archive/proof-at-the-end.source.r61933.tar.xz
@@ -290408,8 +290413,8 @@
2022/02/17 | 3200 | systems/texlive/tlnet/archive/spbmark.r62049.tar.xz
2021/01/03 | 80960 | systems/texlive/tlnet/archive/spectral.doc.r57296.tar.xz
2021/01/03 | 3545232 | systems/texlive/tlnet/archive/spectral.r57296.tar.xz
-2022/02/24 | 1808292 | systems/texlive/tlnet/archive/spectralsequences.doc.r62157.tar.xz
-2022/02/24 | 72140 | systems/texlive/tlnet/archive/spectralsequences.r62157.tar.xz
+2022/02/28 | 1595616 | systems/texlive/tlnet/archive/spectralsequences.doc.r62262.tar.xz
+2022/02/28 | 72168 | systems/texlive/tlnet/archive/spectralsequences.r62262.tar.xz
2019/02/28 | 142556 | systems/texlive/tlnet/archive/spelling.doc.r30715.tar.xz
2019/02/28 | 14072 | systems/texlive/tlnet/archive/spelling.r30715.tar.xz
2019/02/28 | 243456 | systems/texlive/tlnet/archive/sphack.doc.r20842.tar.xz
@@ -290558,9 +290563,9 @@
2020/12/06 | 2856 | systems/texlive/tlnet/archive/stepgreek.doc.r57074.tar.xz
2020/12/06 | 451624 | systems/texlive/tlnet/archive/stepgreek.r57074.tar.xz
2021/01/04 | 1296664 | systems/texlive/tlnet/archive/step.r57307.tar.xz
-2019/03/21 | 5856944 | systems/texlive/tlnet/archive/stex.doc.r50489.tar.xz
-2019/03/21 | 41256 | systems/texlive/tlnet/archive/stex.r50489.tar.xz
-2019/03/21 | 495572 | systems/texlive/tlnet/archive/stex.source.r50489.tar.xz
+2022/02/28 | 1906008 | systems/texlive/tlnet/archive/stex.doc.r62231.tar.xz
+2022/02/28 | 70884 | systems/texlive/tlnet/archive/stex.r62231.tar.xz
+2022/02/28 | 71588 | systems/texlive/tlnet/archive/stex.source.r62231.tar.xz
2021/10/19 | 406344 | systems/texlive/tlnet/archive/stickstoo.doc.r60793.tar.xz
2021/10/19 | 2668304 | systems/texlive/tlnet/archive/stickstoo.r60793.tar.xz
2021/04/05 | 1252812 | systems/texlive/tlnet/archive/stix2-otf.doc.r58735.tar.xz
@@ -291189,7 +291194,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2022/02/27 | 404188 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62196.tar.xz
+2022/02/28 | 404028 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62215.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
@@ -291213,7 +291218,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2022/02/27 | 108788 | systems/texlive/tlnet/archive/texlive-scripts.r62196.tar.xz
+2022/02/28 | 108792 | systems/texlive/tlnet/archive/texlive-scripts.r62215.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
@@ -293012,16 +293017,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2022/02/22 | 106745 | systems/texlive/tlnet/install-tl
-2022/02/27 | 6809876 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/02/27 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/02/27 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/02/28 | 6809892 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/02/28 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/02/28 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/02/27 | 20874389 | systems/texlive/tlnet/install-tl-windows.exe
-2022/02/27 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/02/27 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/02/27 | 25628823 | systems/texlive/tlnet/install-tl.zip
-2022/02/27 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/02/27 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/02/28 | 20875399 | systems/texlive/tlnet/install-tl-windows.exe
+2022/02/28 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/02/28 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/02/28 | 25628820 | systems/texlive/tlnet/install-tl.zip
+2022/02/28 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/02/28 | 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
@@ -293031,7 +293036,7 @@
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/01/12 | 49482 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/02/27 | 7337 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/02/28 | 7305 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/02/27 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -293073,12 +293078,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/02/27 | 17173296 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/02/27 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/02/28 | 17171320 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/02/28 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/12/21 | 86654 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/02/27 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/02/27 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/02/27 | 2355256 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/02/28 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/02/28 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/02/28 | 2356012 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/12/21 | 42112 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -295783,7 +295788,7 @@
2022/02/26 | 93844 | systems/texlive/tlnet/tlpkg/translations/fr.po
2022/02/26 | 87555 | systems/texlive/tlnet/tlpkg/translations/it.po
2022/02/26 | 62194 | systems/texlive/tlnet/tlpkg/translations/ja.po
-2022/02/27 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/02/28 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/02/26 | 57618 | systems/texlive/tlnet/tlpkg/translations/nl.po
2022/02/26 | 66753 | systems/texlive/tlnet/tlpkg/translations/pl.po
2022/02/26 | 82407 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
@@ -298218,7 +298223,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/02/27 | 640179 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/02/28 | 640179 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -299761,9 +299766,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/01/29 | 39717 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/01/29 | 43173 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/27 | 267514 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/02/27 | 1425902 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/02/27 | 1318149 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/02/28 | 267521 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/02/28 | 1426622 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/02/28 | 1318839 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/01/29 | 13505 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/01/29 | 14408 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -299987,191 +299992,191 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/02/27 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/02/27 | 51513 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/02/27 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/02/27 | 1020252 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/02/27 | 1156085 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/02/27 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/02/27 | 31567 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/02/27 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/02/27 | 35234 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/02/27 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/02/27 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/02/27 | 86482 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/02/27 | 95315 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/02/27 | 68889 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/02/27 | 77077 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/02/27 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/02/27 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/02/27 | 332515 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/02/27 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/02/27 | 32935 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/02/27 | 37088 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/02/27 | 51466 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/02/27 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/02/27 | 256390 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/02/27 | 281708 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/02/27 | 180013 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/02/27 | 196184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/02/27 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/02/27 | 103056 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/02/27 | 21318 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/02/27 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/02/27 | 479430 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/02/27 | 46088 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/02/27 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/02/27 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/02/27 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/02/27 | 41315 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/02/27 | 45701 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/02/27 | 120466 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/02/27 | 135254 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/02/27 | 1306315 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/02/27 | 1454268 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/02/27 | 99712 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/02/27 | 113013 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/02/27 | 43641 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/02/27 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/02/27 | 25105 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/02/27 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/02/27 | 57044 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/02/27 | 63390 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/02/27 | 136111 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/02/27 | 155454 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/02/27 | 73595 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/02/27 | 78965 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/02/27 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/02/27 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/02/27 | 259091 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/02/27 | 296017 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/02/27 | 22162 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/02/27 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/02/27 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/02/27 | 112476 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/02/27 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/02/27 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/02/27 | 96600 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/02/27 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/02/27 | 38479 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/02/27 | 43804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/02/27 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/02/27 | 566552 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/02/27 | 188216 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/02/27 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/02/27 | 152070 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/02/27 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/02/27 | 95462 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/02/27 | 109517 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/02/27 | 16506 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/02/27 | 18358 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/02/27 | 28418 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/02/27 | 30526 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/02/27 | 633939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/02/27 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/02/27 | 532218 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/02/27 | 599044 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/02/27 | 477760 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/02/27 | 527876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/02/27 | 93957 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/02/27 | 103392 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/02/27 | 1753742 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/02/27 | 1983665 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/02/27 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/02/27 | 74064 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/02/27 | 27627 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/02/27 | 32138 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/02/27 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/02/27 | 8788 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/02/27 | 197456 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/02/27 | 216062 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/02/27 | 251337 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/02/27 | 286547 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/02/27 | 99246 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/02/27 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/02/27 | 126756 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/02/27 | 139420 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/02/27 | 254982 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/02/27 | 286873 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/02/27 | 199568 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/02/27 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/02/27 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/02/27 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/02/27 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/02/27 | 35187 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/02/27 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/02/27 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/02/27 | 43369 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/02/27 | 48018 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/02/27 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/02/27 | 52312 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/02/27 | 198683 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/02/27 | 213208 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/02/27 | 36062 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/02/27 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/02/27 | 759643 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/02/27 | 825810 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/02/27 | 200074 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/02/27 | 202535 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/02/27 | 210196 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/02/27 | 244866 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/02/27 | 78981 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/02/27 | 88124 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/02/27 | 1180913 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/02/27 | 1322724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/02/27 | 20191 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/02/27 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/02/27 | 31566 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/02/27 | 37394 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/02/27 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/02/27 | 73012 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/02/27 | 50823 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/02/27 | 58654 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/02/27 | 688940 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/02/27 | 762607 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/02/27 | 1355330 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/02/27 | 1499050 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/02/27 | 42744 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/02/27 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/02/27 | 57473 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/02/27 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/02/27 | 25457 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/02/27 | 27590 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/02/27 | 16569 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/02/27 | 18498 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/02/27 | 64473 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/02/27 | 71000 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/02/27 | 156731 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/02/27 | 172562 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/02/27 | 58685 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/02/27 | 67226 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/02/27 | 101439 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/02/27 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/02/27 | 2696291 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/02/27 | 2816621 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/02/27 | 55412 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/02/27 | 62127 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/02/27 | 37182 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/02/27 | 41226 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/02/27 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/02/27 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/02/27 | 67650 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/02/27 | 73502 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/02/27 | 316654 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/02/27 | 351833 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/02/27 | 55763 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/02/27 | 57446 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/02/27 | 591472 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/02/27 | 629481 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/02/27 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/02/27 | 43666 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/27 | 267669 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/02/27 | 1427844 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/02/27 | 1319340 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/02/27 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/02/27 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/02/28 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/02/28 | 51514 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/02/28 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/02/28 | 1020252 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/02/28 | 1156085 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/02/28 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/02/28 | 31569 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/02/28 | 30175 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/02/28 | 35233 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/02/28 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/02/28 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/02/28 | 86484 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/02/28 | 95315 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/02/28 | 68890 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/02/28 | 77077 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/02/28 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/02/28 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/02/28 | 332516 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/02/28 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/02/28 | 32935 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/02/28 | 37089 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/02/28 | 51467 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/02/28 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/02/28 | 256390 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/02/28 | 281707 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/02/28 | 180016 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/02/28 | 196184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/28 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/02/28 | 103058 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/02/28 | 21318 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/02/28 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/02/28 | 479430 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/02/28 | 46089 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/02/28 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/02/28 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/02/28 | 326728 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/02/28 | 41316 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/02/28 | 45699 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/02/28 | 120467 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/02/28 | 135253 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/02/28 | 1306313 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/02/28 | 1454269 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/02/28 | 99712 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/02/28 | 113012 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/02/28 | 43642 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/02/28 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/02/28 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/02/28 | 28593 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/02/28 | 57043 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/02/28 | 63390 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/02/28 | 136112 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/02/28 | 155453 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/02/28 | 73595 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/02/28 | 78964 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/02/28 | 72003 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/02/28 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/02/28 | 259092 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/02/28 | 296014 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/02/28 | 22163 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/02/28 | 25066 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/02/28 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/02/28 | 112475 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/02/28 | 64526 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/02/28 | 73202 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/02/28 | 96598 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/02/28 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/02/28 | 38479 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/02/28 | 43805 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/02/28 | 484788 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/02/28 | 566550 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/02/28 | 188210 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/02/28 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/02/28 | 152069 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/02/28 | 168765 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/02/28 | 95463 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/02/28 | 109518 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/02/28 | 16505 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/02/28 | 18357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/02/28 | 28418 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/02/28 | 30527 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/02/28 | 633940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/02/28 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/02/28 | 532219 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/02/28 | 599042 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/02/28 | 477758 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/02/28 | 527878 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/02/28 | 93956 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/02/28 | 103393 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/02/28 | 1753743 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/02/28 | 1983663 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/02/28 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/02/28 | 74065 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/02/28 | 27629 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/02/28 | 32138 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/02/28 | 7759 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/02/28 | 8787 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/02/28 | 197456 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/02/28 | 216061 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/02/28 | 251333 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/02/28 | 286545 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/02/28 | 99248 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/28 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/02/28 | 126758 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/02/28 | 139420 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/02/28 | 254981 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/02/28 | 286872 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/02/28 | 199569 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/02/28 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/02/28 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/02/28 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/02/28 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/02/28 | 35187 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/02/28 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/02/28 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/02/28 | 43371 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/02/28 | 48018 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/02/28 | 45942 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/02/28 | 52312 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/02/28 | 198682 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/02/28 | 213206 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/02/28 | 36063 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/02/28 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/02/28 | 759643 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/02/28 | 825811 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/02/28 | 200074 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/02/28 | 202535 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/02/28 | 210199 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/02/28 | 244866 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/02/28 | 78982 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/02/28 | 88125 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/02/28 | 1180912 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/02/28 | 1322725 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/02/28 | 20191 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/02/28 | 23935 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/02/28 | 31566 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/02/28 | 37394 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/02/28 | 64721 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/02/28 | 73010 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/02/28 | 50823 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/02/28 | 58656 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/02/28 | 688942 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/02/28 | 762604 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/02/28 | 1355333 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/02/28 | 1499051 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/02/28 | 42747 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/02/28 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/02/28 | 57474 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/02/28 | 63762 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/02/28 | 25458 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/02/28 | 27591 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/02/28 | 16571 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/02/28 | 18500 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/02/28 | 64473 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/02/28 | 71000 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/02/28 | 156730 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/02/28 | 172561 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/02/28 | 58687 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/02/28 | 67225 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/02/28 | 101443 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/02/28 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/02/28 | 2696291 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/02/28 | 2816621 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/02/28 | 55411 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/02/28 | 62128 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/02/28 | 37182 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/02/28 | 41226 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/02/28 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/02/28 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/02/28 | 67651 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/02/28 | 73501 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/02/28 | 316652 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/02/28 | 351832 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/02/28 | 55763 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/02/28 | 57446 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/02/28 | 591471 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/02/28 | 629477 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/28 | 39719 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/02/28 | 43664 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/02/28 | 267681 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/02/28 | 1426998 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/02/28 | 1317958 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/02/28 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/02/28 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/02/27 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/02/28 | 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
@@ -300627,7 +300632,7 @@
2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/02/27 | 928 | systems/win32/miktex/tm/packages/pr.ini
+2022/02/28 | 928 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -302171,7 +302176,7 @@
2007/02/12 | 395234 | systems/win32/texshell32/WinTeXShell32.zip
2021/10/01 | 2480 | systems/win32/TLW64/00README.TLW64
2021/10/01 | 61484773 | systems/win32/TLW64/gs9550w64full-gpl.exe
-2022/02/26 | 99128175 | systems/win32/TLW64/tl-win64.zip
+2022/02/27 | 99126810 | systems/win32/TLW64/tl-win64.zip
1996/11/26 | 1822 | systems/win32/tsconfig/readme
1996/11/26 | 30343 | systems/win32/tsconfig/tsconfig.zip
1998/01/20 | 766976 | systems/win32/util/cmdsh110.exe
@@ -302404,7 +302409,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/02/28 | 186 | timestamp
+2022/03/01 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 5abe0bb8e7..1b2ae8bfbc 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 7f26052da6..0f89d2c935 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,19 +1,337 @@
-2022/02/27 | 99712 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/02/27 | 99246 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/28 | 99712 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/02/28 | 99248 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/28 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/02/28 | 96598 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/02/28 | 958568 | systems/texlive/tlnet/archive/mcf2graph.doc.r62243.tar.xz
+2022/02/28 | 95463 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/02/28 | 95315 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/02/28 | 93956 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/02/28 | 93736 | macros/latex/contrib/caption/subcaption.dtx
+2022/02/28 | 9303 | macros/latex/contrib/caption/caption-ams-smf.dtx
+2022/02/28 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/02/28 | 928 | systems/win32/miktex/tm/packages/pr.ini
+2022/02/28 | 91974 | graphics/pgf/contrib/tzplot/tzplot-doc-C-v2.0.tex
+2022/02/28 | 9033 | macros/latex/contrib/caption/CHANGELOG
+2022/02/28 | 89996 | macros/latex/contrib/caption/ltcaption.pdf
+2022/02/28 | 88462 | macros/latex/contrib/hvlogos.zip
+2022/02/28 | 88125 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/02/28 | 8787 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/02/28 | 86484 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/02/28 | 86065 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
+2022/02/28 | 86025 | graphics/pgf/contrib/tzplot/tzplot-doc-D-v2.0.tex
+2022/02/28 | 825811 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/02/28 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/02/28 | 80734 | macros/latex/contrib/easybook/easybook.tex
+2022/02/28 | 78982 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/02/28 | 78964 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/02/28 | 7891 | macros/latex/contrib/caption/caption-thesis.dtx
+2022/02/28 | 779 | macros/latex/contrib/lectureslides/README.md
+2022/02/28 | 77912 | systems/texlive/tlnet/archive/lutabulartools.doc.r62253.tar.xz
+2022/02/28 | 7759 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/02/28 | 77411 | macros/latex/contrib/caption/caption2.pdf
+2022/02/28 | 7725 | macros/latex/contrib/caption/caption-ntg.dtx
+2022/02/28 | 77077 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/02/28 | 762604 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/02/28 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/02/28 | 7615 | macros/latex/contrib/caption/caption-elsarticle.dtx
+2022/02/28 | 761101 | macros/generic/markdown/markdown.pdf
+2022/02/28 | 75 | macros/generic/markdown/examples/scientists.csv
+2022/02/28 | 759643 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/02/28 | 74065 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/02/28 | 73774 | macros/latex/contrib/easybook/easybook.dtx
+2022/02/28 | 73595 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/02/28 | 73501 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/02/28 | 73202 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/02/28 | 7305 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/02/28 | 73010 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/02/28 | 7276 | systems/texlive/tlnet/archive/luaotfload.source.r62239.tar.xz
+2022/02/28 | 7256 | systems/texlive/tlnet/archive/create-theorem.r62245.tar.xz
+2022/02/28 | 72168 | systems/texlive/tlnet/archive/spectralsequences.r62262.tar.xz
+2022/02/28 | 72003 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/02/28 | 71588 | systems/texlive/tlnet/archive/stex.source.r62231.tar.xz
+2022/02/28 | 71000 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/02/28 | 70884 | systems/texlive/tlnet/archive/stex.r62231.tar.xz
+2022/02/28 | 692336 | systems/texlive/tlnet/archive/projlib.doc.r62251.tar.xz
+2022/02/28 | 688942 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/02/28 | 68890 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/02/28 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/02/28 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/02/28 | 6809892 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/02/28 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/02/28 | 67651 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/02/28 | 67305 | macros/latex/contrib/caption/caption-light.pdf
+2022/02/28 | 67225 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/02/28 | 6705 | macros/latex/contrib/hvlogos/latex/hvlogos.sty
+2022/02/28 | 666305 | macros/generic/markdown/markdown.html
+2022/02/28 | 66490 | macros/latex/contrib/caption/bicaption.dtx
+2022/02/28 | 6596 | systems/texlive/tlnet/archive/collection-latexextra.r62245.tar.xz
+2022/02/28 | 652 | systems/texlive/tlnet/archive/collection-xetex.r62241.tar.xz
+2022/02/28 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/02/28 | 6472 | systems/texlive/tlnet/archive/proflycee.r62260.tar.xz
+2022/02/28 | 64721 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/02/28 | 64526 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/02/28 | 64473 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/02/28 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/02/28 | 640179 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/02/28 | 63762 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/02/28 | 633940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/02/28 | 63390 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/02/28 | 629477 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/28 | 623992 | systems/texlive/tlnet/archive/luaotfload.doc.r62239.tar.xz
+2022/02/28 | 62128 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/02/28 | 618818 | macros/latex/contrib/easybook.zip
+2022/02/28 | 61711 | graphics/pgf/contrib/tzplot/tzplot-doc-B-v2.0.tex
+2022/02/28 | 611056 | systems/texlive/tlnet/archive/luaotfload.r62239.tar.xz
+2022/02/28 | 605587 | macros/generic/markdown/markdown.dtx
+2022/02/28 | 599042 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/02/28 | 591471 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/02/28 | 58687 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/02/28 | 58656 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/02/28 | 578235 | macros/latex/contrib/easybook/easybook.pdf
+2022/02/28 | 57474 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/02/28 | 57446 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/02/28 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/02/28 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/02/28 | 5720 | systems/texlive/tlnet/archive/lutabulartools.r62253.tar.xz
+2022/02/28 | 57043 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/02/28 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/02/28 | 566550 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/02/28 | 55763 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/02/28 | 55411 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/02/28 | 532219 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/02/28 | 527878 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/02/28 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/02/28 | 52312 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/02/28 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/02/28 | 51514 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/02/28 | 51467 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/02/28 | 511 | macros/latex/contrib/hvlogos/Changes
+2022/02/28 | 51089 | graphics/pgf/contrib/tzplot/tzplot-doc-C1-v2.0.tex
+2022/02/28 | 50904 | macros/latex/contrib/caption/caption2.dtx
+2022/02/28 | 50823 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/02/28 | 5029031 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf
+2022/02/28 | 501724 | systems/texlive/tlnet/archive/fnpct.doc.r62249.tar.xz
+2022/02/28 | 49787 | macros/latex/contrib/lectureslides.zip
+2022/02/28 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/02/28 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/02/28 | 484788 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/02/28 | 48424 | macros/latex/contrib/lectureslides/lectureslides-doc.pdf
+2022/02/28 | 48018 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/02/28 | 479430 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/02/28 | 477758 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/02/28 | 475196 | systems/texlive/tlnet/archive/proflycee.doc.r62260.tar.xz
+2022/02/28 | 46949 | macros/latex/contrib/caption/fallback/v2.1/caption2.dtx
+2022/02/28 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/02/28 | 46089 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/02/28 | 45942 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/02/28 | 45699 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/02/28 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/02/28 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/02/28 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/02/28 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/02/28 | 4530 | macros/generic/markdown/markdown.css
+2022/02/28 | 4485 | macros/generic/markdown/docstrip.cfg
+2022/02/28 | 444 | systems/texlive/tlnet/archive/mcf2graph.r62243.tar.xz
+2022/02/28 | 4426 | macros/latex/contrib/lectureslides/lectureslides-doc.tex
+2022/02/28 | 44134 | graphics/pgf/contrib/tzplot/tzplot-doc-C2-v2.0.tex
+2022/02/28 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/02/28 | 43805 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/02/28 | 43664 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/02/28 | 43642 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/02/28 | 43371 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/02/28 | 427518 | macros/latex/contrib/caption/caption.pdf
+2022/02/28 | 42747 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/02/28 | 41316 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/02/28 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/02/28 | 41260 | systems/texlive/tlnet/archive/projlib.source.r62251.tar.xz
+2022/02/28 | 41226 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/02/28 | 404028 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62215.tar.xz
+2022/02/28 | 39719 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/02/28 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/02/28 | 3922 | macros/latex/contrib/caption/caption.ins
+2022/02/28 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/02/28 | 3847 | macros/latex/contrib/hvfloat/Changes
+2022/02/28 | 38479 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/02/28 | 37394 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/02/28 | 37182 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/02/28 | 37089 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/02/28 | 36063 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/02/28 | 35233 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/02/28 | 35187 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/02/28 | 351832 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/02/28 | 34912 | systems/texlive/tlnet/archive/penlight.doc.r62255.tar.xz
+2022/02/28 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/02/28 | 334915 | macros/latex/contrib/caption/caption.dtx
+2022/02/28 | 332516 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/02/28 | 32935 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/02/28 | 326728 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/02/28 | 32138 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/02/28 | 31 | macros/generic/markdown/VERSION
+2022/02/28 | 316652 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/02/28 | 31569 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/02/28 | 31566 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/02/28 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/02/28 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/02/28 | 3129 | macros/generic/markdown/examples/example.md
+2022/02/28 | 3067 | macros/latex/contrib/caption/README
+2022/02/28 | 30527 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/02/28 | 30175 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/02/28 | 30030 | macros/latex/contrib/caption/ltcaption.dtx
+2022/02/28 | 296014 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/02/28 | 2912 | systems/texlive/tlnet/archive/crefthe.r62247.tar.xz
+2022/02/28 | 291008 | macros/latex/contrib/caption/fallback/v3.1/caption.dtx
+2022/02/28 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/02/28 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/02/28 | 286872 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/02/28 | 286545 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/02/28 | 28593 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/02/28 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/02/28 | 28418 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/02/28 | 281707 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/02/28 | 2816621 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/02/28 | 2776 | systems/texlive/tlnet/archive/book-of-common-prayer.r62241.tar.xz
+2022/02/28 | 27629 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/02/28 | 27591 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/02/28 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/02/28 | 2696291 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/02/28 | 267681 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/02/28 | 267521 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/02/28 | 259092 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/02/28 | 256390 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/02/28 | 25628820 | systems/texlive/tlnet/install-tl.zip
+2022/02/28 | 254981 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/02/28 | 25458 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/02/28 | 251333 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/02/28 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/02/28 | 25066 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/02/28 | 244 | macros/latex/contrib/hvlogos/README
+2022/02/28 | 244866 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/02/28 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/02/28 | 23935 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/02/28 | 2356012 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/02/28 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/02/28 | 22371 | macros/generic/markdown/libraries/markdown-tinyyaml.lua
+2022/02/28 | 221744 | macros/latex/contrib/caption/subcaption.pdf
+2022/02/28 | 22163 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/02/28 | 217944 | graphics/pgf/contrib/tzplot/tzplot.sty
+2022/02/28 | 216061 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/02/28 | 21420 | macros/latex/contrib/caption/fallback/v2.0/caption2.dtx
+2022/02/28 | 21383 | graphics/pgf/contrib/tzplot/tzplot-doc.tex
+2022/02/28 | 213206 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/02/28 | 21318 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/02/28 | 21191 | macros/latex/contrib/caption/elephant.eps
+2022/02/28 | 210199 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/02/28 | 2092 | macros/latex/contrib/lectureslides/lectureslides.sty
+2022/02/28 | 20875399 | systems/texlive/tlnet/install-tl-windows.exe
+2022/02/28 | 2057000 | systems/texlive/tlnet/archive/arara.doc.r62257.tar.xz
+2022/02/28 | 202535 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/02/28 | 20191 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/02/28 | 200074 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/02/28 | 199569 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/02/28 | 198682 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/02/28 | 1983663 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/02/28 | 197456 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/02/28 | 196184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/28 | 19458 | macros/latex/contrib/caption/caption-koma.dtx
+2022/02/28 | 192575 | macros/latex/contrib/caption/caption3.dtx
+2022/02/28 | 1906008 | systems/texlive/tlnet/archive/stex.doc.r62231.tar.xz
+2022/02/28 | 19008 | macros/latex/contrib/caption/fallback/v1/caption.dtx
+2022/02/28 | 188210 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/02/28 | 18500 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/02/28 | 18357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/02/28 | 182082 | macros/latex/contrib/caption/fallback/v3.0/caption.dtx
+2022/02/28 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/02/28 | 181049 | macros/latex/contrib/caption/fallback/v3.3/caption.dtx
+2022/02/28 | 180016 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/02/28 | 178838 | macros/latex/contrib/caption/fallback/v3.5/caption3.dtx
+2022/02/28 | 1753743 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/02/28 | 172561 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/02/28 | 17171320 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/02/28 | 169193 | macros/latex/contrib/caption/fallback/v3.4/caption.dtx
+2022/02/28 | 168765 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/02/28 | 1682 | macros/generic/markdown/examples/context-mkiv.tex
+2022/02/28 | 1680852 | install/macros/latex/contrib/caption.tds.zip
+2022/02/28 | 16571 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/02/28 | 16540 | systems/texlive/tlnet/archive/projlib.r62251.tar.xz
+2022/02/28 | 16505 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/02/28 | 164934 | macros/latex/contrib/caption/fallback/v3.2/caption.dtx
+2022/02/28 | 1639 | macros/generic/markdown/examples/latex.tex
+2022/02/28 | 16226 | macros/generic/markdown/README.md
+2022/02/28 | 161735 | macros/latex/contrib/caption/fallback/v3.5/caption.dtx
+2022/02/28 | 1595616 | systems/texlive/tlnet/archive/spectralsequences.doc.r62262.tar.xz
+2022/02/28 | 15737 | macros/latex/contrib/caption/cat.eps
+2022/02/28 | 157254 | macros/latex/contrib/caption/fallback/v3.4/caption3.dtx
+2022/02/28 | 156730 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/02/28 | 155453 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/02/28 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/02/28 | 153317 | macros/latex/contrib/caption/fallback/v3.3/caption3.dtx
+2022/02/28 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/02/28 | 152069 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/02/28 | 14994 | macros/latex/contrib/caption/caption-beamer.dtx
+2022/02/28 | 1499051 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/02/28 | 149792 | macros/latex/contrib/caption/bicaption.pdf
+2022/02/28 | 1491 | macros/generic/markdown/examples/context-mkii.tex
+2022/02/28 | 1478102 | macros/latex/contrib/caption.zip
+2022/02/28 | 14728 | systems/texlive/tlnet/archive/fnpct.r62249.tar.xz
+2022/02/28 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/02/28 | 1454269 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/02/28 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/02/28 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/02/28 | 14332431 | macros/latex/contrib/hvfloat.zip
+2022/02/28 | 1426998 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/02/28 | 1426622 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/02/28 | 14209 | graphics/pgf/contrib/tzplot/tzplot-doc-E-v2.0.tex
+2022/02/28 | 140951 | macros/generic/markdown/markdown.png
+2022/02/28 | 139420 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/02/28 | 13813 | graphics/pgf/contrib/tzplot/tzplot-doc-A-v2.0.tex
+2022/02/28 | 136112 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/02/28 | 1355333 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/02/28 | 1352871 | graphics/pgf/contrib/tzplot.zip
+2022/02/28 | 135253 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/02/28 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/02/28 | 135024 | macros/latex/contrib/caption/fallback/v3.2/caption3.dtx
+2022/02/28 | 13430 | macros/latex/contrib/caption/caption-light.dtx
+2022/02/28 | 1333 | macros/generic/markdown/markdown.ins
+2022/02/28 | 1322725 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/02/28 | 1318839 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/02/28 | 1317958 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/02/28 | 1306313 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/02/28 | 129528 | systems/texlive/tlnet/archive/book-of-common-prayer.doc.r62241.tar.xz
+2022/02/28 | 126758 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/02/28 | 1263240 | graphics/pgf/contrib/tzplot/tzplot-doc.pdf
+2022/02/28 | 12620 | macros/latex/contrib/caption/caption-memoir.dtx
+2022/02/28 | 124236 | systems/texlive/tlnet/archive/crefthe.doc.r62247.tar.xz
+2022/02/28 | 121396 | systems/texlive/tlnet/archive/create-theorem.doc.r62245.tar.xz
+2022/02/28 | 120467 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/02/28 | 119821 | macros/latex/contrib/hvfloat/doc/hvfloat.tex
+2022/02/28 | 1180912 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/02/28 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/02/28 | 1156085 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/02/28 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/02/28 | 113012 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/02/28 | 112 | macros/latex/contrib/caption/SUMMARY
+2022/02/28 | 112475 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/02/28 | 1120328 | install/macros/generic/markdown.tds.zip
+2022/02/28 | 109518 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/02/28 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/02/28 | 108792 | systems/texlive/tlnet/archive/texlive-scripts.r62215.tar.xz
+2022/02/28 | 10626840 | systems/texlive/tlnet/archive/arara.r62257.tar.xz
+2022/02/28 | 1060738 | macros/generic/markdown.zip
+2022/02/28 | 105380 | systems/texlive/tlnet/archive/penlight.r62255.tar.xz
+2022/02/28 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/02/28 | 103393 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/02/28 | 103058 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/02/28 | 1020252 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/02/28 | 101443 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/02/28 | 100248 | systems/texlive/tlnet/archive/arara.source.r62257.tar.xz
+2022/02/27 | 99126810 | systems/win32/TLW64/tl-win64.zip
2022/02/27 | 9881 | macros/luatex/generic/luaotfload/fontloader-fonts-gbn.lua
2022/02/27 | 984 | support/arara/scripts/rules/arara-rule-make.yaml
2022/02/27 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
2022/02/27 | 981511 | macros/luatex/generic/luaotfload/fontloader-reference.lua
-2022/02/27 | 97022 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2022/02/27 | 968769 | graphics/mcf2graph.zip
-2022/02/27 | 96600 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/02/27 | 95462 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/02/27 | 95315 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2022/02/27 | 950 | support/arara/scripts/rules/arara-rule-gnuplot.yaml
2022/02/27 | 94451 | macros/luatex/generic/luaotfload/fontloader-font-otr.lua
-2022/02/27 | 93957 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/02/27 | 92954 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/02/27 | 928 | systems/win32/miktex/tm/packages/pr.ini
2022/02/27 | 9255 | macros/latex/contrib/fnpct/fnpct-manual.cls
2022/02/27 | 923 | support/arara/scripts/rules/arara-rule-move.yaml
2022/02/27 | 92210 | macros/luatex/generic/luaotfload/fontloader-font-cff.lua
@@ -21,12 +339,9 @@
2022/02/27 | 910 | support/arara/scripts/rules/arara-rule-xindex.yaml
2022/02/27 | 889472 | systems/texlive/tlnet/archive/beebe.r62180.tar.xz
2022/02/27 | 8840 | macros/luatex/generic/luaotfload/luaotfload-loaders.lua
-2022/02/27 | 88124 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2022/02/27 | 879568 | macros/luatex/generic/luaotfload/fontloader-2022-02-24.lua
2022/02/27 | 878 | support/arara/scripts/rules/arara-rule-ghostscript.yaml
-2022/02/27 | 8788 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2022/02/27 | 8697 | macros/luatex/generic/lutabulartools/lutabulartools.lua
-2022/02/27 | 86482 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2022/02/27 | 8597 | macros/luatex/generic/luaotfload/filegraph.tex
2022/02/27 | 85847 | macros/luatex/generic/lutabulartools.zip
2022/02/27 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
@@ -38,8 +353,6 @@
2022/02/27 | 839 | support/arara/scripts/rules/arara-rule-biber.yaml
2022/02/27 | 83452 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
2022/02/27 | 832 | support/arara/scripts/rules/arara-rule-nomencl.yaml
-2022/02/27 | 825810 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/02/27 | 81640 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2022/02/27 | 812 | support/arara/scripts/rules/arara-rule-songidx.yaml
2022/02/27 | 812 | support/arara/scripts/rules/arara-rule-dvipdfmx.yaml
2022/02/27 | 81117 | support/arara/doc/chapters/methods.tex
@@ -49,316 +362,168 @@
2022/02/27 | 796 | support/arara/scripts/rules/arara-rule-copy.yaml
2022/02/27 | 791161 | macros/latex/contrib/projlib.zip
2022/02/27 | 7904 | macros/luatex/generic/luaotfload/fontloader-font-oti.lua
-2022/02/27 | 78981 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/02/27 | 78965 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/02/27 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2022/02/27 | 77520 | macros/luatex/generic/luaotfload/luaotfload-conf.pdf
2022/02/27 | 7745 | macros/luatex/generic/penlight/penlight.tex
-2022/02/27 | 77077 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2022/02/27 | 7688 | systems/texlive/tlnet/archive/lua-uni-algos.r62205.tar.xz
2022/02/27 | 76788 | macros/luatex/generic/luaotfload/luaotfload-tool.pdf
2022/02/27 | 7637 | macros/luatex/generic/lutabulartools/lutabulartools.sty
-2022/02/27 | 762607 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/02/27 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/02/27 | 759643 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2022/02/27 | 7589 | macros/luatex/generic/luaotfload/luaotfload-unicode.lua
2022/02/27 | 7528 | macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
-2022/02/27 | 74064 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2022/02/27 | 73920 | systems/texlive/tlnet/archive/lua-uni-algos.doc.r62205.tar.xz
2022/02/27 | 735 | macros/luatex/generic/luaotfload/luaotfload.conf.example
-2022/02/27 | 73595 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
2022/02/27 | 7353 | support/arara/doc/chapters/yaml.tex
-2022/02/27 | 73502 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/02/27 | 7337 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
-2022/02/27 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/02/27 | 73012 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/02/27 | 7292 | systems/texlive/tlnet/archive/luaotfload.source.r62198.tar.xz
2022/02/27 | 7260 | macros/luatex/generic/luaotfload/fontloader-fonts-ext.lua
-2022/02/27 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/02/27 | 71000 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2022/02/27 | 699 | macros/luatex/generic/luaotfload/scripts-demo.tex
2022/02/27 | 698900 | systems/texlive/tlnet/archive/babel.source.r62203.tar.xz
2022/02/27 | 69105 | dviware/dvisvgm/doc/dvisvgm.1
2022/02/27 | 689518 | dviware/dvisvgm/configure
-2022/02/27 | 688940 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/02/27 | 68889 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2022/02/27 | 6866 | macros/luatex/generic/luaotfload/fontloader-font-afk.lua
-2022/02/27 | 68622 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
2022/02/27 | 682 | support/arara/scripts/rules/arara-rule-sketch.yaml
-2022/02/27 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2022/02/27 | 6809 | macros/luatex/generic/luaotfload/luaotfload-case.lua
-2022/02/27 | 6809876 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/02/27 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/02/27 | 67650 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/02/27 | 67226 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2022/02/27 | 6644 | macros/luatex/generic/luaotfload/fontloader-l-string.lua
2022/02/27 | 66239 | macros/latex/contrib/create-theorem/create-theorem.sty
2022/02/27 | 65279 | macros/luatex/generic/luaotfload/fontloader-font-otj.lua
2022/02/27 | 651 | support/arara/scripts/rules/arara-rule-spix.yaml
-2022/02/27 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
2022/02/27 | 647 | support/arara/scripts/rules/arara-rule-makeglossarieslite.yaml
2022/02/27 | 647 | support/arara/scripts/rules/arara-rule-convert.yaml
-2022/02/27 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/02/27 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/02/27 | 64473 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2022/02/27 | 64282 | macros/luatex/generic/luaotfload/fontloader-font-ttf.lua
2022/02/27 | 6405 | macros/luatex/generic/luaotfload/fontloader-l-lua.lua
-2022/02/27 | 640366 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/02/27 | 640179 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/02/27 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2022/02/27 | 634 | dviware/dvisvgm/src/optimizer/Makefile.am
-2022/02/27 | 633939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/02/27 | 63390 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2022/02/27 | 63211 | macros/luatex/generic/luaotfload/fontloader-font-con.lua
2022/02/27 | 6317 | macros/luatex/generic/luaotfload/luaotfload-status.lua
2022/02/27 | 630 | macros/latex/contrib/create-theorem/README.md
2022/02/27 | 6309 | macros/luatex/generic/luaotfload/luaotfload-szss.lua
-2022/02/27 | 629481 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2022/02/27 | 626 | support/arara/scripts/rules/arara-rule-upbibtex.yaml
-2022/02/27 | 624896 | systems/texlive/tlnet/archive/luaotfload.doc.r62198.tar.xz
2022/02/27 | 621 | support/arara/scripts/rules/arara-rule-bibtexu.yaml
2022/02/27 | 621 | support/arara/scripts/rules/arara-rule-bibtex8.yaml
-2022/02/27 | 62127 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/02/27 | 61172 | support/arara/doc/figures/optionbox1.pdf
-2022/02/27 | 611384 | systems/texlive/tlnet/archive/luaotfload.r62198.tar.xz
2022/02/27 | 60850 | support/arara/doc/figures/dropdown1.pdf
2022/02/27 | 60275 | dviware/dvisvgm/src/Makefile.in
2022/02/27 | 5 | support/arara/doc/version.tex
2022/02/27 | 59941 | support/arara/doc/figures/inputbox1.pdf
-2022/02/27 | 599044 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/02/27 | 596 | support/arara/scripts/rules/arara-rule-pbibtex.yaml
2022/02/27 | 59540 | support/arara/doc/figures/optionbox2.pdf
2022/02/27 | 592 | support/arara/scripts/rules/arara-rule-bibtex.yaml
-2022/02/27 | 591472 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2022/02/27 | 59101 | support/arara/doc/figures/dropdown2.pdf
2022/02/27 | 588 | support/arara/scripts/rules/arara-rule-pdftk.yaml
2022/02/27 | 5885 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.tex
-2022/02/27 | 58685 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/02/27 | 58654 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2022/02/27 | 58249 | support/arara/doc/figures/inputbox2.pdf
2022/02/27 | 5789 | support/arara/scripts/rules/arara-rule-bib2gls.yaml
2022/02/27 | 576 | support/arara/scripts/arara.sh
2022/02/27 | 57492 | graphics/mcf2graph/mcf_manual.tex
-2022/02/27 | 57473 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/02/27 | 57446 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/02/27 | 57348 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
2022/02/27 | 57342 | macros/luatex/generic/luaotfload/fontloader-fonts-lig.lua
-2022/02/27 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/02/27 | 57044 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/02/27 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2022/02/27 | 56953 | dviware/dvisvgm/aclocal.m4
-2022/02/27 | 566552 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/02/27 | 55763 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/02/27 | 55412 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2022/02/27 | 5502 | macros/luatex/generic/luaotfload/fontloader-font-cid.lua
2022/02/27 | 54949 | support/arara/doc/figures/messagebox1.pdf
2022/02/27 | 546 | support/arara/scripts/rules/arara-rule-qpdf.yaml
2022/02/27 | 54080 | macros/luatex/generic/luaotfload/luaotfload-tool.lua
2022/02/27 | 5388 | macros/luatex/generic/luaotfload/fontloader-data-con.lua
2022/02/27 | 53224 | support/arara/doc/figures/messagebox2.pdf
-2022/02/27 | 532218 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
2022/02/27 | 5318 | macros/latex/contrib/projlib/README.md
2022/02/27 | 52 | macros/luatex/generic/luaotfload/luaotfload-blacklist.cnf
-2022/02/27 | 527876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/02/27 | 52592 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/02/27 | 52312 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/02/27 | 52074 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/02/27 | 520491 | macros/latex/contrib/fnpct.zip
-2022/02/27 | 51513 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/02/27 | 51466 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/02/27 | 50823 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2022/02/27 | 4956 | macros/luatex/generic/luaotfload/luaotfload-dvi.lua
2022/02/27 | 494932 | macros/latex/contrib/fnpct/fnpct-manual.pdf
2022/02/27 | 493487 | macros/luatex/generic/luaotfload/luaotfload-latex.pdf
-2022/02/27 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2022/02/27 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2022/02/27 | 48728 | macros/luatex/generic/luaotfload/fontloader-basics-chr.lua
-2022/02/27 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/02/27 | 48018 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
2022/02/27 | 47951 | macros/latex/contrib/fnpct/fnpct.sty
-2022/02/27 | 479430 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/02/27 | 477760 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2022/02/27 | 4722 | support/arara/README.md
-2022/02/27 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/02/27 | 46322 | macros/luatex/generic/luaotfload/fontloader-util-str.lua
-2022/02/27 | 46088 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/02/27 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/02/27 | 45701 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/02/27 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/02/27 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/02/27 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/02/27 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2022/02/27 | 447313 | dviware/dvisvgm/ChangeLog
-2022/02/27 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/02/27 | 43804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2022/02/27 | 4369 | dviware/dvisvgm/config.h.in
-2022/02/27 | 43666 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/27 | 43641 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/02/27 | 43369 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
2022/02/27 | 431779 | graphics/mcf2graph/mcf_example.pdf
-2022/02/27 | 42744 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2022/02/27 | 4254 | support/arara/scripts/rules/arara-rule-context.yaml
2022/02/27 | 42240 | macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
2022/02/27 | 421831 | macros/luatex/generic/penlight/penlight.lua
2022/02/27 | 41758 | macros/luatex/generic/luaotfload/fontloader-l-table.lua
-2022/02/27 | 41315 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
2022/02/27 | 41303 | macros/luatex/generic/luaotfload/fontloader-l-unicode.lua
-2022/02/27 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/02/27 | 41226 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
2022/02/27 | 4074 | support/arara/scripts/rules/arara-rule-datatooltk.yaml
2022/02/27 | 40582 | dviware/dvisvgm/libs/ff-woff/Makefile.in
2022/02/27 | 40530 | macros/latex/contrib/fnpct/fnpct-2019-10-05.sty
2022/02/27 | 4050 | macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
2022/02/27 | 4047 | macros/luatex/generic/luaotfload/luaotfload-fallback.lua
-2022/02/27 | 404188 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62196.tar.xz
2022/02/27 | 40086 | support/arara/doc/arara-quickstart.tex
2022/02/27 | 40007 | macros/luatex/generic/luaotfload/filegraph.pdf
2022/02/27 | 39 | support/arara/doc/arararc.yaml
-2022/02/27 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/02/27 | 394185 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/02/27 | 39402 | dviware/dvisvgm/NEWS
2022/02/27 | 38742 | macros/luatex/generic/luaotfload/fontloader-l-lpeg.lua
-2022/02/27 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/02/27 | 38479 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2022/02/27 | 38237 | macros/luatex/generic/penlight/penlight.pdf
2022/02/27 | 3821 | macros/luatex/generic/luaotfload/fontloader-fonts-def.lua
2022/02/27 | 3784 | macros/luatex/generic/luaotfload/README.md
-2022/02/27 | 37394 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2022/02/27 | 37238 | support/arara/doc/chapters/concepts.tex
-2022/02/27 | 37182 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/02/27 | 37088 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/02/27 | 3693 | macros/luatex/generic/luaotfload/fontloader-font-imp-italics.lua
2022/02/27 | 3674 | macros/luatex/generic/luaotfload/fontloader-fonts-syn.lua
2022/02/27 | 361 | macros/luatex/generic/luaotfload/fontloader-l-function.lua
-2022/02/27 | 36062 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2022/02/27 | 3593 | graphics/mcf2graph/README
2022/02/27 | 3580 | macros/luatex/generic/luaotfload/fontloader-font-imp-ligatures.lua
2022/02/27 | 3571467 | dviware/dvisvgm.zip
-2022/02/27 | 35234 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/02/27 | 35187 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/02/27 | 351833 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2022/02/27 | 34922 | macros/luatex/generic/luaotfload/fontloader-font-ott.lua
2022/02/27 | 34476 | macros/luatex/generic/luaotfload/fontloader-font-otc.lua
2022/02/27 | 3406 | macros/luatex/generic/luaotfload/fontloader-font-imp-tex.lua
-2022/02/27 | 34038 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2022/02/27 | 33960 | macros/luatex/generic/luaotfload/fontloader-font-otl.lua
2022/02/27 | 3362 | support/arara/doc/arara-manual.tex
2022/02/27 | 33403 | dviware/dvisvgm/libs/brotli/Makefile.in
-2022/02/27 | 332515 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2022/02/27 | 33155 | macros/luatex/generic/luaotfload/luaotfload-features.lua
2022/02/27 | 33026 | support/arara/doc/arara.sty
-2022/02/27 | 32935 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2022/02/27 | 3287334 | macros/luatex/generic/luaotfload/luaotfload-characters.lua
-2022/02/27 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/02/27 | 32597 | macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
2022/02/27 | 3253 | support/arara/scripts/rules/arara-rule-pdfcrop.yaml
2022/02/27 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
-2022/02/27 | 32138 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/02/27 | 320 | support/arara/scripts/rules/arara-rule-halt.yaml
-2022/02/27 | 316654 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/02/27 | 31567 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/02/27 | 31566 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/02/27 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
2022/02/27 | 31349 | macros/luatex/generic/luaotfload/fontloader-font-one.lua
-2022/02/27 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/02/27 | 31223 | macros/luatex/generic/luaotfload/luaotfload-configuration.lua
2022/02/27 | 31007 | macros/luatex/generic/luaotfload/luaotfload-parsers.lua
-2022/02/27 | 30526 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2022/02/27 | 3026 | support/arara/doc/logos/bird.pdf
-2022/02/27 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2022/02/27 | 2990 | support/arara/scripts/rules/arara-rule-indent.yaml
-2022/02/27 | 296017 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/02/27 | 289267 | graphics/mcf2graph/mcf_manual.pdf
-2022/02/27 | 28886 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/02/27 | 28699 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/02/27 | 286873 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/02/27 | 286547 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/02/27 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/02/27 | 285909 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/02/27 | 28418 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2022/02/27 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
2022/02/27 | 28315 | macros/latex/contrib/fnpct/fnpct-manual.tex
-2022/02/27 | 281708 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/02/27 | 2816621 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2022/02/27 | 2801 | graphics/mcf2graph/mcf_example.tex
2022/02/27 | 2796 | macros/latex/contrib/crefthe/README.md
2022/02/27 | 27920 | dviware/dvisvgm/Makefile.in
-2022/02/27 | 27627 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
2022/02/27 | 275 | macros/luatex/generic/luaotfload/luaotfload-main.lua
-2022/02/27 | 27590 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/02/27 | 27243 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/02/27 | 2696291 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2022/02/27 | 26880 | support/arara/doc/chapters/cli.tex
-2022/02/27 | 267669 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/02/27 | 267514 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2022/02/27 | 2667 | macros/luatex/generic/luaotfload/fontloader-font-vfc.lua
2022/02/27 | 2625 | macros/luatex/generic/luaotfload/fontloader-fonts-enc.lua
-2022/02/27 | 259091 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2022/02/27 | 2582 | macros/luatex/generic/luaotfload/luaotfload-suppress.lua
-2022/02/27 | 256390 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/02/27 | 25628823 | systems/texlive/tlnet/install-tl.zip
2022/02/27 | 256038 | dviware/dvisvgm/tests/Makefile.in
2022/02/27 | 2549 | macros/luatex/generic/luaotfload/fontloader-l-math.lua
-2022/02/27 | 254982 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/02/27 | 25457 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2022/02/27 | 2544 | support/arara/scripts/rules/arara-rule-ltx2any.yaml
2022/02/27 | 25336 | macros/luatex/generic/luaotfload/luaotfload-filelist.lua
2022/02/27 | 25264 | macros/luatex/generic/luaotfload/fontloader-font-ocl.lua
-2022/02/27 | 251337 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/02/27 | 25105 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
2022/02/27 | 2506 | macros/luatex/generic/luaotfload/luaotfload-scripts.lua
-2022/02/27 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2022/02/27 | 250058 | support/arara/doc/arara-quickstart.pdf
2022/02/27 | 24709 | dviware/dvisvgm/libs/woff2/Makefile.in
-2022/02/27 | 244866 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2022/02/27 | 2435 | support/arara/scripts/rules/arara-rule-makeglossaries.yaml
-2022/02/27 | 24168 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/02/27 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/02/27 | 2355256 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/02/27 | 23399 | macros/luatex/generic/luaotfload/fontloader-fonts-tfm.lua
2022/02/27 | 23238 | macros/luatex/generic/luaotfload/fontloader-font-oto.lua
2022/02/27 | 23211 | dviware/dvisvgm/src/optimizer/Makefile.in
-2022/02/27 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2022/02/27 | 22186 | macros/luatex/generic/luaotfload/fontloader-l-file.lua
-2022/02/27 | 22162 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2022/02/27 | 220788 | systems/texlive/tlnet/archive/xcharter.doc.r62200.tar.xz
2022/02/27 | 2198460 | systems/texlive/tlnet/archive/xcharter.r62200.tar.xz
2022/02/27 | 21858 | macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
2022/02/27 | 2168 | graphics/mcf2graph/mcf_exa_soc.mp
2022/02/27 | 21673 | macros/luatex/generic/luaotfload/scripts-demo.pdf
-2022/02/27 | 216062 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2022/02/27 | 21375 | dviware/dvisvgm/doc/Makefile.in
-2022/02/27 | 213208 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/02/27 | 21318 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
2022/02/27 | 21315 | macros/luatex/generic/luaotfload/NEWS
2022/02/27 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2022/02/27 | 2108 | support/arara/doc/chapters/license.tex
-2022/02/27 | 210196 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
2022/02/27 | 2100 | support/arara/scripts/rules/arara-rule-perltex.yaml
-2022/02/27 | 20874389 | systems/texlive/tlnet/install-tl-windows.exe
2022/02/27 | 20832 | dviware/dvisvgm/libs/potrace/Makefile.in
2022/02/27 | 20366 | dviware/dvisvgm/libs/clipper/Makefile.in
2022/02/27 | 20268 | macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
-2022/02/27 | 202535 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2022/02/27 | 20201 | support/arara/doc/chapters/configuration.tex
-2022/02/27 | 20191 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
2022/02/27 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
2022/02/27 | 20038 | macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
2022/02/27 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
-2022/02/27 | 200074 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2022/02/27 | 19964 | dviware/dvisvgm/libs/Makefile.in
-2022/02/27 | 199568 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
2022/02/27 | 19944 | macros/luatex/generic/luaotfload/fontloader-font-def.lua
2022/02/27 | 1989 | support/arara/scripts/rules/arara-rule-frontespizio.yaml
-2022/02/27 | 198683 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/02/27 | 1983665 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
2022/02/27 | 1975 | support/arara/scripts/rules/arara-rule-xindy.yaml
2022/02/27 | 1974 | support/arara/scripts/rules/arara-rule-texindy.yaml
2022/02/27 | 19746 | macros/luatex/generic/luaotfload/luaotfload-init.lua
-2022/02/27 | 197456 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2022/02/27 | 1971107 | support/arara/doc/arara-manual.pdf
2022/02/27 | 19678 | dviware/dvisvgm/libs/xxHash/Makefile.in
-2022/02/27 | 196184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/02/27 | 195943 | graphics/mcf2graph/mcf_mplib_exa.pdf
2022/02/27 | 19573 | dviware/dvisvgm/libs/md5/Makefile.in
2022/02/27 | 19570 | macros/luatex/generic/luaotfload/fontloader-font-map.lua
@@ -370,38 +535,27 @@
2022/02/27 | 19106 | macros/latex/contrib/create-theorem/LICENSE
2022/02/27 | 19064 | macros/luatex/generic/penlight/penlightextras.lua
2022/02/27 | 1884 | support/arara/scripts/rules/arara-rule-latexmk.yaml
-2022/02/27 | 188216 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
2022/02/27 | 18741 | macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
2022/02/27 | 18717 | macros/luatex/generic/luaotfload/fontloader-font-onr.lua
2022/02/27 | 18714 | macros/luatex/generic/luaotfload/COPYING
2022/02/27 | 186209 | macros/luatex/generic/luaotfload/fontloader-font-ots.lua
2022/02/27 | 1850 | macros/luatex/generic/luaotfload/fontloader-l-boolean.lua
-2022/02/27 | 18498 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/02/27 | 184200 | systems/texlive/tlnet/archive/babel.r62203.tar.xz
2022/02/27 | 18411 | macros/luatex/generic/luaotfload/fontloader-font-ota.lua
2022/02/27 | 1838 | macros/luatex/generic/penlight/penlight.sty
2022/02/27 | 1837 | support/arara/scripts/rules/arara-rule-detex.yaml
2022/02/27 | 18378 | macros/luatex/generic/luaotfload/luaotfload.conf.rst
-2022/02/27 | 18358 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2022/02/27 | 182 | macros/luatex/generic/luaotfload/shaper-demo.tex
2022/02/27 | 18214 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
-2022/02/27 | 181676 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2022/02/27 | 1812 | macros/luatex/generic/luaotfload/luaotfload.sty
-2022/02/27 | 180013 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2022/02/27 | 1794 | macros/luatex/generic/luaotfload/fontloader-font-ini.lua
-2022/02/27 | 1753742 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
2022/02/27 | 17496 | graphics/mcf2graph/CHANGELOG
2022/02/27 | 1727 | support/arara/doc/arara.1
-2022/02/27 | 172562 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2022/02/27 | 1722 | support/arara/scripts/rules/arara-rule-pythontex.yaml
-2022/02/27 | 17173296 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2022/02/27 | 1709 | support/arara/scripts/rules/arara-rule-texcount.yaml
-2022/02/27 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/02/27 | 16794 | macros/luatex/generic/luaotfload/luaotfload.conf.5
2022/02/27 | 1672 | support/arara/scripts/rules/arara-rule-fig2dev.yaml
2022/02/27 | 16675 | macros/luatex/generic/luaotfload/luaotfload-latex.tex
-2022/02/27 | 16569 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/02/27 | 16506 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2022/02/27 | 1625 | support/arara/scripts/rules/arara-rule-pdflatex.yaml
2022/02/27 | 1625 | support/arara/scripts/rules/arara-rule-lualatex.yaml
2022/02/27 | 16116 | macros/luatex/generic/luaotfload/luaotfload-tool.rst
@@ -410,60 +564,39 @@
2022/02/27 | 15954 | macros/luatex/generic/luaotfload/luaotfload-colors.lua
2022/02/27 | 1577 | macros/latex/contrib/fnpct/README
2022/02/27 | 1571 | macros/luatex/generic/lutabulartools/README.md
-2022/02/27 | 156731 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
2022/02/27 | 15621 | dviware/dvisvgm/libs/variant/Makefile.in
-2022/02/27 | 155454 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2022/02/27 | 154203 | macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
-2022/02/27 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/02/27 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2022/02/27 | 1522 | support/arara/scripts/rules/arara-rule-xelatex.yaml
2022/02/27 | 1522 | support/arara/scripts/rules/arara-rule-uplatex.yaml
-2022/02/27 | 152070 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2022/02/27 | 15196 | macros/luatex/generic/luaotfload/fontloader-reference-load-order.lua
2022/02/27 | 1517 | support/arara/scripts/rules/arara-rule-platex.yaml
2022/02/27 | 15068 | macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
2022/02/27 | 1503 | support/arara/scripts/rules/arara-rule-makeindex.yaml
-2022/02/27 | 1499050 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/02/27 | 1478 | support/arara/scripts/rules/arara-rule-asymptote.yaml
2022/02/27 | 1470 | support/arara/scripts/rules/arara-rule-knitr.yaml
2022/02/27 | 146364 | systems/texlive/tlnet/archive/texlive-msg-translations.r62192.tar.xz
2022/02/27 | 14613 | support/arara/doc/chapters/deploying.tex
-2022/02/27 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/02/27 | 1454268 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/02/27 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2022/02/27 | 1449 | macros/luatex/generic/luaotfload/fontloader-font-lua.lua
2022/02/27 | 1448 | support/arara/scripts/rules/arara-rule-dvisvgm.yaml
-2022/02/27 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2022/02/27 | 14279 | macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
-2022/02/27 | 1427844 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/02/27 | 1425902 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2022/02/27 | 14215 | support/arara/doc/logos/logo1.pdf
2022/02/27 | 14166 | support/arara/doc/logos/logo2.pdf
2022/02/27 | 140957 | support/arara/doc/figures/arara.png
-2022/02/27 | 139420 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/02/27 | 138933 | support/arara/doc/chapters/rules.tex
2022/02/27 | 13775102 | support/arara.zip
2022/02/27 | 13761857 | install/support/arara.tds.zip
2022/02/27 | 13740 | dviware/dvisvgm/tests/data/Makefile.in
-2022/02/27 | 136111 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
2022/02/27 | 13565 | macros/luatex/generic/luaotfload/luaotfload.lua
-2022/02/27 | 1355330 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
2022/02/27 | 135371 | macros/latex/contrib/projlib/ProjLib.dtx
2022/02/27 | 13532 | support/arara/doc/chapters/mvel.tex
2022/02/27 | 13525 | macros/luatex/generic/luaotfload/fontloader-font-shp.lua
-2022/02/27 | 135254 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/02/27 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2022/02/27 | 13502 | dviware/dvisvgm/m4/Makefile.in
2022/02/27 | 1347 | support/arara/doc/figures/gl.pdf
2022/02/27 | 1341 | support/arara/scripts/rules/arara-rule-clean.yaml
2022/02/27 | 134114 | macros/luatex/generic/luaotfload/luaotfload-database.lua
2022/02/27 | 1324 | support/arara/scripts/rules/arara-rule-sage.yaml
-2022/02/27 | 1322724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2022/02/27 | 131975 | support/arara/source/arara-6.1.6-src.zip
-2022/02/27 | 1319340 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/02/27 | 1318149 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/02/27 | 131645 | macros/unicodetex/latex/book-of-common-prayer.zip
-2022/02/27 | 1306315 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2022/02/27 | 129781 | macros/latex/contrib/create-theorem.zip
2022/02/27 | 1284 | support/arara/scripts/rules/arara-rule-pdfcsplain.yaml
2022/02/27 | 1282 | support/arara/scripts/rules/arara-rule-llmk.yaml
@@ -477,56 +610,39 @@
2022/02/27 | 12704 | macros/luatex/generic/luaotfload/fontloader-font-imp-effects.lua
2022/02/27 | 1268 | support/arara/scripts/rules/arara-rule-pdftex.yaml
2022/02/27 | 1268 | support/arara/scripts/rules/arara-rule-luatex.yaml
-2022/02/27 | 126756 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2022/02/27 | 1259 | macros/luatex/generic/penlight/README.md
2022/02/27 | 12528 | support/arara/doc/chapters/introduction.tex
2022/02/27 | 123210 | macros/luatex/generic/luaotfload/fontloader-font-oup.lua
2022/02/27 | 12224 | macros/luatex/generic/luaotfload/luaotfload-notdef.lua
2022/02/27 | 12097 | macros/luatex/generic/lutabulartools/lutabulartools.tex
2022/02/27 | 12065 | support/arara/doc/chapters/building.tex
-2022/02/27 | 120466 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2022/02/27 | 11988 | macros/luatex/generic/luaotfload/fontloader-l-io.lua
2022/02/27 | 11976 | support/arara/doc/chapters/logging.tex
2022/02/27 | 11876220 | support/arara/scripts/arara.jar
2022/02/27 | 118105 | macros/luatex/generic/luaotfload/fontloader-font-osd.lua
-2022/02/27 | 1180913 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2022/02/27 | 1166 | support/arara/scripts/rules/arara-rule-xetex.yaml
2022/02/27 | 1166 | support/arara/scripts/rules/arara-rule-uptex.yaml
2022/02/27 | 1162 | support/arara/scripts/rules/arara-rule-ptex.yaml
-2022/02/27 | 115692 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
2022/02/27 | 115616 | macros/latex/contrib/crefthe/crefthe-doc.pdf
-2022/02/27 | 1156085 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/02/27 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2022/02/27 | 11474 | macros/luatex/generic/luaotfload/fontloader-util-fil.lua
2022/02/27 | 11323 | macros/luatex/generic/luaotfload/luaotfload-log.lua
-2022/02/27 | 113013 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/02/27 | 112476 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2022/02/27 | 111285 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
2022/02/27 | 1111 | support/arara/scripts/rules/arara-rule-xdvipdfmx.yaml
2022/02/27 | 1107 | support/arara/scripts/rules/arara-rule-animate.yaml
2022/02/27 | 1105 | support/arara/scripts/rules/arara-rule-authorindex.yaml
2022/02/27 | 10984 | macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
-2022/02/27 | 109517 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/02/27 | 109179 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/02/27 | 108788 | systems/texlive/tlnet/archive/texlive-scripts.r62196.tar.xz
2022/02/27 | 10798 | macros/latex/contrib/crefthe/crefthe-doc.tex
2022/02/27 | 1062 | support/arara/scripts/rules/arara-rule-etex.yaml
2022/02/27 | 1050 | support/arara/scripts/rules/arara-rule-tex.yaml
-2022/02/27 | 104709 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2022/02/27 | 1046 | support/arara/doc/rules/quickstart.yaml
-2022/02/27 | 103392 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2022/02/27 | 1032 | support/arara/doc/rules/manual.yaml
-2022/02/27 | 103056 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2022/02/27 | 10283 | macros/latex/contrib/crefthe/crefthe.sty
2022/02/27 | 102502 | macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
2022/02/27 | 10207 | macros/luatex/generic/luaotfload/fontloader-basics-nod.lua
-2022/02/27 | 1020252 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/02/27 | 101439 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/02/27 | 101318 | graphics/mcf2graph/mcf2graph.mp
2022/02/27 | 100635 | graphics/mcf2graph/mcf_data_base.mcf
2022/02/27 | 1004 | macros/luatex/generic/luaotfload/luaotfload-embolden.lua
2022/02/27 | 100352 | macros/luatex/generic/luaotfload/luaotfload-main.tex
-2022/02/26 | 99128175 | systems/win32/TLW64/tl-win64.zip
2022/02/26 | 9863 | support/texlab/src/features/cursor.rs
2022/02/26 | 967 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_simple.snap
2022/02/26 | 9616 | macros/latex/contrib/stex/doc/stex-docheader.tex
@@ -997,20 +1113,16 @@
2022/02/25 | 8538 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
2022/02/25 | 840 | macros/latex/contrib/stex/tex/ldf/hwexam-finnish.ldf
2022/02/25 | 811 | macros/latex/contrib/stex/tex/ldf/hwexam-ngerman.ldf
-2022/02/25 | 80914 | macros/latex/contrib/easybook/easybook.tex
2022/02/25 | 786 | macros/latex/contrib/stex/tex/ldf/hwexam-french.ldf
2022/02/25 | 769280 | systems/texlive/tlnet/archive/grading-scheme.doc.r62163.tar.xz
2022/02/25 | 743916 | systems/texlive/tlnet/archive/l3build.doc.r62165.tar.xz
-2022/02/25 | 73774 | macros/latex/contrib/easybook/easybook.dtx
2022/02/25 | 72647 | macros/luatex/latex/yamlvars.zip
2022/02/25 | 71535 | systems/doc/luatex/luatex-math.tex
2022/02/25 | 69483 | macros/luatex/latex/yamlvars/yamlvars.pdf
2022/02/25 | 6751 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex
2022/02/25 | 6434 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex
-2022/02/25 | 618940 | macros/latex/contrib/easybook.zip
2022/02/25 | 6024 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex
2022/02/25 | 588092 | systems/texlive/tlnet/archive/l3kernel.source.r62165.tar.xz
-2022/02/25 | 578301 | macros/latex/contrib/easybook/easybook.pdf
2022/02/25 | 5479 | macros/latex/contrib/tkz/tkz-euclide/README.md
2022/02/25 | 546 | macros/latex/contrib/stex/tex/ldf/problem-russian.ldf
2022/02/25 | 534 | macros/latex/contrib/stex/tex/ldf/problem-ngerman.ldf
@@ -1310,7 +1422,6 @@
2022/02/24 | 7240 | fonts/xcharter/tfm/XCharter1-Bold-osf-sc-ot1.tfm
2022/02/24 | 7228 | fonts/xcharter/tfm/XCharter-Bold-osf-sc-ot1.tfm
2022/02/24 | 7224 | fonts/xcharter/tfm/XCharter-Bold-lf-sc-ot1.tfm
-2022/02/24 | 72140 | systems/texlive/tlnet/archive/spectralsequences.r62157.tar.xz
2022/02/24 | 7208 | fonts/xcharter/tfm/XCharter1-Bold-tosf-sc-ot1.tfm
2022/02/24 | 7204 | fonts/xcharter/tfm/XCharter-Bold-tosf-sc-ot1.tfm
2022/02/24 | 7204 | fonts/xcharter/tfm/XCharter-Bold-tlf-sc-ot1.tfm
@@ -1379,7 +1490,6 @@
2022/02/24 | 6640 | fonts/xcharter/tfm/XCharter-Slanted-tosf-ot1.tfm
2022/02/24 | 6632 | fonts/xcharter/tfm/XCharter-Slanted-tlf-ot1.tfm
2022/02/24 | 66196 | macros/latex/contrib/l3kernel/l3prg.dtx
-2022/02/24 | 6576 | systems/texlive/tlnet/archive/collection-latexextra.r62155.tar.xz
2022/02/24 | 6576 | fonts/xcharter/tfm/XCharter1-BoldSlanted-tosf-ot1.tfm
2022/02/24 | 6572 | fonts/xcharter/tfm/XCharter-BoldSlanted-osf-ot1.tfm
2022/02/24 | 656 | fonts/xcharter/vf/XCharter-Italic-ts1.vf
@@ -1396,7 +1506,6 @@
2022/02/24 | 6436 | systems/texlive/tlnet/archive/texfot.r62157.tar.xz
2022/02/24 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex
2022/02/24 | 640 | fonts/xcharter/vf/XCharter-Slanted-ts1.vf
-2022/02/24 | 6312 | systems/texlive/tlnet/archive/proflycee.r62157.tar.xz
2022/02/24 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex
2022/02/24 | 6262 | macros/latex/contrib/atendofenv/atendofenv.dtx
2022/02/24 | 622328 | macros/latex/contrib/l3kernel/expl3.pdf
@@ -1439,7 +1548,6 @@
2022/02/24 | 4139 | fonts/xcharter/enc/xch1_m6qb7y.enc
2022/02/24 | 4134 | fonts/xcharter/enc/xch1_c3yyfo.enc
2022/02/24 | 4133 | fonts/xcharter/enc/xch1_2jcsfa.enc
-2022/02/24 | 411928 | systems/texlive/tlnet/archive/proflycee.doc.r62157.tar.xz
2022/02/24 | 4097 | fonts/xcharter/enc/xch1_i2cund.enc
2022/02/24 | 4094 | fonts/xcharter/enc/xch1_wd2dbe.enc
2022/02/24 | 4092 | fonts/xcharter/enc/xch1_ccfumi.enc
@@ -2121,7 +2229,6 @@
2022/02/24 | 1808 | fonts/xcharter/vf/XCharter1-Italic-osf-sc-ly1.vf
2022/02/24 | 1808 | fonts/xcharter/tfm/XCharter-Italic-lf-sc-t1--base.tfm
2022/02/24 | 1808 | fonts/xcharter/tfm/XCharter1-Italic-osf-sc-t1--base.tfm
-2022/02/24 | 1808292 | systems/texlive/tlnet/archive/spectralsequences.doc.r62157.tar.xz
2022/02/24 | 1804 | fonts/xcharter/vf/XCharter1-Bold-tosf-sc-ly1.vf
2022/02/24 | 1804 | fonts/xcharter/vf/XCharter1-Bold-osf-sc-ly1.vf
2022/02/24 | 1804 | fonts/xcharter/tfm/XCharter-Italic-tlf-sc-ly1--base.tfm
@@ -2727,7 +2834,6 @@
2022/02/22 | 5827 | systems/win32/miktex/tm/packages/linebreaker.tar.lzma
2022/02/22 | 581059 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma
2022/02/22 | 5800 | macros/latex/contrib/bfh-ci/tex/bfhletter.sty
-2022/02/22 | 5744565 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf
2022/02/22 | 54484 | macros/latex/contrib/bfh-ci/doc/DEMO-BFHProjektProposal.pdf
2022/02/22 | 51711 | systems/win32/miktex/tm/packages/make4ht.tar.lzma
2022/02/22 | 50947 | systems/win32/miktex/tm/packages/mcf2graph__source.tar.lzma
@@ -2768,7 +2874,6 @@
2022/02/22 | 38310 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla7.bbx
2022/02/22 | 3788 | macros/latex/contrib/bfh-ci/tex/bfh-layout-listings.cfg
2022/02/22 | 3761471 | systems/win32/miktex/tm/packages/bidi__doc.tar.lzma
-2022/02/22 | 3718 | macros/latex/contrib/hvfloat/Changes
2022/02/22 | 3652 | systems/win32/miktex/tm/packages/luacensor.tar.lzma
2022/02/22 | 3538 | macros/latex/contrib/bfh-ci/tex/bfhtranslations-french.trsl
2022/02/22 | 3517 | systems/win32/miktex/tm/packages/flashcards.tar.lzma
@@ -2875,7 +2980,6 @@
2022/02/22 | 15390 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua
2022/02/22 | 1518 | macros/latex/contrib/bfh-ci/tex/bfh-a6paper.clo
2022/02/22 | 1508 | macros/latex/contrib/bfh-ci/tex/bfh-beamerarticle.cfg
-2022/02/22 | 15079420 | macros/latex/contrib/hvfloat.zip
2022/02/22 | 15076 | macros/latex/contrib/bfh-ci/example/DEMO-BFHPub.tex
2022/02/22 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib
2022/02/22 | 14867 | macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty
@@ -2900,7 +3004,6 @@
2022/02/22 | 11804 | systems/win32/miktex/tm/packages/njuthesis.tar.lzma
2022/02/22 | 1173 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.dbx
2022/02/22 | 116971 | systems/win32/miktex/tm/packages/bidi.tar.lzma
-2022/02/22 | 11543 | macros/latex/contrib/acmart/README
2022/02/22 | 11443 | macros/latex/contrib/biblatex-contrib/biblatex-mla/english-mla.lbx
2022/02/22 | 11403392 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
2022/02/22 | 111 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.cbx
@@ -2920,182 +3023,3 @@
2022/02/22 | 1052786 | macros/latex/contrib/rutitlepage/rutitlepage-logo-bw.eps
2022/02/22 | 10103 | macros/latex/contrib/biblatex-contrib/biblatex-mla/italian-mla.lbx
2022/02/22 | 1006341 | systems/win32/miktex/tm/packages/xepersian__doc.tar.lzma
-2022/02/21 | 9860 | systems/texlive/tlnet/archive/babel-serbianc.source.r62110.tar.xz
-2022/02/21 | 985 | macros/latex/contrib/moderncv/KNOWN_BUGS
-2022/02/21 | 9738 | macros/latex/contrib/moderncv/moderncvheadii.sty
-2022/02/21 | 9717 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
-2022/02/21 | 962744 | systems/texlive/tlnet/archive/mcf2graph.doc.r62101.tar.xz
-2022/02/21 | 9379 | macros/latex/contrib/moderncv/moderncvbodyv.sty
-2022/02/21 | 9357 | macros/latex/contrib/moderncv/moderncvheadiv.sty
-2022/02/21 | 908 | macros/latex/contrib/hyperref/doc/hyperref-doc2.html
-2022/02/21 | 8930 | macros/latex/contrib/moderncv/moderncvheadi.sty
-2022/02/21 | 880455 | macros/latex/contrib/hyperref/hyperref.dtx
-2022/02/21 | 86616 | macros/latex/contrib/nwejm/doc/french/nwejm-fr.tex
-2022/02/21 | 862 | macros/latex/contrib/acmart/samples/samples.ins
-2022/02/21 | 858 | macros/latex/contrib/hyperref/doc/hyperref-doc5.html
-2022/02/21 | 8556 | systems/texlive/tlnet/archive/hexboard.source.r62102.tar.xz
-2022/02/21 | 84115 | macros/latex/contrib/animate/animate.tex
-2022/02/21 | 8325 | macros/latex/contrib/moderncv/moderncvheadvi.sty
-2022/02/21 | 823 | macros/latex/contrib/moderncv/publications.bib
-2022/02/21 | 7990 | macros/latex/contrib/moderncv/moderncvheadv.sty
-2022/02/21 | 792 | systems/texlive/tlnet/archive/collection-luatex.r62106.tar.xz
-2022/02/21 | 7755210 | install/macros/latex/contrib/nwejm.tds.zip
-2022/02/21 | 7735 | macros/latex/contrib/moderncv/moderncvheadiii.sty
-2022/02/21 | 771 | macros/latex/contrib/hyperref/doc/hyperref-doc3.html
-2022/02/21 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc8.html
-2022/02/21 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc7.html
-2022/02/21 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc6.html
-2022/02/21 | 7580 | systems/texlive/tlnet/archive/flashcards.source.r62104.tar.xz
-2022/02/21 | 7543 | macros/latex/contrib/hyperref/hyperref-patches.dtx
-2022/02/21 | 75228 | systems/texlive/tlnet/archive/memoir.r62105.tar.xz
-2022/02/21 | 7506 | macros/latex/contrib/moderncv/moderncvbodyi.sty
-2022/02/21 | 74936 | systems/texlive/tlnet/archive/xepersian.source.r62109.tar.xz
-2022/02/21 | 739180 | systems/texlive/tlnet/archive/caption.doc.r62097.tar.xz
-2022/02/21 | 7220 | macros/latex/contrib/moderncv/moderncvbodyiv.sty
-2022/02/21 | 7149 | macros/latex/contrib/moderncv/moderncvfooti.sty
-2022/02/21 | 69720 | macros/unicodetex/latex/tipauni/tipauni-commands.pdf
-2022/02/21 | 69080 | macros/latex/contrib/moderncv/moderncvskillmatrix.sty
-2022/02/21 | 67432 | systems/texlive/tlnet/archive/japanese-otf.source.r62094.tar.xz
-2022/02/21 | 602 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
-2022/02/21 | 59532 | systems/texlive/tlnet/archive/caption.r62097.tar.xz
-2022/02/21 | 59464 | systems/texlive/tlnet/archive/xepersian.r62109.tar.xz
-2022/02/21 | 59416 | macros/latex/contrib/moderncv/picture.eps
-2022/02/21 | 58 | systems/mac/mactex/MacTeXtras-20220221.zip.md5
-2022/02/21 | 57942 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
-2022/02/21 | 5736 | macros/latex/contrib/hyperref/xr-hyper.sty
-2022/02/21 | 56920 | macros/unicodetex/latex/tipauni/tipauni.dtx
-2022/02/21 | 5660 | systems/texlive/tlnet/archive/linebreaker.r62106.tar.xz
-2022/02/21 | 55232 | systems/texlive/tlnet/archive/japanese-otf.doc.r62094.tar.xz
-2022/02/21 | 544 | systems/texlive/tlnet/archive/collection-games.r62102.tar.xz
-2022/02/21 | 52752 | systems/texlive/tlnet/archive/linebreaker.doc.r62106.tar.xz
-2022/02/21 | 508062 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus.zip
-2022/02/21 | 50274 | macros/latex/contrib/hyperref/hluatex.dtx
-2022/02/21 | 501940 | macros/latex/contrib/hyperref/doc/hyperref-doc.html
-2022/02/21 | 486447909 | systems/mac/mactex/MacTeXtras-20220221.zip
-2022/02/21 | 48354 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
-2022/02/21 | 480622 | macros/latex/contrib/proflycee.zip
-2022/02/21 | 4777 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
-2022/02/21 | 474 | macros/latex/contrib/nwejm/README.md
-2022/02/21 | 470786 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
-2022/02/21 | 46900 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
-2022/02/21 | 4591 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
-2022/02/21 | 457 | macros/unicodetex/latex/tipauni/README.txt
-2022/02/21 | 4509 | macros/unicodetex/latex/tipauni/tipauni-commands.tex
-2022/02/21 | 448 | systems/texlive/tlnet/archive/mcf2graph.r62101.tar.xz
-2022/02/21 | 4486 | macros/latex/contrib/moderncv/moderncvcompatibility.sty
-2022/02/21 | 4479 | macros/latex/contrib/hyperref/README.md
-2022/02/21 | 44496 | systems/texlive/tlnet/archive/njuthesis.source.r62107.tar.xz
-2022/02/21 | 4332 | systems/texlive/tlnet/archive/babel-serbianc.r62110.tar.xz
-2022/02/21 | 431390 | macros/unicodetex/latex/tipauni.zip
-2022/02/21 | 4084 | macros/latex/contrib/hyperref/hyperref.ins
-2022/02/21 | 4062 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
-2022/02/21 | 4061579 | install/macros/latex/contrib/hyperref.tds.zip
-2022/02/21 | 4028 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
-2022/02/21 | 397553 | macros/latex/contrib/nwejm/doc/examples/issue.pdf
-2022/02/21 | 384001 | macros/latex/contrib/hyperref/doc/slides.pdf
-2022/02/21 | 38130 | systems/mac/mactex/ExtrasFolder.pdf
-2022/02/21 | 3751389 | macros/latex/contrib/animate/animate.pdf
-2022/02/21 | 3597 | macros/latex/contrib/moderncv/moderncviconsawesome.sty
-2022/02/21 | 35777 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
-2022/02/21 | 3575 | macros/latex/contrib/moderncv/moderncvcollection.sty
-2022/02/21 | 35571 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
-2022/02/21 | 35551 | macros/latex/contrib/acmart/samples/samples.dtx
-2022/02/21 | 35149 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/LICENSE.md
-2022/02/21 | 3488 | systems/texlive/tlnet/archive/flashcards.r62104.tar.xz
-2022/02/21 | 342168 | macros/latex/contrib/moderncv.zip
-2022/02/21 | 339118 | macros/latex/contrib/nwejm/doc/french/nwejm-fr.pdf
-2022/02/21 | 33783 | macros/latex/contrib/moderncv/moderncv.cls
-2022/02/21 | 3225615 | install/macros/latex/contrib/animate.tds.zip
-2022/02/21 | 3223342 | macros/latex/contrib/animate.zip
-2022/02/21 | 32126 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
-2022/02/21 | 320611 | macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf
-2022/02/21 | 3192 | macros/latex/contrib/moderncv/moderncvstylebanking.sty
-2022/02/21 | 3161 | macros/latex/contrib/hyperref/bmhydoc.sty
-2022/02/21 | 3140 | systems/texlive/tlnet/archive/hexboard.r62102.tar.xz
-2022/02/21 | 3137488 | systems/texlive/tlnet/archive/memoir.doc.r62105.tar.xz
-2022/02/21 | 308748 | macros/latex/contrib/hyperref/doc/hyperref-doc.pdf
-2022/02/21 | 3044 | systems/texlive/tlnet/archive/haranoaji-extra.doc.r62099.tar.xz
-2022/02/21 | 3032 | systems/texlive/tlnet/archive/haranoaji.doc.r62100.tar.xz
-2022/02/21 | 2988 | macros/latex/contrib/moderncv/moderncviconsletters.sty
-2022/02/21 | 293528 | systems/texlive/tlnet/archive/babel-serbianc.doc.r62110.tar.xz
-2022/02/21 | 28408 | macros/latex/contrib/hyperref/backref.dtx
-2022/02/21 | 279 | macros/latex/contrib/hyperref/ntheorem-hyper.sty
-2022/02/21 | 275 | macros/latex/contrib/hyperref/minitoc-hyper.sty
-2022/02/21 | 275772 | systems/texlive/tlnet/archive/hexboard.doc.r62102.tar.xz
-2022/02/21 | 274695 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
-2022/02/21 | 27131 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
-2022/02/21 | 2691 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty
-2022/02/21 | 26865 | macros/latex/contrib/moderncv/moderncviconstikz.sty
-2022/02/21 | 2676 | systems/texlive/tlnet/archive/crefthe.r62103.tar.xz
-2022/02/21 | 25941172 | systems/texlive/tlnet/archive/haranoaji.r62100.tar.xz
-2022/02/21 | 25805920 | systems/texlive/tlnet/archive/haranoaji-extra.r62099.tar.xz
-2022/02/21 | 2568 | macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
-2022/02/21 | 255288 | systems/texlive/tlnet/archive/flashcards.doc.r62104.tar.xz
-2022/02/21 | 251468 | macros/latex/contrib/nwejm/doc/examples/article-in-french.pdf
-2022/02/21 | 24744 | macros/latex/contrib/nwejm/source/nwejm-examples-template.dtx
-2022/02/21 | 247116 | macros/latex/contrib/hyperref/paperslides99.zip
-2022/02/21 | 244517 | macros/unicodetex/latex/tipauni/tipauni.pdf
-2022/02/21 | 2429 | macros/latex/contrib/moderncv/moderncviconsacademic.sty
-2022/02/21 | 242252 | systems/texlive/tlnet/archive/memoir.source.r62105.tar.xz
-2022/02/21 | 2373591 | macros/latex/contrib/hyperref/doc/hyperref.pdf
-2022/02/21 | 23652 | macros/latex/contrib/hyperref/nameref.dtx
-2022/02/21 | 234988 | systems/texlive/tlnet/archive/erewhon-math.r62098.tar.xz
-2022/02/21 | 2320 | macros/latex/contrib/moderncv/moderncvstylecasual.sty
-2022/02/21 | 2309 | macros/latex/contrib/nwejm/doc/french/nwejm-fr.bib
-2022/02/21 | 2306 | macros/latex/contrib/moderncv/moderncvstyleclassic.sty
-2022/02/21 | 229552 | systems/texlive/tlnet/archive/japanese-otf.r62094.tar.xz
-2022/02/21 | 22195 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
-2022/02/21 | 2212 | macros/latex/contrib/moderncv/moderncvstyleempty.sty
-2022/02/21 | 221004 | macros/latex/contrib/nwejm/source/nwejm.dtx
-2022/02/21 | 21141 | macros/latex/contrib/moderncv/CHANGELOG
-2022/02/21 | 210956 | systems/texlive/tlnet/archive/caption.source.r62097.tar.xz
-2022/02/21 | 2079 | macros/latex/contrib/moderncv/moderncvdebugtools.sty
-2022/02/21 | 2056 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
-2022/02/21 | 205475 | macros/latex/contrib/hyperref/doc/backref.pdf
-2022/02/21 | 2045 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
-2022/02/21 | 202038 | macros/latex/contrib/nwejm/doc/examples/article-in-german.pdf
-2022/02/21 | 2019 | macros/latex/contrib/moderncv/tweaklist.sty
-2022/02/21 | 1972512 | systems/texlive/tlnet/archive/erewhon-math.doc.r62098.tar.xz
-2022/02/21 | 1961 | macros/latex/contrib/moderncv/moderncvstylefancy.sty
-2022/02/21 | 194646 | macros/latex/contrib/nwejm/doc/examples/article-in-english.pdf
-2022/02/21 | 193330 | macros/latex/contrib/nwejm/doc/examples/sample.pdf
-2022/02/21 | 192 | macros/latex/contrib/nwejm/doc/english/README-TRANSLATION.md
-2022/02/21 | 19039 | macros/latex/contrib/moderncv/LICENSE.txt
-2022/02/21 | 1880 | macros/latex/contrib/moderncv/README.md
-2022/02/21 | 1845658 | graphics/pgf/contrib/spectralsequences.zip
-2022/02/21 | 181051 | macros/latex/contrib/hyperref/doc/nameref.pdf
-2022/02/21 | 1728339 | macros/latex/contrib/nwejm.zip
-2022/02/21 | 1716 | macros/latex/contrib/hyperref/manifest.txt
-2022/02/21 | 1711 | systems/mac/mactex/Licenses.txt
-2022/02/21 | 1701 | macros/unicodetex/latex/tipauni/tipauni.ins
-2022/02/21 | 1645 | macros/latex/contrib/moderncv/picture.jpg
-2022/02/21 | 160235 | macros/latex/contrib/hyperref/doc/hyperref-doc.tex
-2022/02/21 | 15605 | macros/latex/contrib/moderncv/template.tex
-2022/02/21 | 1552 | macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
-2022/02/21 | 15509 | macros/latex/contrib/moderncv/manual/moderncv_userguide.tex
-2022/02/21 | 14793 | macros/latex/contrib/hyperref/doc/hyperref-doc.css
-2022/02/21 | 139716 | macros/latex/contrib/animate/animate.sty
-2022/02/21 | 13349 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
-2022/02/21 | 132446 | macros/latex/contrib/hyperref/doc/paper.pdf
-2022/02/21 | 12878 | macros/latex/contrib/animate/ChangeLog
-2022/02/21 | 120692 | systems/texlive/tlnet/archive/crefthe.doc.r62103.tar.xz
-2022/02/21 | 119145 | macros/latex/contrib/hyperref/ChangeLog.txt
-2022/02/21 | 117337 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.pdf
-2022/02/21 | 11664 | systems/texlive/tlnet/archive/njuthesis.r62107.tar.xz
-2022/02/21 | 113934 | macros/latex/contrib/nwejm/doc/examples/article-in-dutch.pdf
-2022/02/21 | 1117 | macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
-2022/02/21 | 1110 | macros/latex/contrib/moderncv/moderncviconssymbols.sty
-2022/02/21 | 1103720 | systems/texlive/tlnet/archive/njuthesis.doc.r62107.tar.xz
-2022/02/21 | 10884 | macros/unicodetex/latex/tipauni/tipauni-example.tex
-2022/02/21 | 108223 | macros/unicodetex/latex/tipauni/tipauni-example.pdf
-2022/02/21 | 1067 | macros/latex/contrib/moderncv/moderncvcolorpurple.sty
-2022/02/21 | 1067 | macros/latex/contrib/moderncv/moderncvcolororange.sty
-2022/02/21 | 1063 | macros/latex/contrib/moderncv/moderncvcolorblue.sty
-2022/02/21 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgrey.sty
-2022/02/21 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgreen.sty
-2022/02/21 | 10536 | macros/latex/contrib/moderncv/moderncvbodyiii.sty
-2022/02/21 | 1052 | macros/latex/contrib/moderncv/moderncvcolorred.sty
-2022/02/21 | 1040 | macros/latex/contrib/moderncv/moderncvcolorblack.sty
-2022/02/21 | 100 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
-2022/02/21 | 1006 | macros/latex/contrib/hyperref/doc/hyperref-doc4.html
-2022/02/21 | 1005636 | systems/texlive/tlnet/archive/xepersian.doc.r62109.tar.xz
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-A-v1.0.1.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-A-v1.0.1.tex
deleted file mode 100644
index 1d949a6768..0000000000
--- a/graphics/pgf/contrib/tzplot/tzplot-doc-A-v1.0.1.tex
+++ /dev/null
@@ -1,134 +0,0 @@
-%!TEX root = tzplot-doc.tex
-%\begin{document}
-
-%%%=================
-\part{Getting Ready}
-%%%=================
-\label{p:intro}
-
-%%==================================
-\chapter{Introduction}
-
-\section{About \texttt{tzplot.sty}}
-
-The |tzplot| package is just a collection of macros based on \TikZ\ to save you time typing \Tikz\ code.
-
-In |pstricks|, a line connecting two points |(A)| and |(B)| is drawn by |\psline(A)(B)|.
-With the package |tzplot|, you can do it by |\tzline(A)(B)|.
-
-\begin{tztikz}{}
-\tzline(A)(B) % is an abbreviation of:
- \draw (A) -- (B);
-\end{tztikz}
-%
-\begin{tztikz}{}
-\tzline[blue](A)(B){my line}[r] % is an abbreviation of:
- \draw [blue] (A) -- (B) node [right] {my line};
-\end{tztikz}
-
-Some macros in this package represent one or a few lines of code, but some represent dozens of lines of \Tikz\ code.
-
-All of the drawing macros of |tzplot| are prefixed by |\tz|. Of course, it means \Tikz.
-The syntax of the |tzplot| macros comes from |tikz| and |pstricks|.
-However, the input mode is more like |pstricks|.
-
-To use the |tzplot| package you have to load the package in the preamble of your document as follows:
-
-\begin{verbatim}
- \usepackage{tzplot}
-\end{verbatim}
-
-The package depends on the packages |tikz|, |xparse|, and |expl3|.
-And it uses the following \Tikz\ libraries:
-\begin{verbatim}
- calc,backgrounds,positioning,intersections,arrows,shapes,patterns,plotmarks,
- decorations.pathreplacing,calligraphy
-\end{verbatim}
-
-This package sets the basic arrow style to |stealth|.
-If you don't like this, as an alternative, you can set the style like |\tikzset{>=to}| after the |tzplot| package is loaded.
-
-This package was originally motivated by drawing graphs in economics.
-Therefore, the macros in this package have been selected and developed for drawing graphs efficiently in economics. However, this package will do a good job of drawing basic graphics in any fields.
-
-Finally, note that this is far from a \Tikz\ tutorial.
-To make good use of this package, you need to familiarize yourself with \Tikz.
-
-\section{Preoccupied style names}
-\label{s:stylenames}
-
-This package does not provide any environment.
-Since all the drawing macros prefixed by |\tz| are just abbreviations of \Tikz\ code,
-you can use the macros in the |tikzpicture| environment together with any \Tikz\ commands.
-
-However, there are some preoccupied style names that you should not overwrite.
-Those are as follows:
-
-\begin{verbatim}
- tzdot tzmark tzdotted
- tzdashed tzhelplines tznode
- tzshorten tzextend tzshowcontrols
-\end{verbatim}
-
-This package also predefined \iisw{abbreviations} of \Tikz's basic placement options as follows:
-\label{abbreviations}
-
-\begin{tzsty}{}
-% preoccupied (alias) styles
-\tikzset{%
- a/.style={above=#1},
- b/.style={below=#1},
- c/.style={centered=#1},
- l/.style={left=#1},
- r/.style={right=#1},
- al/.style={above left=#1},
- ar/.style={above right=#1},
- bl/.style={below left=#1},
- br/.style={below right=#1},
-}
-\end{tzsty}
-You can use these abbreviations to place \Tikz's \iisw{main node}\xem{s} but not \iisw{label node}\xem{s}. To place label nodes, use non-abbreviated options or angles instead.
-
-
-The |tzplot| package also defines graphic layers as follows:
-
-\begin{tzsty}{}
-\pgfdeclarelayer{background}
-\pgfdeclarelayer{behind}
-\pgfdeclarelayer{above}
-\pgfdeclarelayer{foreground}
-
-\pgfsetlayers{background,behind,main,above,foreground}
-\end{tzsty}
-Therefore, you can select the graphic layers in sequence: |background|, |behind|, |main|, |above|, and |foreground|.
-For example, you can change the layer of a straight line from |main| (default) to |background| as follows:
-
-\begin{tzcode}[listing only]{1}
-\begin{tikzpicture}
-\tzhelplines(4,3)
- <tzplot macros>
- <tikz macros>
-\begin{pgfonlayer}{background}
- \tzline[blue](0,0)(3,1)
-\end{pgfonlayer}
-\end{tikzpicture}
-\end{tzcode}
-
-\section{How to read this document}
-
-In drawing graphs, too many factors are involved: line style, color, fill, label, positioning, shift, and so on.
-Almost all macros of this package have many arguments that control these factors.
-Some are mandatory and some are optional.
-Optional arguments are hidden when not used.
-
-The document has three essential parts: Part II, Part III, and Part IV.
-Part II introduces essential macros with only frequently used options.
-There are many options hidden in the macros introduced in Part II.
-Some macros are not introduced in Part II.
-Part III and IV describe all the features of all macros.
-
-You must get started with Part II.
-Part II is sufficient for drawing needs in most cases.
-
-Unless you are an experienced user of \Tikz, it is recommended to move on to Part III and Part IV once you become familiar with Part II. In the meantime, use Part III and Part IV for reference only. Use the list of contents and the index efficiently to find macros you need.
-
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-A-v2.0.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-A-v2.0.tex
new file mode 100644
index 0000000000..6f7f1d3850
--- /dev/null
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc-A-v2.0.tex
@@ -0,0 +1,339 @@
+%!TEX root = tzplot-doc.tex
+%\begin{document}
+
+%%%=================
+%\part{Getting Ready}
+\part{Prelimiaries}
+%%%=================
+\label{p:intro}
+
+%%==================================
+\chapter{Introduction}
+
+%%------------------------------------------------------------
+\section{About \texttt{tzplot.sty}}
+
+The |tzplot| package is just a collection of macros based on \TikZ\ to save you time typing \Tikz\ code.
+
+\paragraph{What you can do with \texttt{tzplot}}
+In |pstricks|, a line connecting two points |(A)| and |(B)| is drawn by |\psline(A)(B)|.
+With the package |tzplot|, you can do it by |\tzline(A)(B)|.
+
+\begin{tztikz}{}
+\tzline(A)(B) % is an abbreviation of:
+ \draw (A) -- (B);
+\end{tztikz}
+%
+\begin{tztikz}{}
+\tzline[blue](A)(B){my line}[r] % is an abbreviation of:
+ \draw [blue] (A) -- (B) node [right] {my line};
+\end{tztikz}
+
+Some macros in this package represent one or a few lines of code, but some represent dozens of lines of \Tikz\ code.
+
+All of the drawing macros of |tzplot| are prefixed by |\tz|. Of course, it means \Tikz.
+The syntax of the |tzplot| macros comes from |tikz| and |pstricks|.
+However, the input mode is more like |pstricks|.
+
+\paragraph{How to load}
+To use the |tzplot| package you have to load the package in the preamble of your document as follows:
+
+\begin{verbatim}
+ \usepackage{tzplot}
+\end{verbatim}
+
+The package depends on the packages |tikz|, |xparse|, and |expl3|.
+And it uses the following \Tikz\ libraries:
+\begin{verbatim}
+ arrows,backgrounds,calc,intersections,patterns,plotmarks,positioning,shapes,
+ decorations.pathreplacing,calligraphy
+\end{verbatim}
+
+In the version 2, more libraries are added to the list of preloaded libraries:
+\begin{verbatim}
+ arrows.meta, bending, % (for middle arrow tips)
+ decorations.markings, % (for decoration)
+ decorations.pathmorphing, % (for snaked lines)
+ fpu, % (for angle computation)
+ spy % (for later use)
+\end{verbatim}
+
+\paragraph{More comments}
+This package sets the basic \xem{arrow style} to |stealth|.
+If you don't like this, as an alternative, you can set the style like |\tikzset{>=to}| after the |tzplot| package is loaded.
+
+This package was originally motivated by drawing graphs in economics.
+Therefore, the macros in this package have been selected and developed for drawing graphs efficiently in economics. However, this package will do a good job of drawing basic graphics in any fields.
+
+Finally, note that this is far from a \Tikz\ tutorial.
+\xem{To make good use of this package, you need to familiarize yourself with \Tikz}.
+
+%%------------------------------------------------------------
+\section{Preoccupied style names}
+\label{s:stylenames}
+
+This package does not provide any environment.
+Since all the drawing macros prefixed by |\tz| are just abbreviations of \Tikz\ code,
+you can use the macros in the |tikzpicture| environment together with any \Tikz\ commands.
+
+\paragraph{Preoccupied styles}
+However, there are some preoccupied style names that you should not overwrite.
+Those are as follows:
+
+\begin{verbatim}
+ tzdot tzmark tzdotted
+ tzdashed tzhelplines tznode
+ tzshorten tzextend tzshowcontrols
+\end{verbatim}
+
+\paragraph{Abbreviated styles}
+Following the manual of \Tikz, this package also predefines \iisw{abbreviations} (or aliases) of \Tikz's basic placement options for main nodes as follows:
+\label{abbreviations}
+
+\begin{tzsty}{}
+% preoccupied (alias) styles for main node options
+\tikzset{%
+ a/.style={above=#1},
+ b/.style={below=#1},
+ c/.style={centered=#1}, % centered, not center
+ l/.style={left=#1},
+ r/.style={right=#1},
+ al/.style={above left=#1},
+ ar/.style={above right=#1},
+ bl/.style={below left=#1},
+ br/.style={below right=#1},
+}
+\end{tzsty}
+
+By these abbreviations (or aliases), we mean that, with the |\tzplot| package, we can use these alias styles in the |\tikzpicture| environment as follows:
+
+\begin{tztikz}{}
+\draw (0,0) -- (1,0) node [ar] {line}; % [ar] = [above right]
+\end{tztikz}
+
+\paragraph{Layers}
+The |tzplot| package also defines graphic layers as follows:
+
+\begin{tzsty}{}
+\pgfdeclarelayer{background}
+\pgfdeclarelayer{behind}
+\pgfdeclarelayer{above}
+\pgfdeclarelayer{foreground}
+
+\pgfsetlayers{background,behind,main,above,foreground}
+\end{tzsty}
+Therefore, you can select the graphic layers in sequence: |background|, |behind|, |main|, |above|, and |foreground|.
+For example, you can change the layer of a straight line from |main| (default) to |background| as follows:
+
+\begin{tzcode}[listing only]{1}
+\begin{tikzpicture}
+\tzhelplines(4,3)
+ <tzplot macros>
+ <tikz macros>
+\begin{pgfonlayer}{background}
+ \tzline[blue](0,0)(3,1)
+\end{pgfonlayer}
+\end{tikzpicture}
+\end{tzcode}
+
+%%------------------------------------------------------------
+\section{How to read this document}
+
+In drawing graphs, too many factors are involved: line style, color, fill, label, positioning, shift, and so on.
+Almost all macros of this package have many arguments that control these factors.
+Some are mandatory and some are optional.
+Optional arguments are hidden when not used.
+
+The document has three essential parts: Part II, Part III, and Part IV.
+Part II introduces essential macros with only frequently used options.
+There are many options hidden in the macros introduced in Part II.
+Some macros are not introduced in Part II.
+Part III and IV describe all the features of all macros.
+
+You must get started with Part II.
+Part II is sufficient for drawing needs in most cases.
+
+Unless you are an experienced user of \Tikz, it is recommended to move on to Part III and Part IV once you become familiar with Part II. In the meantime, use Part III and Part IV for reference only. Use the list of contents and the index efficiently to find macros you need.
+
+
+%%==================================
+\chapter{Changes}
+
+%%------------------------------------------------------------
+\section{What's New}
+
+\subsection{New macros}
+
+New macros have been added.
+
+\begin{itemize}\tightlist
+\item |\tzfn'|: (swap version) inverse function of |\tzfn|
+\item |\tzfnofy|, |\tzfnofy'|: function of |\y|
+\item |\tzdeffn|, |\tzdeffnofy|: to define functions
+\item |\tzdefLFn|, |\tzdefLFnofy|: define linear functions
+\item |\tzLFn(')|, |\tzLFnofy(')|: linear functions
+\item |\tzLFnXpoint(*)|: linear function intersection points
+\item |\tzfnmin(')|, |\tzfnmax(')|: envelope curves
+%
+\listdivider
+\item |\tzfnarea(*)|, |\settzfnarealayer|, |\tzfnarealine(')|: to fill the area under graphs
+\item |\settzfnarealinestyle|
+\item |\tzpdfZ|, |\tzpdfN(*)|: probability density functions of a normal distribution
+\item |\tzprojs(*)|, |\tzprojsx(*)|, |\tzprojsy(*)|: multiple projection lines
+\item |\settzpathlayer|: |main| layer by default
+%
+\listdivider
+\item |\tzslope|, |\tzslopeat|
+\item |\settzslopelayer|, |\settzslopeatlayer|, |\settzslopeepsilon|
+%
+\listdivider
+\item |\tzlink(+)|, |\tzlinks(*)(+)|, |\settzlinkstyle|, |\settzpathstyle|
+\item |\tzedge(+)|, |\tzedges(+)|
+%
+\listdivider
+\item |\tznodes(*)|: multiple nodes
+\item |\tznodedots(*)|: multiple node dots
+\item |\tznoderectangle(*)|, |\tznodebox(*)|, |\tznodeoval(*)|: aliases
+%
+\listdivider
+\item |\tzring(*)|, |\tzcirclering(*)|
+\item |\tzellipsering(*)|, |\tzovalring(*)|
+\item |\tzrectanglering(*)|, |\tzframering(*)|, |\tzboxring(*)|
+\item |\tzbox(*)|
+%
+\listdivider
+\item |\tzpointangle|: angle between points
+\item |\tzanglemark(*)(')|, |\tzrightanglemark(*)|: angle marks
+\item |\tzangleresult|, |\tzangleONE|, |\tzangleTWO|: after |\tzanglemark|
+\item |\settzAAlinestyle|, |\settzanglelayer|, |\settzAAradius|, |\settzRAsize|.
+%
+\listdivider
+\item |\settzmidarrow|: to control middle arrow tips
+\item |\tzsnake|: snake lines
+%\item |\tzspy| % (not documented)
+%%%\item |\tzplotfile| % (not documented)
+\end{itemize}
+
+
+\subsection{Extending paths: \texttt{\bs tz<...>AtBegin} and \texttt{\bs<...>AtEnd}}
+
+\begin{itemize}\tightlist
+\item |\tztoAtBegin|, |\tztoAtEnd|, |\tztosAtBegin|, |\tztosAtEnd| (version 1)
+\item |\tztoAtBegin|, |\tztoAtEnd|, |\tztosAtBegin|, |\tztosAtEnd| (version 1)
+\item |\tzlineAtBegin|, |\tzlineAtEnd|, |\tzlinesAtBegin|, |\tzlinesAtEnd|
+\item |\tzlinkAtBegin|, |\tzlinkAtEnd|, |\tzlinksAtBegin|, |\tzlinksAtEnd|
+\item |\tzbezierAtBegin|, |\tzbezierAtEnd|
+\item |\tzparabolaAtBegin|, |\tzparabolaAtEnd|
+%
+\listdivider
+\item |\tzvfn(at)AtBegin|, |\tzvfn(at)AtEnd|
+\item |\tzhfn(at)AtBegin|, |\tzhfn(at)AtEnd|
+%
+\listdivider
+\item |\tzfnAtBegin|, |\tzfnAtEnd| (version 1)
+\item |\tzfnofyAtBegin|, |\tzfnofyAtEnd|
+\item |\tzLFnAtBegin|, |\tzLFnAtEnd|
+\item |\tzLfnofyAtBegin|, |\tzLFnofyAtEnd|
+\item |\tzfnminAtBegin|, |\tzfnminAtEnd|, |\tzfnmaxAtBegin|, |\tzfnmaxAtEnd|
+\item |\tzplotAtBegin|, |\tzplotAtEnd|, |\tzplotcurveAtBegin|, |\tzplotcurveAtEnd|
+\end{itemize}
+
+
+
+\subsection{New coordinates}
+
+\begin{itemize}\tightlist
+\item |(tzAAmid)|: angle arc midpoint, depending on |\tzanglemark|
+\item |(tzRAvertex)|: right angle mark vertex, depending on |\tzrightanglemark|
+\end{itemize}
+
+\subsection{Error messages}
+
+Some macros, called \iisw{semicolon version}s, accept any number of coordinates. You MUST indicate when the coordinate iteration ends with a \xem{semicolon} |;|. Without the semicolon, an error occurs with the \iisw{error message}:
+\begin{verbatim}
+! Package tzplot Error: You may have forgotten a semicolon here or above!
+\end{verbatim}
+
+Knowing two coordinates, you can use |\tzLFn| and related macros to graph a linear function through the two points without writing an explicit function.
+If you inadvertently try \xem{infinite} slopes, you will get an error with the \xem{error message}:
+\begin{verbatim}
+! Package tzplot Error: Perhaps you are trying an 'infinite slope' here or above!
+\end{verbatim}
+
+\subsection{Abridged strings to place labels for coordinates, dots, and points}
+\label{ss:string-replacement}
+
+In \Tikz, a label to a main node is placed by the |label| option. The syntax of the |label| option is |label={[<label opt>]<angle>:{<label>}}|.
+In \Tikz, The position of labels is specified by \xem{angles}. The positioning words like |above|, |below|, |below right|, and so on can be used and they are interpreted in \Tikz\ as the corresponding angles.
+
+\xem{Just to avoid frequent coding errors}, from the version 2, the |tzplot| package provides the \xem{abridged strings} |a|, |b|, |c|, |br|, and so on that you can use instead of angles. With the |tzplot| package, the user input |a| is replaced by |above|, |[b]| by |below|, |c| by |center| (\xem{not} |centered| for the main node option), |br| by |below right|, and similarly for other abridged strings.
+
+\remark This is just a \iisw{string replacement} that is not related to the function of \Tikz. By this we mean that we \xem{cannot use} these abridged strings to place labels, instead of angels, in the |tikzpicture| environment without using the related |\tz<...>| macros.
+
+The macros related to this issue are as follows:
+
+\begin{itemize}\tightlist
+\item dots: |\tzdot(s)|, |\tzcdots(s)|, |\tznodedot(s)|
+\item coordinates: |\tzcoor(s)|, |\tzcoorsquick|
+\item intersection points: |\tzXpoint|, |\tzvXpoint|, |\tzhXpoint|, |\tzLFnXpoint|
+\item plot coordinates: |\tzplot|, |\tzplotcurve|
+\item and their starred versions.
+\end{itemize}
+
+\subsection{New styles for middle arrow tips}
+
+Some styles for drawing the the \iisw{middle arrow tip}\xem{s} on a path are predefined.
+\begin{itemize}\tightlist
+\item |-->--|: (controllable) middle arrow tip
+ \begin{itemize}
+ \item \icmd{\settzmidarrow} controls the positions and styles of middle arrow tips
+ \end{itemize}
+\item |--o--|: the circle middle arrow tip
+\item |--x--|: the cross middle arrow tip
+\item |--/--|: the diagonal middle arrow tip
+\end{itemize}
+
+You can use these styles to draw middle arrow tips as follows:
+
+\begin{tztikz}{}
+\tzlines[-->--,red](0,0)(1,0)(3,1); % default=0.5
+\tzlines[-->--=0.7](0,0)(1,0)(3,3); % work like
+ \draw [-->--,red](0,0) -- (1,0) -- (3,1);
+ \draw [-->--=0.7](0,0) -- (1,0) -- (3,1);
+\end{tztikz}
+
+%%------------------------------------------------------------
+\section{Remarks}
+
+
+Some macros have been modified in order to add new features. This does not cause any harm to existing users.
+\begin{itemize}\tightlist
+\item |\tznode|: to add new option |<node.code>|
+ \begin{itemize}
+ \item This allows you to use full features (including |foreach|) of the \Tikz's |node| operation.
+ \end{itemize}
+\item |\tzframe|, |\tzcircle|, |\tzellipse|: to add new option |<code.append>|
+ \begin{itemize}
+ \item Now you can use |even odd rule| to draw rings with these macros.
+ \end{itemize}
+\end{itemize}
+
+\bigskip
+Some macros are ``experimental" and their syntax may change in the future.
+
+\paragraph{Styles of middle arrow tips in the \texttt{istgame} package}
+The package |istgame| to draw game trees predefines the styles of the middle arrow tips including |->-|, |-o->|, and |-x-|.
+\begin{itemize}\firmlist
+\item The style |->-| defined in |istgame| and |-->--| defined in |tzplot| are a little different from each other in the default values.
+ \begin{itemize}
+ \item Still you may want to use the style |->-| instead of |-->--|. In that case, you can do like this:
+ \begin{verbatim}
+ \tikzset{->-/.style={-->--}}
+ \end{verbatim}
+ \item \xem{However}, it is important to understand that changing the style to |->-| may override the style of |->-| defined in other package, depending on which package is loaded first.
+ \item The best way to use |->-| instead of |-->--| is to upload the |istgame| and follow the instruction of the manual.
+ \end{itemize}
+\item The styles |--o--| and |--x--| differ in definition and usage from the styles |-o-| and |-x-| of the |istgame| package.
+\end{itemize}
+
+
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-B-v1.0.1.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-B-v2.0.tex
index 6cd6e61fab..4dbb93b4e5 100644
--- a/graphics/pgf/contrib/tzplot/tzplot-doc-B-v1.0.1.tex
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc-B-v2.0.tex
@@ -68,7 +68,7 @@ You can change of the size of a dot by specifying the \xem{radius} of the circle
\begin{tztikz}{}
\tzcdot*[green](3,2)(3pt) % is an abbreviation for:
- \draw [fill,green] (0,0) circle (3pt);
+ \draw [fill,green] (3,2) circle (3pt);
\end{tztikz}
\begin{tzcode}{.3}
@@ -203,7 +203,7 @@ The starred version \icmd{\tzcoor*} prints a filled node dot at a specified coor
\subsection{\protect\cmd{\tzto(0,0)(4,2)}}
\label{ssi:tzto}
-\icmd{\tzto} connects two points with a line or a curve.
+\icmd{\tzto} connects two points with a line or a curve using the |to| operation of \Tikz.
\begin{tzcode}{.3}
\begin{tikzpicture}
@@ -222,8 +222,8 @@ The starred version \icmd{\tzcoor*} prints a filled node dot at a specified coor
\subsection{\protect\cmd{\tzbezier}}
\label{ssi:tzbezier}
-\icmd{\tzbezier} draws a B\'{e}zier curve with one or two control points.
-The style |tzshowcontrols|, which is predefined in the package, reveals the control point(s).
+\icmd{\tzbezier} draws a B\'{e}zier curve with \xem{one or two} control points from the first coordinate to the last coordinate.
+The style |tzshowcontrols| predefined in the package reveals the control point(s).
\begin{tzcode}{.3}
\begin{tikzpicture}
@@ -244,6 +244,7 @@ The style |tzshowcontrols|, which is predefined in the package, reveals the cont
\label{ssi:tzparabola}
\icmd{\tzparabola} draws a parabola controlled by several options of \Tikz's |parabola| operation.
+The macro \icmd{\tzparabola} accepts \xem{two or three} coordinate arguments to draw a parabola and the parabola bends at the second coordinate if it exists.
\begin{tztikz}{}
\tzparabola(0,0)(2,4) % works like:
@@ -311,7 +312,7 @@ When a \iisw{main node} with text in it is placed at a specific point, its \iisw
\end{tikzpicture}
\end{tzcode}
-The angles for label nodes can be replaced by the corresponding placement words. For example, the angle |90| degree for a label node can be replaced by |above|, |0| by |right|, |-135| by |below left|, and the like. Note that the angle expression \xem{cannot} be used for placing a main node.
+Instead of angles, you can use the corresponding placement words. In \Tikz, for example, |above| is replaced by |90| degree, |right| by |0| degree, |below left| by |-135| degree, and the like. Note that the angle expression \xem{cannot} be used for placing main nodes.
\xmedskip1
\remark
@@ -323,10 +324,11 @@ There is one exception: |\tzshoworigin|. |\tzshoworigin| can have a label, but i
(See Section \ref{s:tzshoworigin} on page \pageref{s:tzshoworigin} for more details.)
\end{itemize}
-\subsection{Abbreviations of \Tikz\ basic placement options: \texttt{a}, \texttt{b}, \texttt{l}, \texttt{r}, \texttt{ar}, \texttt{bl}, etc.}
+\subsection{Abbreviations of \Tikz\ basic placement option styles: \texttt{a}, \texttt{r}, \texttt{ar}, \texttt{bl}, etc.}
\label{ssi:abbreviations}
-You can use \isw{abbreviations} |a| for |above|, |r| for |right|, |bl| for |below left|, and so on to place \iisw{main node}\xem{s}.
+You can use \isw{abbreviations} (or aliases) |a| for |above|, |c| for |centered|, |r| for |right|, |bl| for |below left|, and so on to place \iisw{main node}\xem{s}.
+(Again, you \xem{cannot} use angels to place main nodes.)
\begin{tzcode}{.3}
\begin{tikzpicture}[font=\ttfamily,text=blue]
@@ -339,9 +341,6 @@ You can use \isw{abbreviations} |a| for |above|, |r| for |right|, |bl| for |belo
\end{tikzpicture}
\end{tzcode}
-\warning The abbreviations of \Tikz\ basic placement options \xem{cannot} be used to place \xem{labels}.
-To place labels, use \xem{angles} or the unabridged placement options of \Tikz\ such as |above| and |below left|.
-
%%------------------------------------------------------------
\section{Labeling dots and coordinates}
\label{si:labelingdots}
@@ -376,10 +375,7 @@ To change the size of a dot, you need to specify the last option |(<dimension>)|
\icmd{\tzcoor} can add a label to a coordinate. Just append the optional arguments |{<label>}| and |[<angle>]| after the two mandatory parenthesis arguments.
\remark
-\begin{itemize}
-\item \textsc{Remember} the order of arguments is |(<coor>)(<name>){<label>}[<angle>]|.
-\item It cannot be emphasized that |{<label>}| is placed by |[<angle>]| (by default |90| or |above|) and you \xem{cannot} use the abbreviations such as |a|, |l|, |ar|, and so forth to place labels for coordinates and dots.
-\end{itemize}
+\textsc{Remember} the order of arguments is |(<coor>)(<name>){<label>}[<angle>]|.
\begin{tzdef}{}
% syntax: simplified
@@ -479,6 +475,11 @@ To add text to a line or a curve drawn by \icmd{\tzto}, just specify the optiona
\end{tikzpicture}
\end{tzcode}
+\begin{tztikz}{}
+\tzto(0,0){route A}(3,0) % works like:
+ \draw (0,3) to node [above] {route A} (3,0);
+\end{tztikz}
+
The optional argument |{<text>}| \xem{following the second coordinate} can also be used as a name of the graph. By default, it is placed at the second coordinate.
\begin{tzcode}{.3}
@@ -512,7 +513,6 @@ You can add text to the curve drawn by |\tzbezier| using the optional arguments
\subsection{\protect\cmd{\tzparabola}}
\label{ssi:texttotzparabola}
-\icmd{\tzparabola} accepts two or three coordinate arguments.
You can add text to a parabola drawn by |\tzparabola| using the optional arguments |{<text>}| and |[<node opt>]| \xem{following the last coordinate}.
The text is placed at (by default) or around the last coordinate according to |[<node opt>]|.
@@ -532,19 +532,38 @@ The text is placed at (by default) or around the last coordinate according to |[
%%------------------------------------------------------------
\section{Linking many coordinates: Semicolon versions}
-\label{si:manycoordinates}
+\label{si:liknmanycoordinates}
\subsection{\protect\cmd{\tzlines}: Connected line segments}
\label{ssi:tzlines}
-\icmd{\tzlines} connects with line segments an arbitrary number of coordinates. The coordinate iteration must end with semicolon |;|.
+\icmd{\tzlines} connects with line segments an arbitrary number of coordinates. The coordinate iteration must end with a semicolon |;|.
Here, the \xem{semicolon} `|;|' indicates \xem{the end of repetition} of coordinates.
Let us call this kind of macro a \iisw{semicolon version} macro.
+\remark: Without the semicolon |;|, an error occurs with the the \iisw{error message}:
+ \begin{verbatim}
+ ! Package tzplot Error: You may have forgotten a semicolon here or above!
+ \end{verbatim}
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzlines[<opt>](<coor>)(<coor>)..repeated..(<coor>);
+% syntax: simplified
+\tzlines[<opt>]"<path name>"
+ (<coor>){<label>}[<angle>]..repeated..(<coor>){<label>}[<angle>];
+% defaults
+ []""(<m>){}[]..repeated..(){}[];
+% <m> means mandatory
+\end{tzdef}
+
+
\begin{tzcode}{.3}
\begin{tikzpicture}
\tzhelplines(4,3)
-\tzlines(0,0)(1,2)(3,0)(4,1)(2,2)(3,3)(0,3)(0,1)(4,2);
+\tzlines(0,0)(1,2)(3,0)
+ (4,1)(2,2)(3,3)
+ (0,3)(0,1)(4,2) ; % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -556,7 +575,7 @@ With the optional argument |{<text>}| followed by |[<node opt>]| \xem{in-between
\tzlines[dashed,->](0,0){up}[l]
(1,2){down}[r]
(3,0){up}[r]
- (4,1);
+ (4,1) ; % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -568,7 +587,7 @@ The optional argument |{<text>}| \xem{following the last coordinate} can be used
\tzlines[dashed,->](0,0){up}
(1,2){down}
(3,0){up}
- (4,1){Weight}[r,blue] ;
+ (4,1){Weight}[r,blue] ; % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -581,13 +600,13 @@ DO NOT FORGET to indicate when the repetition ends by typing a semicolon. So it
\icmd{\tzpolygon} draws closed line segments. |\tzpolygon| is also one of semicolon versions, meaning that it has to end with a semicolon |;|.
In fact, |\tzpolygon| is a closed version of |\tzlines|.
-The starred version |\tzpolygon*| does the same thing as |\tzpolgon| except for one thing.
-|\tzplygon*|, by default, fills the interior of the polygon with |black!50| with |fill opacity=.3| but with |text opacity=1|. (Changing the |fill opacity| is not an issue in this introduction. See Section \ref{s:tzpolygon} on page \pageref{s:tzpolygon} for more details.)
+The starred version |\tzpolygon*| does the same thing as |\tzpolygon| except for one thing.
+|\tzpolygon*|, by default, fills the interior of the polygon with |black!50| with |fill opacity=.3| but with |text opacity=1|. (Changing the |fill opacity| is not an issue in this introduction. See Section \ref{ss:tzpolygon} on page \pageref{ss:tzpolygon} for more details.)
\begin{tzcode}{.3}
\begin{tikzpicture}
\tzhelplines(4,3)
-\tzpolygon(1,3)(0,2)(2,0)(3,1)(4,2)(2,3);
+\tzpolygon(1,3)(0,2)(2,0)(3,1)(4,2)(2,3); % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -624,7 +643,8 @@ With |[draw]| option you can visualize the invisible path.
\begin{tzcode}{.3}
\begin{tikzpicture}
\tzhelplines(4,3)
-\tzpath[draw](1,3)(0,2)(2,0)(3,1)(4,2)(2,3);
+\tzpath[draw](1,3)(0,2)(2,0)
+ (3,1)(4,2)(2,3); % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -652,7 +672,18 @@ You can fill the interior of a path formed by |\tzpath| (after being closed) wit
-The starred version \icmd{\tzpath*} takes the default options |fill=black!50|, |fill opacity=.3| to fill the area.
+The starred version \icmd{\tzpath*} takes the default options |fill=black!50|, |fill opacity=.3|, and |text opacity=1| to fill the area.
+
+\begin{tzdef}{}
+% syntax: simplified
+\tzpath*[<opt>](<coor>){<label>}[<angle>]..repeated..(<coor>){<label>}[<angle>];
+% defaults
+ *[fill=black!50,fill opacity=.3,text opacity=1](<m>){}[]..repeated..(){}[];
+% <m> means mandatory
+\end{tzdef}
+
+The macros |\tzpath| and |\tzpath*| are much more flexible. See Section \ref{s:tzpath} on page \pageref{s:tzpath} for more details.
+
\begin{tzcode}{.3}
\begin{tikzpicture}
@@ -676,7 +707,6 @@ How to change the |fill opacity| with |\tzpath*| is not discussed in this introd
-
%%------------------------------------------------------------
\section{Many dots: Semicolon versions}
\label{si:manydots}
@@ -691,7 +721,7 @@ How to change the |fill opacity| with |\tzpath*| is not discussed in this introd
\begin{tikzpicture}
\tzhelplines(4,3)
\tzcdots(0,0)(1,1)(2,1)(3,2)(4,3);
-\tzcdots*[fill=red](0,3)(1,3)(2,3)(3,3)(4,2);
+\tzcdots*[red](0,3)(1,3)(2,3)(3,3)(4,2); % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -717,11 +747,23 @@ Each coordinate can be labeled by specifying the optional argument |{<label>}| f
\icmd{\tzdots} accepts an arbitrary number of coordinates to print circle node dots, but the repetition must be ended by |;| (semicolon version).
\icmd{\tzdots*} prints filled circle node dots.
+\begin{tzdef}{}
+% syntax: minimum
+\tzdots*(<coor>)(<coor>)..repeated..(<coor>);
+% syntax: simplified
+\tzdots*[<opt>](<coor>){<label>}[<angle>]..repeated..
+ (<coor>){<label>}[<angle>]; (<dot size>)
+% defaults
+ *[tzdot=2.4pt](<m>){}[]..repeated..(){}[]; (2.4pt)
+% <m> means mandatory
+\end{tzdef}
+
+
\begin{tzcode}{.3}
\begin{tikzpicture}
\tzhelplines(4,3)
\tzdots(0,0)(1,1)(2,1)(3,2)(4,3);
-\tzdots*[fill=red](0,3)(1,3)(2,3)(3,3)(4,2);
+\tzdots*[red](0,3)(1,3)(2,3)(3,3)(4,2); % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -748,7 +790,7 @@ Each coordinate can be labeled by specifying the optional argument |{<label>}| f
\label{ssi:tzcoors}
|\tzcoor| accepts \xem{a pair} of mandatory arguments in parentheses: |(<coor>)(<name>)|.
-\icmd{\tzcoors} accepts \xem{an arbitrary number of the pairs} to define multiple coordinates. It is a semicolon version, meaning that a semicolon is necessary to indicate when the coordinate repetition ends.
+The semicolon version macro \icmd{\tzcoors} accepts \xem{an arbitrary number of pairs} to define multiple coordinates. A semicolon `|;|' is necessary to indicate when the repetition ends.
\begin{tzcode}{.3}
\begin{tikzpicture}
@@ -758,11 +800,11 @@ Each coordinate can be labeled by specifying the optional argument |{<label>}| f
(2,1)(C)
(3,3)(D)
(4,2)(E);
-\tzlines(A)(B)(C)(D)(E);
+\tzlines(A)(B)(C)(D)(E); % semicolon
\end{tikzpicture}
\end{tzcode}
-The options |{<label>}| and |[<angle>]| following each pair of |(<coor>)| and |(<name>)| allow you to put |<label>| in the direction of |<angle>| around the coordinate.
+The options |{<label>}| and |[<angle>]| following \xem{each pair} of |(<coor>)| and |(<name>)| allow you to put |<label>| in the direction of |<angle>| around the coordinate.
Here, the repeating pattern is the quadruple |(<coor>)(<name>){<label>}[<angle>]|. The first two parenthesis arguments are mandatory and others are optional. The pattern is repeated until |\tzcoors| meets a semicolon |;|.
\begin{tzcode}{.3}
@@ -778,7 +820,7 @@ Here, the repeating pattern is the quadruple |(<coor>)(<name>){<label>}[<angle>]
\end{tzcode}
-The starred version \icmd{\tzcoors*} does one more thing: prints node dots.
+The starred version \icmd{\tzcoors*} does one more thing: to print node dots.
\begin{tzcode}{.3}
\begin{tikzpicture}
@@ -806,7 +848,7 @@ The starred version \icmd{\tzcoors*} does one more thing: prints node dots.
(1,1)(Best)
(2,1)(Case)
(3,3)(Done)
- (4,2)(End);
+ (4,2)(End); % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -834,7 +876,7 @@ The starred version \icmd{\tzcoorsquick*} prints node dots and automatically put
\subsection{\protect\cmd{\tzplot*}: Mark dots with \texttt{[mark=*]}}
\label{ssi:tzplot*}
-\icmd{\tzplot*} accepts an arbitrary number of coordinates to print bullets with the \xem{radius} (|mark size| in \Tikz) of |2pt|, which is the initial value in \Tikz. The repetition of coordinates must be ended by |;| (semicolon version).
+\icmd{\tzplot*} accepts an arbitrary number of coordinates to print bullets with the \xem{radius} (|mark size| in \Tikz) of |2pt|, which is the initial value in \Tikz. Since this is a semicolon version, the repetition of coordinates must be ended by |;|.
\begin{tzcode}{.3}
\begin{tikzpicture}
@@ -843,7 +885,7 @@ The starred version \icmd{\tzcoorsquick*} prints node dots and automatically put
(1,1)
(2,1)
(3,3)
- (4,2);
+ (4,2) ; % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -861,7 +903,7 @@ Each coordinate can be labeled by specifying the optional argument |{<text>}| fo
(1,1){Best}
(2,1){Case}
(3,3){Done}
- (4,2){END!}[[blue]0];(1.2pt)
+ (4,2){END!}[[blue]0] ; (1.2pt)
\end{tikzpicture}
\end{tzcode}
@@ -889,9 +931,8 @@ Each coordinate can be labeled by specifying the optional argument |{<text>}| fo
\subsection{\protect\cmd{\tzplot*[draw]}: Lines with dots}
-\label{ssi:tzplot*}
-\icmd{\tzplot*}|[draw]| prints bullets and draws line segments connecting specified coordinates. The repetition of coordinates must be ended by |;| (semicolon version).
+\icmd{\tzplot*}|[draw]| prints bullet marks at the specified coordinates and draws line segments connecting them. The repetition of coordinates must be ended by |;| (semicolon version).
\begin{tzcode}{.3}
\begin{tikzpicture}
@@ -908,7 +949,7 @@ Each coordinate can be labeled by specifying the optional argument |{<text>}| fo
\subsection{\protect\cmd{\tzplotcurve}: Curves with \texttt{[smooth,tension=1]}}
\label{ssi:tzplotcurve}
-\icmd{\tzplotcurve} plots coordinates with the option |[smooth,tension=1]|, resulting in a curve connecting an arbitrary number of coordinates.
+\icmd{\tzplotcurve} plots any number of coordinates with the default option |[smooth,tension=1]|, resulting in a \xem{curve} connecting the specified coordinates.
The repetition of coordinates must be ended by |;| (semicolon version).
\begin{tzcode}{.3}
@@ -918,7 +959,7 @@ The repetition of coordinates must be ended by |;| (semicolon version).
(1,1)
(2,1)
(3,3)
- (4,2){END!}[[blue]0];
+ (4,2){END!}[[blue]0] ; % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -944,7 +985,7 @@ You can change the tension value by specifying the optional argument |{<tension>
\tzcoor(.5,.5)(A)
\tzplotcurve[blue]{2}(1,3)(A)(4,0);
\tzplotcurve[thick](1,3)(A)(4,0); % default: tension=1
-\tzplotcurve[red]{.5}(1,3)(A)(4,0);
+\tzplotcurve[red]{.55}(1,3)(A)(4,0); % TikZ default
\tzplotcurve[dashed]{0}(1,3)(A)(4,0);
\end{tikzpicture}
\end{tzcode}
@@ -1030,7 +1071,7 @@ The starred version \icmd{\tzaxes*} is just to set the current state to a \iisw{
\end{tikzpicture}
\end{tzcode}
-\icmd{\tzshoworigin*} prints a node dot with the size of |2.4pt| (by default) at the origin.
+\icmd{\tzshoworigin*} prints a \xem{node dot} with the size of |2.4pt| (by default) at the origin.
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.5]
@@ -1052,12 +1093,12 @@ The starred version \icmd{\tzaxes*} is just to set the current state to a \iisw{
\end{tikzpicture}
\end{tzcode}
-Notice that, in the above example, the two axes intersect at |(7,4)| by the shift option |<7,4>|.
+Notice that, in the previous example, the two axes intersect at |(7,4)| by the shift option |<7,4>|.
\subsection{\protect\cmd{\tzaxisx}, \protect\cmd{\tzaxisy}}
\label{ssi:tzaxesx}
-\icmd{\tzaxisx} and \icmd{\tzaxisy} draw the x-axis and the y-axis, respectively.
+\icmd{\tzaxisx} draws an x-axis from |<x1>| to |<x2>|.
\begin{tzdef}{}
% syntax: simplified
@@ -1066,7 +1107,7 @@ Notice that, in the above example, the two axes intersect at |(7,4)| by the shif
[->,>=stealth]<0>{<m>}{<m>}{}[right]
\end{tzdef}
-|\tzaxisy| works similarly for the y-axis.
+\icmd{\tzaxisy} works similarly for the y-axis, except for the axis label position: |above| by default.
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.5]
@@ -1163,6 +1204,8 @@ You can change the length of tick marks, for example, like |(-2pt:3pt)| and |(-5
\end{tikzpicture}
\end{tzcode}
+You can see more details on |\tzticks| and its friends in Chaper \ref{c:ticks} on page \pageref{c:ticks}.
+
%%------------------------------------------------------------
\section{Projections on the axes}
@@ -1172,7 +1215,7 @@ You can change the length of tick marks, for example, like |(-2pt:3pt)| and |(-5
\subsection{\protect\cmd{\tzprojx(*)}, \protect\cmd{\tzprojy(*)}}
\label{ssi:tzprojx}
-\icmd{\tzprojx} draws a dotted (by default) line from a specified coordinate to its projection point on the x-axis and prints text around (|[below]| by default) the projection point.
+\icmd{\tzprojx} draws a \xem{dotted line} (by default) from a specified coordinate to its projection point on the x-axis and prints text around (|[below]| by default) the projection point.
|\tzprojy| works similarly but for the projection point on the y-axis.
@@ -1186,7 +1229,7 @@ You can change the length of tick marks, for example, like |(-2pt:3pt)| and |(-5
\end{tikzpicture}
\end{tzcode}
-\icmd{\tzprojx*} does one more thing. It prints a node dot at a specified coordinate. |\tzprojy*| works similarly but for the projection point on the y-axis.
+\icmd{\tzprojx*} does one more thing. It prints a node dot (with |\tzdot*|) at a specified coordinate. |\tzprojy*| works similarly but for the projection point on the y-axis.
\begin{tzcode}{.3}
@@ -1206,7 +1249,7 @@ You can change the length of tick marks, for example, like |(-2pt:3pt)| and |(-5
\label{ssi:tzproj}
\icmd{\tzproj} combines |\tzprojx| and |\tzprojy|.
-And \icmd{\tzproj*} combines |\tzprojx*| and |\tzprojy*|, so it suppresses tick labels.
+And \icmd{\tzproj*} combines |\tzprojx*| and |\tzprojy*|.
\begin{tzcode}{.3}
@@ -1214,7 +1257,7 @@ And \icmd{\tzproj*} combines |\tzprojx*| and |\tzprojy*|, so it suppresses tick
%\tzhelplines(4,3)
\tzaxes(4,3)
\tznode(3,2){$(x_1,x_2)$}[ar]
-\tzproj[<->,solid,draw=red](3,2){$x_1$}{$x_1$}
+\tzproj[<->,solid,draw=red](3,2){$x_1$}{$x_2$}
\tzproj*(1.5,2.5){$a$}[xshift=3pt,text=blue]{$b$}
\end{tikzpicture}
\end{tzcode}
@@ -1230,6 +1273,14 @@ And \icmd{\tzproj*} combines |\tzprojx*| and |\tzprojy*|, so it suppresses tick
\icmd{\tzfn}|{<fn of \x>}[<a:b>]| plots a function of $x$ over the specified domain $[a:b]$, which means that $a\leq x \leq b$.
Optionally, you can add |{<text>}| with |[<node opt>]| as shown in the following example.
+\begin{tzdef}{}
+% syntax: simplified
+\tzfn[<opt>]"<path name>"{<fn of \x>}[<a:b>]{<text>}[<node dot>]
+% defaults
+ []""{<m>}[<m>]{}[]
+% <m>: mandatory
+\end{tzdef}
+
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.7]
\tzhelplines(5,5)
@@ -1241,15 +1292,13 @@ Optionally, you can add |{<text>}| with |[<node opt>]| as shown in the following
\end{tikzpicture}
\end{tzcode}
+\begin{tztikz}{}
+\tzfn[dashed]{(\x-2)^2+1}[1:4]{$g(x)$}[r] % works like:
+ \draw [dashed] plot [domain=1:4] (\x,{(\x-2)^2+1}) node [right] {$g(x)$};
+\end{tztikz}
+
You can name a path formed by |\tzfn| by specifying the optional argument |"<path name>"| right before the mandatory curly brace argument |{<fn of \x>}|. The name of a path is used to find intersection points.
-\begin{tzdef}{}
-% syntax: simplified
-\tzfn[<opt>]"<path name>"{<fn of \x>}[<a:b>]{<text>}[<node dot>]
-% defaults
- []""{<m>}[<m>]{}[]
-% <m>: mandatory
-\end{tzdef}
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.7,font=\footnotesize]
@@ -1270,7 +1319,7 @@ If the curly brace mandatory argument consists of \xem{only a macro name} like |
\subsection{\protect\cmd{\tzhfnat}, \protect\cmd{\tzhfn}: Horizontal lines}
\label{ssi:tzhfn}
-\icmd{\tzhfnat} draws a horizontal line (the graph of a constant function) at $y$, by default, from left to right of the \ixxw{current bounding box}.
+\icmd{\tzhfnat} accepts a value of $y$ and draws a horizontal line (the graph of a constant function) at $y$ from left to right of the \ixxw{current bounding box}, by default, unless you specify the optional argument |[<from:to>]|.
\begin{tzdef}{}
% syntax
@@ -1284,11 +1333,11 @@ If the curly brace mandatory argument consists of \xem{only a macro name} like |
\begin{tzcode}{.3}
\begin{tikzpicture}
\tzhelplines(4,3)
-\tzhfnat{0}
-\tzhfnat[dashed]{1}[1:4]{Two}[l,at start]
+\tzhfnat{0} % value of y
+\tzhfnat[dashed]{1}[1:4]{Two}[l,at start] % value of y
\tzcoors(0,2)(A)(0,3)(B);
-\tzhfn[blue](A)[0:3]{Three}[b,near end]
-\tzhfn[->](B)[0:3]{Four}[r]
+\tzhfn[blue](A)[0:3]{Three}[b,near end] % coordinate
+\tzhfn[->](B)[0:3]{Four}[r] % cooridnate
\end{tikzpicture}
\end{tzcode}
@@ -1323,7 +1372,7 @@ If the curly brace mandatory argument consists of \xem{only a macro name} like |
\label{ssi:tzLFn}
\icmd{\tzLFn}|(<coor1>)(<coor2>)...| draws a \xem{linear function} passing through two points: |(<coor1>)| and |(<coor2>)|.
-|\tzLFn(<coor1>){<slope>}...| draws a linear function passing through one point, |(<coor1>)|, with the slope of |<slope>|. If both of the two coordinates are specified the option |{<slope>}| is ignored. The domain in the form of |[a:b]| is also a required argument.
+|\tzLFn(<coor1>){<slope>}...| draws a linear function passing through one point, |(<coor1>)|, with the slope of |<slope>|. If two coordinates and a slope are all specified the option |{<slope>}| is ignored. The domain in the form of |[a:b]| is also a required argument.
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.7,font=\footnotesize]
@@ -1354,11 +1403,7 @@ In this package, all macros (with a few exceptions) related to lines and curves
\begin{verbatim}
\tzline[<opt>]"<path name>"(<coor>)...
\tzlines... "<path name>"(<coor>)...
- \tzpolygon... "<path name>"(<coor>)...
- \tzpath... "<path name>"(<coor>)...
\tzto... "<path name>"(<coor>)...
- \tzparabola..."<path name>"(<coor>)...
- \tzbezier... "<path name>"(<coor>)...
\tzfn... "<path name>"{<fn of \x>}...
\tzLFn... "<path name>"(<coor>)...
and more...
@@ -1454,11 +1499,11 @@ The starred version \icmd{\tzhXpoint*} prints a node dot at the (first) intersec
\end{tikzpicture}
\end{tzcode}
-
+You can see more details on |\tzXpoint| and its friends in Chapter \ref{c:intersections} on page \pageref{c:intersections}.
%%------------------------------------------------------------
-\section{Tangent lines}
+\section{Tangent lines and secant lines}
\label{si:tangentlines}
\subsection{\protect\cmd{\tztangentat}}
@@ -1481,7 +1526,7 @@ The slope of a tangent line drawn by |\tztangentat| is just approximate.
The line is drawn on the |behind| layer, by default.
-You can also add some text next to the line by specifying the optional arguments |{<text>}| and |[<node opt>]|, after the domain.
+You can also add some text next to the tangent line by specifying the optional arguments |{<text>}| and |[<node opt>]|, after the domain.
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.7]
@@ -1521,6 +1566,8 @@ You can also add some text next to the line by specifying the optional arguments
\end{tzcode}
+See Section \ref{s:tangent} on page \pageref{s:tangent} for more details on |\tztangent| and |\tztangentat|.
+
\subsection{\protect\cmd{\tzsecantat}, \protect\cmd{\tzsecant}}
\label{ssi:tzsecant}
@@ -1556,7 +1603,7 @@ You can also add some text next to the line by specifying the optional arguments
You can extend or shorten a secant line by specifying the domain |[<from:to>]|, which is an optional argument.
If you specify the domain, |\tzsecant| draws a secant line over the domain.
-You can also add some text next to the line by specifying the optional arguments |{<text>}| and |[<node opt>]|.
+You can also add some text next to the secant line by specifying the optional arguments |{<text>}| and |[<node opt>]|.
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.7]
@@ -1569,6 +1616,7 @@ You can also add some text next to the line by specifying the optional arguments
\end{tikzpicture}
\end{tzcode}
+See Section \ref{s:secant} on page \pageref{s:secant} for more details on |\tzsecant| and |\tzsecantat|.
%%==================================
\chapter{Examples: Economics}
@@ -1643,6 +1691,7 @@ Here, we are using |\tzto|.
\begin{enumerate}[{Step} 1{:}]
\item Determine the size of the graph.
+\end{enumerate}
\begin{tzcode}{.3}
\begin{tikzpicture}[scale=.035,font=\scriptsize]
@@ -1651,10 +1700,11 @@ Here, we are using |\tzto|.
\end{tikzpicture}
\end{tzcode}
+\begin{enumerate}\addtocounter{enumi}{1}\renewcommand{\labelenumi}{{Step} \theenumi{:}}\firmlist
\item Define functions and plot them. And then, find an intersection point.
\item Draw the shifted supply curve and find new equilibrium point. And then, project the point on each axis.
\item To illustrate the social welfare loss (SWL), find a vertical intersection point of the original supply curve using new equilibrium point.
-\item Project the old equilibrium point and the vertical intersection point onto the $y$ axis and add text.
+\item Project both of the old equilibrium point and the vertical intersection point onto the $y$ axis and add text.
\item Fill the area of the social welfare loss with color.
\item Add text `SWL' at the appropriate place.
\end{enumerate}
@@ -1839,8 +1889,8 @@ Here, we are using |\tzto|.
\tzfn\Fk[0:9]{$y=f(k)$}[r] % path name=Fk
\tzfn\sFk[0:9]{$sf(k)$}[r] % path name=sFk
\tzfn\ndk[0:9]{$(n+\delta)k$}[r] % path name=ndk
-\tzXpoint*{sFk}{ndk}(E)[2]{$E$}[135] % 2nd X point
-\tzvXpoint*{Fk}(E-2)(YE) % 2nd X point
+\tzXpoint*{sFk}{ndk}(E)[2]{$E$}[135] % (E)=(E-2)
+\tzvXpoint*{Fk}(E)(YE) % 2nd X point
\tzproj(YE){$k^*$}{$y^*$}
\tzvXpointat*{Fk}{2}(A)
\tzvXpointat*{sFk}{2}(B)
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-C-v1.0.1.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-C-v2.0.tex
index 6b2dd29562..9afc4fc668 100644
--- a/graphics/pgf/contrib/tzplot/tzplot-doc-C-v1.0.1.tex
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc-C-v2.0.tex
@@ -128,6 +128,7 @@ Similarly for |tzdashed|.
\tzbbox(<coor1>)(<coor2>)
% defaults
(0,0)(<m>)
+% <m>: mandatory
\end{tzdef}
\begin{tztikz}{}
@@ -161,16 +162,16 @@ The \xem{radius} of the circle is |1.2pt|, by default.
% defaults
*[ solid,thin,tzcdot=1.2pt ]<>(<m>){}[](1.2pt)
% tzcdot is a predefined key (in this package).
-% (<m>): mandatory
+% <m>: mandatory
\end{tzdef}
Here, |(|\ixxw{<m>}|)| stands for a \xem{mandatory} argument. All others are optional arguments.
\paragraph{How to change the size}
-There are three ways to change the \xem{radius} of a circle dot drawn by |\tzcdot|.
+There are \textsc{Three Ways} to change the \xem{radius} of a circle dot drawn by |\tzcdot|.
\begin{enumerate}
-\item The simplest way is to use the last parenthesis option, like |\tzcdot(0,0)(3pt)|.
+\item The simplest way is to use the \xem{last parenthesis option}, like |\tzcdot(0,0)(3pt)|.
\begin{tztikz}{}
\tzcdot(0,0) % is an abbreviation of:
@@ -206,7 +207,7 @@ If both the |tzcdot| key-value and the last parenthesis option are used, the for
\end{tzcode}
\item
-Another way to change the radius is to use a macro, like |\settzcdotradius{3pt}|,
+Another way to change the radius is to use a macro, like |\settzcdotradius{3pt}|.
It is effective within the |tizpicture| environment unless changed by \icmd{\settzcdotradius} again.
\begin{tzcode}{.3}
@@ -223,8 +224,7 @@ It is effective within the |tizpicture| environment unless changed by \icmd{\set
\paragraph{How to label}
-You can add a label to a specified coordinate by adding the optional argument |{<label>}| immediately after |(<coor>)|. You can also change the |<label>| position by the option |[<angle>]|.
-(Note that you \xem{cannot} use the abbreviations such as |a|, |r|, |bl|, etc. to place label nodes.)
+You can add a label to a specified coordinate by adding the optional argument |{<label>}| immediately after |(<coor>)|. You can also change the |{<label>}| position by the option |[<angle>]|.
\begin{tztikz}{}
\tzcdot(0,0){A} % is an abbreviation of:
@@ -246,14 +246,14 @@ You can add a label to a specified coordinate by adding the optional argument |{
\end{tikzpicture}
\end{tzcode}
-The label position does not depend on the size of circle dots.
+In \Tikz, the distance from the coordinate center to a label does not depend on the size of circle dots.
\paragraph{How to change colors}
With the first optional argument |[<opt>]|, you can change the color of a dot.
You can also change the color of a label, as shown in the following example.
\begin{tzcode}{.3}
-% \tzcdot(*)
+% \tzcdot(*): color, fill
\begin{tikzpicture}
\draw [help lines] (0,0) grid (4,3);
\tzcdot(0,0){A}
@@ -266,7 +266,7 @@ You can also change the color of a label, as shown in the following example.
\paragraph{Shift}
-Dots can be shifted by specifying the optional argument |<shift coor>| immediately before |(<coor>)|. The empty shift option |<>| is not allowed.
+Dots can be shifted by specifying the optional argument |<shift coor>| immediately before |(<coor>)|. The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzcdot: shift
@@ -298,18 +298,17 @@ Dots can be shifted by specifying the optional argument |<shift coor>| immediate
\section{\protect\cmd{\tzcdots(*)}: Multiple circle dots}
\label{s:tzcdots}
-The macro \icmd{\tzcdots} takes an arbitrary number of coordinates as arguments to print multiple circle dots with the radius |1.2pt|, by default.
+The macro \icmd{\tzcdots} takes an \xem{arbitrary number of coordinates} as arguments to print multiple circle dots with the radius |1.2pt|, by default.
You need to indicate when the iteration of an arbitrary number of coordinates ends, by typing a \xem{semicolon} |;|.
Let us call this kind of macro a \iisw{semicolon version} macro.
\remark
\begin{itemize}
\item DO NOT FORGET to enter `|;|' at the end of iteration.
- \begin{itemize}
- \item Tokens such as `|!|' and `|#|' other than the open parenthesis `|(|' work like the semicolon `|;|' to indicate the end of iteration.
- But it is highly recommended to use `|;|' for consistency.
- \end{itemize}
-\item Without the semicolon |;|, the macro does nothing or a compile error occurs.
+\item Without the semicolon |;|, an error occurs with the the \iisw{error message}:
+ \begin{verbatim}
+ ! Package tzplot Error: You may have forgotten a semicolon here or above!
+ \end{verbatim}
\end{itemize}
@@ -330,13 +329,13 @@ The starred version |\tzcdots*| prints multiple filled dots.
\begin{tikzpicture}
\tzhelplines(4,3)
\tzcdots(0,0)(1,1)(2,1)(3,2)(4,0);
-\tzcdots*(0,3)(1,2)(2,2)(3,3)(4,3);
+\tzcdots*(0,3)(1,2)(2,2)(3,3)(4,3); % semicolon
\end{tikzpicture}
\end{tzcode}
\paragraph{How to label}
-Each coordinate can be followed by the optional arguments |{<label>}| and |[<angle>]| to label dots. So the repeating pattern is the triple |(<coor>){<label>}[<angle>]|.
+Each coordinate can be followed by the optional arguments |{<label>}| and |[<angle>]| to label dots. So the repeating pattern is the triple |(<coor>){<label>}[<angle>]|. In \Tikz, |<angle>| can have the label option like |<[label opt]angle>|.
\begin{tzcode}{.3}
% \tzcdots: label
@@ -346,14 +345,14 @@ Each coordinate can be followed by the optional arguments |{<label>}| and |[<ang
(1,1)
(2,1){C}[0]
(3,2){D}[-90]
- (4,0){E};
-\tzcdots*(0,3)(1,2){B}(2,2){C}[45](3,3)(4,3);
+ (4,0){E}[[red,draw]45];
+\tzcdots*(0,3)(1,2){B}[-135](2,2){C}[45](3,3)(4,3);
\end{tikzpicture}
\end{tzcode}
\paragraph{How to change the size of dots}
-There are three ways of changing the \xem{radius} of dots.
+There are \textsc{Three Ways} of changing the \xem{radius} of dots.
\begin{enumerate}
\item The simplest way is to use the \xem{last} parenthesis optional argument, \xem{after the semicolon}.
\item Another way is to use the \ixxw{tzcdot} key, like |\tzcdots[tzcdot=3pt]...|.
@@ -431,7 +430,7 @@ The starred version \icmd{\tzdot*} prints a filled dot \tikz \tzdot*(0,0);.
|\tzdot(*)| accepts one mandatory argument, denoted by |(|\ixxw{<m>}|)|. All others are optional.
-The style \ixxw{tzdot} is defined as follows:
+The style \ixxw{tzdot} is predefined in this package as follows:
\begin{tzsty}{}
% style: tzdot
@@ -457,7 +456,7 @@ There are \iscw{Three Ways} to change the \xem{diameter} (or |minimum size|) of
\node [tzdot,minimum size=2.4pt] at (0,0) {};
\end{tztikz}
-\item The simplest way is to use the \xem{last} parenthesis optional argument, like |\tzdot(0,0)(5pt)|, which yields the same result as in |\tzdot[tzdot=5pt](0,0)|.
+\item The simplest way is to use the \xem{last parenthesis optional argument}, like |\tzdot(0,0)(5pt)|, which yields the same result as in |\tzdot[tzdot=5pt](0,0)|.
If both options are used, the |tzdot| (or |minimum size|) option overwrites the last parenthesis option.
\begin{tzcode}{.3}
@@ -469,7 +468,7 @@ If both options are used, the |tzdot| (or |minimum size|) option overwrites the
\end{tikzpicture}
\end{tzcode}
-\item To change the size of all node dots drawn by |\tzdot*|, you can use the macro |\settzdotsize|. Its effect remains valid until the end of |tikzpicture| environment unless changed again.
+\item You can use the macro |\settzdotsize| to change the size (or diameter) of all node dots drawn by |\tzdot*|. It is effective within the |tikzpicture| environment unless changed again.
\begin{tzcode}{.3}
% \settzdotsize
@@ -487,8 +486,7 @@ If both options are used, the |tzdot| (or |minimum size|) option overwrites the
\label{ss:tzdot:label}
You can add a label to a specified coordinate by specifying the optional argument |{<label>}| immediately after the coordinate |(<coor>)|.
-
-You can also change the label position by the option |[<angle>]| following |{<label>}|.
+You can also change the label position by the option |[<angle>]| or |[<[label opt]angle>]| following |{<label>}|.
\begin{tztikz}{}
\tzdot(0,0){A}(3pt) % works like:
@@ -507,10 +505,18 @@ You can also change the label position by the option |[<angle>]| following |{<la
\tzdot(1,1){B}[0](8pt)
\tzdot*(2,1){C}[45](4pt)
\tzdot*(3,0){D}[-90](6pt)
-\tzdot(4,3){E}[-90](12pt)
+\tzdot(4,3){E}[[red,draw]br](12pt) % string replacement
\end{tikzpicture}
\end{tzcode}
+\paragraph{String replacement}
+(See also Section \ref{ss:string-replacement} on page \pageref{ss:string-replacement}.)
+\begin{itemize}\firmlist
+\item In \Tikz, to place labels you can use |<angle>| or the positional words such as |[above]|, |[below]|, |[center]| (\xem{not} |[centered]| for the main node option), |[below right]|, and so on.
+\item \xem{Just to avoid frequent coding errors}, from the version 2 of the |tzplot| package, you can use the abridged strings |[a]|, |[b]|, |[c]|, |[br]|, and so on.
+\item So |[[blue,draw]-45]|, |[[blue,draw]below right]|, and |[[blue,draw]br]| give the same result.
+\end{itemize}
+
Unlike |\tzcdot|, the |\tzdot|'s label position depends on the size of a circle node. In \Tikz\ jargon, |{<label>}| is in a \iisw{label node} for a \iisw{main node} that is a circle node with no text in it, so |<label>| moves accordingly as the main node dot gets bigger or smaller.
@@ -520,10 +526,10 @@ Unlike |\tzcdot|, the |\tzdot|'s label position depends on the size of a circle
With the first optional argument |[<node opt>]|, you can change of the color or shape of dots.
You can also change the label color using |[<label opt>]| as shown in the following example.
-\remark
-\begin{itemize}
+\remark
+\begin{itemize}\firmlist
\item |[<node opt>]| is for options of \xem{main nodes}, |[<label opt>]| is for options of \xem{label nodes}.
-\item |[<label opt>]| is used in the form of |[<[label opt]angle>]|.
+\item |[<label opt>]| is used in the form of |[<[<label opt>]angle>]|.
\end{itemize}
\begin{tzcode}{.3}
@@ -545,7 +551,7 @@ You can also change the label color using |[<label opt>]| as shown in the follow
\draw [help lines] (0,0) grid (4,3);
\tzdot[regular polygon](0,0){A}(10pt)
\tzdot*[red](1,0){\textbf{B}}[45]
-\tzdot*[red,fill=green,rectangle](2,1){green}[0](2*10pt)
+\tzdot*[red,green,rectangle](2,1){green}[0](2*10pt)
\tzdot[tzdot=4*7pt](3,2){big}[center]
\tzdot*[fill=red,star](4,3){D}(4*3pt)
\end{tikzpicture}
@@ -564,7 +570,7 @@ Dots can be shifted by specifying the optional argument |<shift coor>| immediate
\draw [help lines] (0,0) grid (4,3);
\tzdot[regular polygon](0,0){A}(10pt)
\tzdot*[red]<0,2>(1,0){\textbf{B}-shifted}[45] % shift
-\tzdot*[red,fill=green,rectangle](2,1){green}[0](2*10pt)
+\tzdot*[red,green,rectangle](2,1){green}[0](2*10pt)
\tzdot[tzdot=4*7pt]<1,-1>(3,2){big}[center] % shift
\tzdot*[fill=red,star](4,3){D}(4*3pt)
\end{tikzpicture}
@@ -611,7 +617,7 @@ circle \tzcdot \tzcdots \settzcdotradius [tzcdot=1.2pt] % radius
\end{tzcode}
\remark
-\begin{itemize}
+\begin{itemize}\firmlist
\item In \Tikz, a `node' is `not' affected by `scaling' unless the \Tikz\ option |transform shape| is used together.
|\tzdot| is also useful for labelling a large dot.
\begin{itemize}
@@ -634,13 +640,12 @@ So, you can apply the \threeways\ (on page \pageref{ss:threeways}) to change the
This is a \iisw{semicolon version} macro, with the repeating pattern |(<coor>){<label>}[<angle>]|, which means that you need to type a \xem{semicolon} `|;|' at the end of the coordinate repetition. The \xem{semicolon} says, ``\xem{The repetition ends here}."
\remark
-\begin{itemize}
+\begin{itemize}\firmlist
\item DO NOT FORGET to enter `|;|' at the end of iteration.
- \begin{itemize}
- \item Tokens such as `|!|' and `|#|' other than the open parenthesis `|(|' work like the semicolon `|;|' to indicate the end of iteration.
- But it is highly recommended to use `|;|' for consistency.
- \end{itemize}
-\item Without the semicolon |;|, the macro does nothing or a compile error occurs.
+\item Without the semicolon |;|, an error occurs with the error message:
+ \begin{verbatim}
+ ! Package tzplot Error: You may have forgotten a semicolon here or above!
+ \end{verbatim}
\end{itemize}
The starred version \icmd{\tzdots*} prints multiple filled node dots.
@@ -660,13 +665,14 @@ The starred version \icmd{\tzdots*} prints multiple filled node dots.
\begin{tikzpicture}
\tzhelplines(4,3)
\tzdots(0,0)(1,1)(2,1)(3,2)(4,0);
-\tzdots*(0,3)(1,2)(2,2)(3,3)(4,3);
+\tzdots*(0,3)(1,2)(2,2)(3,3)(4,3); % semicolon
\end{tikzpicture}
\end{tzcode}
\paragraph{How to label}
Each coordinate can be followed by the optional arguments |{<label>}| and |[<angle>]| to label dots. So the triple |(<coor>){<label>}[<angle>]| is the whole repeating pattern.
+(To avoid frequent coding errors, you can also use \xem{string replacement} instead of angles. See also Section \ref{ss:string-replacement} on page \pageref{ss:string-replacement}
\begin{tzcode}{.3}
% \tzdots: label
@@ -675,13 +681,14 @@ Each coordinate can be followed by the optional arguments |{<label>}| and |[<ang
\tzdots(0,0){A}
(1,1)
(2,1){C}[0]
- (3,2){D}[-90]
+ (3,2){D}[b] % string replacement
(4,0){E};
\tzdots*(0,3)(1,2){B}(2,2){C}[45](3,3)(4,3);
\end{tikzpicture}
\end{tzcode}
+
\paragraph{How to change the size of dots}
There are \threeways\ of changing the \xem{diameter} of node dots, as discussed in Section \ref{ss:threeways} on page \pageref{ss:threeways}.
@@ -730,7 +737,7 @@ You can also change the color of each label by |[<label opt>]|.
\remark
\begin{itemize}
\item |[<node opt>]| is the option of a \iisw{main node} and |[<label opt>]| is the option of a \iisw{label node}.
-\item |[<label opt>]| is used in the form of |[<[label opt]angle>]|, like |[[red]90]|.
+\item |[<label opt>]| is used in the form of |[<[<label opt>]angle>]|, like |[[red]90]|.
\item You can control all labels together using |every label/.style| as in the following examples:
\end{itemize}
@@ -763,7 +770,7 @@ You can also change the color of each label by |[<label opt>]|.
\paragraph{Shift} You can move the coordinates of dots by specifying |<shift coor>| option immediately before the first coordinate.
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzdots: shift
@@ -776,6 +783,7 @@ The empty shift option |<>| is not allowed.
\end{tzcode}
+
%%==================================
\chapter{Coordinates}
\label{c:coordinates}
@@ -829,7 +837,7 @@ You can put a label to a coordinate by specifying the optional arguments |{<labe
\paragraph{Shift}
You can move the coordinate by specifying the optional argument |<shift coor>| before |(<coor>)|.
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzcoor: shift
@@ -893,14 +901,14 @@ To change the size of dots, you can apply the \threeways\ (see Subsection \ref{s
\tzhelplines(4,3)
\tzcoor(1,1)(A){A}
\tzcoor*(2,1)(B){B}[0]
-\tzcoor*[red](1,2)(C){C}[180]
+\tzcoor*[red](1,2)(C){C}[[blue,draw]l] % abb
\tzcoor*[fill=none,tzdot=5pt](3,2)(D){D}[45]
\tzcoor*[blue,thick,fill=green](4,0)(E){E}[180](6pt)
\end{tikzpicture}
\end{tzcode}
\paragraph{Shift} The optional argument |<shift coor>| works just like in |\tzcoor|.
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzcoor*: shift
@@ -919,7 +927,7 @@ The empty shift option |<>| is not allowed.
\subsection{\protect\cmd{\tzcoors}}
\label{ss:tzcoors}
-The macro \icmd{\tzcoors} takes an arbitrary number of pairs of coordinates and their names as arguments.
+The macro \icmd{\tzcoors} takes an \xem{arbitrary number of pairs} of coordinates and their names as arguments.
For example, |\tzcoors(0,0)(A) (1,1)(B) (2,2)(C);| means that the coordinate |(0,0)| is represented by the name |(A)|, |(1,1)| by |(B)|, and |(2,2)| by |(C)|.
\begin{tzdef}{}
@@ -965,7 +973,7 @@ You can add a label to each specified coordinate by adding the optional argument
\end{tzcode}
By the option |<shift coor>|, all specified coordinates are shifted.
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzcoors
@@ -979,10 +987,14 @@ The empty shift option |<>| is not allowed.
\end{tikzpicture}
\end{tzcode}
+
\subsection{\protect\cmd{\tzcoors*}}
\label{ss:tzcoors*}
-The starred version \icmd{\tzcoors*} takes an arbitrary number of coordinates as arguments to print node dots at the coordinates. Full repeating pattern is |(<coor>)(<name>){<label>}[<angle>]|. It is required to type a \xem{semicolon} `|;|' to indicate when the iteration of coordinates ends.
+The starred version \icmd{\tzcoors*} takes an \xem{arbitrary number of pairs} of coordinates and names as mandatory arguments to print node dots at the coordinates.
+
+The full repeating pattern is |(<coor>)(<name>){<label>}[<angle>]|.
+It is required to type a \xem{semicolon} `|;|' to indicate when the iteration of coordinates ends.
\begin{tzdef}{}
% syntax: minimum
@@ -1003,7 +1015,7 @@ You can label each dot by specifying the optional arguments |{<label>}| and |[<a
\tzcoors*(0,0)(A)
(1,1)(B){B}
(2,1)(C)
- (3,3)(D){D}[0] ;
+ (3,3)(D){D}[0] ; % semicolon
\end{tikzpicture}
\end{tzcode}
@@ -1022,7 +1034,7 @@ You can apply the \threeways\ (on page \pageref{ss:threeways}) to change the dot
\end{tzcode}
By specifying the optional argument |<shift coor>| immediately before the first coordinate, you can move all specified coordinates.
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzcoors*: shift
@@ -1037,13 +1049,13 @@ The empty shift option |<>| is not allowed.
%%------------------------------------------------------------
-\section{\protect\cmd{\tzcoorsquick} and \protect\cmd{\tzcoorsquick*}}
+\section{\protect\cmd{\tzcoorsquick} and \protect\cmd{\tzcoorsquick*}: Semicolon versions}
\label{s:tzcoorsquick}
\subsection{\protect\cmd{\tzcoorsquick}}
\label{ss:tzcoorsquick}
-You can see the coordinate array at a glance using \icmd{\tzcoorsquick}, which displays specified names as text at the |center| of the coordinates, by default.
+You can see the coordinate array at a glance using \icmd{\tzcoorsquick}, which displays specified names as text at the |center| (by default) of the coordinates.
\begin{tzdef}{}
% syntax: minimum
@@ -1062,12 +1074,12 @@ You can see the coordinate array at a glance using \icmd{\tzcoorsquick}, which d
\tzcoorsquick(0,0)(A)
(1,1)(Ben)
(2,1)(Cate)
- (3,2)(Daniel);
+ (3,2)(Daniel); % semicolon
\end{tikzpicture}
\end{tzcode}
A label can be suppressed by the empty braces |{}|.
-You can move the coordinates by specifying |<shift coor>| immediately before the first coordinate. The empty option |<>| is not allowed.
+You can move the coordinates by specifying |<shift coor>| immediately before the first coordinate. The \xem{empty} option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzcoorsquick: shift, color
@@ -1108,7 +1120,7 @@ The starred version \icmd{\tzcoorsquick*} prints node dots on the coordinates an
A label can be suppressed by the empty braces |{}|.
You can change the dot size using the \threeways\ (on page \pageref{ss:threeways}).
-You can shift the coordinate by specifying |<shift coor>| immediately before the first coordinate. The empty shift option |<>| is not allowed.
+You can shift the coordinate by specifying |<shift coor>| immediately before the first coordinate. The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzcoorsquick*: size, color, shift
@@ -1123,16 +1135,17 @@ You can shift the coordinate by specifying |<shift coor>| immediately before the
\end{tzcode}
\remark
-The first optional argument of |\tzcoorsquick*| is for only dots.
+The first optional argument |[<dot opt>]| of |\tzcoorsquick*| is for only dots.
You can use the \Tikz\ option |every label/.style={...}| to control all the labels together.
You can also control each labels using |[<label opt>]| for each coordinate.
\begin{tzcode}{.3}
-% \tzcoorsquick*
-\begin{tikzpicture}[every label/.style={draw,red}]
+% \tzcoorsquick*: every label/.style
+\begin{tikzpicture}
\tzhelplines(4,3)
+\tikzset{every label/.style={draw,red}} %%
\tzcoorsquick*[fill=none,blue,very thick]
- (0,0)(A)(1,1)(B-1)(2,1)(C)(3,3)(D)[[blue]0];(8pt)
+ (0,0)(A)(1,1)(B-1)(2,1)(C)(3,3)(D)[[blue]-45];(8pt)
\end{tikzpicture}
\end{tzcode}
@@ -1176,7 +1189,8 @@ For example, |\tzgetxyval(3,2){\xval}{\yval}| results in |\xval=3| and |\yval=2|
\section{\protect\cmd{\tzplot} and \protect\cmd{\tzplot*}: Syntax}
\label{s:tzplot}
-\icmd{\tzplot} takes an arbitrary number of coordinates as arguments.
+\icmd{\tzplot} takes an \xem{arbitrary number of coordinates} as arguments. Internally, |\tzplot| uses the |plot coordinates| operation of |\Tikz|.
+
Each |(<coor>)| can be followed by the optional arguments |{<label>}| and |[<angle>]| to label the coordinate. This is a \xem{semicolon version} and the whole repeating pattern is the triple |(<coor>){<label>}[<angle>]|. It is required to type a semicolon `|;|' to indicate when the coordinate iteration ends.
The macro |\tzplot| draws connected line segments that link specified coordinates.
@@ -1193,8 +1207,13 @@ The macro |\tzplot| draws connected line segments that link specified coordinate
(){}[] ; (<mark size>) <code.append>
% defaults
[tzmark=2pt]{0}[smooth] <>"" (<m>){}[] ..repeated.. (){}[] ; (2pt) <>
+ - [<plot opt>] is [smooth] by default
+ - It can be changed to [smooth cycle]
\end{tzdef}
+The starred version |\tzplot*| prints dot marks at specified coordinates, without drawing line segments connecting the coordinates, by default.
+
+|\tzplot*| is equivalent to |\tzplot[draw=none,mark=*]|.
The style \ixxw{tzmark} is defined as follows:
\begin{tzsty}{}
@@ -1210,8 +1229,6 @@ The style \ixxw{tzmark} is defined as follows:
The value of |\tzmarksize| can be changed by the macro \icmd{\settzmarksize}, like |\settzmarksize{3pt}|.
-The starred version |\tzplot*| prints dot marks at specified coordinates, without drawing line segments connecting the coordinates, by default.
-
%%------------------------------------------------------------
@@ -1232,7 +1249,7 @@ You can change the mark color and mark style using the first bracket optional ar
\begin{tikzpicture}[scale=.8]
\tzhelplines(4,3)
\tzplot*(0,0)(1,1)(2,1)(3,3);
-\tzplot*[mark=o](0,3)(1,3)(2,2)(3,1);
+\tzplot*[mark=o](0,3)(1,3)(2,2)(3,1) ; % semicolon
\tzplot*[red](0,2)(1,2)(2,0)(3,2);
\end{tikzpicture}
\end{tzcode}
@@ -1243,11 +1260,11 @@ You can also add labels to specified coordinates with the optional arguments |{<
\begin{tztikz}{}
\tzplot*(0,0){A}[90](1,2)(2,2)(3,3){D}[0]; % works like:
\draw [draw=none,mark=*] plot coordinates { (0,0)(1,1)(2,2)(3,3) }
- node (0,0) [label={90:D}] {}
- node (3,3) [label={0:D}] {} ;
+ (0,0) node [label={90:A}] {}
+ (3,3) node [label={0:D}] {} ;
\end{tztikz}
-There are three ways to change the mark size.
+There are \textsc{Three Ways} to change the mark size.
\begin{enumerate}
\item The simplest way is to use the parenthesis optional argument |(<mark size>)|, \xem{immediately after the semicolon}.
@@ -1259,13 +1276,26 @@ There are three ways to change the mark size.
% \tzplot*: label, size
\begin{tikzpicture}[scale=.8]
\tzhelplines(4,3)
-\tzplot*(0,0){A}(1,1)(2,1)(3,3){D}[[blue]0];(1mm)
+\tzplot*(0,0){A}[-135](1,1)(2,1)(3,3){D}[[blue]0];(1mm)
\tzplot*[mark=o,tzmark=6pt](0,3)(1,3)(2,2)(3,1);
\settzmarksize{4pt}
\tzplot*[red](0,2){A}(1,2){B}(2,0){C}[[blue]0](3,2){D};
\end{tikzpicture}
\end{tzcode}
+\remark You can use strings such as |a|, |b|, |ar|, and so on, instead of angles, from the version 2 of the |tzplot| package. These strings are replaced by the corresponding positioning words such as |above|, |below|, |above right|, and so on. (See also Section \ref{ss:string-replacement} on page \pageref{ss:string-replacement} for more details.)
+
+\begin{tzcode}{.3}
+% \tzplot*: label: strings instead of angles
+\begin{tikzpicture}[scale=.8]
+\tzhelplines(4,3)
+\tzplot*(0,0){A}[bl](1,1)(2,1)(3,3){D}[[blue]r];(1mm)
+\tzplot*[mark=o,tzmark=6pt](0,3)(1,3)(2,2)(3,1);
+\settzmarksize{4pt}
+\tzplot*[red](0,2){A}(1,2){B}(2,0){C}[[blue]r](3,2){D};
+\end{tikzpicture}
+\end{tzcode}
+
With |\tzplot*|, you can draw line segments by giving the \Tikz's option |draw| in the first bracket optional argument, like |\tzplot*[draw]|.
\begin{tzcode}{.3}
@@ -1273,9 +1303,12 @@ With |\tzplot*|, you can draw line segments by giving the \Tikz's option |draw|
\begin{tikzpicture}[scale=1]
\tzhelplines(4,3)
\settzmarksize{3pt}
-\tzplot*[draw,mark=x](0,0)(1,1)(2,1)(3,3);
-\tzplot*[blue,mark=diamond*](0,3)(1,3)(2,2)(3,1);(10pt)
-\tzplot*[draw,dashed,red,mark=heart](0,2)(1,2)(2,0)(3,2);
+\tzplot*[draw,mark=x]
+ (0,0)(1,1)(2,1)(3,3);
+\tzplot*[blue,mark=diamond*]
+ (0,3)(1,3)(2,2)(3,1);(10pt)
+\tzplot*[draw,dashed,red,mark=heart]
+ (0,2)(1,2)(2,0)(3,2);
\end{tikzpicture}
\end{tzcode}
@@ -1286,26 +1319,56 @@ With |\tzplot*|, you can draw line segments by giving the \Tikz's option |draw|
\begin{tikzpicture}[yscale=.5]
\tzhelplines(4,3)
\settzmarksize{3pt}
-\tzplot*[draw,mark=x](0,0)(1,1)(2,1)(3,3);
-\tzplot*[blue,mark=diamond*](0,3)(1,3)(2,2)(3,1);(10pt)
-\tzplot*[draw,dashed,red,mark=heart](0,2)(1,2)(2,0)(3,2);
+\tzplot*[draw,mark=x]
+ (0,0)(1,1)(2,1)(3,3);
+\tzplot*[blue,mark=diamond*]
+ (0,3)(1,3)(2,2)(3,1);(10pt)
+\tzplot*[draw,dashed,red,mark=heart]
+ (0,2)(1,2)(2,0)(3,2);
\end{tikzpicture}
\end{tzcode}
\paragraph{Shift}
You can move specified coordinates using the option |<shift coor>| before the first coordinate (to be precise, immediately before the option |"<path name>"| if it exists).
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
+
\begin{tzcode}{.3}
% \tzplot*: shift
\begin{tikzpicture}
\tzhelplines(4,3)
-\tzplot*[draw] (1,3){A}(2,3)(3,3)(4,3){D}[0];
-\tzplot*[draw,red]<-1,-1>(1,3){A}(2,3)(3,3)(4,3){D}[0];
-\tzplot*[draw,blue]<0,-3>(1,3){A}(2,3)(3,3)(4,3){D}[0];
+\tzcoors(1,3)(A)(2,3)(B)(3,3)(C)(4,3)(D);
+\tzplot*[draw] (A){A}(B)(C)(D){D}[0];
+\tzplot*[draw,red]<-1,-1>(A){A}(B)(C)(D){D}[0];
+\tzplot*[draw,blue]<0,-3>(A){A}(B)(C)(D){D}[0];
\end{tikzpicture}
\end{tzcode}
+\paragraph{Extending path}
+You can use |<code.append>| as the last optional argument after a semicolon.
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzplot*[draw](0,0)(1,1)(2,2){C}(3,2){D};
+ < arc (-90:0:1cm) node [a] {ends here!}>
+\end{tikzpicture}
+\end{tzcode}
+
+\icmd{\tzplotAtBegin} and \icmd{\tzplotAtEnd} are also available.
+These work with |\tzplot*[draw]| and |\tzplot| to extend the paths at the beginning and at the end, respectively. Specifying |<code.append>| extends the path after |\tzplotAtEnd|.
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzplotAtBegin{(0,2) to [bend right]}
+\tzplotAtEnd{arc (90:0:1cm) node [b] {here?}}
+\tzplot*[draw,blue](0,0)(1,1)(2,2){C}(3,2){D};
+ <arc (-90:0:1cm) node [r] {ends here!}>
+\tzplot*[draw,red]<.5,1>(0,0)(1,1)(2,2){C}(3,2){D};
+ <arc (-90:0:1cm) node [r] {ends here!}>
+\end{tikzpicture}
+\end{tzcode}
%%------------------------------------------------------------
@@ -1315,11 +1378,14 @@ The empty shift option |<>| is not allowed.
|\tzplot| draws connected line segments connecting specified coordinates.
(By default, |tension=0|.)
+
\begin{tztikz}{}
\tzplot(0,0)(1,2)(2,2)(3,3); % works like:
\draw [tension=0] plot [smooth] coordinates { (0,0)(1,1)(2,2)(3,3) } ;
\end{tztikz}
+|\tzplot*| is equivalent to |\tzplot[draw=none,mark=*]|.
+
\paragraph{Options: draw, mark, mark options, etc.}
You can use the optional argument |[<opt>]| to change the style of lines and marks.
@@ -1345,7 +1411,7 @@ To close the path of |\tzplot| you can use the option |smooth cycle| in the firs
\tzplot[dashed,mark=o,smooth cycle]
(0,3)(1,3)(2,2)(3,1);
\tzplot[red,mark=*,mark options={blue}]
- [smooth cycle] %%
+ [smooth cycle] %% default tension=0
(0,1)(1,2)(2,0)(3,2);
\end{tikzpicture}
\end{tzcode}
@@ -1366,13 +1432,14 @@ To close the path of |\tzplot| you can use the option |smooth cycle| in the firs
\end{tzcode}
\paragraph{Shift} You can also move the line segments by specifying the option |<shift coor>| before the first coordinate (to be precise, immediately before the option |"<path name>"| if it exists).
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzplot: shift
\begin{tikzpicture}[scale=.8]
\tzhelplines(4,3)
-\tzplot <1,0>(0,0)(1,1)(2,1)(3,3){Da}[0];
+\tzcoors(0,0)(A)(1,1)(B)(2,1)(C)(3,3)(D);
+\tzplot <1,0>(A)(B)(C)(D){Da}[0];
\tzplot[mark=o] <1,0>(0,3)(1,3)(2,2)(3,1){Db}[0];
\tzplot*[draw,red]<1,0>(0,1)(1,2)(2,0)(3,2){Dc}[0];
\end{tikzpicture}
@@ -1409,6 +1476,8 @@ In order to \xem{extend a path}, formed by |\tzplot|, \xem{from the last coordin
\end{tikzpicture}
\end{tzcode}
+You can also use \icmd{\tzplotAtBegin} and \icmd{\tzplotAtEnd} to extend the path of |\tzplot| at the beginning and at end, respectively. Specifying |<code.append>| extends the path after |\tzploAtEnd|.
+
%%------------------------------------------------------------
\section{\protect\cmd{\tzplot}: Curves}
@@ -1427,7 +1496,7 @@ You can draw a curve with |\tzplot|, by specifying the optional argument |{<tens
\tzhelplines(4,3)
\tzplot[tension=1](0,0)(1,1)(2,1)(3,3);
\tzplot[mark=o] (0,3)(1,3)(2,2)(3,1); % tension=0
-\tzplot*[draw,red,smooth cycle]{1}
+\tzplot*[draw,red,smooth cycle]{1} % tension=1
(0,1)(1,2)(2,0)(3,2);
\end{tikzpicture}
\end{tzcode}
@@ -1448,7 +1517,7 @@ With |\tzplot|, you can draw bars or combs, using the \Tikz\ options |ybar|, |xb
\tzhelplines(4,3)
\tzplot*[draw](0,0)(1,1)(2,1)(3,3);
\tzplot[ybar](0,3)(1,3)(2,2)(3,1);
-\tzplot[dashed,red,mark=heart](0,1)(1,2)(2,0)(3,2);%(5pt)
+\tzplot[dashed,red,mark=heart](0,1)(1,2)(2,0)(3,2);
\end{tikzpicture}
\end{tzcode}
@@ -1496,7 +1565,7 @@ Do not use |<shift coor>| for plotting bars or combs to avoid getting unexpected
%\end{tzcode}
\item
-It can be a mess when using the \Tikz\ option |shift={(coor)}| with the type of mixed coordinates: native and named coordinates.
+It can be a mess when using the \Tikz\ option |shift={(coor)}| with the type of \xem{mixed} coordinates: \xem{native} and \xem{named} coordinates.
%\begin{tzcode}{.3}
%% \tzplot(*)
@@ -1523,7 +1592,7 @@ It can be a mess when using the \Tikz\ option |shift={(coor)}| with the type of
\icmd{\tzplotcurve} draws a curve connecting specified coordinates with |tension=1|, by default. Basically, it is equivalent to |\tzplot| with |[tension=1]|.
The starred version \icmd{\tzplotcurve*} draws a curve and displays marks |*|, by default.
-Basically, this is equivalent to |\tzpolot*[draw,tension=1]|.
+Basically, this is equivalent to |\tzplot*[draw,tension=1]|.
\begin{tzdef}{}
% syntax: minimum
@@ -1587,6 +1656,16 @@ To close the path of |\tzplotcurve|, you can use the \Tikz\ option |smooth cycle
\end{tikzpicture}
\end{tzcode}
+\begin{tzcode}{.3}
+% abridges strings: label position
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzplotcurve*[red,text=blue][smooth cycle]
+ (0,0)(1,2){B}[[red]l](2,2)(3,3)(4,1){E}[[draw]r];(3pt)
+\tzplotcurve*[smooth cycle](1,.5)(2,3)(3,2)(2,1)(3,1);
+\end{tikzpicture}
+\end{tzcode}
+
\paragraph{Tension}
You can change the value of |tension| (|tension=1| by default) by specifying the option |{<tension>}| before the coordinates or between the two bracket options if they exist.
@@ -1603,15 +1682,16 @@ You can change the value of |tension| (|tension=1| by default) by specifying the
\end{tzcode}
-\paragraph{Shift} Use the optional argument |<shift coor>| before the first coordinate (to be precise, immediately before |"<path name>"|, if exists).
+\paragraph{Shift} Use the optional argument |<shift coor>| before the first coordinate (to be precise, immediately before |"<path name>"|, if it exists).
The empty shift option |<>| is not allowed.
\begin{tzcode}{.3}
% \tzplotcurve(*): shift
\begin{tikzpicture}
\tzhelplines(4,3)
+\tzcoors(0,0)(A)(1,2)(B)(2,2)(C)(3,3)(D)(4,1)(E);
\tzplotcurve*[red,text=blue,smooth cycle]
- <0,1>(0,0)(1,2){B}(2,2)(3,3)(4,1){E}[0];(3pt) %%
+ <0,1>(A)(B){B}(C)(D)(E){E}[0];(3pt) %%
\tzplotcurve*[smooth cycle]
(1,.5)(2,3)(3,2)(2,1)(3,1);
\end{tikzpicture}
@@ -1646,6 +1726,21 @@ You can also use |<--cycle>| to \xem{close} the path \xem{with a straight line}
\end{tikzpicture}
\end{tzcode}
+You can also use \icmd{\tzplotcurveAtBegin} and \icmd{\tzplotcurveAtEnd} to extend the path of |\tzplotcurve| at the beginning and at the end, respectively.
+Specifying |<code.append>| extends the path after |\tzplotcurveAtEnd|.
+
+\begin{tzcode}{.3}
+% \tzplotcurve(*)
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzplotcurve*[red,text=blue]
+ (0,0)(1,2){B}(2,2)(3,3)(4,1){E}[0];
+\tzplotcurveAtBegin{(0,2) |-}
+\tzplotcurveAtEnd{arc (180:270:1cm) node {End!}}
+\tzplotcurve(1,.5)(2,3)(3,2)(2,1)(3,1);
+\end{tikzpicture}
+\end{tzcode}
+
\paragraph{\texttt{name path} for intersection points}
You can name the path of |\tzplotcurve| by specifying the option |"<path name>"| immediately before the first coordinate.
@@ -1672,8 +1767,8 @@ You can name the path of |\tzplotcurve| by specifying the option |"<path name>"|
\section{\protect\cmd{\tznode} and \protect\cmd{\tznode*}}
\label{s:tznode}
-The macro \icmd{\tznode} allows you to put text at specified coordinates.
-You can also optionally name a node so you can refer to the \iisw{node coordinate} later.
+The macro \icmd{\tznode} allows you to put \xem{text} at a specified \xem{coordinate}. |\tznode| expects two mandatory arguments: |(<coor>)| and |{<text>}|.
+You can also \xem{optionally} name a node so that you can refer to the \iisw{node coordinate} later.
The starred version \icmd{\tznode*} is equivalent to |\tznode[draw]|, which draws the perimeter of the specified node. The default node shape is a |rectangle|.
@@ -1681,9 +1776,9 @@ The starred version \icmd{\tznode*} is equivalent to |\tznode[draw]|, which draw
% syntax: minimal
\tznode(<coor>){<text>}
% syntax: full
-\tznode[<opt>]<shift coor>(<coor>)(<node name>){<text>}[<node opt>]
-% defaults
- []<>(<m>)(){}[]
+\tznode[<opt>]<shift coor>(<coor>)(<node name>){<text>}[<node opt>]<node.code>
+% defaults: two mandatory arguments
+ []<>(<m>)(){<m>}[]<>
\end{tzdef}
\begin{tztikz}{}
@@ -1698,13 +1793,13 @@ The starred version \icmd{\tznode*} is equivalent to |\tznode[draw]|, which draw
\node [draw] (A) at (0,0) [above right] {text};
\end{tztikz}
-|\tznode*| prints the perimeter of a node, which is a |rectangular| by default.
+|\tznode*| prints the perimeter of a node, which is a |rectangle| by default.
\begin{tzdef}{}
% syntax: minimal
\tznode*(<coor>){<text>}
% syntax: full
-\tznode*[<opt>]<shift coor>(<coor>)(<name>){<text>}[<node opt>]<code.append>
+\tznode*[<opt>]<shift coor>(<coor>)(<name>){<text>}[<node opt>]<node.code>
% defaults
*[draw]<>(<m>)(){}[]<>
\end{tzdef}
@@ -1728,17 +1823,14 @@ The starred version \icmd{\tznode*} is equivalent to |\tznode[draw]|, which draw
\end{tikzpicture}
\end{tzcode}
-\paragraph{Abbreviations} You can use \xem{abbreviations} such as |a| for |above|, |l| for |left|, |ar| for |above right|, |bl| for |below left|, and so on to indicate where the \xem{text} of a \xem{main node} is placed. (See also Section \ref{s:stylenames} on page \pageref{s:stylenames}.)
+\paragraph{Abbreviations} You can use \xem{abbreviations} (or aliases) such as |a| for |above|, |l| for |left|, |ar| for |above right|, |bl| for |below left|, and so on to indicate where the \xem{text} of a \xem{main node} is placed. (See also Section \ref{s:stylenames} on page \pageref{s:stylenames}.)
\begin{quote}
-\warning
-A \iisw{main node} is placed by the placement words, while a \iisw{label node} is placed by the placement words or the |<angle>| expression.
-\begin{itemize}
-\item You CANNOT use the abbreviations to place a \xem{label node} for \xem{points} or \xem{dots} or \xem{coordinates}.
-\item
-Instead, use |<angle>| or the original (unabridged) placement words such as |right| and |below left| to place |<label>|.
-\item
-Note that, on the other hand, you CANNOT use the |<angle>| option to place a \xem{main node}.
+\remark
+\begin{itemize}\firmlist
+\item A \iisw{label node} is placed by angles or the corresponding positioning words.
+\item A \iisw{main node} is placed by the placement words or their aliases.
+\item You cannot use angles to place main nodes.
\end{itemize}
\end{quote}
@@ -1790,15 +1882,144 @@ The empty shift option |<>| is not allowed.
\end{tzcode}
+\paragraph{Repetition: \texttt{foreach}}
+The \xem{last} optional argument |<node.code>| can be used to iterate over to place multiple nodes.
+
+\begin{tzcode}{.3}
+% \tznode(*): foreach, shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tznode(\x,0){\x}
+ < foreach \x in {1,2,3} >
+\tznode*<1,2>(\x,0){\x}[circle,blue,fill=yellow]
+ < foreach \x in {1,2,3} >
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tztikz}{}
+\tznode(\x,0){\x}<foreach \x in {1,2,3}> % works like
+ \node foreach \x in {1,2,3} at (\x,0) {\x};
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tznode: foreach
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tznode(\x,\y){$P_{\x\y}$}
+ < foreach \x in {1,2,3,4}
+ foreach \y in {1,2,3} >
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tznodes} and \protect\cmd{\tznodes*}: Semicolon versions}
+\label{s:tznodes}
+
+\icmd{\tznodes} accepts any number of \xem{mandatory} pairs of coordinates and their names to defined node coordinates at specified coordinates.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tznodes(<coor>)(<node name>)..repeated..(<coor>)(<node name>) ;
+% syntax: medimum
+\tznodes(<coor>)(<node name>){<text>}[<node opt>]..repeated..()(){}[] ;
+% syntax: full
+\tznodes[<every node opt>]<shift coor>
+ (<coor>)(<node name>){<text>}[<node opt>]..repeated..()(){}[] ;
+% defaults
+ [] <> (<m>)(<m>){}[]..repeated..()(){}[] ;
+ *[draw]<> (<m>)(<m>){}[]..repeated..()(){}[] ;
+\end{tzdef}
+
+Each pair of a coordinate and a node coordinate name can be followed by the optional arguments |{<text>}| and |[<node opt>]| to print node text.
+Since this is a semicolon version, it is required to type a semicolon |;| to indicate when the repetition ends.
+|\tznodes| works similarly to |\tzcoors|, but the former uses main nodes and the latter uses label nodes.
+
+The starred version \icmd{\tznodes*} is equivalent to |\tznodes[draw]|. That is, all node perimeters are drawn.
+
+\begin{tzcode}{.3}
+% \tznodes
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tznodes(0,0)(A){A}
+ (1,1)(B){B}
+ (2,1)(C){C}[r]
+ (3,2)(D){D}[b]
+ (4,0)(E){E}; % semicolon
+\tzlines(A)(B)(C)(D)(E);
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzdef}{}
+% syntax: minimum
+\tznodes(<coor>)(<node name>)..repeated..(<coor>)(<node name>) ;
+% syntax: medimum
+\tznodes(<coor>)(<node name>){<text>}[<node opt>]..repeated..()(){}[] ;
+% syntax: full
+\tznodes[<every node opt>]<shift coor>
+ (<coor>)(<node name>){<text>}[<node opt>]..repeated..()(){}[] ;
+% defaults
+ [] <> (<m>)(<m>){}[]..repeated..()(){}[] ;
+ *[draw]<> (<m>)(<m>){}[]..repeated..()(){}[] ;
+\end{tzdef}
+
+
+
+\begin{tzcode}{.3}
+% \tznodes*: retangle nodes (default)
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tznodes*(0,0)(A){A}
+ (1,1)(B){B}
+ (2,1)(C){C}[r]
+ (3,2)(D){D}[b]
+ (4,0)(E){E}; % semincolon
+\tzlines(A)(B)(C)(D)(E);
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tznodes*: ellipse nodes
+\begin{tikzpicture}
+\tzhelplines*(5,4)
+\tznodes*[ellipse,fill=yellow,text=blue]
+ (0,0)(A){Ann}
+ (1,1)(B){Bryn}
+ (2,0)(C){C}[r]
+ (3,2)(D){Donald}[b,font=\scshape]
+ (4,0)(E){End!}[rectangle,fill=green];
+\tzlines(A)(B)(C)(D)(E);
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tznodes: shift
+\begin{tikzpicture}
+\tzhelplines*(5,4)
+\tznodes*[ellipse,fill=yellow,text=blue]
+ <1,1>(0,0)(A){Ann}
+ (1,1)(B){Bryn}
+ (2,0)(C){C}[r]
+ (3,2)(D){Donald}[b,font=\scshape]
+ (4,0)(E){End!}[rectangle,fill=green];
+\tzlines(A)(B)(C)(D)(E);
+\end{tikzpicture}
+\end{tzcode}
+
+
+
%%------------------------------------------------------------
\section{\protect\cmd{\tznodedot(*)}}
\label{s:tznodedot}
-\icmd{\tznodedot} names a node and prints a circle node dot.
+\icmd{\tznodedot} names a node and prints a circle node dot (of the size |2.4pt|, by default).
|\tznodedot| is basically the same as |\tzdot|, except for one thing.
|\tznodedot| names a node.
-The starred version \icmd{\tznodedot*} prints a filled circle node dot (of the size |2.4pt|, by default), just like |\tzdot*|. But it optionally names a node.
+The starred version \icmd{\tznodedot*} prints a filled circle node dot (of the size |2.4pt|, by default), just like |\tzdot*|. But it \xem{optionally} names a node.
\begin{tzdef}{}
% syntax: medium
@@ -1807,15 +2028,22 @@ The starred version \icmd{\tznodedot*} prints a filled circle node dot (of the s
\tznodedot*[<opt>]<shift coor>
(<coor>)(<node name>){<label>}[<[label opt]angle>] (<dot size>)
% defaults
- *[]<>(<m>)(){}[](2.4pt)
+ [tzdot] <>(<m>)(){}[](2.4pt)
+ *[tzdot,fill]<>(<m>)(){}[](2.4pt)
\end{tzdef}
Since |\tznodedot(*)| prints a node dot, its |<label>| is placed by |<angle>|.
+\begin{tztikz}{}
+\tznodedot*(1,1)(A){Ace}[180] % works like:
+ \path (1,1) node (A) [tzdot,fill,label={180:Ace}] {} ;
+\end{tztikz}
+
\begin{tzcode}{.3}
% \tznodedot(*): label, color
\begin{tikzpicture}
\tzhelplines(4,3)
+\tznodedot(0,0)
\tznodedot(1,1)(A){A}[180]
\tznodedot*(2,3)(B){\textbf{B}}
\tznodedot[rectangle](4,1)(C){C}[[red]0]
@@ -1857,6 +2085,118 @@ The empty shift option |<>| is not allowed.
\end{tikzpicture}
\end{tzcode}
+You can use the abridges strings instead of angles. (See also Section \ref{ss:string-replacement} on page \pageref{ss:string-replacement}.)
+
+\begin{tzcode}{.3}
+% abridged strings: label position
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzdotsize{5pt}
+\tznodedot(1,1)(A){A}[[draw,blue]l]
+\tznodedot*(2,3)(B){B}
+\tznodedot[rectangle]<-1,-1>(4,1)(C){C}[br](10pt) %%
+\tzline[->](A)(B)
+\tzto[->,bend left,dashed](B)(C)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tznodedots(*)}: Semicolon versions}
+\label{s:tznodedots}
+
+\icmd{\tznodedots} accepts any number of \xem{mandatory} pairs of coordinates and their names to print multiple node circle dots at specified coordinates.
+It works just like |\tzdots|, for one exception. It names multiple node coordinates.
+Everything else is the same as in |\tzdots|.
+
+The starred version \icmd{\tznodedots*} prints filled node circle dots.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tznodedots(<coor>)(<node name>)..repeated..(<coor>)(<node name>) ;
+% syntax: full
+\tznodedots[<dot opt>]<shift coor>
+ (<coor>)(<node name>){<label>}[<[label opt]angle>]
+ ..repeated.. ()(){}[] ; (<dot size>)
+% defaults
+ [tzdot=2.4pt] <> (<m>)(<m>){}[] ..repeated.. ()(){}[] ; (2.4pt)
+ *[tzdot=2.4pt,fill]<> (<m>)(<m>){}[] ..repeated.. ()(){}[] ; (2.4pt)
+\end{tzdef}
+
+
+
+\begin{tzcode}{.3}
+% \tznodedots: label
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tznodedots(0,0)(A){A}
+ (1,1)(B)
+ (2,1)(C){C}[0]
+ (3,2)(D){D}[-90]
+ (4,0)(E){E} ; % semicolon
+\tzlines[red](A)(B)(C)(D)(E);
+\tznodedots*
+ (0,3)(A)(1,2)(B){B}(2,2)(C){C}[45](3,3)(D)(4,3)(E);
+\tzlines(A)(B)(C)(D)(E);
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+The simple first bracket option of |\tznodedots(*)| controls dots rather than labels.
+If you want to control all the labels, you can use \Tikz's |every label| style as follows:
+
+\begin{tzcode}{.3}
+% every label/.style
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\begin{scope}[every label/.style={draw,text=red}]
+\tznodedots*[green]
+ (0,0)(Ace){Ace}[[font=\LARGE\ttfamily]-90]
+ (2,1)(Bob){\textbf{Bob}}[[blue]135]
+ (3,2)(Cate){$C_1$\\$N_o$}[[align=center]0]
+ (4,0)(D){Done!};(5pt)
+\end{scope}
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\remark Comparison of connecting nodes and coordinates:
+
+
+\begin{tzcode}{.3}
+% connecting \tznodedots
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tznodedots(0,0)(A){A}
+ (1,1)(B)
+ (2,1)(C){C}[[red]-90]
+ (3,2)(D){D}[[draw,blue]a]
+ (4,0)(E){E}; (6pt)
+\tzlines[thick](A)(B)(C)(D)(E); % connects nodes
+\end{tikzpicture}
+\end{tzcode}
+
+While the previous example shows that |\tzlines| connects nodes,
+the following example shows that |\tzlines| connects coordinates.
+
+
+\begin{tzcode}{.3}
+% connecting \tzcoors
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*[fill=none](0,0)(A){A}
+ (1,1)(B)
+ (2,1)(C){C}[[red]-90]
+ (3,2)(D){D}[[draw,blue]a]
+ (4,0)(E){E}; (6pt)
+\tzlines[thick](A)(B)(C)(D)(E); % connects coordinates
+\end{tikzpicture}
+\end{tzcode}
+
@@ -1864,7 +2204,7 @@ The empty shift option |<>| is not allowed.
\section{\protect\cmd{\tznodeframe} and \protect\cmd{\tznodeframe*}}
\label{s:tznodeframe}
-\icmd{\tznodeframe} draws and names a rectangle node with text in it.
+\icmd{\tznodeframe} draws and \xem{optionally} names a rectangle node with (black, by default) text in it.
%\icmd{\tznoderectangle} and \icmd{\tznodebox} are aliases of |\tznodeframe|.
@@ -1872,9 +2212,14 @@ The empty shift option |<>| is not allowed.
% syntax:
\tznodeframe[<opt>](<coor>)(<node name>){<text>}[<node opt>]
% defaults
- []<>(<m>)(){}[text=black]
+ [draw]<>(<m>)(){}[text=black]
\end{tzdef}
+\begin{tztikz}{}
+\tznodeframe(2,1)(A){Here}[a] % works like
+ \node [draw,rectangle] (A) at (2,1) [above] {Here} ;
+\end{tztikz}
+
\begin{tzcode}{.3}
% \tznodeframe
@@ -1901,7 +2246,7 @@ The empty shift option |<>| is not allowed.
\end{tikzpicture}
\end{tzcode}
-The starred version |\tznodeframe*| fills the rectangle with color (|black!50| by default) with |fill opacity=.3| but with |text opacity=1|, by default.
+The starred version |\tznodeframe*| fills the rectangle with color (|black!50| by default) with |fill opacity=.3| and |text opacity=1|, by default.
%\icmd{\tznoderectangle*} and \icmd{\tznodebox*} are aliases of |\tznodeframe*|.
@@ -1930,18 +2275,23 @@ While |\tznode*| draws the perimeter of a node, |\tznodeframe*| fills a node wit
\end{tikzpicture}
\end{tzcode}
-You can change the |fill opacity| of |\tznodeframe*| by specifying the last curly brace option |{<fill opacity>}|. You can also move the node by specifying the |<shift coor>| option immediately before the coordinate.
-(The empty shift coor |<>| is not allowed.)
+\icmd{\tznoderectangle} and \icmd{\tznodebox} are aliases of |\tznodeframe|.
+\icmd{\tznoderectangle*} and \icmd{\tznodebox*} are aliases of |\tznodeframe*|.
+
+
+You can change the |fill opacity| of \icmd{\tznodeframe*} by specifying the last curly brace option |{<fill opacity>}|. You can also move the node by specifying the |<shift coor>| option immediately before the coordinate.
+(The \xem{empty} shift option |<>| is \xem{not allowed}.)
+
\begin{tzcode}{.3}
% \tznodeframe(*): opacity, shift
\begin{tikzpicture}
\tzhelplines[solid](4,3)
\tznodebox(0,0)
-\tznodeframe*(1,2)(A){A}{.1} % opacity
+\tznoderectangle*(1,2)(A){A}{.1} % opacity
\tznodeframe[fill=yellow](2,2)(B){B}
\tznodeframe*[red](3,2)(C){Cat}
-\tznodeframe[fill=green]<-1,-2>(4,2)(D){Dog} % shift
+\tznodebox[fill=green]<-1,-2>(4,2)(D){Dog} % shift
\tzto[->,bend left=45](A.north)(C.90)
\tzto[->,bend right=45,dashed](B.-135)(D.west)
\end{tikzpicture}
@@ -1967,7 +2317,7 @@ The default fill color is |black!50|. You can use the macro \icmd{\settzfillcolo
% syntax
\tznodecircle[<opt>]<shift coor>(<coor>)(<node name>){<text>}[<node opt>]
% defaults
- [circle]<>(<m>)(){}[text=black]
+ [draw,circle]<>(<m>)(){}[text=black]
\end{tzdef}
\icmd{\tznodecircle*} works just like |\tznodeframe*| but with a circle node.
@@ -1987,14 +2337,14 @@ The default fill color is |black!50|. You can use the macro \icmd{\settzfillcolo
\tzhelplines(4,3)
\tznodecircle(0,0)(A)
\tznodecircle(4,2)(B)[circle]
-\tzline[blue,thick](A)(B)
-\tznodecircle[scale=1.5](2,1){Node frame}
+\tzline[red,thick](A)(B)
+\tznodecircle[blue,scale=1.5](2,1){Node frame}
[label=180:Left, pin=-45:pin]
\end{tikzpicture}
\end{tzcode}
You can change the |fill opacity| of |\tznodecircle*| by specifying the last curly brace option |{<fill opacity>}| or using |\settzfillopacity|. You can also move the node by specifying the |<shift coor>| option immediately before the coordinate.
-(The empty shift coor |<>| is not allowed.)
+The \xem{empty} shift coordinate option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% opacity, shift
@@ -2036,6 +2386,7 @@ The starred version \icmd{\tznodeellipse*} works just like |\tznodeframe*| but w
(<m>)(){}[draw=black,text=black]{.3}
\end{tzdef}
+
\begin{tzcode}{.3}
% \tznodeellipse
\begin{tikzpicture}
@@ -2049,16 +2400,18 @@ The starred version \icmd{\tznodeellipse*} works just like |\tznodeframe*| but w
\end{tikzpicture}
\end{tzcode}
+\icmd{\tznodeoval} and \icmd{\tznodeoval*} are aliases of |\tznodeellipse| and |\tznodeellipse*|, respectively.
+
You can change the |fill opacity| of |\tznodeellipse*| by specifying the last curly brace option |{<fill opacity>}|. You can also move the node by specifying the |<shift coor>| option immediately before the coordinate.
-(The empty shift coor |<>| is not allowed.)
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% opacity, shift
\begin{tikzpicture}
\tzhelplines[solid](4,3)
\tznodeellipse(0,0)
-\tznodeellipse*(1,2)(A){A}{.1} % opacity
-\tznodeellipse[fill=yellow](2,2)(B){B}
+\tznodeoval*(1,2)(A){A}{.1} % opacity
+\tznodeoval[fill=yellow](2,2)(B){B}
\tznodeellipse*[red](3,2)(C){Cat}
\tznodeellipse[fill=green]<-1,-2>(4,2)(D){Dog} % shift
\tzto[->,bend left=45](A.north)(C.90)
@@ -2113,7 +2466,7 @@ You can use the first optional argument |[<opt>]| to control the line styles.
\begin{tikzpicture}
\tzhelplines(4,3)
\tzline[blue,->](0,0)(3,3)
-\tzline[*-o](0,2)(3,0)
+\tzline[<->](0,2)(3,0)
\tzline[dashed](1,2)(4,0)
\tzdots*(1,2)(4,0);
\end{tikzpicture}
@@ -2137,12 +2490,12 @@ With the options |{<text1>}[<node opt1>]| \xem{in-between} two coordinates, you
\begin{tikzpicture}
\tzhelplines(4,3)
\tzline(0,0){Above}(4,0) % default [above]
-\tzline[blue](0,1){Near end}[b,near end](4,1) % below
+\tzline[blue](0,1){Near end}[b,near end](4,1) % below
\tzline[->](0,2){Sloped}[sloped](3,3) % default [above]
\end{tikzpicture}
\end{tzcode}
-You can use the \xem{abbreviations} of \Tikz\ basic placement options such as |a| for |above|, |bl| for |below left|, and so on. (For more details, see page \pageref{abbreviations}.)
+You can use the \xem{abbreviations} (or aliases) of \Tikz\ basic placement options such as |a| for |above|, |bl| for |below left|, and so on. (For more details, see page \pageref{abbreviations}.)
\paragraph{Text at or around the last coordinate}
@@ -2150,7 +2503,7 @@ You can use the \xem{abbreviations} of \Tikz\ basic placement options such as |a
You can also add text at (by default) or around the second coordinate by specifying |{<text2>}| and |[<node opt2>]| immediately \xem{after} the second coordinate.
\begin{tztikz}{}
-\tzline[blue](0,1)(2,1){my line}[right] % works like:
+\tzline[blue](0,1)(2,1){my line}[r] % works like:
\draw [blue] (0,1) -- (2,1) node [right] {my line};
\end{tztikz}
@@ -2160,7 +2513,7 @@ You can also add text at (by default) or around the second coordinate by specify
\begin{tikzpicture}
\tzhelplines(4,3)
\tzline[blue,->](0,0)(3,3){\textbf{line A}}[r]
-\tzline[*-o](0,2)(3,0){line B}[red,draw=blue,b=1mm]
+\tzline[<->](0,2)(3,0){line B}[red,draw=blue,b=1mm]
\tzline[dashed](1,2){dashed}[sloped](4,0){line C}[ar]
\tzdots*(1,2)(4,0);
\end{tikzpicture}
@@ -2182,7 +2535,7 @@ You can also add text at (by default) or around the second coordinate by specify
%\begin{tikzpicture}
%\tzhelplines(4,3)
%\tzline[blue,->](0,0) (3,3) {A}[r]
-%\tzline[*-o] (0,2){b} <+>(3,-2){B}[r]
+%\tzline[<->] (0,2){b} <+>(3,-2){B}[r]
%\tzline[dashed] (1,2){c}<++>(3,-2){C}[r]
%\tzdots*(1,2)(4,0);
%\end{tikzpicture}
@@ -2195,7 +2548,7 @@ You can also add text at (by default) or around the second coordinate by specify
%Notice that using |<+>| and |<++>| makes no difference in |\tzline|.
%But it is not the case with the macro |\tzlines| that connects multiple coordinates.
-\subsection{Moving the line: \texttt{shift}}
+\subsection{Moving lines: \texttt{shift}}
\label{ss:tzline:shift}
You can move the line generated by |\tzline| by specifying the option |<shift coor>| before the first coordinate (to be precise, immediately before the option |"<path name>"|, which is put immediately before the first coordinate, if it exists).
@@ -2215,7 +2568,7 @@ The empty shift coor |<>| is not allowed.
-\subsection{Extending the path}
+\subsection{Extending paths}
\label{ss:tzline:extendingpath}
You can extend the path of |\tzline| from the last coordinate, by writing \Tikz\ code in the last optional argument |<code.append>|.
@@ -2230,8 +2583,22 @@ You can extend the path of |\tzline| from the last coordinate, by writing \Tikz\
\end{tikzpicture}
\end{tzcode}
+You can also use \icmd{\tzlineAtBegin} and \icmd{\tzlineAtEnd} to extend a path of |\tzline| at the beginning and at end, respectively.
+Specifying |<code.append>| extends the path after |\tzlineAtEnd|.
+
+\begin{tzcode}{.3}
+% \tzline: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzline[blue,->](0,0)(3,3)<arc(0:-60:1cm)>
+\tzlineAtBegin{(2,3) -|}
+\tzlineAtEnd{ arc (-90:90:.5) node [a] {here?} }
+\tzline[dashed,->](1,2)(4,0)
+ < to[bend left] ++(-4,1) node [a] {ends here!} >
+\end{tikzpicture}
+\end{tzcode}
-\subsection{Naming the path: Intersection points}
+\subsection{Naming paths: Intersection points}
\label{ss:tzline:namepath}
When you specify the option |"<path name>"| immediately before the first coordinate, it works like |[name path=<path name>]| in the option list of |[<opt>]|.
@@ -2285,7 +2652,7 @@ The \iisw{plus version} \icmd{\tzline+} takes the second coordinate |(<coor2>)|
\begin{tikzpicture}
\tzhelplines(4,3)
\tzline+[blue,->](0,1)(3,2) {A}[r]
-\tzline+[*-o] (0,2){b}(3,-2){B}[r]
+\tzline+[<->] (0,2){b}(3,-2){B}[r]
\tzline+[dashed]<1,0>(0,2){b}(3,-2){B}[r]
\end{tikzpicture}
\end{tzcode}
@@ -2296,6 +2663,7 @@ The \iisw{plus version} \icmd{\tzline+} takes the second coordinate |(<coor2>)|
\begin{tikzpicture}
\tzhelplines(4,3)
\tzline+[blue,->] "dem" (0,0)(3,3){demand}[r]
+\tzlineAtBegin{(0,1) to [bend left] }
\tzline+[dashed,->]"supp"(1,2)(3,-2){supply}[ar]
% intersection point
\tzXpoint*{dem}{supp}
@@ -2307,7 +2675,7 @@ The \iisw{plus version} \icmd{\tzline+} takes the second coordinate |(<coor2>)|
\section{Styles: \texttt{tzshorten} and \texttt{tzextend}}
\label{s:tzshorten}
-The styles \ixxw{tzshorten} and \ixxw{tzextend} are defined as follows.
+The styles \ixxw{tzshorten} and \ixxw{tzextend} are defined as follows:
\begin{tzsty}{}
% tzshorten
@@ -2382,7 +2750,7 @@ Use the first optional argument |[<opt>]| to control the style of the connected
% \tzlines: line style
\begin{tikzpicture}
\tzhelplines(4,3)
-\tzlines[blue,<->](0,1)(1,2)(3,1)(4,3);
+\tzlines[blue,<->](0,1)(1,2)(3,1)(4,3); % semicolon
\tzlines[dashed](0,0)(1,1)(2,1)(3,0);
\end{tikzpicture}
\end{tzcode}
@@ -2441,6 +2809,7 @@ You can move the connected line by specifying |<shift coor>| before the first co
\end{tikzpicture}
\end{tzcode}
+
\paragraph{Naming paths}
You can name the path of |\tzlines| by specifying the option |"<path name>"| immediately before the first coordinate.
@@ -2459,8 +2828,10 @@ You can name the path of |\tzlines| by specifying the option |"<path name>"| imm
\end{tikzpicture}
\end{tzcode}
-\paragraph{Extending the path}
-You can extend the path of |\tzlines| by writing \Tikz\ code in the last (even \xem{after the semicolon}) optional argument |<code.append>|.
+
+
+\paragraph{Extending paths}
+You can extend the path of |\tzlines| by writing \Tikz\ code in the \xem{last} (even \xem{after the semicolon}) optional argument |<code.append>|.
\begin{tzcode}{.3}
% \tzlines: <code.append>
@@ -2494,6 +2865,27 @@ You can close the path with a straight line by |<--cycle>|.
\end{tikzpicture}
\end{tzcode}
+You can also use \icmd{\tzlinesAtBegin} and \icmd{\tzlinesAtEnd} to extend a path of |\tzlines| at the beginning and at the end, respectively.
+Specifying |<code.append>| extends the path after |\tzlinesAtEnd|, if it exists.
+
+\begin{tzcode}{.3}
+% \tzlines: extending paths
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinesAtBegin{(1,3) to [bend right]}
+\tzlinesAtEnd{arc(0:90:1cm)}
+\tzlines[red,thick,<->,text=blue]
+ (0,1){Up}
+ (1,2){Down}[a,sloped]
+ (3,1){Up}
+ (4,3) ;
+\tzlinesAtEnd{to[bend right] ++(2,2) node{Here!}}
+\tzlines[dashed]
+ (0,0)(1,1)(2,1)(3,0){not here}[b];
+ < -| ++(-1,-1) node [draw,b] {Ends here!!} >
+\end{tikzpicture}
+\end{tzcode}
+
%%------------------------------------------------------------
\section{\protect\cmd{\tzlines+}: Relative coordinates: Semicolon version}
@@ -2507,6 +2899,8 @@ It is also required to enter a \xem{semicolon} to indicate when the coordinate i
\begin{tzdef}{}
+% syntax: minimum
+\tzlines+ (<coor>)(<coor>) ..repeat.. (<coor>) ;
% syntax: full
\tzlines+[<opt>]<shift coor>"<path name>"
(<coor>){<text>}[<node opt>]
@@ -2550,1582 +2944,21 @@ It is also required to enter a \xem{semicolon} to indicate when the coordinate i
-%%==================================
-\chapter{Connecting Points}
-\label{c:tzto}
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzto}: Two points}
-\label{s:tzto}
-
-\icmd{\tzto} connects two points with a straight or curved line, using \Tikz's |to| operation.
-So |\tzto| is more general than |\tzline|, which connects points only with a straight line.
-
-\begin{tzdef}{}
-% syntax: minimum
-\tzto(<coor>)(<coor>)
-% syntax: medium
-\tzto[<opt>](<coor>){<text>}[<node opt>](<coor>){<text>}[<node opt>]
-% syntax: full
-\tzto[<opt>]<shift coor>"<path name>"
- (<coor>){<text>}[<node opt>]
- (<coor>){<text>}[<node opt>]<code.append>
-% defaults
- []<>""(<m>){}[above](<m>){}[]<>
-\end{tzdef}
-
-
-\begin{tztikz}{}
-\tzto[dashed](1,1)(3,2) % works like:
- \draw [dashed] (1,1) to (3,2);
-\end{tztikz}
-
-
-\paragraph{Line styles}
-You can control line styles with the first optional argument |[<opt>]|.
-
-\begin{tzcode}{.3}
-% \tzto
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzto[blue,thick,->](0,1)(3,3)
-\tzto[out=0](0,0)(4,2)
-\tzto[bend right,dashed](2,0)(4,1)
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Adding text}
-
-You can add text \xem{next to the line} (|[midway,above]|, by default) by specifying the options |{<text>}| and |[<node opt>]| \xem{in-between} the two coordinates.
-
-\begin{tztikz}{}
-\tzto[->,bend right](1,1){A}[near start](3,2) % works like:
- \draw [->,bend right] (1,1) to node [near start] {A} (3,2);
-
-\tzto[->,bend right](1,1){A}[near start](3,2){B}[right] % works like:
- \draw [->,bend right] (1,1) to node [near start] {A}
- (3,2) node [right] {B};
-\end{tztikz}
-
-
-You can also add text \xem{at or around} the last coordinate by the options |{<text>}| and |[<node opt>]| \xem{immediately after} the last coordinate.
-
-\begin{tzcode}{.3}
-% \tzto: adding text
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzto[blue,thick,->](0,1){line}[sloped](3,3)
-\tzto[out=0](0,0){curve}[pos=.8](4,2){line B}[r]
-\tzto[bend right,dashed](2,0)(4,1){line C}[red,r]
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Shift}
-You can move the line by specifying the option |<shift coor>| before the first coordinate or immediately before the option |"<path name>"| if it exists.
-(The empty shift option |<>| is not allowed.)
-
-\begin{tzcode}{.3}
-% \tzto: shift
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzto[blue,thick,->]<0,1>(0,1){line}[sloped](3,3)
-\tzto[out=0]<1,1>(0,0){curve}[pos=.8](4,2){line B}[r]
-\tzto[bend right,dashed]<-1,0>(2,0)(4,1){line C}[red,r]
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Naming paths: Intersections}
-You can name the path of |\tzto| by specifying the option |"<path name>"| immediately before the first coordinate.
-
-\begin{tzcode}{.3}
-% \tzto: name path
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzto[bend right=45,blue,thick,->]"curveA"(1,3)(4,0)
-\tzto[out=0]"curveB"(0,0)(4,2){line B}[r]
-% intersection point
-\tzXpoint*{curveA}{curveB}
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Extending the path}
-You can extend the path of |\tzto| by writing \Tikz\ code in the last optional argument |<code.append>|.
-
-\begin{tzcode}{.3}
-% \tzto: extending path
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzto[bend right=45,blue,thick,->]
- (1,3)(4,0)<--([turn]0:1cm) node [b] {extended}>
-\tzto[out=0]
- (0,0)(4,2)<--([turn]0:1cm) node [r] {extended}>
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzto+}: Relative coordinates}
-\label{s:tzto+}
-
-The \iisw{plus version} \icmd{\tzto+} uses the second coordinate relative to the first coordinate.
-
-\xem{Everything else is the same as in} |\tzto|.
-
-\begin{tztikz}{}
-\tzto+(1,1)(3,2) % works like:
- \draw (1,1) to ++(3,2);
-\end{tztikz}
-
-\begin{tzcode}{.3}
-% \tzto+
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzto+[blue,thick,->](0,1){line}[sloped](3,2)
-\tzto+[out=0](0,0){curve}[pos=.8](4,2){line B}[r]
-\tzto+[bend right,dashed](2,0)(2,1){line C}[red,r]
-\end{tikzpicture}
-\end{tzcode}
-
-\begin{tzcode}{.3}
-% \tzto+
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzto+[bend right=45,blue,thick,->]
- (1,3)(3,-3)<--([turn]0:1cm) node [b] {extended}>
-\tzto+[out=0]
- (0,0)(4,2)<--([turn]0:1cm) node [r] {extended}>
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tztos}: Multiple points: Semicolon version}
-\label{s:tztos}
-
-\icmd{\tztos} takes an arbitrary number of coordinates as arguments to connect them by \Tikz's |to| operation. Since this is a \xem{semicolon version}, you need to enter a \xem{semicolon} to indicate when the coordinate iteration ends.
-
-\begin{tzdef}{}
-% syntax
-\tztos[<opt>]<shift coor>"<path name>"
- (<coor1>)[<to opt>]{<text>}[<node opt>]..repeated..()[]{}[] ; <code.append>
-% defaults
- []<>""(<m>)[]{}[]..repeated..()[]{}[]<>
-\end{tzdef}
-
-The quadruple |(<coor>)[<to opt>]{<text>}[<node opt>]| is
-the whole repeating pattern.
-Here, |[<to opt>]| is for the options of \Tikz's |to| operation such as |[bend right]|, |[bend left]|, |[bend left=<angle>]|, |[out=<angle>,in=<angle>]| and so on.
-
-\begin{tztikz}{}
-\tztos(0,0)(1,2)(3,1); % works like:
- \draw (0,0) to (1,2) to (3,1);
-\end{tztikz}
-
-\begin{tztikz}{}
-\tztos[blue] (0,0) [bend right] (1,2) [out=-60,in=45] (3,1); % works like:
- \draw[blue] (0,0) to [bend right] (1,2) to [out=-60,in=45] (3,1);
-\end{tztikz}
-
-\paragraph{How to connect coordinates}
-You can use the options of \Tikz's |to| operation to connect the coordinates with different types of curves.
-
-\begin{tzcode}{.3}
-% \tztos
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tztos[blue,<->](0,1)(1,2)(3,1)(4,3);
-\tztos[red,thick]
- (0,0)[bend right]
- (1,1)
- (2,1)[out=-135,in=45]
- (3,0);
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Adding text}
-You can add text next to lines or curves by specifying the options |{<text>}| and |[<node opt>]| \xem{in-between} coordinates or \xem{after} the option |[<to opt>]|, if it exists.
-You can also add text at or around the last coordinate by the last options |{<text>}| and |[<node opt>]|.
-
-\begin{tzcode}{.3}
-% \tztos: adding text
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tztos(0,1)[bend right]{A}
- (1,2) {Ben}[red,sloped,a]
- (3,1)[bend right]{Cate}[sloped,near end]
- (4,3) {Name}[draw,blue,a] ;
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Shift}
-You can move the line or curve of |\tztos|
-using the option |<shift coor>| before the first coordinate or immediately before the option |"<path name">|, if any.
-(The empty shift option |<>| is not allowed.)
-
\begin{tzcode}{.3}
-% \tztos: shift
+% \tzlines+: shift
\begin{tikzpicture}
-\tzhelplines(4,3)
-\tztos[blue,<->](0,1)(1,2)(3,1)(4,3);
-\tztos[red,thick]
- <1,1>(0,0)[bend right]
- (1,1)
- (2,1)[out=-135,in=45]
- (3,0);
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-\paragraph{\texttt{name path} for intersections}
-You can name the path of |\tztos| by specifying |"<path name>"| immediately before the first mandatory coordinate.
-
-\begin{tzcode}{.3}
-% \tztos: name path, intersection points
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tztos[blue,<->]"AA"(0,1)(1,2)(3,1)(4,3);
-\tztos[red,thick]
- <1,1>"BB"(0,0)[bend right]
- (1,1)
- (2,1)[out=-135,in=45]
- (3,0);
-% intersection points
-\tzXpoint*{AA}{BB}(X)
-\tzdot(X-2)(4pt)
-\end{tikzpicture}
-\end{tzcode}
-
-
-\paragraph{Extending paths}
-You can extend the path of |\tztos| from the last coordinate,
-by writing \Tikz\ code in the last (after the semicolon) optional argument |<code.append>|.
-
-\begin{tzcode}{.3}
-% \tztos
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tztos[blue,<->](0,1)(1,2)(3,1)(4,3);<--cycle>
-\tztos[red,thick]
- (0,0)[bend right]
- (1,1)
- (2,1)[out=-135,in=45]
- (3,0); < to ([turn]0:1.5cm) >
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tztos+}: Relative coordinates: Semicolon version}
-\label{s:tztos+}
-
-The \iisw{plus version} \icmd{\tztos+} takes each coordinate (except the first coordinate) relative (with |++|) to the previous coordinate.
-
-\xem{Everything else is the same as in} |\tztos|.
-
-\begin{tzcode}{.3}
-% \tztos+
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tztos+[blue,<->](0,1)(1,1)(2,-1)(1,2);<--cycle>
-\tztos+[red,thick]
- (0,0)[bend right]
- (1,1)
- (1,0)[out=-135,in=45]
- (1,-1); < to ([turn]0:1.5cm) >
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%==================================
-\chapter{Filling Area}
-\label{c:fillingarea}
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzpath}: Semicolon version}
-\label{s:tzpath}
-
-
-\icmd{\tzpath} creates a path connecting an arbitrary number of coordinates, but it does not stroke the path. You can visualize the path with |\tzpath[draw]|.
-Since |\tzpath| is a \iisw{semicolon version} macro, you need to enter a \xem{semicolon} `|;|' to indicate where the coordinate iteration ends.
-
-
-\begin{tzdef}{}
-% syntax: minimal
-\tzpath (<coor>)(<coor>) ..repeated.. (<coor>) ;
-% syntax: full
-\tzpath{<path style>}[<opt>]<shift coor>"<path name>"
- (<coor>)[<path style>]{<text>}[<node opt>]
- ..repeated.. ()[]{}[] ; {<fill opacity>} <code.append>
-% defaults: \tzpath
- {to}[]<>"" (<m>)[]{}[] ..repeated.. ()[]{}[] ; {}<>
-\end{tzdef}
-
-The main purpose of |\tzpath| is to fill an enclosed area with color or pattern.
-You can use |\tzpath[fill]| or |\tzpath[pattern=<...>]| to do it.
-
-
-\paragraph{Path construction operation}
-(If you are not an experienced user of \Tikz\, just skip this part.)
-
-|\tzpath| is similar to |\tztos|, but it is more flexible in constructing paths.
-|\tzpath| allows you to choose how to construct a path using the |[<path style>]| option \xem{in-between} coordinates. \xem{Path extension operation} can be selected from `|--|', `|to|', `\verb+|-+', `\verb+-|+', etc.
-You can use \xem{the first brace option} |{<path style>}| to change all the |<path style>| in-between coordinates.
-
-
-\begin{tzcode}{.3}
-% \tzpath: path construction
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzpath[draw](0,1)(1,2)[-|](3,1)(4,3);
-\tzpath[draw]
- (0,0)[to[bend right]]
- (1,1)
- (2,1)[to[out=-135,in=45]]
- (3,0);
-\end{tikzpicture}
-\end{tzcode}
-
-The default path style is `|to|' and can also be changed by \icmd{\settzpathstyle}, like, for example, |\settzpathstyle{--}|. The effect remains valid until the end of |tikzpicture| environment unless changed again.
-
-\begin{tzcode}{.3}
-% \tzpath: \settzpathstyle
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\settzpathstyle{to[bend right]}
-\tzpath[draw](0,1)(1,2)[-|](3,1)(4,3);
-\tzpath[draw]
- (0,0)[to[bend right]]
- (1,1)
- (2,1)[to[out=-135,in=45]]
- (3,0);
-\end{tikzpicture}
-\end{tzcode}
-
-You can extend the path of |\tzpath| by writing \Tikz\ code in the last (after the semicolon) optional argument |<code.append>|.
-So |<--cycle>| closes the path with a straight line.
-
-\begin{tzcode}{.3}
-% \tzpath: <code.append>
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzpath[draw](0,1)(1,2)[-|](3,1)(4,3);
- < to [bend right=60] (0,1) >
-\tzpath[fill]
- (0,0)[to[bend right]]
- (1,1)
- (2,1)[to[out=-135,in=45]]
- (3,0); <--cycle>
-\end{tikzpicture}
-\end{tzcode}
-
-\section{\protect\cmd{\tzpath*}: Semicolon version}
-\label{s:tzpath*}
-
-The starred version \icmd{\tzpath*} additionally fills the interior of |\tzpath| with |black!50| with |fill opacity=.3| and |text opacity=1|, by default.
-
-|\tzpath*| works like |\tzpath[fill=black!50,fill opacity=.3,text opacity=1]|.
-You can change the defaults by \icmd{\settzfillcolor} and \icmd{\settzfillopacity}.
-
-\begin{tzdef}{}
-% syntax: minimal
-\tzpath*(<coor>)(<coor>) ..repeated.. (<coor>) ; {<fill opacity>}
-% syntax: full
-\tzpath*{<path style>}[<opt>]<shift coor>"<path name>"
- (<coor>)[<path style>]{<text>}[<node opt>]
- ..repeated.. ()[]{}[] ; {<fill opacity>} <code.append>
-% defaults: \tzpath*
- *{to}[fill=black!50,fill opacity=.3,text opacity=1]<>""
- (<m>)[]{}[] ..repeated.. ()[]{}[] ; {.3}<>
-\end{tzdef}
-
-
-\paragraph{Filling the interior}
-
-You can optionally change the opacity of fill color using the \Tikz\ option |fill opacity|.
-
-\begin{tzcode}{.3}
-% \tzpath: fill, fill opacity
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzline[red,very thick](0,3)(4,0)
-\tzpath[fill](0,0)(3,1)(2,3)(0,2); % default opacity=1
-\tzpath[fill,green,fill opacity=.5]
- <1,-1>(0,0)(3,1)(2,3)(0,2);
-\end{tikzpicture}
-\end{tzcode}
-
-You can also change the fill opacity by specifying the \xem{last} curly brace optional argument |{<fill opacity>}|, \xem{after the semicolon}.
-
-\begin{tzcode}{.3}
-% \tzpath*
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzline[red,very thick](0,3)(4,0)
-\tzpath*(0,0)(3,1)(2,3)(0,2);
-\tzpath*[fill=green]
- <1,-1>(0,0)(3,1)(2,3)(0,2); {.5} %%
-\end{tikzpicture}
-\end{tzcode}
-
-You can also use the macros |\settzfillcolor| and |\settzfillopacity| to change the defaults.
-The effect remains valid until the end of the |tikzpicture| environment, unless changed again.
-
-\begin{tzcode}{.3}
-% \tzpath*: \settzfillcolor
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\settzfillcolor{red}
-\tzpath*[blue](0,1)(1,2)[-|](3,1)(4,3);
- < to [bend right=60] (0,1) >
-\tzpath*
- (0,0)[to[bend right]]
- (1,1)
- (2,1)[to[out=-135,in=45]]
- (3,0); <--cycle>
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzpath+} and \protect\cmd{\tzpath*+}: Relative coordinates: Semicolon versions}
-\label{s:tzpath+}
-
-The \iisw{plus version} \icmd{\tzpath+} uses each coordinate (except for the first coordinate) relative (with |++|) to the previous coordinate.
-
-\xem{Everything else is the same as in} |\tzpath|.
-
-\icmd{\tzpath*+} is simply the plus version of |\tzpath*|.
-
-\begin{tzcode}{.3}
-% \tzpath+
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzline[red,very thick](0,3)(4,0)
-\tzpath+[pattern=bricks,preaction={fill=brown}]
- (0,0)(3,1)(-1,2)(-2,-1);
-\tzpath+[pattern=north east lines,opacity=.5]
- <1,-1>(0,0)(3,1)(-1,2)(-2,-1);
-\end{tikzpicture}
-\end{tzcode}
-
-\begin{tzcode}{.3}
-% \tzpath*+
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzline[red,very thick](0,3)(4,0)
-\tzpath*+(0,0)(3,1)(-1,2)(-2,-1);
-\tzpath*+[fill=green]
- <1,-1>(0,0)(3,1)(-1,2)(-2,-1); {.5} %%
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%=======================================
-%%==================================
-\chapter{Curves}
-\label{c:curves}
-
-There are many ways to draw curves.
-
-%%-----------------------------------
-%%------------------------------------------------------------
-\section{B\'{e}zier curves}
-\label{s:beziercurves}
-
-\icmd{\tzbezier} draws a B\'{e}zier curve with one or two control points.
-
-\subsection{\protect\cmd{\tzbezier}}
-\label{ss:tzbezier}
-
-\begin{tzdef}{}
-% syntax: minimal
-\tzbezier(<start-coor>)(cntl-coor>)(<last-coor>)
-\tzbezier(<start-coor>)(cntl-coor>)(<cntl-coor>)(<last-coor>)
-% syntax: full
-\tzbezier[<draw opt>]<shift coor>"<name path>"
- (<start-coor>)(cntl-coor>)(<cntl-coor>)(<last-coor>)
- {<text>}[<node opt>]<code.append>
-% defaults
- []<>""(<m>)(<m>)()(<m>){}[]<>
-\end{tzdef}
-
-\paragraph{Control points}
-
-You can specify one or two control points, |(<cntl-coor>)|.
-So |\tzbezier| accepts three or four coordinates as arguments.
-
-\begin{tztikz}{}
-% three coordinates: one control point
-\tzbezier(0,1)(1,0)(4,3) % works like:
- \draw (0,0) ..controls (1,0).. (4,3);
-\end{tztikz}
-
-\begin{tztikz}{}
-% four coordinates: two control points
-\tzbezier(0,1)(1,0)(2,4)(4,3) % works like:
- \draw (0,0) ..controls (1,0) and (2,4).. (4,3);
-\end{tztikz}
-
-\begin{tzcode}{.3}
-% \tzbezier
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzbezier[red](0,3)(1,2)(2,4)(4,3)
-\tzbezier[blue](0,2)(1,.5)(4,0)
-\end{tikzpicture}
-\end{tzcode}
-
-The style \ixxw{tzshowcontrols} displays the control points by drawing dotted lines, by default.
-You can also change the dotted line style, like |tzshowcontrols={dashed,green}|.
-
-
-\begin{tzcode}{.3}
-% \tzbezier: tzshowcontrols
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzbezier[blue,tzshowcontrols](0,2)(1,.5)(4,0)
-\tzdots*[blue](0,2)(1,.5)(4,0);
-\tzbezier[red,tzshowcontrols={green,dashed}]
- (0,3)(1,2)(2,4)(4,3)
-\tzdots*[red](0,3)(1,2)(2,4)(4,3);
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Adding text}
-You can add text next to the curve or at the last coordinate
-by specifying the options |{<text>}| and |[<node opt>]| immediately after the last coordinate.
-
-
-\begin{tzcode}{.3}
-% \tzbezier: adding text
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzbezier[blue](0,2)(1,.5)(4,0){curve}[draw,black,r]
-\tzbezier[red](0,3)(1,2)(2,4)(4,3){bezier}[near end,a]
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Shift}
-You can move the curve of |\tzbezier| by specifying the option |<shift coor>| before the first coordinate or immediately before the option |"<path name>"|, if any.
-The empty shift option |<>| is not allowed.
-
-\begin{tzcode}{.3}
-% \tzbezier: shift
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzbezier[blue]
- (0,2)(1,.5)(4,0){curve}[draw,black,r]
-\tzbezier[blue,dashed]
- <1,1>(0,2)(1,.5)(4,0){curve}[r]
-\tzbezier[red]
- (0,3)(1,2)(2,4)(4,3){bezier}[near end,a]
-\tzbezier[red,dashed]
- <0,-1>(0,3)(1,2)(2,4)(4,3){bezier}[blue,near end,a]
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{\texttt{name path}}
-You can name the path of |\tzbezier| by specifying the option |"<path name>"| immediately before the first coordinate.
-
-\begin{tzcode}{.3}
-% \tzbezier: name path, intersection
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzbezier[blue,dashed,thick]<1,1>"curve"
- (0,2)(1,.5)(4,0){curve}[r]
-\tzbezier[red,dashed,thick]<0,-1>"bezier"
- (0,3)(1,2)(2,4)(4,3){bezier}[blue,near end,a]
-% intersection point
-\tzXpoint*{curve}{bezier}(X){X}[-90] % <angle>
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Extending paths}
-You can extend the path of |\tzbezier| from the last coordinate, by writing \Tikz\ code
-in the last optional argument |<code.append>|.
-
-\begin{tzcode}{.3}
-% \tzbezier: extending path
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzbezier[red](0,3)(1,2)(2,4)(4,3){bezier}[near end,a]
- < to [bend right] ++(-1,-1) node [below] {A} >
-\tzbezier[blue,->](0,2)(1,.5)(4,0)
- < |- ++(-2,1) node [above] {B} >
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-\subsection{\protect\cmd{\tzbezier+}: Relative coordinates}
-\label{ss:tzbezier+}
-
-For the \iisw{plus version} |\tzbezier+(A)(B)(C)|, |(B)| and |(C)| are relative to |(A)|, as in \Tikz.
-
-For |\tzbezier+(A)(B)(C)(D)|, |(B)| and |(D)| are relative to |(A)|, and |(C)| is relative to |(D)|, as in \Tikz.
-
-\begin{tztikz}{}
-% three coordinates
-\tzbezier+(0,1)(1,-1)(4,3) % works like:
- \draw (0,1) ..controls +(1,-1).. ($(0,1)+(4,3)$);
-\end{tztikz}
-
-\begin{tztikz}{}
-% four coordinates
-\tzbezier+(0,1)(1,-1)(-2,1)(4,3) % works like:
- \draw (0,1) ..controls +(1,-1) and +(-2,1).. ($(0,1)+(4,3)$);
-\end{tztikz}
-
-\begin{tzcode}{.3}
-% \tzbezier+
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzbezier+(0,3)(1,-1)(-2,1)(4,0){bezier}[near end,a]
- < to [bend right] ++(-1,-1) node [below] {A} >
-\tzbezier+[blue,->](0,2)(1,-1.5)(4,-2)
- < |- ++(-2,1) node [above] {B} >
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%-----------------------------------
-%%------------------------------------------------------------
-\section{Parabolas}
-\label{s:parabolas}
-
-
-\subsection{\protect\cmd{\tzparabola}}
-\label{ss:tzparabola}
-
-\icmd{\tzparabola} draws a parabola going through specified coordinates.
-It accepts two or three coordinates.
-In the case of three coordinates, the parabola bends at the second coordinate.
-
-\begin{tztikz}{}
-% two coordinates
-\tzparabola(0,0)(3,2) % works like:
- \draw (0,0) parabola (3,2);
-\end{tztikz}
-
-\begin{tztikz}{}
-% three coordinates
-\tzparabola(0,0)(1,1)(3,2) % works like:
- \draw (0,0) parabola bend (1,1) (3,2);
-\end{tztikz}
-
-\begin{tzdef}{}
-% syntax: minimal
-\tzparabola(<coor>)(<coor>)
-\tzparabola(<coor>)(<coor>)(<coor>)
-% syntax: full
-\tzparabola[<opt1>]<shift coor>"<path name>"
- (<coor>)(<coor>)(<coor>){<text>}[<node opt>]<code.append>
-% default
- []<>""(<m>)()(<m>){}[]<>
-\end{tzdef}
-
-\paragraph{Parabolas}
-|\tzplot| draws the graph of a quadratic function $f(x)=ax^2+bx+c$ for appropriate values of $a$, $b$, and $c$.
-
-\begin{tzcode}{.3}
-% \tzparabola: two coordinates
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzparabola[thick](0,0)(2,2)
-\tzparabola[bend at end,dashed](0,0)(2,2)
-\tzparabola[red,thick,bend pos=.5](2,0)(4,3)
-\tzparabola[blue,parabola height=-2cm](2,3)(4,2)
-\end{tikzpicture}
-\end{tzcode}
-
-\begin{tzcode}{.3}
-% \tzparabola: three coordinates
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzparabola[thick](0,2)(1,0)(2,2)
-\tzparabola[blue](0,3)(2,1)(4,2)
-\tzparabola[red,thick](2,0)(3,2)(4,3)
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Adding text}
-You can add text at or around the last coordinate by specifying the options |{<text>}| and |[<node opt>]| immediately after the last coordinate.
-
-\begin{tzcode}{.3}
-% \tzparabola: adding text
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzparabola[thick](0,0)(2,2){parabola}[blue,draw,a]
-\tzparabola[blue](0,3)(2,1)(4,2){AC}[r]
-\tzparabola[red,thick,bend pos=.5](2,0)(4,3){C}[ar]
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Shift}
-You can move the parabola by specifying the option |<shift coor>| before the first coordinate or immediately before the option |"<path name>"|, if any.
-The empty shift option |<>| is not allowed.
-
-\begin{tzcode}{.3}
-% \tzparabola: shift
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzparabola[blue] (0,3)(2,1)(4,2){AC}[r]
-\tzparabola[dashed]<0,-.5>(0,3)(2,1)(4,2){AC}[r]
-\tzparabola[dotted]<0,-1> (0,3)(2,1)(4,2){AC}[r]
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{\texttt{name path}}
-You can name the path of |\tzparabola| by specifying the option |"<path name>"| immediately before the first coordinate.
-
-\begin{tzcode}{.3}
-% \tzparabola: name path, intersection
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzparabola[blue]"AC"(0,3)(2,1)(4,2){AC}[r]
-\tzparabola"BB"(1,0)(2,2)(3,0)
-% intersection points
-\tzXpoint*{AC}{BB}(X)
-\tzdot(X-2)(3pt)
-\end{tikzpicture}
-\end{tzcode}
-
-\paragraph{Extending paths}
-You can extend the path of |\tzparabola| from the last coordinate by writing \Tikz\ code in the last optional argument |<code.append>|.
-
-\begin{tzcode}{.3}
-% \tzparabola: extending path
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzparabola[blue,->]"AC"(0,3)(2,1)(4,2)
- < -- ++ (-1,1) >
-\tzparabola"BB"(1,0)(2,2)(3,0)
- < -| ++ (1,1) node [right] {K!} >
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-\subsection{\protect\cmd{\tzparabola+}: Relative coordinates}
-\label{ss:tzparabola+}
-
-For the \iisw{plus version} \icmd{\tzparabola+}, the second and the third coordinates are relative to the first coordinate.
-
-\xem{Everything else is the same as in} |\tzparabola|.
-
-\begin{tztikz}{}
-% two coordinates
-\tzparabola+(0,1)(3,2) % works like:
- \draw (0,1) parabola ($(0,1)+(1,2)$);
-\end{tztikz}
-
-
-\begin{tztikz}{}
-% three coordinates
-\tzparabola+(0,1)(1,1)(3,-1) % works like:
- \draw (0,1) parabola bend +(1,1) ($(0,1)+(3,-1)$);
-\end{tztikz}
-
-\begin{tzcode}{.3}
-% \tzparabola+
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzparabola+[thick](0,0)(2,2){parabola}[blue,draw,a]
-\tzparabola+[blue](0,3)(2,-2)(4,-1){AC}[r]
-\tzparabola+[red,thick,bend pos=.5](2,0)(2,3){C}[ar]
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzplotcurve}}
-\label{s:tzplot}
-
-See Section \ref{s:tzplotcurve} on page \pageref{s:tzplotcurve}, for more details on |\tzplotcurve|.
-
-
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzto}, \protect\cmd{\tztos}}
-\label{s:curves:tzto}
-
-See Section \ref{s:tzto} on page \pageref{s:tzto}, for more details on |\tzto|.
-
-See Section \ref{s:tztos} on page \pageref{s:tztos}, for more details on |\tztos|.
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzfn}}
-\label{s:curves:tzfn}
-
-With \icmd{\tzfn}, you can plot functions such as $f(x)=\frac13(x-1)^3+1$, $g(x)=\sin x$, $h(x)=\sqrt{x-1}$, and so on.
-See Section \ref{s:tzfn} on page \pageref{s:tzfn}, for more details on |\tzfn|.
-
-
-
-
-%%==================================
-\chapter{Polygons and Circles}
-\label{c:polygons}
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzpolygon}: Semicolon verion}
-\label{s:tzpolygon}
-
-\icmd{\tzpolygon} connects an arbitrary number of coordinates to draw a polygon, a closed figure. |\tzpolygon| is equivalent to a closed |\tzlines|. Since |\tzpolygon| is a \xem{semicolon version}, you need to enter a \xem{semicolon} to indicate when the coordinate repetition ends.
-
-
-\begin{tzdef}{}
-% syntax: minimum
-\tzpolygon(<coor>)(<coor>)..repeated..(<coor>) ;
-% syntax: medium
-\tzpolygon (<coor>){<text>}[<node opt>]..repeated..(<coor>){<text>}[<node opt>] ;
-% syntax: full
-\tzpolygon[<opt>]<shift coor>"<path name>"
- (<coor>){<text>}[<node opt>]
- ..repeated.. (){}[] ; <code.append>
-% defaults
- []<>""(<m>){}[] ..repeated.. (){}[] ; <>
-\end{tzdef}
-
-\begin{tztikz}{}
-\tzpolygon(1,1)(2,2)(3,1)(4,3); % works like:
- \draw (1,1) -- (2,2) -- (3,1) -- (4,3) -- cycle;
-\end{tztikz}
-
-You can add text next to lines by specifying the options |{<text>}| and |[<node opt>]| \xem{in-between} coordinates.
-
-\begin{tzcode}{.3}
-% \tzpolygon
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzpolygon[fill,blue,auto]
- (0,1){Side A}[sloped,red]
- (1,3){B}
- (2,3)
- (3,2){Side D}[swap,sloped]
- (1,0);
-\end{tikzpicture}
-\end{tzcode}
-
-You can also move the polygon by specifying the option |<shift coor>| before the first coordinate.
-The empty shift option |<>| is not allowed.
-
-\begin{tzcode}{.3}
-% \tzpolygon: shift
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzpolygon[blue,auto]
- (0,1){Side A}[sloped,red]
- (1,3){B}
- (2,3)
- (3,2){Side D}[swap,sloped]
- (1,0);
-\tzpolygon[auto,dashed]<1,-.5>
- (0,1)(1,3)(2,3){C}(3,2)(1,0);
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzpolygon*}: Semicolon version}
-\label{s:tzpolygon*}
-
-\icmd{\tzpolygon*} paints the interior of the polygon with |black!50| with |fill opacity=.3| but with |text opacity=1|, by default.
-
-\begin{tzdef}{}
-% syntax: minimum
-\tzpolygon*(<coor>)(<coor>)..repeated..(<coor>) ;
-% syntax: medium
-\tzpolygon*(<coor>){<text>}[<node opt>]..repeated..(<coor>){<text>}[<node opt] ;
-% syntax: full
-\tzpolygon*[<opt>]<shift coor>"<path name>"
- (<coor>){<text>}[<node opt>]
- ..repeated.. (){}[] ; {<fill opacity>} <code.append>
-% defaults
- *[fill=black!50,fill opacity=.3,text opacity=1]<>""
- (<m>){}[] .. repeated.. (){}[] ; {} <>
-\end{tzdef}
-
-You can change the fill opacity by specifying the the last curly brace option |{<fill opacity>}| immediately \xem{after the semicolon}.
-
-\begin{tzcode}{.3}
-% \tzpolygon: shift
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzpolygon*[draw=blue,auto]
- (0,1){Side A}[sloped,red]
- (1,3){B}
- (2,3)
- (3,2){Side D}[swap,sloped]
- (1,0);
-\tzpolygon*[green,auto,dashed,text=black]<1,-.5>
- (0,1)(1,3)(2,3){C}(3,2)(1,0); {.7}
-\end{tikzpicture}
-\end{tzcode}
-
-You can also change the defaults using |\settzfillcolor| and |\sttzfillopacity|.
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzpolygon+} and \protect\cmd{\tzpolygon*+}: Relative coordinates: Semicolon verion}
-\label{s:tzpolygon}
-
-The plus version \icmd{\tzpolygon+} uses each coordinate (except the first one) relative (with |++|) to the previous coordinate.
-
-\xem{Everything else is the same as in} |\tzpolygon|.
-
-\icmd{\tzpolygon*+} is just a plus version of |\tzpolygon*|.
-
-\begin{tztikz}{}
-\tzpolygon+(1,1)(2,2)(3,1)(4,3); % works like:
- \draw (1,1) -- ++(2,2) -- ++(3,1) -- ++(4,3) -- cycle;
-\end{tztikz}
-
-\begin{tztikz}{}
-\tzpolygon+[dashed]"AA"(1,1)(2,2){A}(3,1){B}[below]; % works like:
- \draw [dashed,name path=AA] (1,1)
- -- ++(2,2)
- -- ++(3,1) node {A}
- -- ++(4,3) node [below] {B}
- -- cycle;
-\end{tztikz}
-
-\begin{tzcode}{.3}
-% \tzpolygon: shift
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzpolygon*+[blue,auto]
- (0,1){Side A}[sloped,red]
- (1,2){B}
- (1,0)
- (1,-1){Side D}[swap,sloped]
- (-2,-2);
-\tzpolygon*+[green,auto,dashed,text=black]<1,-.5>
- (0,1)(1,2)(1,0){C}(1,-1)(-2,-2); {.7}
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzframe} and \protect\cmd{\tzframe*}}
-\label{s:tzframe}
-
-\icmd{\tzframe} accepts two coordinates draws a rectangle.
-
-\begin{tzdef}{}
-% syntax: minimum
-\tzframe(<coor>)(<coor>)
-% syntax: full
-\tzframe[<opt>]<shift coor>"<path name>"(<coor1>)(<coor2>)<code.append>
-% defaults
- []<>""(<m>)(<m>)<>
-\end{tzdef}
-
-\icmd{\tzrectangle} is an alias of |\tzframe|.
-
-\begin{tztikz}{}
-\tzframe(0,1)(3,2) % works like:
- \draw (0,1) rectangle (3,2);
-\end{tztikz}
-
-
-The plus version \icmd{\tzframe+} uses the second coordinate as the coordinate relative (with |++|) to the first. \icmd{\tzrectangle+} is an alias of |\tzframe+|.
-
-\begin{tztikz}{}
-\tzframe+(0,1)(3,2) % works like:
- \draw (0,1) rectangle ++(3,2);
-\end{tztikz}
-
-\begin{tzcode}{.3}
-% \tzframe, \tzframe+
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzframe(0,0)(3,2)
-\tzframe+[blue,rounded corners=2mm](1,3)(1,-2)
-\end{tikzpicture}
-\end{tzcode}
-
-The starred version \icmd{\tzframe*} fills the interior
-with |black!50| with |fill opacity=.3|, by default.
-(\icmd{\tzrectangle*} is an alias of |\tzframe*|.)
-
-|\tzframe+| has also its starred version \icmd{\tzframe*+}.
-(\icmd{\tzrectangle*+} is an alias of |\tzframe*+|.)
-
-\begin{tzdef}{}
-% syntax
-\tzframe*[<opt>]<shift coor>"<path name>"
- (<coor1>)(<coor2>){<fill opacity>}<code.append>
-% defaults
- *[fill=black!50,fill opacity=.3]<>""(<m>)(<m>){.3}<>
-\end{tzdef}
-
-With the starred versions, you can change the fill opacity using the last option |{<fill opacity>}|.
-
-\begin{tzcode}{.3}
-% \tzframe*(+)
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzframe[fill](0,0)(3,2)
-\tzframe*+[green,rounded corners=2mm](1,3)(1,-2){.7} %%
-\end{tikzpicture}
-\end{tzcode}
-
-You can move |\tzframe| and its variants by specifying the option |<shift coor>| immediately before the first mandatory coordinate.
-The empty shift option |<>| is not allowed.
-
-\begin{tzcode}{.3}
-% \tzframe(*)(+): shift
-\begin{tikzpicture}
-\tzhelplines*(4,4)
-\tzframe(0,0)(3,2)
-\tzframe[blue,dashed]<1,1>(0,0)(3,2)
-\tzcoors(1,3)(A)(1,-2)(B);
-\tzframe*+[blue,rounded corners=2mm](A)(B)
-\tzframe*+[red,rounded corners=2mm]<-.5,-.5>(A)(B)
-\tzframe*+[green,rounded corners=2mm]<1,1>(A)(B)
-\end{tikzpicture}
-\end{tzcode}
-
-You can extend the path by the option |<code.append>|.
-
-\begin{tzcode}{.3}
-% \tzframe(*), \tzrectangle(*): <code.append>
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoors(2,2)(A)(3,1)(B);
-\tzrectangle*[blue,even odd rule](0,0)(3,2)
- <(.5,.5) rectangle (2.5,1.5)>
-\tzframe[fill=green,even odd rule](2,1)(4,4)
- <(2.3,1.2) rectangle (3.5,3.6)>
-\end{tikzpicture}
-\end{tzcode}
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzcircle} and \protect\cmd{\tzcircle*}}
-\label{s:tzcircle}
-
-\icmd{\tzcircle} draws a circle around a specified coordinate with a specified radius.
-The coordinate and the radius are mandatory.
-
-\begin{tzdef}{}
-% syntax
-\tzcircle[<opt>]<shift coor>"<path name>"(<coor>)(<radius>)<code.append>
-% defaults
- []<>""(<m>)(<m>)<>
-\end{tzdef}
-
-\begin{tztikz}{}
-\tzcircle(0,0)(1cm) % works like:
- \draw (0,0) circle (1cm);
-\end{tztikz}
-
-The starred version \icmd{\tzcircle*} fills the interior
-with |black!50| with |fill opacity=.3|, by default.
-You can change the fill opacity using the last option |{<fill opacity>}|.
-
-\begin{tzdef}{}
-% syntax
-\tzcircle*[<opt>]<shift coor>"<path name>"
- (<coor>)(<radius>){<fill opacity>}<code.append>
-% defaults
- *[fill=black!50,fill opacity=.3]<>""(<m>)(<m>){.3}<>
-\end{tzdef}
-
-\begin{tzcode}{.3}
-% \tzcircle(*)
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzcircle(2,2)(1)
-\tzcircle[fill=red](3,1)(.5cm)
-\tzcircle*[blue](2,1)(1){.5}
-\tzcircle*[green](3,.5)(.5cm)
-\end{tikzpicture}
-\end{tzcode}
-
-You can move the circle by specifying the option |<shift coor>| immediately before the center coordinate.
-The empty shift option |<>| is not allowed.
-
-\begin{tzcode}{.3}
-% \tzcircle(*): shift
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoors(2,2)(A)(3,1)(B);
-\tzcircle(2,2)(1)
-\tzcircle[blue,dashed]<-.5,0>(A)(1)
-\tzcircle*(3,1)(.5cm)
-\tzcircle*[blue]<.5,0>(B)(.5cm)
-\end{tikzpicture}
-\end{tzcode}
-
-You can extend the path by the option |<code.append>|.
-
-\begin{tzcode}{.3}
-% \tzcircle(*): <code.append>
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoors(2,2)(A)(3,1)(B);
-\tzcircle*[blue,even odd rule](2,2)(1)
- <(2,2) circle (1.5)>
-\tzcircle[fill=green,even odd rule](3,1)(1)
- <(3,1) circle (.7)>
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzellipse} and \protect\cmd{\tzellipse*}}
-\label{s:tzellipse}
-
-\icmd{\tzellipse} draws an ellipse around a specified coordinate with the specified x-radius and y-radius.
-
-\begin{tzdef}{}
-% syntax
-\tzellipse[<opt>]<shift coor>"<path name>"(<coor>)(<x and y radius>)<code.append>
-% defaults
- []<>""(<m>)(<m>)<>
-\end{tzdef}
-
-\icmd{\tzoval} is an alias of |\tzellipse|.
-
-\begin{tztikz}{}
-\tzellipse(0,0)(1 and .5) % works like:
- \draw (0,0) ellipse (1 and .5);
-\end{tztikz}
-
-The starred version \icmd{\tzellipse*} fills the interior
-with |black!50| with |fill opacity=.3|, by default.
-You can change the fill opacity using the last option |{<fill opacity>}|.
-
-\begin{tzdef}{}
-% syntax
-\tzellipse*[<opt>]<shift coor>"<path name>"
- (<coor>)(<x and y radius>){<fill opacity>}<code.append>
-% defaults
- *[fill=black!50,fill opacity=.3]<>""(<m>)(<m>){.3}<>
-\end{tzdef}
-
-\begin{tzcode}{.3}
-% \tzellipse(*)
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzellipse(2,2)(1.5 and 1)
-\tzellipse[fill=red](3,1)(1cm and .5cm)
-\tzellipse*[blue](2,1)(1 and 1.5){.5}
-\tzellipse*[green](3,.5)(1cm and .5cm)
-\end{tikzpicture}
-\end{tzcode}
-
-You can move the ellipse by specifying the option |<shift coor>| immediately before the mandatory coordinate.
-The empty shift option |<>| is not allowed.
-
-\begin{tzcode}{.3}
-% \tzellipse(*): shift
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoors(2,2)(A)(3,1)(B);
-\tzellipse(2,2)(1.5 and 1)
-\tzellipse[blue,dashed]<-.5,0>(A)(1.5 and 1)
-\tzellipse*(3,1)(1cm and .5cm)
-\tzellipse*[blue]<.5,0>(B)(1cm and .5cm)
-\end{tikzpicture}
-\end{tzcode}
-
-You can extend the path by the option |<code.append>|.
-Note also that \icmd{\tzoval*} is an alias of |\tzellipse*|.
-
-\begin{tzcode}{.3}
-% \tzellipse(*), \tzoval(*): <code.append>
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoors(2,2)(A)(3,1)(B);
-\tzoval*[blue,even odd rule](2,2)(1.5 and 1)
- <(2,2) ellipse (2 and 1.5)>
-\tzellipse[fill=green,even odd rule](3,1)(1 and 1)
- <(3,1) ellipse (.5 and .8)>
-\end{tikzpicture}
-\end{tzcode}
-
-
-%%==================================
-\chapter{Arcs and Wedges}
-\label{c:arcs}
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzarc(')}: Centered arcs}
-\label{s:tzarc}
-
-\subsection{Arcs}
-\label{ss:tzarc}
-
-\icmd{\tzarc} draws an arc around a specified center coordinate.
-
-\begin{tzdef}{}
-% syntax: minimum
-\tzarc(<coor>)(<angA:angB:radius>)
-% syntax: full
-\tzarc[<opt>]<shift coor>"<path name>"
- (<coor>)(<angA:angB:radius>){<text>}[<node opt>]<code.append>
-% defaults
- []<>""(<m>)(<m>){}[]<>
-\end{tzdef}
-
-
-\begin{tztikz}{}
-\tzarc(1,1)(30:120:1) % works like:
- \draw (1,1) ++(30:1) arc (30:120:1);
-\end{tztikz}
-
-The \iisw{swap version} \icmd{\tzarc'} switches its drawing direction from \ixxw{counterclockwise} to \ixxw{clockwise} and vice versa.
-
-\begin{tztikz}{}
-\tzarc'(1,1)(30:120:1) % works like:
- \draw (1,1) ++(30:1) arc (30:120-360:1);
-\end{tztikz}
-
-
-\begin{tzcode}{.3}
-% \tzarc, \tzarc'
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzdots*(1,1)(3,2);
-\tzarc [blue,->] (1,1)(-45:180:1)
-\tzarc'[dashed,->] (1,1)(-45:180:1)
-\draw [->](3,2) ++(-45:1) arc (-45:180:1);
-\draw [dashed,->](3,2) ++(-45:1) arc (-45:180-360:1);
-\end{tikzpicture}
-\end{tzcode}
-
-You can add text along the arc by specifying the options |{<text>}| and |[<node opt>]| immediately after the two mandatory arguments.
-
-
-\begin{tzcode}{.3}
-% \tzarc('): adding text
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzarc [blue,->] (1,1)(-45:180:1){A}[r]
-\tzarc'[dashed,->](1,1)(-45:180:1)
-\tzarc[->] (3,2)(-45:180:1){arc}[midway,sloped]
-\tzarc'[dashed,->](3,2)(-45:180:1)
-\end{tikzpicture}
-\end{tzcode}
-
-You can move arcs by specifying the option |<shift coor>| just before the center coordinate.
-
-\begin{tzcode}{.3}
-% \tzarc('): shift
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzarc [blue,->] (1,1)(-45:180:1){A}[r]
-\tzarc'[dashed,->] (1,1)(-45:180:1)
-\tzarc [blue,->] <2,1>(1,1)(-45:180:1){A-shifted}[r]
-\tzarc'[dashed,->]<2,1>(1,1)(-45:180:1)
-\end{tikzpicture}
-\end{tzcode}
-
-You can also extend the path of |\tzarc| by specifying the last option |<code.append>| with \Tikz\ code written in it. For example, |<--cycle>| makes a closed path.
-
-
-\begin{tzcode}{.3}
-% \tzarc('): <code.append>
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzarc [blue,->](1,1)(-45:180:1)<--++(1,2)>
-\tzarc'[dashed,->] (1,1)(-45:180:1)
-\tzarc [blue,->] <2,1>(1,1)(-45:180:1)<--cycle>
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-\subsection{Elliptical arcs}
-\label{ss:ellipticalarc}
-
-|\tzarc| draws an elliptical arc if you specify |x-radius| and |y-radius|.
-
-\begin{tzcode}{.3}
-% \tzarc: elliptical
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzarc[->,red](1,1)(30:270:1.5 and 0.5)
-\tzarc'[->,dotted](1,1)(30:270:1.5 and 0.5)
-\tzdots*(1,1)(2,2);
-\tzarc[->,blue,dashed](2,2)(0:-270:1 and 2)
-\tzarc'[->](2,2)(0:-270:1 and 2)
-\end{tikzpicture}
-\end{tzcode}
-
-
-\begin{tzcode}{.3}
-% \tzarc: elliptical
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzarc[->,red](1,1)(30:270:1.5 and 0.5)
-\tzdots*(1,1)(2,2);
-\tzarc[->,blue,dashed,fill=green,fill opacity=.3]
- (2,2)(0:-270:1 and 2)<--(2,2)> % code.append
-\tzarc[->,blue,dashed]
- <1,0>(2,2)(0:-270:1 and 2) % shift
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzarcfrom(')}: Arcs as in \Tikz}
-\label{s:tzarcfrom}
-
-\icmd{\tzarcfrom} draws an arc starting from a specified point, like \Tikz\ does.
-
-\begin{tzdef}{}
-% syntax: minimum
-\tzarcfrom(<coor>)(<angA:angB:radius>)
-% syntax: full
-\tzarcfrom[<opt>]<shift coor>"<path name>"
- (<coor>)(<angA:angB:radius>){<text>}[<node opt>]<code.append>
-% defaults
- []<>""(<m>)(<m>){}[]<>
-\end{tzdef}
-
-
-\begin{tztikz}{}
-\tzarcfrom(1,1)(30:120:1) % works like:
- \draw (1,1) arc (30:120:1);
-\end{tztikz}
-
-\xem{Everything else is the same as in }|\tzarc|.
-
-\icmd{\tzarcfrom'} is the \iisw{swap version} of |\tzarcfrom|.
-
-
-\begin{tzcode}{.3}
-% \tzarcfrom
-\begin{tikzpicture}
-\tzhelplines(4,3)
-\tzdots*(1,1)(3,2);
-\tzarcfrom [blue,->] (1,1)(-45:180:1){A}[r]
-\tzarcfrom'[dashed,->](1,1)(-45:180:1)
-\tzarcfrom[->](3,2)(-45:180:1){arc}[midway,sloped]
-\tzarcfrom'[dashed,->](3,2)(-45:180:1)
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzarcsfrom}: Connected arcs: Semicolon version}
-\label{s:tzarcsfrom}
-
-The macro \icmd{\tzarcsfrom} (i.e. |\tzarcs + from|) accepts an arbitrary number of parenthesis arguments in the form of |(<angA:AngB:radius>)| following the start coordinate. You need to enter a \xem{semicolon} to indicate when the repetition ends.
-
-\begin{tzdef}{}
-% syntax: minimum
-\tzarcsfrom(<start coor>)
- (<angA:angB:radius>)..repeated..(<angA:angB:radius>) ;
-% syntax: full
-\tzarcsfrom[<opt>]<shift coor>"<path name>"
- (<start coor>)(<angA:angB:radius>){<text>}[<node opt>]
- ..repeated..(){}[] ; <code.append>
-% defaults
- []<>""(<m>)(<m>){}[]..repeated..(){}[] ; <>
-\end{tzdef}
-
-
-\begin{tzcode}{.4}
-% \tzarcfrom: adding text, <code.append>
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoor*(3,2)(A)
-\tzarcsfrom[->,auto](A)
- (0:180:1){1}[midway]
- (180:360:1.2){2}[midway]
- (0:180:1.4){3}[midway,swap]
- (180:360:1.6){4}[midway,swap];
- < node [right,blue] {End!} >
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-\begin{tzcode}{.4}
-% \tzarcfrom: shift
-% flag: step 1
-\begin{tikzpicture}
-\tzhelplines(-2,-2)(2,2)
-\tzdot*(0,0)
-\edef\x{atan(2/3)}
-\tzarcsfrom[red,->](0,0)
- (-\x:-\x-180:1){red 1}[midway];
-\tzarcsfrom[blue,->](0,0)
- (180-\x:-\x:1){blue 1}[midway];
-\tzarcsfrom[dashed,->]<.5,.5>(0,0)
- (180-\x:-\x:1){blue 1}[midway];
-\end{tikzpicture}
-\end{tzcode}
-
-
-\begin{tzcode}{.4}
-% flag: step 2
-\begin{tikzpicture}
-\edef\x{atan(2/3)}
-\tzarcsfrom[red](0,0)
- (-\x:-\x-180:1){1}[midway]
- (-\x+180:-\x:2){2}[midway];
-\tzarcsfrom[blue](0,0)
- (180-\x:-\x:1){1}[midway]
- (-\x:-\x-180:2){2}[midway];
-\end{tikzpicture}
-\end{tzcode}
-
-
-\begin{tzcode}{.4}
-% flag: step 3
-\definecolor{flagred}{RGB}{205,48,57}
-\definecolor{flagblue}{RGB}{17,73,156}
-\begin{tikzpicture}[scale=1]
-\edef\x{atan(2/3)}
-\tzarcsfrom[draw=none,fill=flagred](0,0)
- (-\x:-\x-180:1)
- (-\x+180:-\x:2)
- (-\x:-\x+180:1);<-- cycle>
-\tzarcsfrom[draw=none,fill=flagblue](0,0)
- (180-\x:-\x:1)
- (-\x:-\x-180:2)
- (-\x+180:-\x+360:1);<-- cycle>
-\end{tikzpicture}
-\end{tzcode}
-
-
-\begin{tzcode}{.4}
-% flag: shift
-\definecolor{flagred}{RGB}{205,48,57}
-\definecolor{flagblue}{RGB}{17,73,156}
-\begin{tikzpicture}[scale=1]
-\edef\x{atan(2/3)}
-\tzarcsfrom[draw=none,fill=flagred]<.1,.3>(0,0)
- (-\x:-\x-180:1)
- (-\x+180:-\x:2)
- (-\x:-\x+180:1);<-- cycle>
-\tzarcsfrom[draw=none,fill=flagblue](0,0)
- (180-\x:-\x:1)
- (-\x:-\x-180:2)
- (-\x+180:-\x+360:1);<-- cycle>
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-%%------------------------------------------------------------
-\section{Wedges}
-\label{s:wedges}
-
-\subsection{\protect\cmd{\tzwedge(')}}
-\label{ss:tzwedge}
-
-\icmd{\tzwedge} draws a wedge around a specified center coordinate.
-
-|\tzwedge| works similarly to |\tzarc|, but it forms a closed path from the center coordinate.
-
-\begin{tzdef}{}
-% syntax
-\tzwedge[<opt>]<shift coor>"<path name>"
- (<coor>)(<angA:angB:radius>){<text>}[<node opt>]
-% defaults
- []<>""(<m>)(<m>){}[midway]
-\end{tzdef}
-
-
-\begin{tztikz}{}
-\tzwedge(1,1)(30:120:1) % works like:
- \draw (1,1) -- ++(30:1) arc (30:120:1) -- cycle;
-\end{tztikz}
-
-The macro \icmd{\tzwedge'} is the \iisw{swap version} of \icmd{\tzwedge}.
-It switches the drawing direction from \ixxw{counterclockwise} to \ixxw{clockwise} and vice versa.
-
-
-\begin{tztikz}{}
-\tzwedge'(1,1)(30:120:1) % works like:
- \draw (1,1) -- ++(30:1) arc (30:120-360:1) -- cycle;
-\end{tztikz}
-
-\begin{tzcode}{.3}
-% \tzwedge, \tzwedge'
-\begin{tikzpicture}
-\tzcoor*(2,1)(A)(3pt)
-\tzhelplines(4,3)
-\tzwedge[blue,very thick](A)(30:120:1.5)
-\tzarc[->,green] (A)(30:120:1.3)
-\tzwedge'[dashed](A)(0:135:1.5){clockwise}[sloped,red]
-\tzarc'[->,green](A)(0:135:1.3)
-\tzwedge'[fill](A)(-60:240:1)
-\end{tikzpicture}
-\end{tzcode}
-
-\begin{tzcode}{.3}
-% \tzwedge('): shift
-\begin{tikzpicture}
-\tzcoor*(2,1)(A)
-\tzhelplines(4,3)
-\tzwedge[blue,very thick]<.1,.1>(A)(30:120:1.5) % shift
-\tzarc[->,lightgray]<.1,.1>(A)(30:120:1.3) % shift
-\tzwedge'[dashed](A)(0:135:1.5){clockwise}[sloped,red]
-\tzarc'[->,lightgray](A)(0:135:1.3)
-\tzwedge'[fill]<2,0>(A)(-60:240:1) % shift
-\end{tikzpicture}
-\end{tzcode}
-
-
-
-
-
-\subsection{\protect\cmd{\tzwedge*(')}}
-\label{ss:tzwedge*}
-
-The starred version \icmd{\tzwedge*} works just like |\tzwedge|, but it fills wedges with |black!50| with |fill opacity=.3| and |fill opacity=1|, by default.
-You can change the defaults with |\settzfillcolor| and |\settzfillopacity|.
-You can also change the fill opacity by specifying the last optional argument |{<fill opacity>}|.
-
-\begin{tzdef}{}
-% syntax
-\tzwedge*[<opt>]<shift coor>"<path name>"
- (<coor>)(<angA:angB:radius>){<text>}[<node opt>]{<fill opacity>}
-% defaults
- [fill=black!50,fill opacity=.3,text opacity=1]<>""(<m>)(<m>){}[midway]{.3}
-\end{tzdef}
-
-\icmd{\tzwedge*'} is the \iisw{swap version} of |\tzwedge*|.
-
-\begin{tzcode}{.3}
-% \tzwedge*, \tzwedge*'
-\begin{tikzpicture}[->,>=stealth]
-\tzhelplines(3,3)
-\tzwedge[very thick,blue](1,1)(30:120:1.5)
-\tzwedge*[-,very thick,blue,fill=red](1,1)(30:120:1)
-\tzwedge'[dashed](1,1)(30:120:1.5){clockwise}[pos=.45]
-\tzwedge*'[dashed,fill=green](1,1)(-90:180:1)
-\tzdot*(1,1)
-\end{tikzpicture}
-\end{tzcode}
-
-\begin{tzcode}{.3}
-% \tzwedge*('): shift, fill opacity
-\begin{tikzpicture}
-\tzdot*(1,1)
-\tzhelplines(3,3)
-\tzwedge[blue,very thick](1,1)(30:120:1.5)
-\tzwedge[red,very thick]<.5,.5>(1,1)(30:120:1.5)
-\tzwedge'[dashed](1,1)(0:135:1.5)
-\tzwedge*[fill=blue](1,1)(300:240:1){B}[b]
-\tzwedge*[blue]<2,0>(1,1)(300:240:1){B}[b]{.7}
+\tzhelplines*(4,3)
+\tzlines+[red,thick,<->,text=blue]
+ <1,1> (0,1){Up}
+ (1,1){Down}[a,sloped]
+ (2,-1){Up}
+ (1,2){line A} ;
+\tzcoors(0,0)(A)(1,1)(B)(1,0)(C)(1,-1)(D);
+\tzlines+[dashed,auto,text=red]
+ <-1,.5> (A){A}
+ (B){B}
+ (C){C}
+ (D){line B}[blue,draw,r] ;
\end{tikzpicture}
\end{tzcode}
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-C1-v2.0.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-C1-v2.0.tex
new file mode 100644
index 0000000000..4e61cbd695
--- /dev/null
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc-C1-v2.0.tex
@@ -0,0 +1,1691 @@
+%!TEX root = tzplot-doc.tex
+%\begin{document}
+
+%%%%%=====CNONTINUED============
+%%%%%%==========================
+%%%\part{Points, Lines, and Curves}
+%%%%%%==========================
+%%%\label{p:linesandcurves}
+
+
+%%==================================
+\chapter{Connecting Points}
+\label{c:tzto}
+
+%%%------------------------------------------------------------
+\section{\protect\cmd{\tzto}: Two points}
+\label{s:tzto}
+
+\icmd{\tzto} connects two points with a straight or curved line, using \Tikz's |to| operation.
+So |\tzto| is more general than |\tzline|, which only connects points only with a straight line.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzto(<coor>)(<coor>)
+% syntax: medium
+\tzto[<opt>](<coor>){<text>}[<node opt>](<coor>){<text>}[<node opt>]
+% syntax: full
+\tzto[<opt>]<shift coor>"<path name>"
+ (<coor>){<text>}[<node opt>]
+ (<coor>){<text>}[<node opt>]<code.append>
+% defaults
+ []<>""(<m>){}[above](<m>){}[]<>
+\end{tzdef}
+
+
+\begin{tztikz}{}
+\tzto[dashed](1,1)(3,2) % works like:
+ \draw [dashed] (1,1) to (3,2);
+\end{tztikz}
+
+
+\paragraph{Line styles}
+You can control line styles with the first optional argument |[<opt>]|.
+
+\begin{tzcode}{.3}
+% \tzto
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzto[blue,thick](0,1)(3,3)
+\tzto[out=0](0,0)(4,2)
+\tzto[bend right,dashed](2,0)(4,1)
+\settzmidarrow{o}[very thick,red]
+\tzarc(2,2)(180:45:1cm)
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Adding text}
+
+You can add text \xem{next to the line} (|[midway,above]|, by default) by specifying the options |{<text>}| and |[<node opt>]| \xem{in-between} the two coordinates.
+
+\begin{tztikz}{}
+\tzto[->,bend right](1,1){A}[near start](3,2) % works like:
+ \draw [->,bend right] (1,1) to node [near start] {A} (3,2);
+
+\tzto[->,bend right](1,1){A}[near start](3,2){B}[right] % works like:
+ \draw [->,bend right] (1,1) to node [near start] {A}
+ (3,2) node [right] {B};
+\end{tztikz}
+
+
+You can also add text \xem{at or around} the last coordinate by the options |{<text>}| and |[<node opt>]| \xem{immediately after} the last coordinate.
+
+\begin{tzcode}{.3}
+% \tzto: adding text
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzto[blue,thick,->](0,1){line}[sloped](3,3)
+\tzto[out=0](0,0){curve}[pos=.8](4,2){line B}[r]
+\tzto[bend right,dashed](2,0)(4,1){line C}[red,r]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Shift}
+You can move the line by specifying the option |<shift coor>| before the first coordinate or immediately before the option |"<path name>"| if it exists.
+(The \xem{empty} shift option |<>| is \xem{not allowed}.)
+
+\begin{tzcode}{.3}
+% \tzto: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzto[blue,thick,->]<0,1>(0,1){line}[sloped](3,3)
+\tzto[out=0]<1,1>(0,0){curve}[pos=.8](4,2){line B}[r]
+\tzto[bend right,dashed]<-1,0>(2,0)(4,1){line C}[red,r]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Naming paths: Intersections}
+You can name the path of |\tzto| by specifying the option |"<path name>"| immediately before the first coordinate.
+
+\begin{tzcode}{.3}
+% \tzto: name path
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzto[bend right=45,blue,thick,->]"curveA"(1,3)(4,0)
+\tzto[out=0]"curveB"(0,0)(4,2){line B}[r]
+% intersection point
+\tzXpoint*{curveA}{curveB}
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Extending the path}
+You can extend the path of |\tzto| by writing \Tikz\ code in the last optional argument |<code.append>|.
+
+\begin{tzcode}{.3}
+% \tzto: extending path
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzto[bend right=45,blue,thick,->](1,3)(4,0)
+ <--([turn]0:1cm) node [b] {extended}>
+\tzto[out=0](0,0)(4,2)
+ <--([turn]0:1cm) node [r] {extended}>
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use \icmd{\tztoAtBegin} and \icmd{\tztoAtEnd} to extend a path of |\tzto| at the beginning and at the end, respectively.
+Specifying |<code.append>| extends the path after |\tztoAtEnd|.
+
+\begin{tzcode}{.3}
+% \tzto: extending path
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tztoAtBegin{(0,2) to [bend left]}
+\tztoAtEnd{--([turn]0:1cm) node [b] {extended}}
+\tzto[bend right=45,blue,thick,->](1,3)(4,0)
+\tztoAtEnd{--([turn]0:1cm) node [r] {extended}}
+\tzto[out=0](0,0)(4,2)
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzto+}: Relative coordinates}
+\label{s:tzto+}
+
+The \iisw{plus version} \icmd{\tzto+} uses the second coordinate relative to the first coordinate.
+
+\xem{Everything else is the same as in} |\tzto|.
+
+\begin{tztikz}{}
+\tzto+(1,1)(3,2) % works like:
+ \draw (1,1) to ++(3,2);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzto+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzto+[blue,thick,->](0,1){line}[sloped](3,2)
+\tzto+[out=0](0,0){curve}[pos=.8](4,2){line B}[r]
+\tzto+[bend right,dashed](2,0)(2,1){line C}[red,r]
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzto+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzto+[bend right=45,blue,thick,->](1,3)(3,-3)
+ <--([turn]0:1cm) node [b] {extended}>
+\tzto+[out=0](0,0)(4,2)
+ <--([turn]0:1cm) node [r] {extended}>
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzto: extending path
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tztoAtBegin{(0,2) to [bend left]}
+\tztoAtEnd{--([turn]0:1cm) node [b] {extended}}
+\tzto+[bend right=45,blue,thick,->](1,3)(3,-3)
+\tztoAtEnd{--([turn]0:1cm) node [r] {extended}}
+\tzto+[out=0](0,0)(4,2)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tztos}: Multiple points: Semicolon version}
+\label{s:tztos}
+
+\icmd{\tztos} takes an arbitrary number of coordinates as arguments to connect them by the \Tikz's |to| operation. |\tztos| is much more flexible than |\tzlines|. Since this is a \xem{semicolon version}, you need to enter a \xem{semicolon} to indicate when the coordinate iteration ends.
+
+\begin{tzdef}{}
+% syntax
+\tztos[<opt>]<shift coor>"<path name>"
+ (<coor1>)[<to opt>]{<text>}[<node opt>]..repeated..()[]{}[] ; <code.append>
+% defaults
+ []<>""(<m>)[]{}[]..repeated..()[]{}[];<>
+\end{tzdef}
+
+The quadruple |(<coor>)[<to opt>]{<text>}[<node opt>]| is
+the whole repeating pattern.
+Here, |[<to opt>]| is for the options of \Tikz's |to| operation such as |[bend right]|, |[bend left]|, |[bend left=<angle>]|, |[out=<angle>,in=<angle>]| and so on.
+
+\begin{tztikz}{}
+\tztos(0,0)(1,2)(3,1); % works like:
+ \draw (0,0) to (1,2) to (3,1);
+\end{tztikz}
+
+\begin{tztikz}{}
+\tztos[blue] (0,0) [bend right] (1,2) [out=-60,in=45] (3,1); % works like:
+ \draw[blue] (0,0) to [bend right] (1,2) to [out=-60,in=45] (3,1);
+\end{tztikz}
+
+\paragraph{How to connect coordinates}
+You can use the options of \Tikz's |to| operation to connect the coordinates with different types of curves.
+
+\begin{tzcode}{.3}
+% \tztos
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tztos[blue,<->](0,1)(1,2)(3,1)(4,3);
+\tztos[red,thick]
+ (0,0)[bend right]
+ (1,1)
+ (2,1)[out=-135,in=45]
+ (3,0);
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tztos
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(0,0)(A)(1,2)(B){B}[b](3,3)(C)(4,2)(D);
+\tztos(A)[out=80,in=180]
+ (B)[out=0,in=180]
+ (C)[out=0,in=180]
+ (D){End!}[r];
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Adding text}
+You can add text next to lines or curves by specifying the options |{<text>}| and |[<node opt>]| \xem{in-between} coordinates or \xem{after} the option |[<to opt>]|, if it exists.
+You can also add text at or around the last coordinate by the last options |{<text>}| and |[<node opt>]|.
+
+\begin{tzcode}{.3}
+% \tztos: adding text
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tztos(0,1)[bend right]{A}
+ (1,2) {Ben}[red,sloped,a]
+ (3,1)[bend right]{Cate}[sloped,near end]
+ (4,3) {Name}[draw,blue,a] ;
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Shift}
+You can move the line or curve of |\tztos|
+using the option |<shift coor>| before the first coordinate or immediately before the option |"<path name">|, if any.
+(The empty shift option |<>| is not allowed.)
+
+\begin{tzcode}{.3}
+% \tztos: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzdot(0,0)
+\tztos[blue,<->](0,1)(1,2)(3,1)(4,3);
+\tztos[red,thick]
+ <1,1>(0,0)[bend right]
+ (1,1)
+ (2,1)[out=-135,in=45]
+ (3,0);
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\paragraph{Naming paths: intersections}
+You can name the path of |\tztos| by specifying |"<path name>"| immediately before the first mandatory coordinate.
+
+\begin{tzcode}{.3}
+% \tztos: name path, intersection points
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzdot(0,0)
+\tztos[blue,<->]"AA"(0,1)(1,2)(3,1)(4,3);
+\tztos[red,thick]
+ <1,1>"BB"(0,0)[bend right]
+ (1,1)
+ (2,1)[out=-135,in=45]
+ (3,0);
+% intersection points
+\tzXpoint*{AA}{BB}(X)
+\tzdot(X-2)(4pt)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{Extending paths}
+You can extend the path of |\tztos| from the last coordinate,
+by writing \Tikz\ code in the last (after the semicolon) optional argument |<code.append>|.
+
+\begin{tzcode}{.3}
+% \tztos
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tztos[blue](0,1)(1,2)(3,1)(4,3);<--cycle>
+\tztos[red,thick]
+ (0,0)[bend right]
+ (1,1)
+ (2,1)[out=-135,in=45]
+ (3,0); < to ([turn]0:1.5cm) >
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use \icmd{\tztosAtBegin} and \icmd{\tztosAtEnd} to extend a path of |\tztos| at the beginning and at the end, respectively.
+Specifying the option |<code.append>| extends the path after |\tztosAtEnd|.
+
+\begin{tzcode}{.3}
+% \tztos
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tztos[blue](0,1)(1,2)(3,1)(4,3);<--cycle>
+\tztosAtBegin{ (1,3) -| }
+\tztosAtEnd{ to ([turn]0:1.5cm) }
+\tztos[red,thick]
+ (0,0)[bend right]
+ (1,1)
+ (2,1)[out=-135,in=45]
+ (3,0);
+\end{tikzpicture}
+\end{tzcode}
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tztos+}: Relative coordinates: Semicolon version}
+\label{s:tztos+}
+
+The \iisw{plus version} \icmd{\tztos+} takes each coordinate (except the first coordinate) relative (with |++|) to the previous coordinate.
+
+\xem{Everything else is the same as in} |\tztos|.
+
+\begin{tzcode}{.3}
+% \tztos+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tztos+[blue](0,1)(1,1)(2,-1)(1,2);<--cycle>
+\tztos+[red,thick]
+ (0,0)[bend right]
+ (1,1)
+ (1,0)[out=-135,in=45]
+ (1,-1); < to ([turn]0:1.5cm) >
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\section{\protect\cmd{\tzlink}: Two points}
+\label{s:tzlink}
+
+\icmd{\tzlink} is a \xem{generalized version} of |\tzline|.
+You can decide the style that links two coordinates.
+
+The default link style is |to|, which can be changed with the \xem{second} optional argument |[<code1>]| \xem{between two coordinates} like, for example, \verb+(<coor1>)[-|](<coor2>)+.
+Another way is to use the \xem{first} curly brace option |{<link style>}|.
+You can also change it by \icmd{\settzlinkstyle} like, for example, \verb+\settzlinkstyle{-|}+, which is effective until the end of the |tikzpicture| environment.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzlink(<coor1>)(<coor2>) % default: to
+% syntax: medium
+\tzlink[<opt>](<coor1>)[<code1>](coor2>) % change link style by [<code1>]
+% syntax: full
+\tzlink{<link style>}[<opt>]<shift coor>"<path name>"
+ (<coor1>)[<code1>]{<text1>}[<node opt1>]<code2>
+ (<coor2>){<text2>}[<node opt2>]<code.append>
+% remark:
+ - {<link style>}: % default: to
+ - [<code1>]: --, -|, to, edge, etc. (optionally more appropriate tikz code)
+ - <code2>: + or ++ (possibly with other tikz code)
+ - {<text1>}: node text next to line
+ - {<text2>}: node text at the last coordinate
+% defaults
+ {to}[]<>""(<m>)[]{}[above]<>(<m>){}[]<>
+\end{tzdef}
+
+\begin{tztikz}{}
+\tzlink(1,0)(3,1) % works like:
+ \draw (1,0) to (3,1);
+\end{tztikz}
+
+\begin{tztikz}{}
+\tzlink(1,0)[-|]<++>(3,1) % works like:
+ \draw (1,0) -| ++ (3,1);
+\end{tztikz}
+
+
+\paragraph{Link styles} You can change the link style (|to| by default) using the optional argument |[<code1>]| \xem{immediately after} the first coordinate.
+
+\begin{tzcode}{.3}
+% \tzlink: to (default link style)
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlink[->](0,0)(1,0)
+\tzlink[->,bend right](0,2)(3,0)
+\tzlink[->](1,2)[-|](4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use \icmd{\settzlinkstyle} to change the link style. Its effect is valid until the end of the |tikzpicture| environment, unless changed again.
+
+\begin{tzcode}{.3}
+% \settzlinkstyle
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzlinkstyle{to[bend left]} %%
+\tzlink[->](0,0)(1,0)
+\tzlink[->](0,2)[--](3,0) % local change
+\tzlink[->](1,2)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+The \iisw{plus version} \icmd{\tzlink+} uses the second coordinate relative (with |++|, by default) to the first one.
+Everything else is the same as in |\tzlink|.
+
+
+\begin{tztikz}{}
+\tzlink (1,0)[to[bend right]]{A}[a]<++>(3,1) % or
+\tzlink+(1,0)[to[bend right]]{A}[a] (3,1) % works like:
+ \draw (1,0) to[bend right] node [above] {A} ++ (3,1);
+\end{tztikz}
+
+
+\begin{tzcode}{.3}
+% \tzlink(+): various link styles
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlink[->,blue,out=90,in=180](0,2)(3,0)
+\tzlink+[->,dashed,blue](1,2)[to[bend left]](3,-1)
+\tzlink[->](0,0)[..controls (1,1) and (3,0)..](4,2)
+\tzlink+[red,thick](1,0)[edge[bend left]](2,3)
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Adding text}
+
+You can add text next to the line or curve of |\tzlink| by specifying the option |{<text1>}| followed by the optional argument |[<node opt1>]| \xem{between} two coordinates (or after the option |[<code1>]| if it exists).
+
+You can name the line or curve of |\tzlink| by specifying the optional arguments |{<text2>}| and |[<node opt2>]| \xem{after} the second coordinate. The option |[<node opt2>]| is often for the position of node text at or around the second coordinate.
+
+\begin{tzcode}{.3}
+% \tzlink
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlink[->](1,3){line A}(4,3)
+\tzlink[blue](0,3){line B}[sloped](3,0){E}[r]
+\tzlink[->,red](1,0){Start}[at start,l](4,2){Line C}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzlink(+)
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlink[->](0,0){A}(1,0)
+\tzlink+[bend right](0,2){curve}[sloped](3,-2){End}[r]
+\tzlink[->,auto](1,2)[-|]{B}(4,1){Goal!}[b,draw,blue]
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{Shift}
+You can move the line or curve by specifying the option |<shift coor>| \xem{before} the first coordinate (or ever before the option |"<path name>"| if it exists).
+
+\begin{tzcode}{.3}
+% \tzlink(+): shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlink+[bend right](0,2)(3,-2){A}[r]
+\tzlink+[bend right]<.5,.5>(0,2)(3,-2){A-shifted}[r]
+\tzlink[->](1,2)[-|](4,1)
+\tzlink[->,dashed]<-.2,.3>(1,2)[-|](4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Naming paths: Intersections}
+You can name the path of |\tzlink| by specifying the quote option |"<path name>"| \xem{immediately before} the first coordinate.
+You can use the path names of two paths to find an intersection point.
+
+\begin{tzcode}{.3}
+% \tzlink(+): path name: intersection
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlink[blue]"BB"(0,3){line B}[sloped](3,0)
+\tzlink+[->,red,bend right]"CC"(1,0)(3,2){Line C}[r]
+\tzXpoint{BB}{CC}(E) % instersection
+\tzdot*(E){E}[a]
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{Extending paths}
+You can extend the path of |\tzlink| by specifying \Tikz\ code in the last optional argument |<code.append>|.
+You can also use the macros \icmd{\tzlinkAtBegin} and \icmd{\tzlinkAtEnd} to extend the path at the beginning and at the end, respectively.
+Specifying the option |<code.append>| extends the path after |\tzlinkAtEnd|.
+
+\begin{tzcode}{.3}
+% \tzlink(+): path name: intersection
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinkAtBegin{(1,1) to[bend left]}
+\tzlinkAtEnd{arc (180:90:1cm) node [r,draw] {BB}}
+\tzlink[blue]"BB"(0,3){line B}[sloped](3,0)
+\tzlink+[->,red,bend right]"CC"(1,0)(3,2){Line C}[r]
+ < -| ++(-1,1) node [a] {End!} >
+\tzXpoint{BB}{CC}(E)
+\tzdot*(E){E}[a]
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzlinks}: All in one: Semicolon versions}
+\label{s:tzlinks}
+
+\subsection{\protect\cmd{\tzlinks}: Standard version}
+\label{ss:tzlinks}
+
+The macro \icmd{\tzlinks} is a \iisw{semicolon version} of |\tzlink|. |\tzlinks| accepts any number of coordinates to connect them with connected line segments or curves.
+You can change how two adjacent points are connected.
+|\tzlinks| is quite \xem{flexible} that you can think of it as a \xem{generalized version} of |\tzlines|.
+
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzlinks (<coor>)(<coor>) ..repeated.. (<coor>) ;
+% syntax: full
+\tzlinks{<path style>}[<opt>]<shift coor>"<path name>"
+ (<coor>)[<code1>]{<text>}[<node opt>]<code2>
+ ..repeated.. ()[]{}[]<> ; {<fill opacity>} <code.append>
+% remark:
+ - <code1> must be link style, such as --, to, -|, etc.
+ (possibly followed by other code)
+ - <code2> is especially for + or ++
+ (possibly with other code)
+ - repetition MUST be ended by ; (semicolon)
+ - full repeating pattern is ()[]{}[]<>..repeated..()[]{}[]<>
+ - {<fill opacity>} works only in \tzlinks*
+% defaults: \tzlinks, \tzlinks*, \tzlinks+, \tzlinks*+
+ {to}[]<>"" (<m>)[]{}[]<> ..repeated.. ()[]{}[]<> ; { }<>
+ *{to}[fill=black!50,fill opacity=.3,text opacity=1]
+ <>"" (<m>)[]{}[]<> ..repeated.. ()[]{}[]<> ; {.3}<>
+ +{to}[]<>"" (<m>)[]{}[]<++> ..repeated.. ()[]{}[]<> ; { }<>
+\end{tzdef}
+
+\paragraph{How to change link styles}
+There are three ways of changing link styles:
+\begin{itemize}\firmlist
+\item The fist curly brace option |{<link style>}| controls the link style of connecting any two coordinates.
+\item The second bracket option |[<code1>]| (locally) changes the link style of two adjacent coordinates. |[<code1>]| (locally) overrides |{<link style>}|.
+\item The effect of the macro |\settzlinkstyle| remains until the end of |tikzpicture| environment, unless changed again.
+\end{itemize}
+
+\begin{tztikz}{}
+% standard version
+\tzlinks(1,1)(2,2)(3,1)(4,3); % works like:
+ \draw (1,1) to (2,2) to (3,1) to (4,3);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzlinks
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks(0,1)(1,2)(3,1)(4,3);
+\end{tikzpicture}
+\end{tzcode}
+
+The default path style is |to|, which can be by \icmd{\settzlinkstyle}.
+The effect remains valid until the end of |tikzpicture| environment unless changed again.
+
+\begin{tzcode}{.3}
+% \tzlinks: \settzlinkstyle
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzlinkstyle{to[bend right]} %%
+\tzlinks[dashed](0,1)(1,2)[-|](3,1)(4,3);
+\tzlinks[blue]
+ (0,0)
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0);
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzlinks: various link styles
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks[->](1,2)[-|]
+ (0,0)[..controls (1,2) and (2,0)..]
+ (3,1)[to[bend left]]<++>
+ (1,2);
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzlinks: various link styles
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks[->](1,1)<++>
+ (1,1)[[rounded corners=10pt]--]
+ (0,3)
+ (0,0)[[sharp corners]--]
+ (4,0)<++>
+ (-1,2);
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzlinks: edge
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks(0,1)(1,2)[edge[dashed]]<(3,1)>(3,1)(4,3);
+\end{tikzpicture}
+\end{tzcode}
+
+\remark
+In \Tikz, |edge| is not part of the main path.
+So you need to be careful when you move the path or find intersection points.
+
+
+
+\subsection{\protect\cmd{\tzlinks+}, \protect\cmd{\tzlinks*}, \protect\cmd{\tzlinks*+}: Variants}
+\label{ss:tzlinks-variants}
+
+The \iisw{plus version} \icmd{\tzlinks+} treats a coordinate as relative (with |++| by default) to the previous coordinate, except the first coordinate.
+
+\begin{tztikz}{}
+% plus (+) version
+\tzlinks+(1,1)(2,2){--}(3,1)(4,3); % works like:
+ \draw (1,1) to ++(2,2) -- ++(3,1) to ++(4,3);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzlinks+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks+(0,1)(1,1)[to[bend right]](2,-1)(1,2);
+\end{tikzpicture}
+\end{tzcode}
+
+The \xem{starred version} \icmd{\tzlinks*} is to fill the closed area formed by |\tzlinks| with color or pattern. The related default value is |[fill=black!50, fill opacity=.3, text opacity=1]|.
+In fact, |\tzlinks*[draw=none]| is (almost) the same as |\tzpath*| (See Section \ref{s:tzpath*} on page \pageref{s:tzpath*} for more details).
+
+\begin{tztikz}{}
+% starred (*) version
+\tzlinks*(1,1)(2,2)(3,1)(4,3); % works like:
+ \draw [fill=black!50,fill opacity=.3,text opacity=1]
+ (1,1) to (2,2) to (3,1) to (4,3);
+\end{tztikz}
+
+\icmd{\tzlinks*+} is the plus version of |\tzlinks*|.
+
+\begin{tzcode}{.3}
+% \tzlinks*+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks*+[thick](0,1)(1,1)[to[bend right]](2,-1)(1,2);
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzlinks: fill, fill opacity
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzline[red,very thick](0,3)(4,0)
+\tzlinks[fill](0,0)(3,1)(2,3)(0,2); % default opacity=1
+\tzlinks[fill=green,fill opacity=.5]
+ <1,-1>(0,0)(3,1)(2,3)(0,2);
+\end{tikzpicture}
+\end{tzcode}
+
+You can also change the fill opacity by specifying the \xem{last} curly brace optional argument |{<fill opacity>}|, \xem{after the semicolon} (or before the option |<code.append>| it it exists).
+
+\begin{tzcode}{.3}
+% \tzlinks*
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzfillcolor{green}
+\tzline[red,very thick](0,3)(4,0)
+\tzlinks*[blue](0,0)(3,1)(2,3)(0,2);{1}
+\tzlinks*%[green]
+ <1,-1>(0,0)(3,1)(2,3)(0,2); {.5} %%
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use the macros |\settzfillcolor| and |\settzfillopacity| to change the defaults.
+The effect remains valid until the end of the |tikzpicture| environment, unless changed again.
+
+%%------------------------------------------------------------
+\subsection{Putting text, shift, intersections, and extending paths}
+\label{ss:tzlinks-add}
+
+
+\paragraph{Adding text}
+You can add text next to connected line segment or around the last coordinate by specifying options |{<text>}[<node option>]|.
+
+\begin{tztikz}{}
+\tzlinks+[dashed]"AA"(1,1){A}(2,2)[--]{B}[a]<+>(3,1){C}[b]; % works like
+ \draw [dashed,name path=AA]
+ (1,1) to node {A}
+ ++(2,2) -- node [above] {B}
+ +(3,1) to node [below] {C} ;
+\end{tztikz}
+
+
+\begin{tzcode}{.3}
+% \tzlinks: adding text
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks[blue](0,0){Ace}
+ (1,1){Beth}[sloped,a]
+ (3,0){C} [near start]
+ (4,2){End!}[draw,a=3pt];
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzlinks: adding text
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks[->](1,1){start}[sloped,b]<++>
+ (1,1)[[rounded corners=10pt]--]{K}[at end,a]
+ (0,3){Rounded}[scale=0.7,font=\scshape,at end,ar]
+ (0,0)[[sharp corners]--]
+ (4,0)<++>
+ (-1,2){End!}[draw,blue,a=3pt];
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzlinks: edge
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks(0,1){start}[at start,b]
+ (1,2)[edge[dashed,bend right]]{Go!}[sloped,b]<(3,1)>
+ (3,1)
+ (4,3){End\\here!}[align=center,r,draw,red] ;
+\end{tikzpicture}
+\end{tzcode}
+
+\remark Note that |edge| is not part of the main path.
+
+\paragraph{Shift}
+You can move the path of |\tzlinks| with the option |<shift coor>|.
+An \xem{empty} option |<>| is \xem{not allowed}.
+
+
+\begin{tzcode}{.3}
+% \tzlinks:
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks<.5,-1>(0,1){start}[at start,b] % shift
+ (1,2)[to[dashed,bend right]]{Go!}[sloped,b]
+ (3,1)
+ (4,3){End\\here!}[align=center,r,draw,red] ;
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{Naming paths: intersections}
+You can name the path of |\tzlinks| \xem{immediately befor} the first coordinate and use it to find intersection points.
+
+\begin{tzcode}{.3}
+% \tzlinks: edge
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks"AA"(0,1){start}[at start,b]
+ (1,2)[edge[dashed,bend right]]{Go!}[sloped,b]<(3,1)>
+ (3,1)
+ (4,3){End\\here!}[align=center,r,draw,red] ;
+\tzhXpointat{AA}{1.5}(A) % horizontal intersections
+\tzdots*(A){\texttt{(A)}}(A-2){\texttt{(A-2)}}[0];
+\end{tikzpicture}
+\end{tzcode}
+
+In the previous example, since |edge| is not part of the main path of |\tzlinks|,
+the second horizontal intersection point |(A-2)| is not on the |edge| curve.
+
+\paragraph{Extending paths}
+
+You can extend the path of |\tzlinks| by writing \Tikz\ code in the last (after the semicolon) optional argument |<code.append>|.
+So |<--cycle>| closes the path with a straight line.
+
+\begin{tzcode}{.3}
+% \tzlinks* <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinks*[blue](0,1)(1,2)[-|](3,1)(4,3);
+ < to [bend right=60] (0,1) -- cycle >
+\tzlinks*[fill=red]
+ (0,0)[to[bend right]]
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0); % not closed
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use \icmd{\tzlinksAtBegin} and \icmd{\tzlinksAtEnd} to extend the path of |\tzlinks| at the beginning and at the end, respectively.
+Specifying the option |<code.append>| extends the path after |\tzlinksAtEnd|.
+
+\begin{tzcode}{.3}
+% \tzlinks*: extending paths
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzlinksAtBegin{(0,2) to[bend left]}
+\tzlinksAtEnd{ to [out=210] (1,3) }
+\tzlinks*[blue](0,1)(1,2)[-|](3,1)(4,3);
+ < -| (0,2) >
+\tzlinks*[fill=red]
+ (0,0)[to[bend right]]
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0); <--cycle>
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+%%==================================
+\chapter{Filling Area}
+\label{c:fillingarea}
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzpath}: Semicolon version}
+\label{s:tzpath}
+
+
+\icmd{\tzpath} is the same as |\tzlinks[draw=none]|. In other words, |\tzpath| creates a path connecting an arbitrary number of coordinates, but it does not stroke the path. Since |\tzpath| is a \iisw{semicolon version} macro, you need to enter a \xem{semicolon} `|;|' to indicate where the coordinate iteration ends.
+
+You can visualize the path with |\tzpath[draw]|, which is the same as |\tzlinks|.
+
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzpath (<coor>)(<coor>) ..repeated.. (<coor>) ;
+% syntax: full
+\tzpath {<path style>}[<opt>]<shift coor>"<path name>"
+ (<coor>)[<code1>]{<text>}[<node opt>]<code2>
+ ..repeated.. ()[]{}[]<> ; <code.append>
+% remark:
+ - <code1> must be link style, such as --, to, -|, etc.
+ (possibly followed by other codes)
+ - <code2> is especially for + and ++
+ (possibly with other codes)
+ - repetition MUST be ended by ; (semicolon)
+% defaults: \tzpath
+ {to}[]<>"" (<m>)[]{}[]<> ..repeated.. ()[]{}[]<> ; <>
+\end{tzdef}
+
+\remark
+\begin{itemize}
+\item The main purpose of |\tzpath| is to fill an enclosed area with color or pattern.
+You can use |\tzpath[fill]| or |\tzpath[pattern=<...>]| to do it.
+\item Use \icmd{\settzpathlayer}, like |\settzpathlayre{behind}|, to change the layer of |\tzpath| (default: |main|).
+\end{itemize}
+
+\paragraph{Path construction operation}
+(If you are not an experienced user of \Tikz\, just skip this part.)
+
+%|\tzpath| is similar to |\tztos|, but it is more flexible in constructing paths.
+|\tzpath| allows you to choose how to construct a path using the |[<path style>]| option \xem{in-between} coordinates. \xem{Path extension operation} can be selected from `|--|', `|to|', `\verb+|-+', `\verb+-|+', etc.
+You can use \xem{the first brace option} |{<path style>}| to change all the |<path style>| in-between coordinates.
+
+
+\begin{tzcode}{.3}
+% \tzpath: path construction
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzpath[draw](0,1)(1,2)[-|](3,1)(4,3);
+\tzpath[draw]
+ (0,0)[to[bend right]]
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0);
+\end{tikzpicture}
+\end{tzcode}
+
+The default path style is `|to|' and can also be changed by \icmd{\settzpathstyle}, like, for example, |\settzpathstyle{--}|. |\settzpathstyle| is an alias of |\settzlinkstyle|. The effect remains valid until the end of |tikzpicture| environment unless changed again.
+
+\begin{tzcode}{.3}
+% \tzpath: \settzpathstyle
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzpathstyle{to[bend right]}
+\tzpath[draw](0,1)(1,2)[-|](3,1)(4,3);
+\tzpath[draw]
+ (0,0)[to[bend right]]
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0);
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzpath: \settzpathstyle
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzpathstyle{to[bend right]}
+\tzlinks(0,1)(1,2)[-|](3,1)(4,3);
+\tzlinks
+ (0,0)[to[bend right]]
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0);
+\end{tikzpicture}
+\end{tzcode}
+
+You can extend the path of |\tzpath| by writing \Tikz\ code in the last (after the semicolon) optional argument |<code.append>|.
+So |<--cycle>| closes the path with a straight line.
+
+\begin{tzcode}{.3}
+% \tzpath: <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzpath[draw](0,1)(1,2)[-|](3,1)(4,3);
+ < to [bend right=60] (0,1) >
+\tzpath[fill]
+ (0,0)[to[bend right]]
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0); <--cycle>
+\end{tikzpicture}
+\end{tzcode}
+
+\section{\protect\cmd{\tzpath*}: Semicolon version}
+\label{s:tzpath*}
+
+The starred version \icmd{\tzpath*} is the (almost) same as |\tzlinks*[draw=none]|. It fills the interior of |\tzpath| with |fill=black!50| with |fill opacity=.3| and |text opacity=1|, by default.
+The only difference between |\tzpath*| and |\tzlinks*[draw=none]| is that the layer of |\tzpath*| can be changed by |\settzpathlayer|, like |\settzpathlayer{behind}|.
+
+|\tzpath*| works like |\tzpath[fill=black!50,fill opacity=.3,text opacity=1]|.
+You can change the defaults by \icmd{\settzfillcolor} and \icmd{\settzfillopacity}.
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzpath*(<coor>)(<coor>) ..repeated.. (<coor>) ; {<fill opacity>}
+% syntax: full
+\tzpath*{<path style>}[<opt>]<shift coor>"<path name>"
+ (<coor>)[<code1>]{<text>}[<node opt>]<code2>
+ ..repeated.. ()[]{}[]<> ; {<fill opacity>} <code.append>
+% remark:
+ - <code1> must be link style, such as --, to, -|, etc.
+ (possibly followed by other codes)
+ - <code2> is especially for + and ++
+ (possibly with other codes)
+ - repetition MUST be ended by ; (semicolon)
+% defaults: \tzpath*
+ *{to}[fill=black!50,fill opacity=.3,text opacity=1]<>""
+ (<m>)[]{}[]<> ..repeated.. ()[]{}[]<> ; {.3}<>
+\end{tzdef}
+
+
+
+\paragraph{Filling the interior}
+
+You can optionally change the opacity of fill color using the \Tikz\ option |fill opacity|.
+
+\begin{tzcode}{.3}
+% \tzpath: fill, fill opacity
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzline[red,very thick](0,3)(4,0)
+\tzpath[fill](0,0)(3,1)(2,3)(0,2); % default opacity=1
+\tzpath[fill,green,fill opacity=.5]
+ <1,-1>(0,0)(3,1)(2,3)(0,2);
+\end{tikzpicture}
+\end{tzcode}
+
+You can also change the fill opacity by specifying the \xem{last} curly brace optional argument |{<fill opacity>}|, \xem{after the semicolon}.
+
+\begin{tzcode}{.3}
+% \tzpath*
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzline[red,very thick](0,3)(4,0)
+\tzpath*(0,0)(3,1)(2,3)(0,2);
+\tzpath*[green]
+ <1,-1>(0,0)(3,1)(2,3)(0,2); {.5} %%
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use the macros |\settzfillcolor| and |\settzfillopacity| to change the defaults.
+The effect remains valid until the end of the |tikzpicture| environment, unless changed again.
+
+\begin{tzcode}{.3}
+% \tzpath*: \settzfillcolor
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzfillcolor{red}
+\tzpath*[blue](0,1)(1,2)[-|](3,1)(4,3);
+ < to [bend right=60] (0,1) >
+\tzpath*
+ (0,0)[to[bend right]]
+ (1,1)
+ (2,1)[to[out=-135,in=45]]
+ (3,0); <--cycle>
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzpath+} and \protect\cmd{\tzpath*+}: Relative coordinates: Semicolon versions}
+\label{s:tzpath+}
+
+The \iisw{plus version} \icmd{\tzpath+} uses each coordinate (except for the first coordinate) relative (with |++|) to the previous coordinate.
+
+\xem{Everything else is the same as in} |\tzpath|.
+
+\icmd{\tzpath*+} is simply the plus version of |\tzpath*|.
+
+\begin{tzcode}{.3}
+% \tzpath+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzline[red,very thick](0,3)(4,0)
+\tzpath+[pattern=bricks,preaction={fill=brown}]
+ (0,0)(3,1)(-1,2)(-2,-1);
+\tzpath+[pattern=north east lines,opacity=.5]
+ <1,-1>(0,0)(3,1)(-1,2)(-2,-1);
+\end{tikzpicture}
+\end{tzcode}
+
+You can change the layer (|main| by default) using |\settzpathlayer|.
+
+\begin{tzcode}{.3}
+% \settzpathlayer
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzpathlayer{behind} %% layer
+\tzline[red,very thick](0,3)(4,0)
+\tzpath+[pattern=bricks,preaction={fill=brown}]
+ (0,0)(3,1)(-1,2)(-2,-1);
+\tzpath+[pattern=north east lines,opacity=.5]
+ <1,-1>(0,0)(3,1)(-1,2)(-2,-1);
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzpath*+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzline[red,very thick](0,3)(4,0)
+\tzpath*+(0,0)(3,1)(-1,2)(-2,-1);
+\tzpath*+[fill=green]
+ <1,-1>(0,0)(3,1)(-1,2)(-2,-1); {.5} %%
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%=======================================
+%%==================================
+\chapter{Curves}
+\label{c:curves}
+
+There are many ways to draw curves.
+
+%%-----------------------------------
+%%------------------------------------------------------------
+\section{B\'{e}zier curves}
+\label{s:beziercurves}
+
+\subsection{\protect\cmd{\tzbezier}}
+\label{ss:tzbezier}
+
+\icmd{\tzbezier} accepts \xem{three or four} coordinates to draw a B\'{e}zier curve from the first coordinate to the last coordinate, with \xem{one or two} control points.
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzbezier(<start-coor>)(cntl-coor>)(<last-coor>)
+\tzbezier(<start-coor>)(cntl-coor>)(<cntl-coor>)(<last-coor>)
+% syntax: full
+\tzbezier[<draw opt>]<shift coor>"<name path>"
+ (<start-coor>)(cntl-coor>)(<cntl-coor>)(<last-coor>)
+ {<text>}[<node opt>]<code.append>
+% defaults
+ []<>""(<m>)(<m>)()(<m>){}[]<>
+\end{tzdef}
+
+\paragraph{Control points}
+
+You can specify one or two control points, |(<cntl-coor>)|.
+
+\begin{tztikz}{}
+% three coordinates: one control point
+\tzbezier(0,1)(1,0)(4,3) % works like:
+ \draw (0,0) ..controls (1,0).. (4,3);
+\end{tztikz}
+
+\begin{tztikz}{}
+% four coordinates: two control points
+\tzbezier(0,1)(1,0)(2,4)(4,3) % works like:
+ \draw (0,0) ..controls (1,0) and (2,4).. (4,3);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzbezier
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezier[red](0,3)(1,2)(2,4)(4,3)
+\tzbezier[blue](0,2)(1,.5)(4,0)
+\end{tikzpicture}
+\end{tzcode}
+
+The style \ixxw{tzshowcontrols} displays the control points by drawing dotted lines, by default.
+You can also change the dotted line style, like |tzshowcontrols={dashed,green}|.
+
+
+\begin{tzcode}{.3}
+% \tzbezier: tzshowcontrols
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezier[blue,tzshowcontrols](0,2)(1,.5)(4,0)
+\tzdots*[blue](0,2)(1,.5)(4,0);
+\tzbezier[red,tzshowcontrols={green,dashed}]
+ (0,3)(1,2)(2,4)(4,3)
+\tzdots*[red](0,3)(1,2)(2,4)(4,3);
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Adding text}
+You can add text next to the curve or at the last coordinate
+by specifying the options |{<text>}| and |[<node opt>]| \xem{immediately after the last coordinate}.
+
+
+\begin{tzcode}{.3}
+% \tzbezier: adding text
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezier[blue](0,2)(1,.5)(4,0){curve}[draw,black,r]
+\tzbezier[red](0,3)(1,2)(2,4)(4,3){bezier}[near end,a]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Shift}
+You can move the curve of |\tzbezier| by specifying the option |<shift coor>| before the first coordinate or immediately before the option |"<path name>"|, if it exists.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
+
+\begin{tzcode}{.3}
+% \tzbezier: shift
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezier[blue]
+ (0,2)(1,.5)(4,0){curve}[draw,black,r]
+\tzbezier[blue,dashed]
+ <1,1>(0,2)(1,.5)(4,0){curve}[r]
+\tzbezier[red]
+ (0,3)(1,2)(2,4)(4,3){bezier}[near end,a]
+\tzbezier[red,dashed]
+ <0,-1>(0,3)(1,2)(2,4)(4,3){bezier}[blue,near end,a]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Naming paths: intersections}
+You can name the path of |\tzbezier| by specifying the option |"<path name>"| \xem{immediately before} the first coordinate.
+
+\begin{tzcode}{.3}
+% \tzbezier: name path, intersection
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezier[blue,dashed,thick]<1,1>"curve"
+ (0,2)(1,.5)(4,0){curve}[r]
+\tzbezier[red,dashed,thick]<0,-1>"bezier"
+ (0,3)(1,2)(2,4)(4,3){bezier}[blue,near end,a]
+% intersection point
+\tzXpoint*{curve}{bezier}(X){X}[-90]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Extending paths}
+You can extend the path of |\tzbezier| from the last coordinate, by writing \Tikz\ code
+in the last optional argument |<code.append>|.
+
+\begin{tzcode}{.3}
+% \tzbezier: extending path
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezier[red](0,3)(1,2)(2,4)(4,3){bezier}[near end,a]
+ < to [bend right] ++(-1,-1) node [below] {A} >
+\tzbezier[blue,->](0,2)(1,.5)(4,0)
+ < |- ++(-2,1) node [below] {B} >
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use \icmd{\tzbezierAtBegin} and \icmd{\tzbezierAtEnd} to extend the path of |\tzbezier| at the beginning and at the end, respectively.
+Specifying the option |<code.append>| extends the path after |\tzbezierAtEnd|.
+
+\begin{tzcode}{.3}
+% \tzbezier: extending path
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezierAtEnd
+ { to [bend right] ++(-1,-1) node [below] {A} }
+\tzbezier[red](0,3)(1,2)(2,4)(4,3){bezier}[near end,a]
+\tzbezierAtBegin{ (0,0) to [out=45,in=-30] }
+\tzbezierAtEnd{ |- ++(-2,1) }
+\tzbezier[blue,->](0,2)(1,.5)(4,0){B}[b]
+ < arc (0:90:1) node [a] {End!} >
+\end{tikzpicture}
+\end{tzcode}
+
+
+\subsection{\protect\cmd{\tzbezier+}: Relative coordinates}
+\label{ss:tzbezier+}
+
+For the \iisw{plus version} \icmd{\tzbezier+}, the last coordinate is \xem{relative} to the first coordinate.
+And the first control point is \xem{relative} to the first coordinate.
+
+\begin{tztikz}{}
+% three coordinates
+\tzbezier+(0,1)(1,-1)(4,3) % works like:
+ \draw (0,1) ..controls +(1,-1).. ($(0,1)+(4,3)$);
+\end{tztikz}
+
+In \Tikz, the second control point is \xem{relative} to the last coordinate.
+
+Therefore, for |\tzbezier+(A)(B)(C)(D)|, |(B)| and |(D)| are \xem{relative} to |(A)|, and the second control point |(C)| is \xem{relative} to the last coordinate |(D)|.
+
+\begin{tztikz}{}
+% four coordinates
+\tzbezier+(0,1)(1,-1)(-2,1)(4,3) % works like:
+ \draw (0,1) ..controls +(1,-1) and +(-2,1).. ($(0,1)+(4,3)$);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzbezier+
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezier+(0,3)(1,-1)(-2,1)(4,0){bezier}[near end,a]
+ < to [bend right] ++(-1,-1) node [below] {A} >
+\tzbezier+[blue,->](0,2)(1,-1.5)(4,-2)
+ < |- ++(-2,1) node [above] {B} >
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzbezierAtBegin, \tzbezierAtEnd
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzbezierAtEnd
+ { to [bend right] ++(-1,-1) node [below] {A} }
+\tzbezier+(0,3)(1,-1)(-2,1)(4,0){bezier}[near end,a]
+\tzbezierAtBegin{ (1,0) to [out=150,in=30] }
+\tzbezierAtEnd{ |- ++(-2,1) node [a] {here!} }
+\tzbezier+[blue,->](0,2)(1,-1.5)(4,-2){B}[b]
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%-----------------------------------
+%%------------------------------------------------------------
+\section{Parabolas}
+\label{s:parabolas}
+
+
+\subsection{\protect\cmd{\tzparabola}}
+\label{ss:tzparabola}
+
+\icmd{\tzparabola} accepts \xem{two or three} coordinates to draw a parabola from the first coordinate to the last coordinate.
+In the case of three coordinates, the parabola bends at the second coordinate.
+
+\begin{tztikz}{}
+% two coordinates
+\tzparabola(0,0)(3,2) % works like:
+ \draw (0,0) parabola (3,2);
+\end{tztikz}
+
+\begin{tztikz}{}
+% three coordinates
+\tzparabola(0,0)(1,1)(3,2) % works like:
+ \draw (0,0) parabola bend (1,1) (3,2);
+\end{tztikz}
+
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzparabola(<coor>)(<coor>)
+\tzparabola(<coor>)(<coor>)(<coor>)
+% syntax: full
+\tzparabola[<opt1>]<shift coor>"<path name>"
+ (<coor>)(<coor>)(<coor>){<text>}[<node opt>]<code.append>
+% default
+ []<>""(<m>)()(<m>){}[]<>
+\end{tzdef}
+
+\paragraph{Parabolas}
+|\tzplot| draws the graph of a quadratic function $f(x)=ax^2+bx+c$ for appropriate values of $a$, $b$, and $c$.
+
+\begin{tzcode}{.3}
+% \tzparabola: two coordinates
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabola[thick](0,0)(2,2)
+\tzparabola[bend at end,dashed](0,0)(2,2)
+\tzparabola[red,thick,bend pos=.5](2,0)(4,3)
+\tzparabola[blue,parabola height=-2cm](2,3)(4,2)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzparabola: three coordinates
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabola[thick](0,2)(1,0)(2,2)
+\tzparabola[blue](0,3)(2,1)(4,2)
+\tzparabola[red,thick](2,0)(3,2)(4,3)
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Adding text}
+You can add text at or around the \xem{last coordinate} by specifying the options |{<text>}| and |[<node opt>]| \xem{immediately after the last coordinate}.
+
+\begin{tzcode}{.3}
+% \tzparabola: adding text
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabola[thick](0,0)(2,2){parabola}[blue,draw,a]
+\tzparabola[blue](0,3)(2,1)(4,2){AC}[r]
+\tzparabola[red,thick,bend pos=.5](2,0)(4,3){C}[ar]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Shift}
+You can move the parabola by specifying the option |<shift coor>| before the first coordinate or immediately before the option |"<path name>"|, if it exist.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
+
+\begin{tzcode}{.3}
+% \tzparabola: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabola[blue] (0,3)(2,1)(4,2){AC}[r]
+\tzparabola[dashed]<0,-.5>(0,3)(2,1)(4,2){AC}[r]
+\tzparabola[dotted]<0,-1> (0,3)(2,1)(4,2){AC}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Naming paths: intersections}
+You can name the path of |\tzparabola| by specifying the option |"<path name>"| \xem{immediately before} the first coordinate.
+
+\begin{tzcode}{.3}
+% \tzparabola: name path, intersection
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabola[blue]"AC"(0,3)(2,1)(4,2){AC}[r]
+\tzparabola"BB"(1,0)(2,2)(3,0)
+% intersection points
+\tzXpoint*{AC}{BB}(X)
+\tzdot(X-2)(3pt)
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Extending paths}
+You can extend the path of |\tzparabola| from the last coordinate by writing \Tikz\ code in the last optional argument |<code.append>|.
+
+\begin{tzcode}{.3}
+% \tzparabola: extending path
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabola[blue,->]"AC"(0,3)(2,1)(4,2)
+ < -- ++ (-1,1) >
+\tzparabola"BB"(1,0)(2,2)(3,0)
+ < -| ++ (1,1) node [right] {K!} >
+\end{tikzpicture}
+\end{tzcode}
+
+You can also use the macros \icmd{\tzparabolaAtBegin} and \icmd{\tzparabolaAtEnd} to extend the path of |\tzparabola| at the beginning and at the and, respectively.
+Specifying the option |<code.append>| extends the path after |\tzparabolaAtEnd|.
+
+\begin{tzcode}{.3}
+% \tzparabola: extending path
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabolaAtEnd{ -- ++ (-1,1) }
+\tzparabola[blue,->]"AC"(0,3)(2,1)(4,2)
+\tzparabolaAtBegin{ (0,1) to [bend right ] }
+\tzparabolaAtEnd{ -| ++ (1,1) node [right] {End!} }
+\tzparabola"BB"(1,0)(2,2)(3,0){K!}[bl]
+ < arc (-90:0:1) node [a] {here!} >
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\subsection{\protect\cmd{\tzparabola+}: Relative coordinates}
+\label{ss:tzparabola+}
+
+The \iisw{plus version} \icmd{\tzparabola+} use the second and the third coordinates xem{relative} to the first coordinate.
+
+\xem{Everything else is the same as in} |\tzparabola|.
+
+\begin{tztikz}{}
+% two coordinates
+\tzparabola+(0,1)(3,2) % works like:
+ \draw (0,1) parabola ($(0,1)+(1,2)$);
+\end{tztikz}
+
+
+\begin{tztikz}{}
+% three coordinates
+\tzparabola+(0,1)(1,1)(3,-1) % works like:
+ \draw (0,1) parabola bend +(1,1) ($(0,1)+(3,-1)$);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzparabola+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzparabola+[thick](0,0)(2,2){parabola}[blue,draw,a]
+\tzparabola+[blue](0,3)(2,-2)(4,-1){AC}[r]
+\tzparabola+[red,thick,bend pos=.5](2,0)(2,3){C}[ar]
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%------------------------------------------------------------
+\section{Edges}
+\label{s:edge}
+
+%%------------------------------------------------------------
+\subsection{\protect\cmd{\tzedge(+)}}
+\label{ss:tzedge}
+
+The macro \icmd{\tzedge} connects two coordinates with a straight or curved line, using the \Tikz\ |edge| operation.
+
+
+\begin{tzdef}{}
+% syntax
+\tzedge[<opt>]<shift coor>
+ (<coor>){<text>}[<opt>](<coor>){<text>}[<opt>]<code.append>
+% defaults
+ []<>(<m>){}[](<m>){}[]<>
+\end{tzdef}
+
+\remark In \Tikz, the |edge| operation works like the |to| operation, but it is independently drawn after a main path is drawn and does not form a main path. So the option |"<path name>"| (for finding intersections) is not provided in |\tzedge|.
+
+
+\begin{tztikz}{}
+\tzedge(1,1)(3,2) % works like:
+ \draw (1,1) edge (3,2);
+\end{tztikz}
+
+\begin{tztikz}{}
+\tzedge[->,bend right](1,1){A}[near start](3,2) % works like:
+ \draw (1,1) edge [->,bend right] node [near start] {A} (3,2);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzedge
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzedge[->](0,1)(2,3)
+\tzedge[out=0,dashed]
+ (0,0){edge}[near start,sloped,a](4,2)
+\tzedge[in=90,blue](2,0)(4,1){C}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+The \xem{plus version} \icmd{\tzedge+} use the second coordinate \xem{relative} to the first coordinate.
+
+\begin{tztikz}{}
+\tzedge+(1,1)(3,2) % works like:
+ \draw (1,1) edge ++(3,2);
+\end{tztikz}
+
+\begin{tztikz}{}
+\tzedge+[->,bend right](1,1){A}[near start](3,2){B}[right] % works like:
+ \draw (1,1) edge [->,bend right] node [near start] {A} ++(3,2)
+ ++(3,2) node [right] {B};
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzedge+: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzedge+[->](0,1)(2,2)
+\tzedge+[out=0,dashed]
+ (0,0){edge}[near start,sloped,a](4,2)
+\tzedge+[in=90,blue]<-.5,.5>(2,0)(2,1){shifted}[b,draw]
+\end{tikzpicture}
+\end{tzcode}
+
+
+\remark |edge| in the option |<code.append>| works with the second coordinate, but it works with the last node if the second option |{<text>}| is not empty.
+(In \Tikz, if |edge| is preceded by |node|, the node is its start point.)
+
+\begin{tzcode}{.3}
+% <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzedge[->](0,1)(2,3)<edge[bend left,red] ++(1,-2)>
+\tzedge[out=0,dashed]
+ (0,0){edge}[near start,sloped,a]
+ (4,2){A}[draw]
+ <edge[bend left,thick] ++ (-1,-2)>
+\end{tikzpicture}
+\end{tzcode}
+
+%%------------------------------------------------------------
+\subsection{\protect\cmd{\tzedges(+)}: Semicolon versions}
+\label{ss:tzedges}
+
+The macro \icmd{\tzedges} accepts any number of coordinates to draw edges from the first coordinate to each of the next using the \Tikz\ |edge| operation. That is, the first coordinate is the unique start coordinate, and all others are target coordinates.
+|\tzedges| is a semicolon version, so you need to type |;| to indicate when the coordinate iteration ends.
+
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzedges(<coor>)(<coor>)..repeated..(<coor>);
+% syntax: full
+\tzedges[<opt>]<shift coor>
+ (<coor>)[<edge opt>]{<text>}[<opt>]..repeated..()[]{}[] ; <code.append>
+% defaults
+ [](<m>)[]{}[]..repeated..()[]{}[];
+\end{tzdef}
+
+\remark In \Tikz, the |edge| operation works like |to| operation, but it is added after main path is formed, like |node| does.
+\begin{itemize}\firmlist
+\item Each |edge| is drawn independently from a main path as well as any other |edge|'s. (See \Tikz\ manual for more details.)
+\item The |edge| operation of \Tikz\ does not change change anything about a main path, so the current point is not changed by |\tzedges|. This means that the last node (with |{<text>}| and |[<node opt>]|) works with the first (namely, start) coordinate.
+\end{itemize}
+
+
+
+
+
+\begin{tzcode}{.3}
+% \tzedges
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzedges(0,1){A} (1,2)
+ [blue,thick]{edge}[b](3,1)
+ (4,3);
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tztikz}{}
+\tzedges(0,1){A}(1,2)[blue,thick]{edge}[a](3,1)(4,3); % works like
+ \draw (0,1) edge node {A} (1,2)
+ edge [blue,thick] node [above] {edge} (3,1)
+ edge (4,3) ;
+\end{tikzpicture}
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzedges: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzedges[bend right]<1,-1> % shift
+ (0,1)[->,thick,blue]{A}
+ (1,2)[dotted]{Beta}[b]
+ (3,1)[dashed]{Cate}[near end,sloped,a]
+ (4,3);
+\end{tikzpicture}
+\end{tzcode}
+
+
+The \xem{plus version} \icmd{\tzedges+} uses the second and next coordinates \xem{relative} to the first coordinate.
+
+\begin{tztikz}{}
+\tzedges+(0,1)(2,1)(3,0)(4,2); % works like
+ \draw (0,1) edge ++ (2,1)
+ edge ++ (3,0)
+ edge ++ (4,2);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzedges+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzedges+[bend right](0,1)[bend right=0]{A}
+ (1,1)[dotted]{Beta}[b]
+ (3,0)[dashed]{Cate}[near end,sloped,a]
+ (4,2);
+\end{tikzpicture}
+\end{tzcode}
+
+
+\remark The option |<code.append>| works with the first coordinate because |edge| and |node| do not change the current point.
+
+
+\begin{tzcode}{.3}
+% <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzedges+(0,1)[bend right=0,->]{A}[fill=white]
+ (1,1)[bend right,dotted]{Beta}[midway]
+ (3,0)[bend right,dashed]{Cate}[near end]
+ (4,2);
+ < edge [bend left,thick,blue] (1,3) >
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%------------------------------------------------------------
+\section{More curves}
+
+\subsection{\protect\cmd{\tzplotcurve}, \protect\cmd{\tzplot}}
+
+You can draw curves with |\tzplotcurve| and |\tzplot|.
+
+\begin{tzcode}{.3}
+% \tzplotcurve(*)
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzplotcurve*[red,text=blue]
+ (0,0)(1,2){B}(2,2)(3,3)(4,1){E}[0];
+\tzplotcurve(1,.5)(2,3)(3,2)(2,1)(3,1);
+\end{tikzpicture}
+\end{tzcode}
+
+
+See Section \ref{s:tzplotcurve} on page \pageref{s:tzplotcurve}, for more details on |\tzplotcurve|.
+
+See Section \ref{s:tzplot} on page \pageref{s:tzplot}, for more details on |\tzplot|.
+
+
+\subsection{\protect\cmd{\tzto}, \protect\cmd{\tztos}}
+\label{ss:curves:tzto}
+
+You can draw curves with |\tzto| and |\tztos|.
+|\tztos| are quite useful to draw various curves.
+
+\begin{tzcode}{.3}
+% \tztos
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(0,0)(A)(1,2)(B){B}[b](3,3)(C)(4,2)(D);
+\tztos(A)[out=80,in=180]
+ (B)[out=0,in=180]
+ (C)[out=0,in=180]
+ (D){End!}[r];
+\end{tikzpicture}
+\end{tzcode}
+
+See Section \ref{s:tzto} on page \pageref{s:tzto}, for more details on |\tzto|.
+
+See Section \ref{s:tztos} on page \pageref{s:tztos}, for more details on |\tztos|.
+
+\subsection{\protect\cmd{\tzlink}, \protect\cmd{\tzlinks}}
+\label{ss:curves:tzlink}
+
+You can also draw curves with |\tzlink| and |\tzlinks|.
+
+\begin{tzcode}{.3}
+% \tztos
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(0,0)(A)(1,2)(B){B}[b](3,3)(C)(4,2)(D);
+\tzlinks(A)[to[out=80,in=180]]
+ (B)[to[out=0,in=180]]
+ (C)[to[out=0,in=180]]
+ (D){End!}[r];
+\end{tikzpicture}
+\end{tzcode}
+
+See Section \ref{s:tzlink} on page \pageref{s:tzlink}, for more details on |\tzlink|.
+
+See Section \ref{s:tzlink} on page \pageref{s:tzlinks}, for more details on |\tztos|.
+
+\subsection{\protect\cmd{\tzfn}}
+\label{ss:curves:tzfn}
+
+With \icmd{\tzfn}, you can plot functions such as $f(x)=\frac13(x-1)^3+1$, $g(x)=\sin x$, $h(x)=\sqrt{x-1}$, and so on.
+See Section \ref{s:tzfn} on page \pageref{s:tzfn}, for more details on |\tzfn|.
+
+
+
+
+
+
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-C2-v2.0.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-C2-v2.0.tex
new file mode 100644
index 0000000000..f7a05fca54
--- /dev/null
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc-C2-v2.0.tex
@@ -0,0 +1,1533 @@
+%!TEX root = tzplot-doc.tex
+%\begin{document}
+
+%%%%%=====CNONTINUED============
+%%%%%%==========================
+%%%\part{Points, Lines, and Curves}
+%%%%%%==========================
+%%%\label{p:linesandcurves}
+
+
+%%==================================
+\chapter{Polygons and Circles}
+\label{c:polygons}
+
+%%------------------------------------------------------------
+\section{Polygons: \protect\cmd{\tzpolygon}: Semicolon versions}
+\label{s:polygons}
+
+\subsection{\protect\cmd{\tzpolygon}}
+\label{ss:tzpolygon}
+
+\icmd{\tzpolygon} connects an arbitrary number of coordinates to draw a polygon, a closed figure. |\tzpolygon| is equivalent to a \xem{closed} |\tzlines|. Since |\tzpolygon| is a \xem{semicolon version}, you need to enter a \xem{semicolon} to indicate when the coordinate repetition ends.
+
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzpolygon(<coor>)(<coor>)..repeated..(<coor>) ;
+% syntax: medium
+\tzpolygon (<coor>){<text>}[<node opt>]..repeated..(<coor>){<text>}[<node opt>] ;
+% syntax: full
+\tzpolygon[<opt>]<shift coor>"<path name>"
+ (<coor>){<text>}[<node opt>]
+ ..repeated.. (){}[] ; <code.append>
+% defaults
+ []<>""(<m>){}[] ..repeated.. (){}[] ; <>
+\end{tzdef}
+
+\begin{tztikz}{}
+\tzpolygon(1,1)(2,2)(3,1)(4,3); % works like:
+ \draw (1,1) -- (2,2) -- (3,1) -- (4,3) -- cycle;
+\end{tztikz}
+
+You can add text next to lines by specifying the options |{<text>}| and |[<node opt>]| \xem{in-between} coordinates.
+
+\begin{tzcode}{.3}
+% \tzpolygon
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzpolygon[fill,blue,auto]
+ (0,1){Side A}[sloped,red]
+ (1,3){B}
+ (2,3)
+ (3,2){Side D}[swap,sloped]
+ (1,0);
+\end{tikzpicture}
+\end{tzcode}
+
+You can also move the polygon by specifying the option |<shift coor>| before the first coordinate.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
+
+\begin{tzcode}{.3}
+% \tzpolygon: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzpolygon[blue,auto]
+ (0,1){Side A}[sloped,red]
+ (1,3){B}
+ (2,3)
+ (3,2){Side D}[swap,sloped]
+ (1,0);
+\tzpolygon[auto,dashed]<1,-.5>
+ (0,1)(1,3)(2,3){C}(3,2)(1,0);
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\subsection{\protect\cmd{\tzpolygon*}}
+\label{ss:tzpolygon*}
+
+The starred version \icmd{\tzpolygon*} paints the interior of the polygon with the default options |fill=black!50| with |fill opacity=.3| and |text opacity=1|.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzpolygon*(<coor>)(<coor>)..repeated..(<coor>) ;
+% syntax: medium
+\tzpolygon*(<coor>){<text>}[<node opt>]..repeated..(<coor>){<text>}[<node opt] ;
+% syntax: full
+\tzpolygon*[<opt>]<shift coor>"<path name>"
+ (<coor>){<text>}[<node opt>]
+ ..repeated.. (){}[] ; {<fill opacity>} <code.append>
+% defaults
+ *[fill=black!50,fill opacity=.3,text opacity=1]<>""
+ (<m>){}[] .. repeated.. (){}[] ; {.3} <>
+\end{tzdef}
+
+You can change the fill opacity by specifying the the last curly brace option |{<fill opacity>}| immediately \xem{after the semicolon}.
+
+\begin{tzcode}{.3}
+% \tzpolygon: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzpolygon*[draw=blue,auto]
+ (0,1){Side A}[sloped,red]
+ (1,3){B}
+ (2,3)
+ (3,2){Side D}[swap,sloped]
+ (1,0);
+\tzpolygon*[green,auto,dashed,text=black]<1,-.5>
+ (0,1)(1,3)(2,3){C}(3,2)(1,0); {.7}
+\end{tikzpicture}
+\end{tzcode}
+
+You can also change the defaults using |\settzfillcolor| and |\settzfillopacity|.
+
+
+\subsection{\protect\cmd{\tzpolygon+}, \protect\cmd{\tzpolygon*+}: Relative coordinates: Semicolon versions}
+\label{ss:tzpolygon+}
+
+The plus version \icmd{\tzpolygon+} uses each coordinate (except the first one) relative (with |++|) to the previous coordinate.
+
+\xem{Everything else is the same as in} |\tzpolygon|.
+
+\icmd{\tzpolygon*+} is just a plus version of |\tzpolygon*|.
+
+\begin{tztikz}{}
+\tzpolygon+(1,1)(2,2)(3,1)(4,3); % works like:
+ \draw (1,1) -- ++(2,2) -- ++(3,1) -- ++(4,3) -- cycle;
+\end{tztikz}
+
+\begin{tztikz}{}
+\tzpolygon+[dashed]"AA"(1,1)(2,2){A}(3,1){B}[below]; % works like:
+ \draw [dashed,name path=AA] (1,1)
+ -- ++(2,2)
+ -- ++(3,1) node {A}
+ -- ++(4,3) node [below] {B}
+ -- cycle;
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzpolygon: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzpolygon*+[blue,auto]
+ (0,1){Side A}[sloped,red]
+ (1,2){B}
+ (1,0)
+ (1,-1){Side D}[swap,sloped]
+ (-2,-2);
+\tzpolygon*+[green,auto,dashed,text=black]<1,-.5>
+ (0,1)(1,2)(1,0){C}(1,-1)(-2,-2); {.7}
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%------------------------------------------------------------
+\section{Rectangles}
+\label{s:rectangles}
+
+\subsection{\protect\cmd{\tzframe} and its variants}
+\label{ss:tzframe}
+
+\icmd{\tzframe} accepts two coordinates draws a rectangle.
+
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzframe(<coor>)(<coor>)
+% syntax: full
+\tzframe[<opt>]<shift coor>"<path name>"(<coor1>)(<coor2>)<code.append>
+% defaults
+ []<>""(<m>)(<m>)<>
+\end{tzdef}
+
+\icmd{\tzrectangle} and \icmd{\tzbox} are aliases of |\tzframe|.
+
+\begin{tztikz}{}
+\tzframe(0,1)(3,2) % works like:
+ \draw (0,1) rectangle (3,2);
+\end{tztikz}
+
+
+The plus version \icmd{\tzframe+} uses the second coordinate as the coordinate relative (with |++|) to the first. \icmd{\tzrectangle+} and \icmd{\tzbox+} are aliases of |\tzframe+|.
+
+\begin{tztikz}{}
+\tzframe+(0,1)(3,2) % works like:
+ \draw (0,1) rectangle ++(3,2);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzframe, \tzframe+
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzframe(0,0)(3,2)
+\tzframe+[blue,rounded corners=2mm](1,3)(1,-2)
+\end{tikzpicture}
+\end{tzcode}
+
+The starred version \icmd{\tzframe*} fills the interior
+with |black!50| with |fill opacity=.3| and |text opacity=1|, by default.
+(\icmd{\tzrectangle*} and \icmd{\tzbox*} are aliases of |\tzframe*|.)
+
+|\tzframe+| has also its starred version \icmd{\tzframe*+}.
+(\icmd{\tzrectangle*+} and \icmd{\tzbox*+} are aliases of |\tzframe*+|.)
+
+\begin{tzdef}{}
+% syntax
+\tzframe*[<opt>]<shift coor>"<path name>"
+ (<coor1>)(<coor2>){<fill opacity>}<code.append>
+% defaults
+ *[fill=black!50,fill opacity=.3,text opacity=1]<>""(<m>)(<m>){.3}<>
+\end{tzdef}
+
+With the starred versions, you can change the fill opacity using the last option |{<fill opacity>}|.
+
+\begin{tzcode}{.3}
+% \tzframe*(+)
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzframe[fill](0,0)(3,2)
+\tzframe*+[green,rounded corners=2mm](1,3)(1,-2){.7} %%
+\end{tikzpicture}
+\end{tzcode}
+
+You can move |\tzframe| and its variants by specifying the option |<shift coor>| immediately before the first mandatory coordinate.
+The empty shift option |<>| is not allowed.
+
+\begin{tzcode}{.3}
+% \tzframe(*)(+): shift
+\begin{tikzpicture}
+\tzhelplines*(4,4)
+\tzframe(0,0)(3,2)
+\tzframe[blue,dashed]<1,1>(0,0)(3,2)
+\tzcoors(1,3)(A)(1,-2)(B);
+\tzframe*+[blue,rounded corners=2mm](A)(B)
+\tzframe*+[red,rounded corners=2mm]<-.5,-.5>(A)(B)
+\tzframe*+[green,rounded corners=2mm]<1,1>(A)(B)
+\end{tikzpicture}
+\end{tzcode}
+
+You can use the last option |<code.append>| to add more \Tikz\ code.
+
+\begin{tzcode}{.3}
+% \tzframe(*), \tzrectangle(*): <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzframe*[blue,even odd rule](0,0)(3,2)
+ <(.5,.5) rectangle (2.5,1.5)>
+\tzframe[fill=green,even odd rule](2,1)(4,4)
+ <(2.3,1.2) rectangle (3.5,3.6)>
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\subsection{\protect\cmd{\tzrectanglering(*)}}
+
+\icmd{\tzrectanglering*} draws two rectangles and draws a rectangle ring by filling the interior with the default options \ixxw{even odd rule}, |fill=black!50|, |fill opacity=.3|, and |text opacity=1|.
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzrectanglering*(<coorA1>)(<coorA2>)(<coorB1>)(<coorB2>)
+% syntax: full
+\tzrectanglering*[<opt>]<shift coor>
+ (<coorA1>)(<coorA2>)(<coorB1>)(<coorB2>)
+ {<fill opacity>}<code.append>
+% defaults:
+ *[even odd rule,fill=black!50,fill opacity=.3,text opacity=1]
+ <>(<m>)(<m>)()(){.3}<>
+\end{tzdef}
+
+\begin{tztikz}{}
+\tzrectanglering*(A1)(A2)(B1)(B2) % works like:
+ \draw [fill=black!50,fill opacity=.3,text opacity=1, even odd rule]
+ (A1) rectangle (A2)
+ (B1) rectangle (B2) ;
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzrectanglering*
+\begin{tikzpicture}
+\tzhelplines(4,2)
+\tzrectanglering*[blue](0,0)(3,2)(.5,.5)(2.5,1.5)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzrectanglering*: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzrectanglering*[blue](0,0)(3,2)(.5,.5)(2.5,1.5)
+\tzrectanglering*[red]<.9,.9>(0,0)(3,2)(.5,.5)(2.5,1.5)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+\icmd{\tzrectanglering} draws two rectangles with the default option |even odd rule|.
+
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzrectanglering(<coorA1>)(<coorA2>)(<coorB1>)(<coorB2>)
+% syntax: full
+\tzrectanglering[<opt>]<shift coor>(<coorA1>)(<coorA2>)
+ (<coorB1>)(<coorB2>)<code.append>
+% defaults
+ [even odd rule]<>(<m>)(<m>)()()<>
+\end{tzdef}
+
+\begin{tztikz}{}
+\tzrectanglering(0,0)(2,2)(.5,.5)(1.5,1.5) % works like:
+ \draw (0,0) rectangle (2,2)
+ (.5,.5) rectangle (1.5 and 1.5);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzrectanglering: shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzrectanglering[blue](0,0)(3,2)(.5,.5)(2.5,1.5)
+\tzrectanglering[red,fill=green]<.9,.9>
+ (0,0)(3,2)(.5,.5)(2.5,1.5)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\begin{tzcode}{.3}
+% \tzrectanglering*
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzrectanglering*[blue](0,0)(3,2)(1.5,1.5)(4,3)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzrectanglering(*): nonzero rule, fill opacity
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzrectanglering*[red,draw=none,nonzero rule]
+ (0,0)(3,2)(1.5,1.5)(4,3){1}
+\tzrectanglering[fill=white](0,0)(3,2)(1.5,1.5)(4,3)
+\end{tikzpicture}
+\end{tzcode}
+
+With the last option |<code.append>| you can add some more \Tikz\ code.
+
+\begin{tzcode}{.3}
+% \tzframering(*), \tzboxring(*)
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzframering*[blue](0,0)(3,4)
+ < (1.3,1.3) circle (1cm) (2,3) circle (.5) >
+\tzboxring[pattern=bricks](1,1)(4,3)
+ < (2.5,2) ellipse (1 and .7) >
+\end{tikzpicture}
+\end{tzcode}
+
+\icmd{\tzframering} and \icmd{\tzboxring} are aliases of |\tzrectaglering|.
+
+\icmd{\tzframering*} and \icmd{\tzboxring*} are aliases of |\tzrectaglering*|.
+
+%%------------------------------------------------------------
+\section{Circles and rings}
+\label{s:circleandring}
+
+\subsection{\protect\cmd{\tzcircle(*)}}
+\label{ss:tzcircle}
+
+\icmd{\tzcircle} draws a circle around a specified coordinate with a specified radius.
+The coordinate and the radius are mandatory.
+
+\begin{tzdef}{}
+% syntax
+\tzcircle[<opt>]<shift coor>"<path name>"(<coor>)(<radius>)<code.append>
+% defaults
+ []<>""(<m>)(<m>)<>
+\end{tzdef}
+
+\begin{tztikz}{}
+\tzcircle(0,0)(1cm) % works like:
+ \draw (0,0) circle (1cm);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzcircle: "name path" and intersections
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcircle(1,1)(1cm)
+\tzcircle[blue,dashed]"AA"(2,2)(1cm)
+\tzvXpointat{AA}{2.5}(A) % intersections
+\tzdots*(A-1){$A_1$}[r](A-2){$A_2$}[r];
+\end{tikzpicture}
+\end{tzcode}
+
+
+The starred version \icmd{\tzcircle*} fills the interior
+with |fill=black!50| with |fill opacity=.3| and |text opacity=1|, by default.
+You can change the fill opacity using the curly brace option |{<fill opacity>}| \xem{right after} the option |(<radius>)|.
+
+\begin{tzdef}{}
+% syntax
+\tzcircle*[<opt>]<shift coor>"<path name>"
+ (<coor>)(<radius>){<fill opacity>}<code.append>
+% defaults
+ *[fill=black!50,fill opacity=.3]<>""(<m>)(<m>){.3}<>
+\end{tzdef}
+
+
+You can move the circles by specifying the option |<shift coor>| \xem{before} the center coordinate or \xem{immediately before} the option |"<path name>"| if it exists.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
+
+\begin{tzcode}{.3}
+% \tzcircle(*): shift
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzcoors(2,2)(A)(3,1)(B);
+\tzcircle(2,2)(1)
+\tzcircle[blue,dashed]<-.5,0>(A)(1)
+\tzcircle*(3,1)(.5cm)
+\tzcircle*[blue]<.5,0>(B)(.5cm)
+\end{tikzpicture}
+\end{tzcode}
+
+With the last option |<code.append>|, you can add some \Tikz\ code.
+
+\begin{tzcode}{.3}
+% \tzcircle(*): <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzcoors(2,2)(A)(3,1)(B);
+\tzcircle*[blue,even odd rule](A)(1cm)
+ <(2,2) circle (1.5)>
+\tzcircle[fill=green,even odd rule](B)(1cm)
+ <(3,1) circle (.7)>
+\end{tikzpicture}
+\end{tzcode}
+
+
+\subsection{\protect\cmd{\tzring(*)}}
+
+\icmd{\tzring*} draws two circles and draws a circle ring by filling the interior with the default options \ixxw{even odd rule}, |fill=black!50|, |fill opacity=.3|, and |text opacity=1|.
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzring*(<coor>)(<radius>)(<coor>)(<radius>)
+% syntax: full
+\tzring*[<opt>]<shift coor>
+ (<coor>)(<radius>)(<coor>)(<radius>){<fill opacity>}<code.append>
+% defaults:
+ *[even odd rule,fill=black!50,fill opacity=.3,text opacity=1]
+ <>(<m>)(<m>)()(){.3}<>
+\end{tzdef}
+
+\begin{tztikz}{}
+\tzring*(0,0)(1cm)(0,0)(1.5cm) % works like:
+ \draw [fill=black!50,fill opacity=.3,text opacity=1, even odd rule]
+ (0,0) circle (1cm) (0,0) circle (1.5cm);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzring*: fill opacity
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzring*[green](2,2)(1)(2,2)(1.5)
+\tzring*[fill=blue](3,1)(1)(3,1)(.7){1} %
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzring*: nonzero rule
+\begin{tikzpicture}
+\tzhelplines(4,2)
+\tzring*[fill=red,nonzero rule](1,1)(1)(2,1)(1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzring*: nonzero rule
+\begin{tikzpicture}
+\tzhelplines(4,2)
+\tzring*[fill=red,nonzero rule](1,1)(1)(2,1)(1){1}
+\tzring*[fill=white](1,1)(1)(2,1)(1){1}
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzring*: nonzero rule
+\begin{tikzpicture}
+%\tzhelplines(4,3)
+\tzframe(0,0)(4,3)
+\tzring*[blue](1.5,1.5)(1)(2.5,1.5)(1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\icmd{\tzring} draws two circles with the default option \ixxw{even odd rule}.
+
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzring*(<coor>)(<radius>)(<coor>)(<radius>)
+% syntax: full
+\tzring*[<opt>]<shift coor>
+ (<coor>)(<radius>)(<coor>)(<radius>)<code.append>
+% defaults:
+ [even odd rule]<>(<m>)(<m>)()()<>
+\end{tzdef}
+
+\begin{tzcode}{.3}
+% \tzring: shift
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzcoors(2,2)(A)(3,1)(B);
+\tzring[blue](2,2)(1)(2,2)(1.5)
+\tzring[fill=green]<-1,0>(3,1)(1)(3,1)(.7) % shift
+\end{tikzpicture}
+\end{tzcode}
+
+You can add some \Tikz\ code with the last option |<code.append>|.
+
+
+\begin{tzcode}{.3}
+% \tzring(*): <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzring*[blue](2,2)(1)< (1.5,2) circle (.3 and .5) >
+\tzring*[pattern=bricks](3,1)(1)
+ < (2.5,.5) rectangle ++(1,1) >
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzring(*): nonzero rule, fill opacity
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzring*[fill=red,draw=none,nonzero rule](1,1)(1){1}
+ <(3,.5) rectangle (1.5,3)>
+\tzcirclering[fill=white](1,1)(1)
+ <(3,.5) rectangle (1.5,3)>
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\icmd{\tzcirclering} and \icmd{\tzcirclering*} are aliases of |\tzring| and |\tzring*|, respectively.
+
+
+
+
+%%------------------------------------------------------------
+\section{Ellipses}
+\label{s:ellipses}
+
+\subsection{\protect\cmd{\tzellipse(*)}}
+\label{ss:tzellipse}
+
+
+\icmd{\tzellipse} draws an ellipse around a specified coordinate with the specified x-radius and y-radius.
+
+The starred version \icmd{\tzellipse*} fills the interior
+with |fill=black!50| with |fill opacity=.3| and |text opacity=1|, by default.
+
+|\tzellise(*)| is basically the same as |\tzcircle(*)|.
+
+\begin{tzdef}{}
+% syntax
+\tzellipse*[<opt>]<shift coor>"<path name>"
+ (<coor>)(<x and y radius>){<fill opacity>}<code.append>
+% defaults: \tzellipse*
+ *[fill=black!50,fill opacity=.3,text opacity=1]<>""(<m>)(<m>){.3}<>
+% defaults: \tzellipse
+ *[]<>""(<m>)(<m>)<>
+\end{tzdef}
+
+
+
+\begin{tztikz}{}
+\tzellipse(0,0)(1 and .5) % works like:
+ \draw (0,0) ellipse (1 and .5);
+\end{tztikz}
+
+
+You can move the ellipse by specifying the option |<shift coor>| immediately before the mandatory coordinate.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
+
+Using the last option |{<fill opacity>}|, you can change the fill opacity.
+
+\begin{tzcode}{.3}
+% \tzellipse(*)
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzellipse(2,2)(1.5 and 1)
+\tzellipse*[blue](2,1)(1 and 1.5){.5} % fill opacity
+\tzellipse[fill=green](3,1)(1cm and .5cm)
+\tzellipse*[red]<0,-.5>(3,1)(1cm and .5cm) % shift
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+You can add some \Tikz\ code with the option |<code.append>|.
+
+\begin{tzcode}{.3}
+% \tzellipse(*), \tzoval(*): <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzoval*[blue,even odd rule](2,2)(1.5 and 1)
+ <(2,2) ellipse (2 and 1.5)>
+\tzellipse[fill=green,even odd rule](3,1)(1 and 1)
+ <(3,1) ellipse (.5 and .8)>
+\end{tikzpicture}
+\end{tzcode}
+
+\icmd{\tzoval} is an alias of |\tzellipse| and \icmd{\tzoval*} is an alias of |\tzellipse*|.
+
+
+\subsection{\protect\cmd{\tzellipsering(*)}}
+
+\icmd{\tzellipse*} draws two ellipses and draws an ellipse ring by filling the interior with the default options \ixxw{even odd rule}, |fill=black!50|, |fill opacity=.3|, and |text opacity=1|.
+
+\icmd{\tzellipse} draws two ellipses with the default option |even odd rule|.
+
+|\tzellipsering(*)| is basically the same as |\tzring(*)|.
+
+\begin{tzdef}{}
+% syntax: minimal
+\tzellipse*(<coor>)(<x and y radius>)(<coor>)(<x and y radius>)
+% syntax: full
+\tzellipsering*[<opt>]<shift coor>
+ (<coor>)(<x and y radius>)(<coor>)(<x and y radius>)
+ {<fill opacity>}<code.append>
+% defaults: \tzellipse*
+ *[even odd rule,fill=black!50,fill opacity=.3,text opacity=1]
+ <>(<m>)(<m>)()(){.3}<>
+% defaults: \tzellipse
+ *[even odd rule]<>(<m>)(<m>)()()<>
+\end{tzdef}
+
+\begin{tztikz}{}
+\tzellipsering*(2,1)(1cm and 1.5cm)(2,2)(1.5cm and 1.5cm) % works like:
+ \draw [fill=black!50,fill opacity=.3,text opacity=1, even odd rule]
+ (2,1) ellipse (1cm and 1.5cm) (2,2) ellipse (1.5cm and 1.5cm);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzring*: fill opacity
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzellipsering*[blue](2,2)(1 and 1)(2,2)(1.5cm)
+\tzring*[fill=green](2,1)(1 and 1.5)(2,1)(.7 and 1){1}
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+
+
+\begin{tzcode}{.3}
+% \tzellipsering(*)
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzcoors(2,2)(A)(3,1)(B);
+\tzellipsering*[blue](2,2)(1 and 1.5)
+ < (1.5,2.5) circle (3mm) >
+\tzellipsering[pattern=bricks]<1,0>(2,1)(1 and 1.5)
+ < (2.5,.5) rectangle ++(1,1) >
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzellipsering(*)
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzcoors(2,2)(A)(3,1)(B);
+\tzovalring*[fill=red,draw=none,nonzero rule]
+ (2,2)(1 and 1.5)(3,1)(1 and 1.5){1}
+\tzovalring[fill=white]
+ (2,2)(1 and 1.5)(3,1)(1 and 1.5)
+\end{tikzpicture}
+\end{tzcode}
+
+\icmd{\tzovalring} is an alias of |\tzellipsering| and \icmd{\tzovalring*} is an alias |\tzellipsering*|.
+
+
+
+%%==================================
+\chapter{Arcs, Wedges, and Angle Marks}
+\label{c:arcs}
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzarc(')}: Centered arcs}
+\label{s:tzarc}
+
+\subsection{Arcs}
+\label{ss:tzarc}
+
+\icmd{\tzarc} draws an arc around a specified \xem{center coordinate}.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzarc(<coor>)(<angA:angB:radius>)
+% syntax: full
+\tzarc[<opt>]<shift coor>"<path name>"
+ (<coor>)(<angA:angB:radius>){<text>}[<node opt>]<code.append>
+% defaults
+ []<>""(<m>)(<m>){}[]<>
+\end{tzdef}
+
+
+\begin{tztikz}{}
+\tzarc(1,1)(30:120:1) % works like:
+ \draw (1,1) ++(30:1) arc (30:120:1);
+\end{tztikz}
+
+The \iisw{swap version} \icmd{\tzarc'} switches its drawing direction from \ixxw{counterclockwise} to \ixxw{clockwise} and vice versa.
+
+\begin{tztikz}{}
+\tzarc'(1,1)(30:120:1) % works like:
+ \draw (1,1) ++(30:1) arc (30:120-360:1);
+\end{tztikz}
+
+
+\begin{tzcode}{.3}
+% \tzarc, \tzarc'
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzdots*(1,1)(3,2);
+\tzarc [blue,->] (1,1)(-45:180:1)
+\tzarc'[dashed,->] (1,1)(-45:180:1)
+\draw [->](3,2) ++(-45:1) arc (-45:180:1);
+\draw [dashed,->](3,2) ++(-45:1) arc (-45:180-360:1);
+\end{tikzpicture}
+\end{tzcode}
+
+You can add text along the arc by specifying the options |{<text>}| and |[<node opt>]| immediately after the two mandatory arguments.
+
+
+\begin{tzcode}{.3}
+% \tzarc('): adding text
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzarc [blue,->] (1,1)(-45:180:1){A}[r]
+\tzarc'[dashed,->](1,1)(-45:180:1)
+\tzarc[->] (3,2)(-45:180:1){arc}[midway,sloped]
+\tzarc'[dashed,->](3,2)(-45:180:1)
+\end{tikzpicture}
+\end{tzcode}
+
+You can move arcs by specifying the option |<shift coor>| before the center coordinate or immediately before the option |"<path name>"| if it exists.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
+
+\begin{tzcode}{.3}
+% \tzarc('): shift, name path, intersection
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzarc [blue,->] (1,1)(-45:180:1){A}[r]
+\tzarc'[dashed,->] (1,1)(-45:180:1)
+\tzarc [blue,->] <2,1>(1,1)(-45:180:1){A-shifted}[r]
+\tzarc'[dashed,->]<2,1>"AA"(1,1)(-45:180:1) %%
+\tzvXpointat*{AA}{2.5}
+\end{tikzpicture}
+\end{tzcode}
+
+You can also extend the path of |\tzarc| by specifying the last option |<code.append>| with \Tikz\ code written in it. For example, |<--cycle>| makes the path closed.
+
+
+\begin{tzcode}{.3}
+% \tzarc('): <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzarc [blue,->](1,1)(-45:180:1)
+ < to[bend left] ++(1,-1) >
+\tzarc [red,->] <2,1>(1,1)(-45:180:1)<--cycle>
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\subsection{Elliptical arcs}
+\label{ss:ellipticalarc}
+
+|\tzarc| draws an \iisw{elliptical arc} if you specify |x-radius| and |y-radius|.
+
+\begin{tzcode}{.3}
+% \tzarc: elliptical
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzarc[->,red](1,1)(30:270:1.5 and 0.5)
+\tzarc'[->,dotted](1,1)(30:270:1.5 and 0.5)
+\tzdots*(1,1)(2,2);
+\tzarc[->,blue,dashed](2,2)(0:-270:1 and 2)
+\tzarc'[->](2,2)(0:-270:1 and 2)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzarc: elliptical
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzarc[->,red](1,1)(30:270:1.5 and 0.5)
+\tzdots*(1,1)(2,2);
+\tzarc[blue,fill=green,fill opacity=.3]
+ (2,2)(0:-270:1 and 2)<--(2,2)--cycle> % code.append
+\tzarc[->,blue,dashed]
+ <1,0>(2,2)(0:-270:1 and 2) % shift
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzarcfrom(')}: Arcs as in \Tikz}
+\label{s:tzarcfrom}
+
+\icmd{\tzarcfrom} draws an arc starting from a specified point, like \Tikz\ does.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzarcfrom(<coor>)(<angA:angB:radius>)
+% syntax: full
+\tzarcfrom[<opt>]<shift coor>"<path name>"
+ (<coor>)(<angA:angB:radius>){<text>}[<node opt>]<code.append>
+% defaults
+ []<>""(<m>)(<m>){}[]<>
+\end{tzdef}
+
+
+\begin{tztikz}{}
+\tzarcfrom(1,1)(30:120:1) % works like:
+ \draw (1,1) arc (30:120:1);
+\end{tztikz}
+
+\xem{Everything else is the same as in }|\tzarc|.
+
+\icmd{\tzarcfrom'} is the \iisw{swap version} of |\tzarcfrom|.
+
+
+\begin{tzcode}{.3}
+% \tzarcfrom
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzdots*(1,1)(3,2);
+\tzarcfrom [blue,->] (1,1)(-45:180:1){A}[r]
+\tzarcfrom'[dashed,->](1,1)(-45:180:1)
+\tzarcfrom[->](3,2)(-45:180:1){arc}[midway,sloped]
+\tzarcfrom'[dashed,->](3,2)(-45:180:1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzarcsfrom}: Connected arcs: Semicolon version}
+\label{s:tzarcsfrom}
+
+The macro \icmd{\tzarcsfrom} (i.e. |\tzarcs + from|) accepts an arbitrary number of parenthesis arguments in the form of |(<angA:AngB:radius>)| following the start coordinate. Since |tzarcsfrom| is a semicolon version, you need to enter a \xem{semicolon} to indicate when the repetition ends.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzarcsfrom(<start coor>)
+ (<angA:angB:radius>)..repeated..(<angA:angB:radius>) ;
+% syntax: full
+\tzarcsfrom[<opt>]<shift coor>"<path name>"
+ (<start coor>)(<angA:angB:radius>){<text>}[<node opt>]
+ ..repeated..(){}[] ; <code.append>
+% defaults
+ []<>""(<m>) (<m>){}[]..repeated..(){}[] ; <>
+\end{tzdef}
+
+
+\begin{tzcode}{.4}
+% \tzarcfrom: adding text, <code.append>
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzcoor*(3,2)(A)
+\tzarcsfrom[->,auto](A)
+ (0:180:1){1}[midway]
+ (180:360:1.2){2}[midway]
+ (0:180:1.4){3}[midway,swap]
+ (180:360:1.6){4}[midway,swap];
+ < node [right,blue] {End!} >
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\begin{tzcode}{.4}
+% \tzarcfrom: shift
+% flag: step 1
+\begin{tikzpicture}
+\tzhelplines(-2,-2)(2,2)
+\tzdot*(0,0)
+\edef\x{atan(2/3)}
+\tzarcsfrom[red,->](0,0)
+ (-\x:-\x-180:1){red 1}[midway];
+\tzarcsfrom[blue,->](0,0)
+ (180-\x:-\x:1){blue 1}[midway];
+\tzarcsfrom[dashed,->]<.5,.5>(0,0)
+ (180-\x:-\x:1){blue 1}[midway];
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.4}
+% flag: step 2
+\begin{tikzpicture}
+\edef\x{atan(2/3)}
+\tzarcsfrom[red](0,0)
+ (-\x:-\x-180:1){1}[midway]
+ (-\x+180:-\x:2){2}[midway];
+\tzarcsfrom[blue](0,0)
+ (180-\x:-\x:1){1}[midway]
+ (-\x:-\x-180:2){2}[midway];
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.4}
+% flag: step 3
+\definecolor{flagred}{RGB}{205,48,57}
+\definecolor{flagblue}{RGB}{17,73,156}
+\begin{tikzpicture}[scale=1]
+\edef\x{atan(2/3)}
+\tzarcsfrom[draw=none,fill=flagred](0,0)
+ (-\x:-\x-180:1)
+ (-\x+180:-\x:2)
+ (-\x:-\x+180:1);<-- cycle>
+\tzarcsfrom[draw=none,fill=flagblue](0,0)
+ (180-\x:-\x:1)
+ (-\x:-\x-180:2)
+ (-\x+180:-\x+360:1);<-- cycle>
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.4}
+% flag: shift
+\definecolor{flagred}{RGB}{205,48,57}
+\definecolor{flagblue}{RGB}{17,73,156}
+\begin{tikzpicture}[scale=1]
+\edef\x{atan(2/3)}
+\tzarcsfrom[draw=none,fill=flagred]<.1,.3>(0,0)
+ (-\x:-\x-180:1)
+ (-\x+180:-\x:2)
+ (-\x:-\x+180:1);<-- cycle>
+\tzarcsfrom[draw=none,fill=flagblue](0,0)
+ (180-\x:-\x:1)
+ (-\x:-\x-180:2)
+ (-\x+180:-\x+360:1);<-- cycle>
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%------------------------------------------------------------
+\section{Wedges}
+\label{s:wedges}
+
+\subsection{\protect\cmd{\tzwedge(')}}
+\label{ss:tzwedge}
+
+\icmd{\tzwedge} draws a wedge around a specified \xem{center} coordinate.
+
+|\tzwedge| works similarly to |\tzarc|, but it forms a closed path from the center coordinate. |\tzwedge| does not have the option |<code.append>|.
+
+\begin{tzdef}{}
+% syntax
+\tzwedge[<opt>]<shift coor>"<path name>"
+ (<coor>)(<angA:angB:radius>){<text>}[<node opt>]
+% defaults
+ []<>""(<m>)(<m>){}[midway]
+\end{tzdef}
+
+
+\begin{tztikz}{}
+\tzwedge(1,1)(30:120:1) % works like:
+ \draw (1,1) -- ++(30:1) arc (30:120:1) -- cycle;
+\end{tztikz}
+
+The swap version \icmd{\tzwedge'} is the \iisw{swap version} of \icmd{\tzwedge}.
+It switches the drawing direction from \ixxw{counterclockwise} to \ixxw{clockwise} and vice versa.
+
+
+\begin{tztikz}{}
+\tzwedge'(1,1)(30:120:1) % works like:
+ \draw (1,1) -- ++(30:1) arc (30:120-360:1) -- cycle;
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzwedge, \tzwedge'
+\begin{tikzpicture}
+\tzcoor*(2,1)(A)(3pt)
+\tzhelplines(4,3)
+\tzwedge[blue,very thick](A)(30:120:1.5)
+\tzarc[->,green] (A)(30:120:1.3)
+\tzwedge'[dashed](A)(0:135:1.5){clockwise}[sloped,red]
+\tzarc'[->,green](A)(0:135:1.3)
+\tzwedge'[fill](A)(-60:240:1)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzwedge('): shift
+\begin{tikzpicture}
+\tzcoor*(2,1)(A)
+\tzhelplines(4,3)
+\tzwedge[blue,very thick]<.1,.1>(A)(30:120:1.5) % shift
+\tzarc[->,lightgray]<.1,.1>(A)(30:120:1.3) % shift
+\tzwedge'[dashed](A)(0:135:1.5){clockwise}[sloped,red]
+\tzarc'[->,lightgray](A)(0:135:1.3)
+\tzwedge'[fill]<2,0>(A)(-60:240:1) % shift
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+
+\subsection{\protect\cmd{\tzwedge*(')}}
+\label{ss:tzwedge*}
+
+The starred version \icmd{\tzwedge*} fills the wedges with |fill=black!50| with |fill opacity=.3| and |text opacity=1|, by default.
+With |\settzfillcolor| and |\settzfillopacity|, you can change the default values.
+You can also change the fill opacity by specifying the last optional argument |{<fill opacity>}|.
+
+\begin{tzdef}{}
+% syntax:
+\tzwedge*[<opt>]<shift coor>"<path name>"
+ (<coor>)(<angA:angB:radius>){<text>}[<node opt>]{<fill opacity>}
+% defaults:
+ *[fill=black!50,fill opacity=.3,text opacity=1]<>""(<m>)(<m>){}[midway]{.3}
+\end{tzdef}
+
+\icmd{\tzwedge*'} is the \iisw{swap version} of |\tzwedge*|.
+
+\begin{tzcode}{.3}
+% \tzwedge*, \tzwedge*'
+\begin{tikzpicture}[->,>=stealth]
+\tzhelplines(3,3)
+\tzwedge[very thick,blue](1,1)(30:120:1.5)
+\tzwedge*[-,very thick,blue,fill=red](1,1)(30:120:1)
+\tzwedge'[dashed](1,1)(30:120:1.5){clockwise}[pos=.45]
+\tzwedge*'[dashed,fill=green](1,1)(-90:180:1)
+\tzdot*(1,1)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzwedge*('): shift, fill opacity
+\begin{tikzpicture}
+\tzdot*(1,1)
+\tzhelplines(3,3)
+\tzwedge[blue,very thick](1,1)(30:120:1.5)
+\tzwedge[red,very thick]<.5,.5>(1,1)(30:120:1.5)
+\tzwedge'[dashed](1,1)(0:135:1.5)
+\tzwedge*[fill=blue](1,1)(300:240:1){B}[b]
+\tzwedge*[blue]<2,0>(1,1)(300:240:1){B}[b]{.7}
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzwedge*('): name path, intersections
+\begin{tikzpicture}
+\tzhelplines(3,3)
+\tzwedge'[blue]"AA"(0,1)(45:330:2)
+\tzvXpointat{AA}{1}(A)
+\tzdots*(A){A}[al](A-2);
+\tzwedge*'[blue,fill=red]
+ (0,1)(45:330:2mm){$\theta$}[midway,r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+%%------------------------------------------------------------
+\section{Angle marks}
+\label{s:anglemarks}
+
+
+%%------------------------------------------------------------
+\subsection{\protect\cmd{\tzpointangle}: Angles between points}
+\label{ss:tzpointangle}
+
+\icmd{\tzpointangle}|(<coor1>)(<coor2>)(<\mymacro>)| computes between two points and allows you to use it.
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}[font=\scriptsize]
+\tzhelplines(5,4)
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[135];
+\tzline[red,dashed](0,1)(5,1)
+\tzline[tzextend={1cm}{1cm}](B)(A) % (B): center
+\tzpointangle(B)(A){\myAngA}
+\tznode(3,1){\myAngA\textdegree}[ar=2mm,absolute]
+\tzarc(1,1)(0:\myAngA:2cm)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}[font=\scriptsize]
+\tzhelplines(5,4)
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[135](2,3)(C){C} ;
+\tzline[red,dashed](0,1)(5,1)
+\tzline[tzextend={1cm}{1cm}](B)(A)
+\tzline[tzextend={1cm}{1cm}](B)(C)
+\tzpointangle(B)(A){\myAngA}
+\tznode(3,1){\myAngA\textdegree}[ar=2mm,absolute]
+\tzarc(1,1)(0:\myAngA:2cm)
+\tzpointangle(B)(C){\myAngC}
+\tznode(2,2){\myAngC\textdegree}[r=3mm]
+\tzarc(1,1)(0:\myAngC:1.5cm)
+\tzarc(1,1)(\myAngA:\myAngC:10pt){$\theta$}[ar,midway]
+\tzarc(1,1)(\myAngA:\myAngC:11pt)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}[font=\scriptsize]
+\tzhelplines(5,4)
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[135](2,3)(C){C} ;
+\tzline[tzextend={1cm}{1cm}](B)(A)
+\tzline[tzextend={1cm}{1cm}](B)(C)
+\tzpointangle(B)(A){\myAngA}
+\tzpointangle(B)(C){\myAngC}
+\tzarc(1,1)(\myAngA:\myAngC:10pt){$\theta$}[ar,midway]
+\tzarc(1,1)(\myAngA:\myAngC:11pt)
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\subsection{\protect\cmd{\tzanglemark(')}: Angle marks}
+\label{ss:tzanglemark}
+
+\icmd{\tzanglemark} accepts three mandatory coordinates to display an angle mark by an arc (of radius |10pt|, by default) for the second coordinate, on the |behind| layer by default.
+You can change the angle arc radius by \icmd{\settzAAradius}.
+You can change the layer by \icmd{\settzanglelayer}. Its alias is |\settzanglemarklayer|.
+
+The default line width of angle marks is |very thin|. You can change the default line with with \icmd{\settzAAlinestyle}.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzanglemark(<coorA>)(<coorB>)(<coorC>)
+% syntax: full
+\tzanglemark[<opt>](<coorA>)(<coorB>)(<coorC>){<text>}[<node opt>](<arc radius>)
+% defaults
+ [very thin](<m>)(<m>)(<m>){}[pos=1.5](10pt)
+\end{tzdef}
+
+You can add angle text by the options |{<text>}| and |[<node opt>]|.
+
+\begin{tzcode}{.3}
+% simple example
+\begin{tikzpicture}
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[180](2,3)(C){C} ;
+\tzlines(A)(B)(C);
+\tzanglemark(A)(B)(C){$\theta$} % angle mark
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \settzAAradius
+\begin{tikzpicture}
+\tzcoors(4,2)(A){A}(1,1)(B){B}[180](2,3)(C){C} ;
+\tzlines(A)(B)(C);
+\tzlines[thick,blue](A)(2.5,0)(C);
+\tzanglemark(A)(B)(C){$\theta$} %%
+\settzAAradius{20pt} %%
+\tzanglemark(C)(2.5,0)(A){$\alpha$}[pos=.7] %%
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{How it works} Every |\tzanglemark| calculates angles (from 0\textdegree to 360\textdegree) and stores the values under the names \icmd{\tzangleONE} and \icmd{\tzangleTWO}. The difference of the two numbers is stored as an absolute value under the name \icmd{\tzangleresult}.
+Of course, you can use these values \xem{only after} running |\tzanglemark|.
+\begin{itemize}\firmlist
+\item |\tzanglemark| draws an angle mark between two angles, |counterclockwise|, from small two large.
+\item |\tzanglemark'| draws an angle mark between two angles, |clockwise|, from small to large.
+\end{itemize}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[180](2,3)(C){C} ;
+\tzlines(A)(B)(C);
+\tzanglemark[->](A)(B)(C){$\theta$}
+\tznode[scale=.7](3,1){ONE: \tzangleONE}[r]
+\tznode[scale=.7](3,.5){TWO: \tzangleTWO}[r]
+\tznode[scale=.7](3,0){$\theta$: \tzangleresult}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+\remark Simple to use:
+\begin{itemize}\firmlist
+\item
+|\tzmarkanlge(A)(B)(C)| draws an angle mark by an arc from |(A)| to |(C)| about |(B)|.
+\item
+|\tzmarkanlge(C)(B)(A)| draws an angle mark by an arc from |(C)| to |(A)| about |(B)|.
+\item Ignoring the direction, |\tzanglemark(A)(B)(C)| and |\tzanglemark(C)(B)(A)| give the same result.
+\end{itemize}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[180](2,3)(C){C} ;
+\tzlines(A)(B)(C);
+\tzanglemark[->](C)(B)(A){$\theta$}
+\tznode[scale=.7](3,1){ONE: \tzangleONE}[r]
+\tznode[scale=.7](3,.5){TWO: \tzangleTWO}[r]
+\tznode[scale=.7](3,0){$\theta$: \tzangleresult}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Swap version}
+The \iisw{swap version} \icmd{\tzanglemark'} draws an angle mark for an angle in $360\text{\textdegree}-\theta$.
+In other words, |\tzanglemark'| \xem{switches the direction} of drawing an angle arc from |counterclockwise| to |clockwise|, and vice versa.
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(4,3)(A){A}(1,2)(B)(3,0)(C){C}[0] ;
+\tzlines[thick](A)(B)(C);
+\tzanglemark[->](A)(B)(C){$\theta$}
+\tznode[scale=.7](3,2){ONE: \tzangleONE}[r]
+\tznode[scale=.7](3,1.5){TWO: \tzangleTWO}[r]
+\tznode[scale=.7](3,1){$\theta$: \tzangleresult}[r]
+\tzanglemark'[->](A)(B)(C){$\theta'$}(15pt) % swap
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\paragraph{Angle mark text position}
+The midpoint of an angle arc is stored under the coordinate name |tzAAmid|.
+The angle mark text is put on the line that goes through the middle point and \icmd{(tzAAmid)}. The default |(<arc radius>)| is |10pt| and the default position of angle text is |pos=1.5| in |[<node opt>]|.
+
+\begin{tzcode}{.3}
+% angle marc text position
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[180](2,3)(C){C} ;
+\tzlines(A)(B)(C);
+\tzanglemark(C)(B)(A){$\theta$}[pos=.65](20pt) %
+\tzdot*(tzAAmid)
+\tzline[red,dashed,tzextend={1cm}{2cm}](B)(tzAAmid)
+\end{tikzpicture}
+\end{tzcode}
+
+\remark Instead of using the options |{<text>}| and |[<node opt>]|, you can also use the coordinate |(tzAAmid)| to place the angle text wherever you want, without using |\tzanglemark(')|. Of course, you can use the correct |(tzAAmid)| only after running |\tzanglemark|.
+
+
+
+%%------------------------------------------------------------
+\subsection{\protect\cmd{\tzanglemark*(')}: Fill angle marks}
+\label{ss:tzanglemark*}
+
+\icmd{\tzanglemark*} fills (in the |behind| layer, by default) the angle mark area with |fill=black!50| and with the options |fill opacity=.3| and |text opacity=1| by default. It does not draw any lines: |[draw=none]| by default.
+
+Using the macros such as |\settzfillcolor|, |\settzfillopacity|, and \icmd{\settzanglelayer}, you can change the default values.
+
+
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzanglemark*(<coorA>)(<coorB>)(<coorC>)
+% syntax: full
+\tzanglemark[<opt>](<coorA>)(<coorB>)(<coorC>){<text>}[<node opt>](<arc radius>)
+% defaults
+ [very thin](<m>)(<m>)(<m>){}[pos=1.5](10pt)
+% syntax
+\tzanglemark*[<opt>](<coor1>)(<coor2>)(<coor3>)
+ {<text>}[<node opt>](<arc radius>){<fill opacity>}
+% defaults
+ *[very thin,draw=none,fill=black!50,fill opacity=.3,text opacity=1]
+ (<m>)(<m>)(<m>){}[pos=1.5](10pt){.3}
+\end{tzdef}
+
+
+\begin{tzcode}{.3}
+% \tzanglemark*
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(4,2)(A){A}(1,1)(B){B}[180](2,3)(C){C} ;
+\tzlines(A)(B)(C);
+\tzanglemark*[red](C)(B)(A){$\theta$}
+\end{tikzpicture}
+\end{tzcode}
+
+
+\icmd{\tzanglemark*'} is the \iisw{swap version} of |\tzanglemark*|.
+
+\begin{tzcode}{.3}
+% \tzanglemark*(')
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(4,3)(A){A}(1,2)(B)(3,0)(C){C}[0] ;
+\tzlines(A)(B)(C);
+\tzanglemark*[red](A)(B)(C){$\theta$}
+\tzanglemark*'[blue](A)(B)(C){$\theta'$}(15pt) % swap
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzanglemark*('): \settzAAlinestyle
+\begin{tikzpicture}
+\settzAAlinestyle{thick}
+\tzhelplines(4,3)
+\tzcoors*(4,3)(A){A}(1,2)(B)(3,0)(C){C}[0] ;
+\tzlines[thick,blue](A)(B)(C);
+\tzanglemark*[red](A)(B)(C){$\theta$}
+\tzanglemark(A)(B)(C)
+\settzAAlinestyle{very thin} % default
+\tzanglemark'(A)(B)(C)(14pt)
+\tzanglemark'(C)(B)(A)(15pt){$\theta'$}
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%%% (REMOVED!!!)
+%%%%%------------------------------------------------------------
+%%%\section{\protect\cmd{\tzpicangle}: angle marks}
+%%%\label{s:tzpicangle}
+%%%
+%%%\begin{tzdef}{}
+%%%% syntax: angle ABC or angle CBA
+%%%\tzpicangle(')[<angle pic opt>][<path/draw opt>](<coor1>)(<coor2>)(<coor3>)
+%%% {<angle pic text>}[<text eccentricity>](<angle pic arc radius>)
+%%%% defaults:(')[][]()()(){}[1.5](10pt)
+%%%\end{tzdef}
+%%%
+%%%When |(coor1) -- (coor2) -- (coor3)| is arranged naturally (counterclockwise),
+%%%|\tzarc| draws an arc naturally (counterclockwise), while |tzarc'| draws an arc clockwise.
+%%%
+%%%When |(coor1) -- (coor2) -- (coor3)| is arranged clockwise,
+%%%|\tzarc| draws an arc counterclockwise, while |tzarc'| draws an arc counterclockwise.
+%%%
+%%%\remark
+%%%Internally, |\tzpicangle| is defined to draw an arc by a |pic| operation of \TikZ, so it is not affected by scaling, unless |transform shape| is not used.
+%%%
+%%%\begin{tzcode}{.3}
+%%%\begin{tikzpicture}
+%%%\tzhelplines(4,2)
+%%%\tzlines(2,2)(1,1)(3,0);
+%%%\tzpicangle[->,draw=red,fill=red!30](2,2)(1,1)(3,0){a}
+%%%\tzlines [xshift=1cm](2,2)(1,1)(3,0);
+%%%\tzpicangle'[->][xshift=1cm](2,2)(1,1)(3,0){a}
+%%%\end{tikzpicture}
+%%%\end{tzcode}
+%%%
+%%%
+%%%\begin{tzcode}{.3}
+%%%\begin{tikzpicture}
+%%%\tzhelplines(4,2)
+%%%\tzlines(3,0)(1,1)(2,2);
+%%%\tzpicangle[->,fill=red!30](3,0)(1,1)(2,2){a}
+%%%\tzlines [xshift=1cm](3,0)(1,1)(2,2);
+%%%\tzpicangle'[->][xshift=1cm](2,2)(1,1)(3,0){a}[.5](1cm)
+%%%\end{tikzpicture}
+%%%\end{tzcode}
+%%%
+%%%
+%%%\begin{tzcode}{.3}
+%%%\begin{tikzpicture}
+%%%\tzhelplines(4,2)
+%%%\tzlines(2,0)(0,0)(0,2);
+%%%\tzpicangle[fill=red!30](2,0)(0,0)(0,2){a}
+%%%\tzlines [xshift=1cm](2,2)(1,1)(3,0);
+%%%\tzpicangle'[->][xshift=1cm](2,2)(1,1)(3,0){a}[.5](1cm)
+%%%\end{tikzpicture}
+%%%\end{tzcode}
+%%%
+%%%
+%%%\begin{tzcode}{.3}
+%%%\begin{tikzpicture}
+%%%\tzhelplines(4,2)
+%%%\tzpicangle [fill=red!30](2,2)(1,1)(3,0){a}
+%%%\tzpicangle'[][xshift=1cm](2,2)(1,1)(3,0){a}
+%%%\end{tikzpicture}
+%%%\end{tzcode}
+%%%
+%%%
+%%%\begin{tzcode}{.3}
+%%%\begin{tikzpicture}
+%%%\tzhelplines(4,2)
+%%%\tzpicangle [fill=red!30](3,0)(1,1)(2,2){a}
+%%%\tzpicangle'[->][xshift=1cm](2,2)(1,1)(3,0){a}[.5](1cm)
+%%%\end{tikzpicture}
+%%%\end{tzcode}
+%%%
+%%%
+%%%\begin{tzcode}{.3}
+%%%\begin{tikzpicture}
+%%%\tzhelplines(4,2)
+%%%\tzpicangle [fill=red!30](2,0)(0,0)(0,2){a}
+%%%\tzpicangle'[->][xshift=1cm](2,2)(1,1)(3,0){a}[.5](1cm)
+%%%\end{tikzpicture}
+%%%\end{tzcode}
+%%%
+%%%\begin{tzcode}{.3}
+%%%\begin{tikzpicture}[scale=.5]
+%%%\tzhelplines(4,2)
+%%%\tzpicangle [fill=red!30](2,0)(0,0)(0,2){a}
+%%%\tzpicangle'[->][xshift=1cm](2,2)(1,1)(3,0){a}[.5](1cm)
+%%%\end{tikzpicture}
+%%%\end{tzcode}
+
+
+
+
+\subsection{\protect\cmd{\tzrightanglemark}: Right angle marks}
+\label{ss:tzrightangle}
+
+\icmd{\tzrightanglemark} takes three coordinates as mandatory arguments to display a right angle mark for the second coordinate. The mark is drawn on the |behind| layer by default, which can be changed by \icmd{\settzanglelayer}.
+
+The default line with is |very thin|, which can be changed by the option |[<opt>]|. You can also change the line width using \icmd{\settzRAlinestyle}, which is valid until the end of |tikzpicture| environment.
+|\settzRAlinestyle| is an alias of |\settzAAlinestyle|.
+The length of the side is |5pt| by default, and it can be changed by the last option |(<size>)|.
+You can also change the size with \icmd{\settzRAsize}, which is valid until the end of the |tikzpicture| environment.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzrightanglemark(<coorA>)(<coorB>)(<coorC>)
+% syntax: full
+\tzrightanglemark[<opt>](<coorA>)(<coorB>)(<coorC>){<text>}[<node opt>](<size>)
+% defaults
+ [very thin](<m>)(<m>)(<m>){}[](5pt)
+\end{tzdef}
+
+\begin{tzcode}{.3}
+% simple example (with angle text)
+\begin{tikzpicture}[font=\scriptsize]
+\tzhelplines(4,3)
+\tzcoors(1,2)(A){A}(1,0)(B){B}[180](4,0)(C){C}[0];
+\tzlines(A)(B)(C);
+\tzrightanglemark(A)(B)(C){90\textdegree}
+\end{tikzpicture}
+\end{tzcode}
+
+\remark
+\begin{itemize}\firmlist
+\item |\tzrightanglemark(A)(B)(C)| and |\tzrightanglemark(C)(B)(A)| give the same result.
+\item |\tzrightanglemark'| is redundant, but it is provided to avoid frequent coding errors.
+\end{itemize}
+
+Each |\tzrightanglemark| defines \icmd{(tzRAvertex)} as the coordinate of the right angle mark vertex.
+The angle text is placed on the line going through the second coordinate and |(tzRAvertex)|. The default position is |pos=2| in |[<node opt>]|.
+
+\begin{tzcode}{.3}
+% \settzRAsize
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors(2,3)(A){A}(1,1)(B){B}[180](3,0)(C){C}[0];
+\tzlines(A)(B)(C);
+\settzRAsize{15pt}
+\tzrightanglemark(A)(B)(C){90\textdegree}[pos=1.7]
+\tzdot*(tzRAvertex)
+\tzline[red,dashed,tzextend={2mm}{2cm}](B)(tzRAvertex)
+\end{tikzpicture}
+\end{tzcode}
+
+\remark You can also use the coordinate |(tzRAvertex)| to place angle text wherever you want, after |\tzrightanglemark|.
+
+
+
+
+\subsection{\protect\cmd{\tzrightanglemark*}: Fill right angle marks}
+\label{ss:tzrightangle*}
+
+The starred version \icmd{\tzrightanglemark*} fills the interior of right angle marks with |fill=black!50|, with |fill opacity=.3| and |text opacity=1|. It does not draw any line: |[draw=none]| by default. The filled mark is drawn on the |behind| layer by default, which can be changed by \icmd{\settzanglelayer}.
+Its alias is \icmd{\settzanglemarklayer}.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzrightanglemark*(<coorA>)(<coorB>)(<coorC>)
+% syntax: full
+\tzrightanglemark*[<opt>](<coorA>)(<coorB>)(<coorC>)
+ {<text>}[<node opt>](<size>){<fill opacity>}
+% defaults
+ *[draw=none,very thin,fill=black!50,fill opacity=.3,text opacity=1]
+ (<m>)(<m>)(<m>){}[](5pt){.3}
+\end{tzdef}
+
+With \icmd{\settzfillcolor} and \icmd{\settzfillopacity}, you can also change the default fill color and fill opacity.
+
+
+\begin{tzcode}{.3}
+% \rightanglemark*
+\begin{tikzpicture}[scale=.8,font=\scriptsize]
+\tzhelplines(5,5)
+\tzcoorsquick(0,5)(A)(4,0)(B)(0,1)(C)(5,5)(D);
+\tzline"AB"(A)(B)
+\tzline"CD"(C)(D)
+\tzXpoint{AB}{CD}(E)
+\tzrightanglemark*(A)(E)(D){90\textdegree}
+\tzrightanglemark*[red](A)(E)(C)(20pt)
+\tzrightanglemark*[draw=blue,fill=green](B)(E)(C)(20pt)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \settzRAsize
+\begin{tikzpicture}[scale=.8,font=\scriptsize]
+\tzhelplines(5,5)
+\tzcoorsquick(0,5)(A)(4,0)(B)(0,1)(C)(5,5)(D);
+\tzline[dotted]"AB"(A)(B)
+\tzline[dotted]"CD"(C)(D)
+\tzXpoint{AB}{CD}(E)
+\settzRAsize{20pt} %%
+\tzrightanglemark*[red](A)(E)(D){$\rho$}[pos=1.3]
+\tzrightanglemark[blue,thin](A)(E)(D)
+\tzrightanglemark*[draw=blue,thin,fill=green](B)(E)(C)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-D-v1.0.1.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-D-v2.0.tex
index d493e6ecf6..70148a3c9e 100644
--- a/graphics/pgf/contrib/tzplot/tzplot-doc-D-v1.0.1.tex
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc-D-v2.0.tex
@@ -11,6 +11,9 @@
\chapter{Axes}
\label{c:axes}
+
+
+
%%------------------------------------------------------------
\section{Draw axes}
\label{s:tzaxes}
@@ -18,7 +21,7 @@
\subsection{\protect\cmd{\tzaxes}}
\label{ss:tzaxes}
-Basically, \cmd{\tzaxes}|(<x1,y1>)(<x2,y2>)| draws the $x$ axis from |<x1>| to |<x2>| and the $y$ axis from |<y1>| to |<y2>|.
+Basically, \icmd{\tzaxes}|(<x1,y1>)(<x2,y2>)| draws the $x$ axis from |<x1>| to |<x2>| and the $y$ axis from |<y1>| to |<y2>|.
The coordinate |(<x1,y1>)| represents the origin and |(<x2,y2>)| represents the opposite corner of the rectangle formed by the two coordinates.
|\tzaxes| takes only one coordinate |(<x2,y2>)| as a mandatory argument, in which case the coordinate |(<x1,y1>)| is considered as |(0,0)|.
@@ -350,13 +353,13 @@ You can change the numbered labels to a different format with slashes and other
\begin{tikzpicture}[scale=.4,font=\scriptsize]
\tzhelplines(10,10)
\tzaxes(-1,-1)(10,10)
-\tzticks{1/$x_1$,2,5/$x_2$,8/$x_3$}[blue]
+\tzticks{1/$x_1$,2,5/$x_2$,8/y}[blue]
{2/$\sqrt{x}$,3/y,4/m,5,7/$k$}[red]
\end{tikzpicture}
\end{tzcode}
\paragraph{Tick marks}
-To prints tick marks you need to specify |(<x-from:x-to>)| for $x$ ticks and/or |(<y-from:y-to>)| for $y$ ticks. (The default is |(0pt:0pt)|.)
+By specifying the options |(<x-from:x-to>)| for $x$ ticks and/or |(<y-from:y-to>)| for $y$ ticks, you can print tick marks. (The default is |(0pt:0pt)| for both options.)
\begin{tzcode}{.3}
% \tzticks: tick marks with (<a pt:b pt>)
@@ -365,15 +368,29 @@ To prints tick marks you need to specify |(<x-from:x-to>)| for $x$ ticks and/or
\tzshoworigin
\tzaxes(-1,-1)(10,10)
\tzticks[draw=red,thick]
- (-5pt:10pt){1,...,7,8/$\alpha$}
- (0pt:3cm) {2,...,6,7/$\beta$}
+ (-15pt:10pt){1,...,5,6/$k$,7/$\alpha$,8/$\beta$}
+ (0pt:3cm) {2,...,6,7/$\gamma$}
\end{tikzpicture}
\end{tzcode}
+The position of tick labels does not depend on the length of the tick marks.
+You can change the position of tick labels using |[<node opt>]|.
+
+\begin{tzcode}{.3}
+% \tzticks: position of tick labels
+\begin{tikzpicture}[scale=.4,font=\scriptsize]
+\tzhelplines(10,10)
+\tzshoworigin
+\tzaxes(-1,-1)(10,10)
+\tzticks[draw=red,thick]
+ (-15pt:10pt){1,...,6,7/$t$,8/$\alpha$}[b=5pt]
+ (0pt:3cm) {2,...,6,7/$\beta$}
+\end{tikzpicture}
+\end{tzcode}
\paragraph{Shift}
-The position of tick labels does not depend on the length of the tick marks.
-To change the position, use the option |<x-shift,y-shift>|, where |<x-shift>| is for |y-ticks| and |<y-shift>| is for |x-ticks|.
+
+You can move (or shift) tick marks and labels together by specifying the option |<x-shift,y-shift>|, where |<x-shift>| is for |y-ticks| and |<y-shift>| is for |x-ticks|.
\begin{tzcode}{.3}
% \tzticks: shift
@@ -532,26 +549,26 @@ The options |<y-shift>| and |<x-shift>| move x-ticks and y-ticks, respectively.
\label{c:projections}
%%------------------------------------------------------------
-\section{\protect\cmd{\tzproj(*)}}
+\section{\protect\cmd{\tzproj(*)}: Projections on the axes}
\label{s:tzproj}
\icmd{\tzproj} accepts a mandatory coordinate and draws perpendicular lines onto each axis from the coordinate. The lines are |dotted|, by default.
\begin{tzdef}{}
% syntax: minimum
- \tzproj(<coor>)
+\tzproj(<coor>)
% syntax: medium
- \tzproj*(<coor>){<x-text>}[<node opt>]{<y-text>}[<node opt>]
+\tzproj*(<coor>){<x-text>}[<node opt>]{<y-text>}[<node opt>]
% syntax:
- \tzproj*[<opt>]<x-shift,y-shift>(<coor>)
- {<x-text>}[<node opt>]{<y-text>}[<node opt>](<dot size>)
+\tzproj*[<opt>]<x-shift,y-shift>(<coor>)
+ {<x-text>}[<node opt>]{<y-text>}[<node opt>](<dot size>)
% defaults
*[dotted]<0,0>(<m>){}[text height=1.25ex,text depth=.25ex,below]{}[left](2.4pt)
\end{tzdef}
\icmd{\tzproj*} additionally prints a `black node dot' of the size |2.4pt|, by default.
Internally, the node dot is processed by |\tzdot*|.
-The first option |<opt>| does not control the node dot.
+The first option |[<opt>]| does not control the node dot.
\paragraph{Dot size}
You can only control the size of dots by the last optional argument |(<dot size>)| or by the \threeways\ on page \pageref{ss:threeways}.
@@ -613,7 +630,7 @@ Specifying the option |<x-shift,y-shift>| moves the projection point and text on
\begin{tzdef}{}
% syntax:
- \tzprojx[<opt>]<x-shift,y-shift>(<coor>){<x-text>}[<node opt>](<dot size>)
+\tzprojx[<opt>]<x-shift,y-shift>(<coor>){<x-text>}[<node opt>](<dot size>)
% defaults
[]<0,0>(<m>){}[text height=1.25ex,text depth=.25ex,below](2.4pt)
\end{tzdef}
@@ -625,7 +642,7 @@ Specifying the option |<x-shift,y-shift>| moves the projection point and text on
\begin{tzdef}{}
% syntax:
- \tzprojy[<opt>]<x-shift,y-shift>(<coor>){<y-text>}[<node opt>](<dot size>)
+\tzprojy[<opt>]<x-shift,y-shift>(<coor>){<y-text>}[<node opt>](<dot size>)
% defaults
[]<0,0>(<m>){}[left](2.4pt)
\end{tzdef}
@@ -663,6 +680,122 @@ Specifying the option |<x-shift,y-shift>| with |\tzprojx(*)| and |\tzprojy(*)| m
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzprojs(*)}: Semicolon versions}
+\label{s:tzprojs}
+
+\icmd{\tzprojs} accepts any number of coordinates and draws perpendicular lines onto each axis from the coordinates. The lines are |dotted|, by default.
+|\tzprojs| is a semicolon version of |\tzproj|, so a semicolon is needed to indicate when the coordinate iteration ends. Its repeating pattern is |(<coor>){<x-text>}[<node opt>]{<y-text>}[<node opt>]|.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzprojs(<coor>)(<coor>) ..repeated.. (<coor>);
+% syntax: medium
+\tzprojs*(<coor>){<x-text>}[<node opt>]{<y-text>}[<node opt>]
+ ..repeated.. (){}[]{}[]
+% syntax:
+\tzprojs*[<opt>]<x-shift,y-shift>
+ (<coor>){<x-text>}[<node opt>]{<y-text>}[<node opt>]
+ ..repeated.. (){}[]{}[];(<dot size>)
+% defaults
+ *[dotted]<0,0>
+ (<m>){}[text height=1.25ex,text depth=.25ex,below]{}[left]
+ ..repeated..(){}[]{}[];(2.4pt)
+\end{tzdef}
+
+\icmd{\tzprojs*} additionally prints |\tzdots*| of the |2.4pt| (by default) on the coordinates.
+The first option |[<opt>]| does not control the node dots.
+
+\begin{tzcode}{.3}
+% \tzprojs(*): adding text
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(8,6)
+\tzaxes(8,6)
+\tzcoors(30:7)(A)(50:6)(B);
+\tzprojs*[dashed,text=blue]
+ (2,3){$x$}{$y$}
+ (A){$a_1$}{$a_2$}
+ (B){$x^*$}[green]{$y^*$}[red];
+\end{tikzpicture}
+\end{tzcode}
+
+You can move the projection points and text accordingly, using the option |<x-shift,y-shift>| before the first coordinate. The \xem{empty} shift option |<>| is \xem{not allowed}.
+You can also change the dot size with the last option |(<dot size>)| \xem{after} the semicolon, as in |\tzproj(*)|.
+
+\begin{tzcode}{.3}
+% \tzprojs(*): shift and dot size
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(8,6)
+\tzaxes(8,6)
+\tzaxes[blue]<1,1>(8,6)
+\tzcoors(30:7)(A)(50:6)(B);
+\tzprojs*[dashed,text=blue]<1,1> %%
+ (2,3){$x$}{$y$}
+ (A){$a_1$}{$a_2$}
+ (B){$x^*$}[green]{$y^*$}[red];(4pt) %%
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzprojsx(*)} and \protect\cmd{\tzprojsy(*)}: Semicolon versions}
+\label{s:tzprojsx}
+
+\icmd{\tzprojsx} is a semicolon versions of |\tzprojx|. It draws dotted lines, which are perpendicular to the x axis from the specified coordinates, by default.
+
+\icmd{\tzprojsx*} additionally prints |\tzdots*| of the size |2.4pt|, by default.
+
+
+\begin{tzdef}{}
+% syntax:
+\tzprojsx*[<opt>]<x-shift,y-shift>
+ (<coor>){<x-text>}[<node opt>]..repeated..(){}[];(<dot size>)
+% defaults
+ *[]<0,0> (<m>){}[text height=1.25ex,text depth=.25ex,below]
+ ..repeated..(){}[];(2.4pt)
+\end{tzdef}
+
+
+\icmd{\tzprojsy} and \icmd{\tzprojsy*} work simililarly as |\tzprojsx| and |\tzprojsx*| do but to the y axis.
+
+\begin{tzdef}{}
+% syntax:
+\tzprojsy*[<opt>]<x-shift,y-shift>
+ (<coor>){<y-text>}[<node opt>]..repeated..(){}[];(<dot size>)
+% defaults
+ []<0,0> (<m>){}[left]..repeated..(){}[];(2.4pt)
+\end{tzdef}
+
+
+\begin{tzcode}{.3}
+% \tzprojsx(*), \tzprojsy(*)
+\begin{tikzpicture}[scale=.5,font=\scriptsize]
+\tzhelplines(-1,-2)(6,6)
+\tzshoworigin
+\tzaxes(-1,-1)(6,6)
+\tzprojsx*[thick]
+ (4,5){4}
+ (3,4){$x=3$}[blue]
+ (5,2){2};(5pt)
+\end{tikzpicture}
+\end{tzcode}
+
+Specifying the option |<x-shift,y-shift>| moves the projection points and text accordingly.
+
+\begin{tzcode}{.3}
+% \tzprojsx(*), \tzprojsy(*): shift
+\begin{tikzpicture}[scale=.5,font=\scriptsize]
+\tzhelplines(-1,-2)(6,6)
+\tzshoworigin
+\tzaxes(-1,-1)(6,6)
+\tzaxes[blue]<2,1>(-1,-1)(6,6)
+\tzprojsy*[red,solid]<2,1>
+ (3,4){$x=3$}[blue]
+ (5,2){2};
+\end{tikzpicture}
+\end{tzcode}
+
+
%%==================================
\chapter{Plot Functions}
@@ -670,7 +803,7 @@ Specifying the option |<x-shift,y-shift>| with |\tzprojx(*)| and |\tzprojy(*)| m
%%------------------------------------------------------------
-\section{\protect\cmd{\tzfn}: Plot functions}
+\section{\protect\cmd{\tzfn} and \protect\cmd{\tzfn'}: Plot functions and inverse functions}
\label{s:tzfn}
\subsection{Syntax}
@@ -688,31 +821,75 @@ Specifying the option |<x-shift,y-shift>| with |\tzprojx(*)| and |\tzprojy(*)| m
{<fn of \x>}[<domain>]{<text>}[<node opt>]<code.append>
% [<domain>] should be of the form [<from num:to num>]
% defaults
- [samples=200]<>""{<m>}[<m>]{}[]<>
+ [samples=201]<>""{<m>}[<m>]{}[]<>
\end{tzdef}
|\tzfn| takes two mandatory arguments: |{<fn of \x>}| and |[<domain>]|.
The domain should be of the form |[<from num:to num>]|, like |[1:5]|.
\begin{tztikz}{}
-\tzfn{2*\x+1}[1:5] % works like:
- \draw [samples=200,domain=1:5] plot (\x,{2*\x+1});
+\tzfn{.5*(\x)^2-1}[1:5] % works like:
+ \draw [samples=201,domain=1:5] plot (\x,{.5*(\x)^2-1});
\end{tztikz}
+\begin{tzcode}{.3}
+% \tzfn : simple example
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(-2,-2)(5,5)
+\tzaxes*(-2,-2)(5,5)
+\tzfn{.5*(\x)^2-1}[0:3.5]
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\subsection{Inverse functions: \protect\cmd{\tzfn'}}
+\label{ss:tzfn'}
+
+The \iisw{swap version} \icmd{\tzfn'} draws the \iisw{inverse function} of |\tzfn|.
+
+\begin{tztikz}{}
+\tzfn'{.5*(\x)^2-1}[1:5] % works like:
+ \draw [samples=201,domain=1:5] plot ({.5*(\x)^2-1},\x);
+\end{tztikz}
+
+\begin{tzcode}{.3}
+% \tzfn' : inverse function (with text)
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(-2,-2)(5,5)
+\tzaxes*(-2,-2)(5,5)
+\tzfn{.5*(\x)^2-1}[0:3.5]
+\tzfn'[red]{.5*(\x)^2-1}[0:3.5]{inversed}[r] %%
+\end{tikzpicture}
+\end{tzcode}
+
+You can add text at the end of the graph,
+by specifying |{<text>}| and |[<node opt>]| immediately after the domain.
+
+\begin{tzcode}{.3}
+% \tzfn(')
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(8,8)
+\tzaxes(8,8){$Q$}{$P$}
+\tzfn{5-5/7*\x}[0:7]{demand}[a=5mm]
+\tzfn'[blue]{5-5/7*\x}[0:7]
+ {inverse\\demand}[r=5mm,align=center]
+\tzticks{5,7}{5,7}
+\end{tikzpicture}
+\end{tzcode}
+
\subsection{Define and name functions}
To use |\tzfn| you need to express a function as a function of |\x|.
-You can add text (as a function name) at the end of the graph,
-by specifying |{<text>}| and |[<node opt>]| immediately after the domain.
\begin{tzcode}{.3}
% \tzfn
\begin{tikzpicture}[scale=.5]
\tzhelplines(8,8)
\tzaxes(8,8)
-\def\Dx{7-2/3*\x}
-\tzfn{\Dx}[0:7]{$D$}[r]
+\def\Dx{7-\x} % define
+\tzfn{\Dx}[0:7]{$D$}[ar]
\tzfn{1+\x}[0:7]{$S$}[blue,r]
\end{tikzpicture}
\end{tzcode}
@@ -736,55 +913,61 @@ You can also use the predefined functions of \Tikz\ such as |sin|, |cos|, |ln|,
\subsection{Name paths: \texttt{name path}}
\label{ss:tzfn:namepath}
-You can name the path of |\tzfn| by specifying the option |"<path name>"| immediately before the mandatory argument |{<fn of \x>}|. You can use the path name to find intersection points.
+You can name the path of |\tzfn| by specifying the option |"<path name>"| \xem{immediately before} the mandatory argument |{<fn of \x>}|. You can use the path name to find intersection points.
\begin{tztikz}{}
\tzfn"mypath"\Fx[1:5] % works like:
- \draw [samples=200,,domain=1:5,name path=mypath] plot (\x,{\Fx});
+ \draw [samples=201,,domain=1:5,name path=mypath] plot (\x,{\Fx});
\end{tztikz}
-\remark
-Suppose that the function's expression |<fn of \x>| consists \xem{only of a macro name}, say |\Fx|. Then
-\begin{itemize}
-\item The macro name |Fx| (\xem{without the backslash}) is \xem{automatically assigned} to |<path name>|, unless you give another name.
+\remark Advantage of defining functions:
+
+Suppose that the function's expression |<fn of \x>| consists \xem{only of a macro name}, say, |\Fx|. Then
+
+\begin{itemize}\firmlist
+\item The macro name |Fx| (\xem{without the backslash}) is
+ \xem{automatically assigned} to |<path name>|,
+ unless you give another name.
\item That is, |\tzfn\Fx| is equivalent to |\tzfn"Fx"\Fx|.
-(\xem{You don't need to type the same thing twice}.)
+ (\xem{You don't need to type the same thing twice}.)
+\end{itemize}
+
\begin{tztikz}{}
\tzfn\Fx[1:5] % works like:
- \draw [samples=200,domain=1:5,name path=Fx] plot (\x,{\Fx});
+ \draw [samples=201,domain=1:5,name path=Fx] plot (\x,{\Fx});
\end{tztikz}
-\end{itemize}
\begin{tzcode}{.3}
% \tzfn: name path: intersection point
\begin{tikzpicture}[scale=.5]
\tzhelplines(8,8)
\tzaxes(8,8)
-\def\Dx{7-2/3*\x}
+\def\Dx{7-\x}
\def\Sx{1+\x}
-\tzfn"Dx"\Dx[0:7]{$D$}[r] % name path = Dx
+\tzfn"Dx"\Dx[0:7]{$D$}[ar] % name path = Dx
\tzfn \Sx[0:7]{$S$}[blue,r] % name path = Sx
-\tzXpoint*{Dx}{Sx}(E){E}
+\tzXpoint*{Dx}{Sx}(E){E} % intersection
\end{tikzpicture}
\end{tzcode}
+
\subsection{Move graphs: \texttt{shift}}
You can move the graph of |\tzfn| by specifying the option |<shift coor>| \xem{before} the mandatory argument |{<fn of \x>}| or \xem{immediately before} the option |"<path name>"|, if it exists.
-The empty shift option |<>| is not allowed.
+The \xem{empty} shift option |<>| is \xem{not allowed}.
\begin{tzcode}{.3}
% \tzfn: shift
\begin{tikzpicture}[scale=.6]
\tzhelplines(8,8)
-\def\Dx{7-2/3*\x}
+\def\Dx{7-\x}
\def\Sx{1+\x}
\tzfn \Dx[0:7]{$D$}[right] % name path = Dx
\tzfn"supply"\Sx[0:7]{$S$}[right] % name path = supply
\tzXpoint*{Dx}{supply}(E){$E$}
-\tzfn[dashed]<1,1>"demandA"\Dx[0:7]{$D'$}[right]
-\tzfn[dashed]<1,-1>"supplyA"\Sx[0:7]{$S'$}[right]
+\tzfn[dashed]<1,1>"demandA"\Dx[0:7]{$D'$}[r]
+\tzfn[dashed]<1,-1>"supplyA"\Sx[0:7]{$S'$}[r]
\tzXpoint*{demandA}{supplyA}(E1){$E'$}
\end{tikzpicture}
\end{tzcode}
@@ -794,7 +977,7 @@ The empty shift option |<>| is not allowed.
\label{ss:tzfn:atbegin}
\paragraph{\texttt{<code.append>}}
-You can extend the path created by |\tzfn| from the end of the graph, by writing \Tikz\ code in the \xem{last optional argument} |<code.append>|. Internally it adds the \Tikz\ code to the path \xem{after} the options |{<text>}| and |[<node opt>]|.
+You can extend the path of |\tzfn|, by writing \Tikz\ code in the \xem{last optional argument} |<code.append>|. Internally it adds the \Tikz\ code to the path \xem{after} the options |{<text>}| and |[<node opt>]|.
\begin{tzcode}{.3}
% \tzfn: <code.append>
@@ -808,7 +991,7 @@ You can extend the path created by |\tzfn| from the end of the graph, by writing
\end{tzcode}
\paragraph{\texttt{\bs tzfnAtEnd}}
-You can also extend the path with \icmd{\tzfnAtEnd}.
+You can also extend the path of |\tzfn| at the end using \icmd{\tzfnAtEnd}.
Internally it adds \Tikz\ code immediately \xem{before} the options |{<text>}| and |[<node opt>]|. But you have to use |\tzfnAtEnd| (immediately) \xem{before each} |\tzfn|.
\begin{tzcode}{.3}
@@ -819,13 +1002,26 @@ Internally it adds \Tikz\ code immediately \xem{before} the options |{<text>}| a
\def\Fx{sin(\x r)+3}
\tzfnAtEnd{to [bend right] ++(2,-2) node [b] {End!}}
\tzfn[->]\Fx[-2:2*pi]{$\sin\,x+3$}[blue,r]
-% < to [bend right] ++(2,-2) node [b] {End!} >
+\end{tikzpicture}
+\end{tzcode}
+
+Specifying the option |<code.append>| extends the path after |\tzfnEnd| if it exists.
+
+\begin{tzcode}{.3}
+% \tzfnAtEnd (before \tzfn)
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(-2,-2)(8,6)
+\tzaxes*(-2,-2)(8,6)
+\def\Fx{sin(\x r)+3}
+\tzfnAtEnd{to [bend right] ++(2,-2) node [b] {End!}}
+\tzfn[->]\Fx[-2:2*pi]{$\sin\,x+3$}[blue,r]
+ < arc (0:90:4cm) node [draw,red,left] {Here!!} >
\end{tikzpicture}
\end{tzcode}
\paragraph{\texttt{\bs tzfnAtBegin}}
-You can use \icmd{\tzfnAtBegin} (immediately) \xem{before each} |\tzfn| to insert \Tikz\ code before the path of |\tzfn|.
+You can use \icmd{\tzfnAtBegin} (immediately) \xem{before each} |\tzfn| to insert \Tikz\ code at the beginning of the path of |\tzfn|.
\begin{tzcode}{.3}
% \tzfnAtBegin (before \tzfn)
@@ -833,75 +1029,119 @@ You can use \icmd{\tzfnAtBegin} (immediately) \xem{before each} |\tzfn| to inser
\tzhelplines(-2,-2)(8,6)
\tzaxes*(-2,-2)(8,6)
\def\Fx{sin(\x r)+3}
-\tzfnAtBegin{ (0,0) -- }
+\tzfnAtBegin{ (1,1) -| }
\tzfn[->]\Fx[-2:2*pi]{$\sin\,x+3$}[blue,r]
\end{tikzpicture}
\end{tzcode}
-%%------------------------------------------------------------
-\section{\protect\cmd{\tzLFn}: Plot linear functions}
-\label{s:tzLFn}
-\icmd{\tzLFn} draws a linear function: $y=ax+b$.
-
-\begin{itemize}
-\item
-When you know two coordinates on a line,
-|\tzLFn(<coor1>)(<coor2>)| draws the line.
-\item
-When you know one coordinate and the slope of a line,
-|\tzLFn(<coor1>){<slope>}| draws the line.
-\item
-If you specify all the three arguments |(<coor1>)(<coor2>){<slope>}|, then the slope is ignored.
+\remark
+\begin{itemize}\firmlist
+\item |\tzfn| is based on the |plot| operation of \Tikz.
+\item Appending \Tikz\ code at the beginning of |\tzfn| may cause a problem when you use some operations (such as |to| or \verb+|-|+) that expect a coordinate to link.
+\item In the version 2 of the |tzplot| package, this issue is internally taken care of by using
+|(|\ixxw{current subpath start}|)|, which is a special coordinate pre-defined in \Tikz. (See \Tikz\ manual for more details.)
\end{itemize}
+
+
+\section{\protect\cmd{\tzfnofy} and \protect\cmd{\tzfnofy'}: Functions of variable $y$}
+\label{ss:tzfnofy}
+
+\icmd{\tzfnofy} plots a function of |\y|.
+Define a function with the (predefined) variable |\y|.
+
+|\tzfnofy| works just like |\tzfn| but as a function of |\y|.
+
\begin{tzdef}{}
-% syntax
-\tzLFn[<opt>]<shift coor>"<path name>"
- (<coor1>)(<coor2>){<slope>}[<domain>]{<text>}[<node opt>]<code.append>
+% syntax: minimum
+\tzfnofy{<fn of \y>}[<domain>]
+% syntax: medium
+\tzfnofy{<fn of \y>}[<domain>]{<text>}[<pos>]
+% syntax: full
+\tzfnofy[<opt>]<shift coor>"<path name>"
+ {<fn of \y>}[<domain>]{<text>}[<node opt>]<code.append>
+% [<domain>] should be of the form [<from num:to num>]
% defaults
-[]<>""(<m>)(){1}[<m>]{}[]<>
+ [samples=201]<>""{<m>}[<m>]{}[]<>
\end{tzdef}
-|\tzLFn| accepts two mandatory arguments: |(<coor1>)| and |[<domain>]|.
-\begin{itemize}
-\item The domain should be of the form |[<from num:to num>]|.
-\item If just one coordinate is specified without a slope, the slope is regarded as |1|, by default.
-\end{itemize}
-For example, |\tzLFn(1,1)(2,3)[0:4]| draws a line passing through two points: $(1,1)$ and $(2,3)$, over $0\leq x\leq 4$.
-|\tzLFn(1,1){.5}[0:4]| draws a line passing through a point $(1,1)$ with the slope |.5|, over $0\leq x\leq 4$.
-You can add text at the end of the line of |\tzLFn| by the options |{<text>}| and |[<node opt>]|. You can also name the path of |\tzLFn| by specifying the option |"<path name>"| immediately before the mandatory coordinate.
+\begin{tztikz}{}
+\tzfnofy{2*\y+1}[1:5] % works like:
+ \draw [samples=201,domain=1:5,variable=\y] plot ({2*\y+1},\y);
+\end{tztikz}
+
+The \iisw{swap version} \icmd{\tzfnofy'} plots the \iisw{inverse function} of |\tzfnofy|.
+
+\begin{tztikz}{}
+\tzfnofy'{2*\y+1}[1:5] % works like:
+ \draw [samples=201,domain=1:5,variable=\y] plot (\y,{2*\y+1});
+\end{tztikz}
+
\begin{tzcode}{.3}
-% \tzLFn
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
-\tzLFn[red]"Fx"(A){.5}[0:4]{$f(x)$}[a]
-\tzLFn[blue]"Gx"(B)(C)[0:4]{$g(x)$}[r]
-\tzXpoint*[fill=none]{Fx}{Gx}(E){$E$}(3pt)
+% \tzfnofy('): variable = \y
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(8,8)
+\tzaxes(8,8){$x$}{$y$}
+\tzfnofy{5-5/7*\y}[0:7]{$f(y)$}[r=5mm]
+\tzfnofy'[blue]{5-5/7*\y}[0:7]
+ {$f^{-1}(y)$}[a=5mm,align=center]
+\tzticks{5,7}{5,7}
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzfnofy: shift: intersections
+\begin{tikzpicture}[scale=.6]
+\tzhelplines(8,8)
+\def\Fy{7-\y}
+\def\Gy{1+\y}
+\tzfnofy\Fy[0:7]{$f(y)$}[right] % name path = Fy
+\tzfnofy\Gy[0:7]{$g(y)$}[right] % name path = Gy
+\tzXpoint*{Fy}{Gy}(E){$E$}
+\tzfnofy[dashed]<1,1>"Fyy"\Fy[0:7]{shifted}[r]
+\tzfnofy[dashed]<1,-1>"Gyy"\Gy[0:7]{shifted}[r]
+\tzXpoint*{Fyy}{Gyy}(E1){$E'$}
\end{tikzpicture}
\end{tzcode}
-You can move the line of |\tzLFn| by specifying the option |<shift coor>| immediately before the option |"<path name>"|. (The empty shift option |<>| is not allowed.)
-You can also expand the path of |\tzLFn| by writing \Tikz\ code in the last optional argument |<code.append>|.
+You can also extend the path of |\tzfnofy| using the option |<code.append>| or the macros \icmd{\tzfnofyAtBegin} and \icmd{\tzfnofyAtEnd}.
+
\begin{tzcode}{.3}
-% \tzLFn: shift, expanding path
-\begin{tikzpicture}
-\tzhelplines(4,4)
-\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
-\tzLFn[blue]"Gx"(B)(C)[0:4]{$g(x)$}[r]
-\tzLFn[dashed,red,->]<1,1>"Gx"(B)(C)[0:4]{$g(x)$}[r]
- < arc (0:140:2) node [below] {End!} >
+% \tzfnofy: shift: intersections
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(8,8)
+\def\Fy{7/\y}
+\tzfnofyAtBegin{(6,3) node [a] {Start} to[bend left]}
+\tzfnofyAtEnd{ -| ++(3,-1) }
+\tzfnofy[->]\Fy[1:7]
+ < to[bend right] ++(3,2) node [draw,r] {End!} >
\end{tikzpicture}
\end{tzcode}
+
+
+%%%\section{\protect\cmd{\tzdeffn} and \protect\cmd{\tzdeffnofy}}
+%%%\label{ss:tzdeffn}
+%%%
+%%%\icmd{\tzdeffn} defines a functions of |\x|.
+%%%
+%%%\icmd{\tzdeffnofy} defines a function of |\y|.
+%%%%%
+%%%%%These are redundant, since one can use |\def|.
+%%%%%
+
+
+
+
+
%%------------------------------------------------------------
\section{Horizontal lines}
\label{s:tzhfn}
@@ -922,6 +1162,7 @@ You can also expand the path of |\tzLFn| by writing \Tikz\ code in the last opti
[]<>""{<m>}[west:east (of current bounding box)]{}[]<>
\end{tzdef}
+
|\tzhfnat| accepts only one mandatory argument |{<y-val>}|.
The domain is optional and should be of the form |[<from num:to num>]|.
The default domain is from left to right of the \ixxw{current bounding box}.
@@ -947,7 +1188,7 @@ The default domain is from left to right of the \ixxw{current bounding box}.
You can name the path of |\tzhfnat| by the option |"<path name>"|.
You can move the line by the option |<shift coor>|.
-You can also expand the path from the end of the line by writing \Tikz\ code in the last optional argument |<code.append>|.
+You can also extend the path from the end of the line by writing \Tikz\ code in the last optional argument |<code.append>|.
\begin{tzcode}{.3}
% \tzhfnat: shift, <code.append>
@@ -962,6 +1203,8 @@ You can also expand the path from the end of the line by writing \Tikz\ code in
\end{tikzpicture}
\end{tzcode}
+You can also use \icmd{\tzhfnatAtBegin} and \icmd{\tzhfnatAtEnd} to extend the path of |\tzhfnat| at the beginning and at the end. Specifying the option |<code.append>| extends the path after |\tzhfnatAtEnd| if it exists.
+(See other examples of using |\tz<..>AtBegin| and |\tz<...>AtEnd|.)
\subsection{\protect\cmd{\tzhfn}}
@@ -996,6 +1239,8 @@ For example, |\tzhfn(<x>,3)|, ignoring |<x>|, is equivalent to |\tzhfnat{3}|.
\end{tikzpicture}
\end{tzcode}
+You can also use \icmd{\tzhfnAtBegin} and \icmd{\tzhfnAtEnd} to extend the path of |\tzhfn| at the beginning and at the end. Specifying the option |<code.append>| extends the path after |\tzhfnAtEnd| if it exists.
+(See other examples of using |\tz<..>AtBegin| and |\tz<...>AtEnd|.)
%%------------------------------------------------------------
@@ -1007,7 +1252,6 @@ For example, |\tzhfn(<x>,3)|, ignoring |<x>|, is equivalent to |\tzhfnat{3}|.
\icmd{\tzvfnat} draws a vertical line at a specified value of $x$.
-
\begin{tzdef}{}
% syntax: minimal
\tzvfnat{<x-val>}[<domain>]
@@ -1036,7 +1280,7 @@ The default domain is from bottom to top of the \ixxw{current bounding box}.
You can name the path of |\tzvfnat| by the option |"<path name>"|.
You can move the line by the option |<shift coor>|.
-You can also expand the path from the end of the line by writing \Tikz\ code in the last optional argument |<code.append>|.
+You can also extend the path from the end of the line by writing \Tikz\ code in the last optional argument |<code.append>|.
\begin{tzcode}{.3}
% \tzvfnat: shift, <code.append>
@@ -1053,6 +1297,8 @@ You can also expand the path from the end of the line by writing \Tikz\ code in
In the previous example, |\tzhelplines*| is used to fix a bounding box. (See Section \ref{s:tzhelplines} on page \pageref{s:tzhelplines}, for more details.)
+You can also use \icmd{\tzvfnatAtBegin} and \icmd{\tzvfnatAtEnd} to extend the path of |\tzvfnat| at the beginning and at the end. Specifying the option |<code.append>| extends the path after |\tzvfnatAtEnd| if it exists.
+(See other examples of using |\tz<..>AtBegin| and |\tz<...>AtEnd|.)
\subsection{\protect\cmd{\tzvfn}}
\label{ss:tzvfn}
@@ -1086,6 +1332,669 @@ For example, |\tzvfn(3,<y>)|, ignoring |<y>|, is equivalent to |\tzvfnat{3}|.
\end{tikzpicture}
\end{tzcode}
+You can also use \icmd{\tzvfnAtBegin} and \icmd{\tzvfnAtEnd} to extend the path of |\tzvfn| at the beginning and at the end. Specifying the option |<code.append>| extends the path after |\tzvfnAtEnd| if it exists.
+(See other examples of using |\tz<..>AtBegin| and |\tz<...>AtEnd|.)
+
+
+
+
+
+%%==================================
+\chapter{Plot Linear Functions}
+\label{c:linearfunctions}
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzLFn}: Plot linear functions}
+\label{s:tzLFn}
+
+\subsection{\protect\cmd{\tzLFn} and \protect\cmd{\tzLFn'}}
+
+Knowing two coordinates or one coordinate with a slope, you can draw a linear function with the macro \icmd{\tzLFn}, \xem{without writing the explicit definition of a linear function}.
+
+\begin{itemize}\firmlist
+\item
+|\tzLFn(<coor1>)(<coor2>)| is prepared for when you know two coordinates on a line.
+ \begin{itemize}
+ \item
+ If you provide two points $(x_1,y_1)$ and $(x_2,y_2)$, |\tzLFnofy(x1,x2)(y1,y2)| draws the graph of $f(x)=\frac{y_2-y_1}{x_2-x_1}(x-x_1)+y_1$.
+ \end{itemize}
+
+\item
+|\tzLFn(<coor1>){<slope>}| is prepared for when you know one coordinate and the slope of a line.
+\item
+If you specify all the three arguments |(<coor1>)(<coor2>){<slope>}|, then the slope is ignored.
+\end{itemize}
+
+For example, |\tzLFn(1,1)(2,3)[0:4]| draws a line passing through two points: $(1,1)$ and $(2,3)$, over $0\leq x\leq 4$.
+|\tzLFn(1,1){.5}[0:4]| draws a line passing through a point $(1,1)$ with a slope |.5|, over $0\leq x\leq 4$.
+
+|\tzLFn| accepts two mandatory arguments: |(<coor1>)| and |[<domain>]|.
+\begin{itemize}\firmlist
+\item The \xem{domain} should be of the form |[<from num:to num>]|.
+\item If just one coordinate is specified without a slope, the slope is regarded as |1|, by default.
+\end{itemize}
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzLFn(<coor1>)(<coor2>)[<domain>]
+\tzLFn(<coor1>){<slope>)[<domain>]
+% syntax: full
+\tzLFn[<opt>]<shift coor>"<path name>"
+ (<coor1>)(<coor2>){<slope>}[<domain>]{<text>}[<node opt>]<code.append>
+% defaults
+ []<>""(<m>)(){1}[<m>]{}[]<>
+\end{tzdef}
+
+
+
+You can add text at the end of the line of |\tzLFn| by the options |{<text>}| and |[<node opt>]|. You can also name the path of |\tzLFn| by specifying the option |"<path name>"| \xem{immediately before} the mandatory coordinate.
+
+\begin{tzcode}{.3}
+% \tzLFn: two coordinates
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
+\tzLFn[blue]"Gx"(B)(C)[0:4]{$g(x)$}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzLFn: one coordinate and slope
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
+\tzLFn[red]"Fx"(A){.5}[0:4]{$f(x)$}[a]
+\end{tikzpicture}
+\end{tzcode}
+
+\remark If you inadvertently try an \xem{infinite slope}, you will get an \iisw{error message}.
+
+\paragraph{Inverse function} The \iisw{swap version} \icmd{\tzLFn'} draws the \iisw{inverse function} of |\tzLFn|.
+
+\begin{tzcode}{.3}
+% \tzLFn' : inverse function : intersection
+\begin{tikzpicture}[scale=.8]
+\tzhelplines(4,4)
+\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
+\tzLFn'[red]"Fx"(A){.5}[0:4]{$f(x)$}[a]
+\tzLFn'[blue]"Gx"(B)(C)[0:4]{$g(x)$}[r]
+\tzXpoint*[fill=none]{Fx}{Gx}(E){$E$}(3pt)
+\end{tikzpicture}
+\end{tzcode}
+
+
+You can move the line of |\tzLFn| by specifying the option |<shift coor>| immediately before the option |"<path name>"|. (The \xem{empty} shift option |<>| is \xem{not allowed}.)
+You can also extend the path of |\tzLFn| by writing \Tikz\ code in the last optional argument |<code.append>|.
+
+\begin{tzcode}{.3}
+% \tzLFn: shift, extending path
+\begin{tikzpicture}[scale=.8]
+\tzhelplines(4,4)
+\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
+\tzLFn[blue]"Gx"(B)(C)[0:4]{$g(x)$}[r]
+\tzLFn[dashed,red,->]<1,1>"Gx"(B)(C)[0:4]{$g(x)$}[r]
+ < arc (0:140:2) node [below] {End!} >
+\end{tikzpicture}
+\end{tzcode}
+
+\icmd{\tzLFnAtBegin} and \icmd{\tzLFnAtEnd} are available to extend a path of |\tzLFn| at the beginning and and the end, respectively.
+Specifying the option |<code.append>| extends the path after |\tzLFnAtEnd|, if it exist.
+
+\begin{tzcode}{.3}
+% \tzLFnAtBegin and \tzLFnAtEnd
+\begin{tikzpicture}[scale=.8]
+\tzhelplines*(4,4)
+\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
+\tzLFn[blue]"Gx"(B)(C)[0:4]{$g(x)$}[r]
+\tzLFnAtBegin{(1,0) to [bend left] }
+\tzLFnAtEnd{ arc (0:140:2) }
+\tzLFn[dashed,red,->]<1,1>"Gx"(B)(C)[0:4]{$g(x)$}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\subsection{\protect\cmd{\tzLFnofy} and \protect\cmd{\tzLFnofy'}}
+
+\icmd{\tzLFnofy} draws a line as a function of |\y|.
+|\tzLFnofy| works just like |\tzLFn| but for the variable $y$.
+If you provide two points $(x_1,y_1)$ and $(x_2,y_2)$, |\tzLFnofy(x1,x2)(y1,y2)| draws the graph of $f(y)=\frac{x_2-x_1}{y_2-y_1}(y-y_1)+x_1$.
+
+Everything else is the same as |\tzLFn|.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzLFnofy(<coor1>)(<coor2>)[<domain>]
+\tzLFnofy(<coor1>){<slope>)[<domain>]
+% syntax: full
+\tzLFnofy[<opt>]<shift coor>"<path name>"
+ (<coor1>)(<coor2>){<slope>}[<domain>]{<text>}[<node opt>]<code.append>
+% defaults
+ []<>""(<m>)(){1}[<m>]{}[]<>
+\end{tzdef}
+
+\begin{tzcode}{.3}
+% \tzLFnofy
+\begin{tikzpicture}[scale=.8]
+\tzhelplines(4,4)
+\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
+\tzLFnofy[red]"Fx"(A){.5}[0:4]{$f(y)$}[a]
+\tzLFnofy[blue]"Gx"(B)(C)[.5:2.5]{$g(y)$}[a]
+\tzXpoint*[fill=none]{Fx}{Gx}(E){$E$}(3pt)
+\end{tikzpicture}
+\end{tzcode}
+
+\remark If you inadvertently try an \xem{infinite slope}, you will get an \xem{error message}.
+
+\paragraph{Inverse function}
+The \iisw{swap version} \icmd{\tzLFnofy'} draws the \iisw{inverse function} of |\tzLFnofy|.
+
+\begin{tzcode}{.3}
+% \tzLFnofy'
+\begin{tikzpicture}[scale=.8]
+\tzhelplines(4,4)
+\tzcoors*(1,1)(A)(1,2)(B)(3,1)(C);
+\tzLFnofy'[red]"Fx"(A){.5}[0:4]{$f(y)$}[a]
+\tzLFnofy'[blue]"Gx"(B)(C)[.5:2.5]{$g(y)$}[r]
+\tzXpoint*[fill=none]{Fx}{Gx}(E){$E$}(3pt)
+\end{tikzpicture}
+\end{tzcode}
+
+
+You can use \icmd{\tzLFnofyAtBegin} and \icmd{\tzLFnofyAtEnd} to extend the path of |\tzLFnofy| at the beginning and at the end. Specifying the optional argument |<code.append>| extends the path after |\tzLFnofyAtEnd| if it exists.
+(See other examples of using |\tz<..>AtBegin| and |\tz<...>AtEnd|.)
+
+
+\section{\protect\cmd{\tzdefLFn}}
+\label{s:tzdefLFn}
+
+\icmd{\tzdefLFn} simply defines a linear function $ax+b$ and saves it to a macro.
+You can use |\tzdefLFn| together with |\tzfn| to graph a linear function, \xem{without writing an explicit definition} of a linear function.
+(Of course, you can directly use |\tzLFn|.)
+
+\begin{tzdef}{}
+% syntax
+\tzdefLFn{<fn csname>}(<coor1>)(<coor2>){<slope>}
+% defaults
+{<m>}(<m>)(){1}
+\end{tzdef}
+
+If |(<coor2>)| is specified, |{<slope>}| is ignored.
+If |(<coor2>)| is missing |<slope>| is considered as the slope of the line (by default 1).
+
+For example, |\tzdefLFn{\Gx}(1,1){.5}| defines as |\Gx| a linear function passing through the point $(1,2)$ with a slope |.5|.
+That is, it defines a function as $f(x)=.5(x-1)+1$.
+Knowing two coordinates, linear function |\Gx| passing through the two points can be defined, for example, by |\tzdefLFn{\Gx}(1,2)(3,1)|.
+That is, it defines a function as $g(x)=\frac{1-2}{3-1}(x-1)+2$.
+
+
+\begin{tztikz}{}
+\tzdefLFn{\Fx}(1,2)(3,1) % works like
+ \def\Fx{-1/2*(\x-1)+2}
+\end{tztikz}
+
+\remark If you inadvertently try an \xem{infinite slope}, you will get an \iisw{error message}.
+
+
+\begin{tzcode}{.3}
+% \tzdefLFn and \tzfn
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzaxes(4,4){$x$}{$y$}
+\tzticks{1,2,3,4}{1,2,3,4}
+\tzcoors*(1,1)(A){A}[-90](1,2)(B){B}(3,1)(C){C}[45];
+\tzdefLFn\Fx(A){.5}
+\tzdefLFn\Gx(B)(C)
+\tzfn[red]\Fx[0:4]{$f(x)$}[r]
+\tzfn[blue]\Gx[0:4]{$g(x)$}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+\remark The swap version |\tzfn'| simply draws the graph of the inverse function of |\tzfn|.
+So |\tzfn'(A)(B)| and |\tzfn'(A){.5}| do not guarantee passing through the coordinate |(A)| or |(B)|.
+
+\begin{tzcode}{.3}
+% \tzdefLFn and \tzfn'
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzaxes(4,4){$x$}{$y$}
+\tzticks{1,2,3,4}{1,2,3,4}
+\tzcoors*(1,1)(A){A}[-90](1,2)(B){B}(3,1)(C){C}[45];
+\tzdefLFn\Fx(A){.5}
+\tzdefLFn\Gx(B)(C)
+\tzfn'[red]\Fx[0:4]{$f(x)$}[r]
+\tzfn'[blue]\Gx[0:4]{$g(x)$}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzdefLFnofy}}
+\label{s:tzdefLFnofy}
+
+\icmd{\tzdefLFnofy} defines a function of |\y|.
+
+\begin{tzdef}{}
+% syntax
+\tzdefLFnofy{<fn csname>}(<coor1>)(<coor2>){<slope>}
+% defaults
+{<m>}(<m>)(){1}
+\end{tzdef}
+
+If |(<coor2>)| is specified, |{<slope>}| is ignored.
+If |(<coor2>)| is missing |<slope>| is considered as the slope of the line (by default 1).
+
+
+\begin{tztikz}{}
+\tzdefLFnofy\Fy(1,1){.5} % works like
+ \def\Fy{.5*(\y-1)+1}
+\end{tztikz}
+
+\begin{tztikz}{}
+\tzdefLFnofy\Gy(1,2)(3,1) % works like
+ \def\Gy{-2*(\y-2)+1}
+\end{tztikz}
+
+
+\remark If you inadvertently try an \xem{infinite slope}, you will get an \xem{error message}.
+
+You can use |\tzdefLFnofy| together with |\tzFnofy| to graph a linear function of $y$.
+(Of course, you can directly use |\tzLFnofy|.)
+
+
+\begin{tzcode}{.3}
+% \tzdefLFnofy and \tzLFnofy
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzaxes*(4,4){$x$}{$y$}
+\tzticks{1,2,3,4}{1,2,3,4}
+\tzcoors*(1,1)(A){A}[-90](1,2)(B){B}(3,1)(C){C}[45];
+\tzdefLFnofy\Fy(A){.5}
+\tzdefLFnofy\Gy(B)(C)
+\tzfnofy[red]\Fy[0:4]{$f(y)$}[r]
+\tzfnofy[blue]\Gy[0:4]{$g(y)$}[a]
+\end{tikzpicture}
+\end{tzcode}
+
+\remark The swap version |\tzfnofy'| simply draws the graph of the inverse function of |\tzfnofy|.
+So |\tzfnofy'(A)(B)| and |\tzfnofy'(A){.5}| do not guarantee passing through the coordinate |(A)| or |(B)|.
+
+\begin{tzcode}{.3}
+% \tzdefLFnofy and \tzLFnofy'
+\begin{tikzpicture}
+\tzhelplines(4,4)
+\tzaxes*(4,4){$x$}{$y$}
+\tzticks{1,2,3,4}{1,2,3,4}
+\tzcoors*(1,1)(A){A}[-90](1,2)(B){B}(3,1)(C){C}[45];
+\tzdefLFnofy\Fy(A){.5}
+\tzdefLFnofy\Gy(B)(C)
+\tzfnofy'[red]\Fy[0:4]{$f(y)$}[r]
+\tzfnofy'[blue]\Gy[0:4]{$g(y)$}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%==================================
+\chapter{Some More Functions}
+\label{c:more-fn}
+
+%%------------------------------------------------------------
+\section{\texttt{\bs tzpdfN(*)} and \texttt{\bs tzpdfZ}: Normal distributions}
+\label{s:normaldistributions}
+
+
+|\tzpdfN|, |\tzpdfN*| and |\tzpdfZ| are predefined functions to plot the \iisw{probability density function} (pdf) of a \iisw{normal distribution} $N(\mu,\sigma^2)$.
+
+\paragraph{Normal distributions}
+\icmd{\tzpdfN} accepts two mandatory arguments, |{<mean>}| $\mu$ and |{<variance>}| $\sigma^2$, to define the pdf function:
+\[
+ \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac12\big(\frac{x-\mu}{\sigma}\big)^2}
+\]
+
+\icmd{\tzpdfN*} uses a standard deviation $\sigma$ instead of a variance.
+
+With these predefined functions together with |\tzfn| you can plot the pdf of normal distributions.
+
+\begin{tzcode}{.3}
+% \tzpdfN, \tzpdfN*
+\begin{tikzpicture}[xscale=0.5,yscale=5,font=\scriptsize]
+\tzhelplines[ystep=0.1](-4,0)(6,.5)
+\tzaxes(-4,0)(6,.5)
+\tzticks{1,...,5}{0.1,0.2,0.3,0.4}
+\tzfn[blue]{\tzpdfN{0}{1.5}}[-4:4] % \tzpdfN
+\tzfn[red]{\tzpdfN*{2}{sqrt(1.5)}}[-2:6] % \tzpdfN*
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+\begin{tzcode}{.3}
+% \tzpdfN, \tzpdfN*
+\begin{tikzpicture}[x=0.5cm,y=5cm,font=\scriptsize]
+\tzhelplines[step=.5cm](-4,0)(6,.5)
+\tzaxes(-4,0)(6,.5)
+\tzticks{1,2,3}{0.1,0.2,0.3,0.4}
+\tzfn[blue]{\tzpdfN{0}{1.5}}[-4:4]
+\tzfn[red]{\tzpdfN*{2}{sqrt(1.5)}}[-2:6]
+\end{tikzpicture}
+\end{tzcode}
+
+\remark
+If |tikzpicture| is scaled when plotting the inverse function using |\tzfn'|, you may want to change the scale accordingly.
+
+\begin{tzcode}{.3}
+% \tzpdfN and \tzfn'
+\begin{tikzpicture}[x=0.5cm,y=5cm,,font=\scriptsize]
+\tzhelplines[step=0.5cm](-4,-.3)(6,.5)
+\tzaxes(-4,-.3)(6,.5)
+% scale change
+\begin{scope}[xscale={1/0.5*5},yscale={1/5*0.5}]
+\tzfn'[blue]{\tzpdfN{0}{1.5}}[-4:4]
+\tzfn'[red]{\tzpdfN*{2}{sqrt(1.5)}}[-2:6]
+\end{scope}
+\end{tikzpicture}
+\end{tzcode}
+
+\paragraph{Standard normal distributions}
+\icmd{\tzpdfZ} (with no arguments) represents the pdf of the \xem{standard normal distribution}.
+
+\begin{tzcode}{.3}
+% \tzpdfZ: shift
+\begin{tikzpicture}[x=0.5cm,y=5cm,font=\scriptsize]
+\tzhelplines[step=0.5cm](-4,0)(6,.5)
+\tzaxes(-4,0)(6,.5)
+\tzticks{1,...,5}{0.1,0.2,0.3,0.4}
+\tzfn[blue]{\tzpdfZ}[-3:3] % \tzpdfZ
+\tzfn[red]<2,0>{\tzpdfZ}[-3:3] % shift
+\tzfn[dashed]<3,.1>{\tzpdfZ}[-3:3] % shift
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzfnarea(*)}: Fill under the graph}
+
+
+\subsection{\protect\cmd{\tzfnarea(*)}}
+
+\icmd{\tzfnarea} fills the area between the graph of a function and the x axis, with a color or pattern, on the |behind| layer by default.
+With \icmd{\settzfnarealayer}, you can change the layer of |\tzfnarea|.
+
+|\tzfnarea| accepts two mandatory arguments: |{<fn of \x>}| and |[<domain>]|, like |\tzfn|.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzfnarea{<fn of \x>}[<domain>]
+% syntax: full
+\tzfnarea[<opt>]{<fn of \x>}[<domain>]{<fill opacity>}<code.append>
+% defaults
+ []{<m>}[<m>]{.3}<>
+\end{tzdef}
+
+\begin{tzcode}{.3}
+% \tzfnarea
+\begin{tikzpicture}
+\tzhelplines(0,-1)(4,2)
+\tzaxes(0,-1)(4,2)
+\def\Fx{.5*(\x-1)^2-1}
+\tzfn[very thick]\Fx[0:3.5]
+\tzfnarea[fill=red]\Fx[1:3] %
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzfnarea: layer: comparison
+\begin{tikzpicture}
+\tzhelplines(0,-1)(4,2)
+\settzfnarealayer{main} %%
+\tzaxes(0,-1)(4,2)
+\def\Fx{.5*(\x-1)^2-1}
+\tzfn[very thick]\Fx[0:3.5]
+\tzfnarea[fill=red]\Fx[1:3] %
+\end{tikzpicture}
+\end{tzcode}
+
+
+The starred version \icmd{\tzfnarea*} fills the area with |fill=black!50| and |fill opacity=.3|, and |text opacity=1|, by default. The default values can be changed by |\settzfillcolor|, |\settzfillopacity|, and the option |{<fill opacity>}|.
+
+\begin{tzcode}{.3}
+% \tzfnarea*
+\begin{tikzpicture}[x=0.5cm,y=5cm,font=\scriptsize]
+\tzhelplines[step=.5cm](-4,-.1)(6,.5)
+\tzaxes(-4,-.1)(6,.5)
+\tzfn[blue]{\tzpdfZ}[-3:3]
+\tzfnarea*{\tzpdfZ}[-3:1]
+\tzfn"AA"{\tzpdfN21}[-1:5]
+\tzfnarea*[pattern=north east lines]{\tzpdfN21}[1:3]
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzfnarea*: default change and <code.append>
+\begin{tikzpicture}
+\settzfnarealayer{main} %
+\tzhelplines(0,-1)(4,2)
+\tzaxes(0,-1)(4,2)
+\def\Fx{.5*(\x-1)^2-1}
+\tzfn\Fx[0:3.5]
+\tzfnarea*[red]\Fx[1:3]{.1}<(2,-1) node[black]{Area}>
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzfnarea*
+\begin{tikzpicture}
+\tzhelplines(0,-2)(4,3)
+\tzaxes(0,-2)(4,3){$x$}{$y$}
+\def\Fx{.5*(\x-1)^2-1}
+\tzfn\Fx[0:3.5]{$f(x)$}[a]
+\tzfnarea*[red]\Fx[1:3]
+\tzvXpointat{Fx}{1}(A)
+\tzvXpointat{Fx}{3}(B)
+\tzline[blue,thick](A)(A|-0,0)
+\tzline[very thick](B)(B|-0,0)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\subsection{\protect\cmd{\tzfnarealine(')}}
+
+\icmd{\tzfnarealine} draws one or two boundary lines of |\tzfnarea| using |\tzto|, on the |behind| layer by default. The layer can be changed by \icmd{\settzfnarealayer}.
+It takes two mandatory arguments: |{<path>}| and |{<x1>}|.
+\begin{itemize}\firmlist
+\item |\tzfnarealine{<path>}{<x1>}| draws a vertical line to the $x$ axis at |<x1>|.
+\item |\tzfnarealine{<path>}{<x1>}{<x2>}| draws two vertical lines at |<x1>| and |<x2>|.
+\end{itemize}
+
+The first option |[<opt>]| controls both lines and is overwritten by each of |[<opt1>]| (for the line at |<x1>|) and |[<opt2>]| (for the line at |<x2>|).
+The line width is |very thin| by default, which can be changed by \icmd{\settzfnarealinewith}.
+
+You can change the length of lines by specifying |(<coor1>)| and |(<coor2>)|.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzfnarealine{<path>}{<x1>}
+% syntax: minimal
+\tzfnarealine{<path>}{<x1>}{<x2>}
+% syntax: medium
+\tzfnarealine{<path>}{<x1>}[<opt1>]{<x2>}[<opt2>]
+% syntax: full
+\tzfnarealine[<opt>]{<path>}{<x1>}[<opt1>](<coor1>)
+ {<x2>}[<opt2>](<coor2>)
+% defaults:
+ [very thin]{<m>}{<m>}[](0,0){}[](0,0)
+\end{tzdef}
+
+
+\begin{tzcode}{.3}
+% \tzfnarealine
+\begin{tikzpicture}[x=0.5cm,y=5cm,font=\scriptsize]
+\tzhelplines[step=.5cm](-4,-.1)(6,.5)
+\tzaxes(-4,-.1)(6,.5)
+\tzfn"AA"{\tzpdfN21}[-1:5]
+\tzfnarea*[pattern=north east lines]{\tzpdfN21}[1:3]
+\tzfnarealine[red]{AA}{1}{3} %%
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzfnarealine: one line
+\begin{tikzpicture}
+\tzhelplines(0,-1)(4,2)
+\tzaxes(0,-1)(4,2)
+\def\Fx{.5*(\x-1)^2-1}
+\tzfn\Fx[0:3.5]
+\tzfnarea*[red]\Fx[1:3]{.1}<(2,-1) node[black]{Area}>
+\tzfnarealine[blue]{Fx}{3}
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+% \tzfnarealine: two lines
+\begin{tikzpicture}
+\tzhelplines(0,-1)(4,2)
+\tzaxes(0,-1)(4,2)
+\def\Fx{.5*(\x-1)^2-1}
+\tzfn\Fx[0:3.5]
+\tzfnarea*[red]\Fx[1:3]{.1}<(2,-1) node[black]{Area}>
+\tzfnarealine[blue,thick]{Fx}{1}{3}[very thick,red]
+\end{tikzpicture}
+\end{tzcode}
+
+The \xem{swap version} \icmd{\tzfnarealine'} draws one or two horizontal lines from the point $(x_i,f(x_i))$ to the $y$ axis.
+Everything else is the same as in |\tzfnarealine|.
+
+\begin{tzcode}{.3}
+% \tzfnarealine'
+\begin{tikzpicture}
+\tzhelplines(0,-1)(4,2)
+\settzfnarealinestyle{thick}
+\tzaxes(0,-1)(4,2)
+\def\Fx{.5*(\x-1)^2-1}
+\tzfn\Fx[0:3.5]
+\tzfnarea*[blue]\Fx[1:3]{.1}<(2,-1) node[black]{Area}>
+\tzfnarealine'[->,red]{Fx}{2}{3}
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\section{Envelope curves}
+\label{s:evelopecurves}
+
+
+%%------------------------------------------------------------
+\subsection{\protect\cmd{\tzfnmax}: Upper envelope curves}
+\label{ss:tzfnmax}
+
+\icmd{\tzfnmax} plots the maximum of a list of functions, that is, an \xem{upper} \iisw{envelope curve}. The first mandatory argument should be a comma separated list of functions.
+The second mandatory argument |[<domain>]| should be colon separated.
+
+The default line width of |\tzfnmax| is |thick|.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzfnmax{<fn list>}[<domain>]
+% syntax: full
+\tzfnmax[<opt>]<shift coor>"<path name>"
+ {<fn list>}[<domain>]{<text>}[<node opt>]<code.append>
+% remark:
+ - {<fn list>} should be comma separated
+ - [<domain>] should be of the form [<from num:to num>]
+% defaults
+ [thick,samples=201]<>""{<m>}[<m>]{}[]<>
+\end{tzdef}
+
+
+\begin{tzcode}{.3}
+% \tzfnmax
+\begin{tikzpicture}
+\tzhelplines*(4,4)
+\def\Fx{\x}
+\def\Gx{.5*\x+.5}
+\def\Hx{-.25*\x+2}
+\tzfn{\Fx}[0:4] \tzfn{\Gx}[0:4] \tzfn{\Hx}[0:4]
+\tzfnmax[blue]{\Fx,\Gx,\Hx}[0:4]{upper envelope}[l]
+\end{tikzpicture}
+\end{tzcode}
+
+\remark If you want sharp corners at kinked points, you may need to select an appropriate number of sample points, which is |samples=201|, by default. You can try an odd number.
+\remarkafterskip
+
+If you want, you can shift and extend path using the option |<shift coor>| and |<code.append>|, respectively.
+You can also use \icmd{\tzfnmaxAtBegin} and \icmd{\tzfnmaxAtEnd} to extend the path of |\tzfnmax| at the beginning and at the end, respectively.
+
+\begin{tzcode}{.3}
+% shift, <code.append>
+\begin{tikzpicture}
+\tzhelplines*(4,5)
+\def\Fx{\x}
+\def\Gx{.5*\x+.5}
+\def\Hx{-.25*\x+2}
+\tzfn{\Fx}[0:4] \tzfn{\Gx}[0:4] \tzfn{\Hx}[0:4]
+\tzfnmax[blue,thick]{\Fx,\Gx,\Hx}[0:4]
+\tzfnmaxAtBegin{ (-1,0) -- }
+\tzfnmax[dashed]<0,.5>{\Fx,\Gx,\Hx}[0:4]
+ < to[bend left] ++ (1,-1) >
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\subsection{\protect\cmd{\tzfnmin}: Lower envelope curves}
+\label{ss:tzfnmin}
+
+\icmd{\tzfnmin} plots the minimum of a list of functions.
+|\tzfnmin| works just like |\tzfnmax|, but it draws \xem{lower} a \iisw{envelope curve}.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzfnmin{<fn list>}[<domain>]
+% syntax: full
+\tzfnmin[<opt>]<shift coor>"<path name>"
+ {<fn list>}[<domain>]{<text>}[<node opt>]<code.append>
+% remark:
+ - {<fn list>} should be comma separated
+ - [<domain>] should be of the form [<from num:to num>]
+% defaults
+ [thick,samples=201]<>""{<m>}[<m>]{}[]<>
+\end{tzdef}
+
+
+\begin{tzcode}{.3}
+% \tzfnmin, \tzfnmax: name path: intersection
+\begin{tikzpicture}
+\tzhelplines(4,6)
+\def\Fx{\x}
+\def\Gx{.5*(\x)^2}
+\def\Hx{-.25*\x+2}
+\tzfn{\Fx}[0:4]{$f(x)$}[r]
+\tzfn{\Gx}[0:3]{$g(x)$}[r]
+\tzfn{\Hx}[0:4]{$h(x)$}[r]
+\tzfnmin[samples=2001,blue,thick]"XX" %%
+ {\Fx,\Gx,\Hx}[0:4]{lower evelope}[bl]
+\tzvXpointat*{XX}{3}
+\tzfnmax[samples=201,red,thick]"YY" %%
+ {\Fx,\Gx,\Hx}[0:3]{upper envelope}[bl]
+\tzvXpointat*[fill=none]{YY}{2.5} %%
+\end{tikzpicture}
+\end{tzcode}
+
+\remark If you want sharp corners at kinked points, you may need to select appropriate number of sample points. Try odd number.
+
+To extend the path of |\tzfnmin|, you can use the option |<code.append>| or the macros \icmd{\tzfnminAtBegin} and \icmd{\tzfnminAtEnd}.
+
+
@@ -1098,7 +2007,7 @@ For example, |\tzvfn(3,<y>)|, ignoring |<y>|, is equivalent to |\tzvfnat{3}|.
\section{\protect\cmd{\tzXpoint(*)}: Intersection points}
\label{s:intersections}
-\icmd{\tzXpoint} finds intersection points of two paths and saves them as coordinate names for later use.
+\icmd{\tzXpoint} finds \iisw{intersection} points of two paths and saves them as coordinate names for later use.
\begin{tzdef}{}
% syntax: minimal
@@ -1130,6 +2039,7 @@ You can label intersection points by specifying the option |{<label>}| and |[<an
\end{tikzpicture}
\end{tzcode}
+\warning When using |\tzXpoint|, the intersection of two paths must actually exist.Otherwise, an error will occur when using coordinates.
\paragraph{\icmd{\tzXpoint*}} The starred version |\tzXpoint*| simply adds a node dot to |\tzXpoint|.
The default dot size is |2.4pt| and it can be changed by the last option |(<dot size>)| or the \threeways\ (on page \pageref{ss:threeways}).
@@ -1158,7 +2068,7 @@ The default dot size is |2.4pt| and it can be changed by the last option |(<dot
\tzfn\bgt[0:8] % name path=bgt
\tzfn\Fx[0:8]{ray}[red,ar] % name path=Fx
\tzfn"IC"\IC[.8:8]{$u$}[r] % name path=IC
-\tzXpoint*{bgt}{Fx}(A){A}[0] % <angle>
+\tzXpoint*{bgt}{Fx}(A){A}[[draw,red] r] % <angle> or % abb
\tzproj[dashed](A){$x$}{$y$}
\tzXpoint*[fill=none,red]{bgt}{IC}(B){B}[0](4pt)
\tzdot*[blue](B-2){B2}[[red]45](4pt)
@@ -1173,7 +2083,7 @@ The default dot size is |2.4pt| and it can be changed by the last option |(<dot
\subsection{\protect\cmd{\tzvXpointat(*)}}
\label{ss:tzvXpointat}
-\icmd{\tzvXpointat} determines vertical intersection points of a path at a specified value of $x$.
+\icmd{\tzvXpointat} determines \iisw{vertical intersection} points of a path at a specified value of $x$.
So it takes |{<path>}| and |{<x-val>}| as mandatory arguments.
\remark
@@ -1215,7 +2125,7 @@ The starred version \icmd{\tzvXpointat*} additionally prints a node dot of the s
\tzvfnat[dashed]{1}
\tzvXpointat{Fx}{1}(A)
\tzdot(A){A}[45]
-\tzvXpointat*{Fx}{3.2}{B}[-45]
+\tzvXpointat*{Fx}{3.2}{B}[[red,draw]br]
\end{tikzpicture}
\end{tzcode}
@@ -1224,7 +2134,7 @@ The starred version \icmd{\tzvXpointat*} additionally prints a node dot of the s
\subsection{\protect\cmd{\tzvXpoint(*)}}
\label{ss:tzvXpoint}
-\icmd{\tzvXpoint} accepts |{<path>}| and |(<coor>)| as mandatory arguments to find vertical intersection points of a path at the $x$ value of the coordinate, ignoring the $y$ value.
+\icmd{\tzvXpoint} accepts |{<path>}| and |(<coor>)| as mandatory arguments to find \iisw{vertical intersection} points of a path at the $x$ value of the coordinate, ignoring the $y$ value.
For example, |\tzvXpoint{mypath}(3,<y>)|, ignoring |<y>|, is equivalent to |\tzvXpointat{mypath}{3}|.
\xem{Everything else is the same as in} |\tzvXpointat|.
@@ -1259,7 +2169,7 @@ The starred version \icmd{\tzvXpoint*} just adds a node dot to |\tzvXpoint|.
\tzvfn[dashed](1,0)
\tzvXpoint{Fx}(A)(Ax)
\tzdot(Ax){Ax}[45]
-\tzvXpoint*{Fx}(B){B}[-45]
+\tzvXpoint*{Fx}(B){B}[[red,draw]br] % abb
\end{tikzpicture}
\end{tzcode}
@@ -1272,7 +2182,7 @@ The starred version \icmd{\tzvXpoint*} just adds a node dot to |\tzvXpoint|.
\subsection{\protect\cmd{\tzhXpointat(*)}}
\label{ss:tzhXpointat}
-\icmd{\tzhXpointat} determines horizontal intersection points of a path at a specified value of $y$.
+\icmd{\tzhXpointat} determines \iisw{horizontal intersection} points of a path at a specified value of $y$.
So it takes |{<path>}| and |{<y-val>}| as mandatory arguments.
\begin{tzdef}{}
@@ -1311,7 +2221,7 @@ The starred version \icmd{\tzhXpointat*} additionally prints a node dot of the s
\tzdot(A){A}[0]
\tzhfnat[dashed]{1.5}
\tzhXpointat*{Fx}{1.5}(X){X}[45]
-\tzdot*(X-2){Y}[135]
+\tzdot*(X-2){Y}[[red,draw]al] % abb
\end{tikzpicture}
\end{tzcode}
@@ -1319,7 +2229,7 @@ The starred version \icmd{\tzhXpointat*} additionally prints a node dot of the s
\subsection{\protect\cmd{\tzhXpoint(*)}}
\label{ss:tzhXpoint}
-\icmd{\tzhXpoint} accepts |{<path>}| and |(<coor>)| as mandatory arguments to find horizontal intersection points of a path at the $y$ value of the coordinate, ignoring the $x$ value.
+\icmd{\tzhXpoint} accepts |{<path>}| and |(<coor>)| as mandatory arguments to find \iisw{horizontal intersection} points of a path at the $y$ value of the coordinate, ignoring the $x$ value.
For example, |\tzhXpoint{mypath}(<x>,3)|, ignoring |<x>|, is equivalent to |\tzhXpointat{mypath}{3}|.
\xem{Everything else is the same as in} |\tzhXpointat|.
@@ -1354,7 +2264,62 @@ The starred version \icmd{\tzhXpoint*} just adds a node dot to |\tzhXpoint|.
\tzdot(A){A}[0]
\tzhfn[dashed](0,1.5)
\tzhXpoint*{Fx}(X){X}[45]
-\tzdot*(X-2){Y}[135]
+\tzdot*(X-2){Y}[ [red,draw] al ] % abb
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzLFnXpoint(*)}: Intersection point of linear functions}
+\label{s:tzLFnXpoint}
+
+Sometimes you may want to \xem{quickly} find intersection point of two linear functions \xem{without specifying path names}.
+
+\icmd{\tzLFnXpoint} finds the solution of two linear functions without printing anything by default.
+You can name it and use it.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzLFnXpoint{<\fn>}{<\fn>}
+% syntax: medium
+\tzLFnXpoint{<\fn>}{<\fn>}(<coor name>){<label>}[<[<label opt>]angle>]
+% syntax: full
+\tzLFnXpoint[<opt>]{<\fn>}{<\fn>}(<coor name>)
+ {<label>}[<[<label opt>]angle>](<dot size>)
+% defaults
+ [tzdot=2.4pt,draw=none,mimumum size=0pt]{<m>}{<m>}[0](){}[](2.4pt)
+\end{tzdef}
+
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}[scale=.8]
+\tzhelplines(4,3)
+\tzfn[yellow]{\x}[0:3]
+\tzfn[yellow]{3-\x}[0:3]
+\tzLFnXpoint{\x}{3-\x}(A) % invisible
+\tzto+[->,bend left](A)(2,-1)
+\end{tikzpicture}
+\end{tzcode}
+
+\icmd{\tzLFnXpoint*} additionally print a filled node dot at the solution of two linear equations.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzLFnXpoint{<\fn>}{<\fn>}
+% syntax: medium
+\tzLFnXpoint{<\fn>}{<\fn>}(<coor name>){<label>}[<[<label opt>]angle>]
+% syntax: full
+\tzLFnXpoint[<opt>]{<\fn>}{<\fn>}(<coor name>)
+ {<label>}[<[<label opt>]angle>](<dot size>)
+% defaults
+ [tzdot=2.4pt,fill]{<m>}{<m>}[0](){}[](2.4pt)
+\end{tzdef}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}[scale=.8]
+\tzhelplines(4,3)
+\tzLFnXpoint*{\x}{3-\x}(A){A}[[red,draw]90] %%
+\tzline+[blue](A)(2,-1)
\end{tikzpicture}
\end{tzcode}
@@ -1371,8 +2336,9 @@ The starred version \icmd{\tzhXpoint*} just adds a node dot to |\tzhXpoint|.
\subsection{\protect\cmd{\tzsecantat}}
\label{ss:tzsecantat}
-\icmd{\tzsecantat} draws a line segment or a secant line of a curve, on the |behind| layer by default.
-You need to specify a path name and two values of $x$.
+\icmd{\tzsecantat} draws a line segment or a \iisw{secant} line of a curve, on the |behind| layer by default.
+|\tzsecantat| accepts three mandatory arguments:
+Three mandatory arguments are a path name and two values of $x$: |{<path>}|, |{<from->x}|, and |{<to-x>}|.
With \icmd{\settzsecantlayer}, you can change the layer, like |\settzsecantlayer{main}|.
\begin{tzdef}{}
@@ -1388,7 +2354,7 @@ With \icmd{\settzsecantlayer}, you can change the layer, like |\settzsecantlayer
\end{tzdef}
\paragraph{Domain}
-The domain should be of the form |[<from num:to num>]|.
+The domain of the form |[<from num:to num>]| is optional.
Without specifying the optional domain, |\tzsecantat| draws a line segment connecting two points on the (curved) path.
\begin{tzcode}{.3}
@@ -1403,7 +2369,7 @@ Without specifying the optional domain, |\tzsecantat| draws a line segment conne
\end{tikzpicture}
\end{tzcode}
-You can optionally specify the |[<domain>]|.
+Specifying the option |[<domain>]|, you can extend (or shorten) the line of |\tzsecantat|.
\begin{tzcode}{.3}
% \tzsecantat: domain
@@ -1433,7 +2399,7 @@ You can move |\tzsecantat| by specifying the option |<shift coor>|.
\end{tzcode}
\paragraph{Naming paths}
-By specifying the option |"<path name>"| you can name a path of |\tzsecantat|.
+By specifying the option |"<path name>"| you can name a path of |\tzsecantat|, and use it to find intersection points.
\begin{tzcode}{.3}
% \tzsecantat: shift, name path (intersection)
@@ -1470,7 +2436,7 @@ You can extend the path of |\tzsecantat| by writing \Tikz\ code in the last opti
\subsection{\protect\cmd{\tzsecant}}
\label{ss:tzsecant}
-\icmd{\tzsecant} uses two \xem{coordinates instead of two values of $x$} to draw a line segment or a secant line of a curve, on the |behind| layer by default.
+\icmd{\tzsecant} uses two \xem{coordinates instead of two values of $x$} to draw a line segment or a \iisw{secant} line of a curve, on the |behind| layer by default.
You need to specify a path name and two coordinates, then |\tzsecant| uses the $x$ values of the two coordinates.
\xem{Everything else is the same as in} |\tzsecantat|.
@@ -1505,7 +2471,7 @@ Without specifying the optional domain, |\tzsecant| draws a line segment connect
\end{tikzpicture}
\end{tzcode}
-You can move the secant line and extend the path.
+With the last option |<code.append>| you can extend the path of |\tzsecantat|.
\begin{tzcode}{.3}
% \tzsecant: shift, <code.append>
@@ -1530,12 +2496,12 @@ You can move the secant line and extend the path.
\subsection{\protect\cmd{\tztangentat}}
\label{ss:tztangentat}
-\icmd{\tztangentat} draws a tangent line to a curve at a specified value of $x$.
+\icmd{\tztangentat} draws a \iisw{tangent} line to a curve at a specified value of $x$. Three mandatory arguments are a curve name, a value of $x$, and a domain: |{<path>}|, |{<x-val>}|, and |[domain]|.
By default, the tangent line is drawn on the |behind| layer, which can be changed by \icmd{\settztangentlayer}, like |\settztangentlayer{main}|.
\remark
To calculate the slope at $x$, $x$ varies over the interval $(x-\varepsilon_1,x+\varepsilon_2)$ and $\varepsilon_1=\varepsilon_2=0.01$, by default.
-So the slope of tangent line is only \xem{approximate}.
+So the slope of tangent line is only \xem{approximate}.
\begin{tzdef}{}
% syntax: minimum
@@ -1553,7 +2519,7 @@ So the slope of tangent line is only \xem{approximate}.
\paragraph{Domain}
-|\tztangentat| takes three mandatory arguments: |{<path>}|, |{<x-val>}|, and |[<domain>]|. The mandatory argument |[<domain>]| should be of the form |[<from num:to num>]|.
+The mandatory argument |[<domain>]| should be of the form |[<from num:to num>]|.
\begin{tzcode}{.3}
% \tztangentat
@@ -1587,7 +2553,7 @@ You can move the tangent line by specifying the option |<shift coor>|.
\end{tzcode}
\paragraph{Naming paths}
-By specifying the option |"<path name>"|, you can name the path of |\tztangentat|.
+By specifying the option |"<path name>"|, you can name the path of |\tztangentat| and use it to find intersection points.
\begin{tzcode}{.3}
% \tztangentat: name path (intersection)
@@ -1627,8 +2593,8 @@ You can extend the path of |\tztangentat| by writing \Tikz\ code in the last opt
\paragraph{Variations}
-The slope of the tangent line is approximate, so sometimes you may want to change the variation interval to get better results.
-You can change $\varepsilon_1$ and $\varepsilon_2$ by specifying the option |(<epsilon1,epsilon2>)| immediately after the mandatory argument |{<x-val>}|.
+Since the slope of the tangent line is \xem{approximate}, sometimes you may want to change the variation interval to get better results.
+You can change $\varepsilon_1$ and $\varepsilon_2$ by specifying the option |(<epsilon1,epsilon2>)| \xem{immediately after} the mandatory argument |{<x-val>}|.
Or you can change the variations by the macro \icmd{\settztangentepsilon},
like |\settztangentepsilon{|$\varepsilon_1$|}{|$\varepsilon_2$|}|. The effect remains until the end of |tikzpicture| environment unless changed again.
@@ -1652,8 +2618,11 @@ like |\settztangentepsilon{|$\varepsilon_1$|}{|$\varepsilon_2$|}|. The effect re
\label{ss:tztangent}
-\icmd{\tztangent} uses a \xem{coordinate instead of a value} of $x$ to draw a tangent line.
-For example, |\tztangent{curve}(4,<y>)| is equivalent to |\tztangentat{curve}{4}| for any |<y>|.
+\icmd{\tztangent} uses a \xem{coordinate instead of a value} of $x$ to draw a \iisw{tangent} line to a curve.
+|\tztangent| accepts three mandatory arguments: |{<path>}|, |(<coor>)|, and |[<domain>]|.
+
+The value of $y$ in |(<coor>)| is ignored.
+For example, |\tztangent{curve}(4,|$y$|)| is equivalent to |\tztangentat{curve}{4}| for any $y$.
\xem{Everything else is the same as in} |\tztangentat|.
@@ -1672,7 +2641,6 @@ For example, |\tztangent{curve}(4,<y>)| is equivalent to |\tztangentat{curve}{4}
\end{tzdef}
-|\tztangent| accepts three mandatory arguments: |{<path>}|, |(<coor>)|, and |<domain>|.
\begin{tzcode}{.3}
% \tztangent
@@ -1723,85 +2691,160 @@ You can control the interval of variations of $x$ by the option |(<epsilon1,epsi
\end{tzcode}
-%%==================================
-\chapter{Miscellany}
-\label{c:misc}
%%------------------------------------------------------------
-\section{\protect\cmd{\tzbrace(')}}
-\label{s:tzbrace}
+\section{Slope lines and normal lines}
+\label{s:slopes}
+
+\subsection{\protect\cmd{\tzslopeat}}
+\label{ss:tzslopeat}
+
+\icmd{\tzslopeat} draws a slope line to a path with a specified length.
+The mandatory arguments are |{<path>}|, |{<x>}|, and |{<length>}|.
+The tangent point is the middle point of the slope line.
+
+By default, the slope lines are drawn on the |behind| layer.
+You can change the layer, like \icmd{\settztslopelayer}|{main}|.
+
+\remark The slope is \xem{approximate} and you can manipulate the slope by changing the variation interval with the option |(<epsilon1,epsilon2>)|. The default is $(\varepsilon_1,\varepsilon_2)=(0.01,0.01)$.
+You can also use
+\icmd{\tzslopeepsilon}|{<epsilon1>}{<epsilon2>}| \xem{immediately after} the option |{<x-val>}|, which is valid until the end of the |tikzpicture| environment, unless changed again.
-\icmd{\tzbrace} takes two coordinates as mandatory arguments to draw a \xem{calligraphic brace} connecting them.
\begin{tzdef}{}
% syntax: minimum
-\tzbrace(<coor>)(<coor>)
-% syntax: medium
-\tzbrace(<coor>)(<coor>){<text>}[<node opt>]
+\tzslopeat{<path>}{<x-val>}{<length>}
+% syntax: minimum (for normal line)
+\tzslopeat{<path>}{<x-val>}{<length>}[90] % or [-90]
% syntax: full
-\tzbrace[<draw opt>]{<raise>}[<decoration opt>]<shift coor>
- (<coor>)(<coor>){<text>}[<node opt>]
+\tzslopeat[<opt>]{<path>}{<x-val>}(<epsilon1>,<epsilon2>){<length>}[<rotate>]
+ {<text>}[<node opt>]<code.append>
% defaults
- []{5pt}[amplitude=5pt]<>(<m>)(<m>){}[]
+ []{<m>}{<m>}(.01,.01){<m>}[0]{}[]<>
\end{tzdef}
-The |raise| value of a brace is |5pt| by default and the value can be changed by the first curly brace optional argument |{<raise>}|.
+\begin{tzcode}{.3}
+% \tzslopeat
+\begin{tikzpicture}
+\tzhelplines*(5,4)
+\tzcoors*(0,0)(A)(2,2)(B){B}[b](3.5,1)(C)(5,3)(D);
+\tztos[thick]"AA"(A)[out=0,in=180]
+ (B)[out=0,in=180]
+ (C)[out=0,in=255]
+ (D);
+\tzslopeat[red,thick]{AA}{1}{3cm}
+\tzslopeat[blue]{AA}{2}{2cm}
+\tzslopeat{AA}{4}{2cm}{$f'(4)$}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% \tzslopeat: repeated
+\begin{tikzpicture}
+\tzhelplines(1,1)(5,4)
+\tzcoors*(0,1)(A)(2,3)(B)(4,2)(C);
+\tzparabola"AA"(A)(B)(C)
+\foreach \x in {1,1.5,...,3.5}
+ { \tzslopeat[thick,red]{AA}{\x}{2cm} }
+\end{tikzpicture}
+\end{tzcode}
-The |amplitude| of a brace is |5pt| by default. You can control the amplitude by writing the option |amplitude=<dim>| in the second bracket option |[<decoration opt>]|.
-\begin{tztikz}{}
-\tzbrace[thick](0,0)(3,1) % works like:
- \draw [thick,decorate,decoration={calligraphic brace, amplitude=5pt, raise=5pt}]
- (0,0) to (3,1);
-\end{tztikz}
-The \iisw{wap version} \icmd{\tzbrace'} swaps the coordinates.
-So it prints a mirror image of |\tzbrace|.
-For example, |\tzbrace'(0,0)(3,1)| is equivalent to |\tzbrace(3,1)(0,0)|.
+
+\paragraph{Normal lines}
+With the option |[<rotate>]| \xem{immediately after} the last mandatory option |{<length>}|, you can draw a \iisw{normal line} to a curve by rotating the slope lines |90|\textdegree or |-90|\textdegree.
\begin{tzcode}{.3}
-% \tzbrace(')
-\begin{tikzpicture}[sloped]
-\tzhelplines(4,2)
-\tzline(0,0)(3,1)
-\tzbrace(0,0)(3,1){AAA}[above=10pt,blue]
-\tzbrace'[red](0,0)(3,1){BBB}[below=10pt]
+% \tzslopeat: slopes and normals
+\begin{tikzpicture}
+\tzhelplines*(5,4)
+\tzcoors*(0,0)(A)(2,2)(B){B}[b](3.5,1)(C)(5,3)(D);
+\tztos[thick]"AA"(A)[out=0,in=180]
+ (B)[out=0,in=180]
+ (C)[out=0,in=255]
+ (D);
+\tzslopeat[red]{AA}{1}{3cm}
+\tzslopeat[blue]{AA}{2}{2cm}
+\tzslopeat{AA}{4}{2cm}{$f'(4)$}[r]
+% normal lines: roatate: [90] or [-90]
+\tzslopeat[blue]{AA}{1}{1cm}[90]
+\tzslopeat[red]{AA}{2}{2cm}[90]
+\tzslopeat[red]{AA}{4}{1cm}[-90]{normal}[b]
\end{tikzpicture}
\end{tzcode}
-You can change the style of the decorating brace by the second bracket optional argument |[<decoration opt>]|.
-The color of the calligraphic brace can be changed by the option |pen colour| in the list of |[<draw option>]|.
+
+
+
+\subsection{\protect\cmd{\tzslope}}
+\label{ss:tzslope}
+
+\icmd{\tzslope} is the same as |\tzslopeat|, except for one thing.
+|\tzslope| uses a coordinate instead of a value of $x$ to draw slope lines.
+So the mandatory arguments of |\tzslope| is |{<path>}|, |(<coor>)|, and |{<length>}|. The $y$ value of |(<x,y>)| is ignored.
+
+\begin{tzdef}{}
+% syntax
+\tzslope[<opt>]{<path>}(<x,y>)(<epsilon1>,<epsilon2>){<length>}[<angle>]
+ {<text>}[<pos,opt>]<code.append>
+% defaults
+ []{<m>}(<m>)(.01,.01){<m>}[0]{}[]<>
+\end{tzdef}
+
+
\begin{tzcode}{.3}
-% \tzbrace('): decoration options
-\begin{tikzpicture}[sloped]
-\tzhelplines(4,3)
-\tzline(0,0)(3,1)
-\tzbrace [very thick,pen colour=blue]
- [amplitude=10pt]
- (0,0)(3,1){AAA}[a=15pt]
-\tzbrace'[red,very thick]{10pt}
- [brace,amplitude=10pt]
- (0,0)(3,1){BBB}[b=20pt]
+% \tzslope: slopes and normals
+\begin{tikzpicture}
+\tzhelplines*(5,4)
+\tzcoors*(0,0)(A)(2,2)(B){B}[b](3.5,1)(C)(5,3)(D);
+\tztos[thick]"AA"(A)[out=0,in=180]
+ (B)[out=0,in=180]
+ (C)[out=0,in=255]
+ (D);
+\coordinate (B) at (2,2);
+\tzslope[red]{AA}(1,0){3cm}
+\tzgetxyval(B){\Bx}{\By}
+\tzslopeat[blue]{AA}{\Bx}{2cm}
+\tzslope{AA}(4,0){2cm}{$f'(4)$}[r]
+% normal lines: roatate: [90] or [-90]
+\tzslope[blue]{AA}(1,0){1cm}[90]
+\tzslope[red]{AA}(\Bx,0){2cm}[90]
+\tzslope[red]{AA}(4,0){1cm}[-90]{normal}[b]
\end{tikzpicture}
\end{tzcode}
-You can also move a brace by specifying the option |<shift coor>| immediately before the the first mandatory coordinate.
-The empty shift option |<>| is not allowed.
\begin{tzcode}{.3}
-% \tzbrace('): shift
-\begin{tikzpicture}[sloped]
-\tzhelplines(4,3)
-\tzline(0,0)(3,1)
-\tzbrace [very thick,pen colour=blue][amplitude=10pt]
- <.5,.5>(0,0)(3,1){AAA}[a=15pt]
-\tzbrace'[red,very thick]{10pt}[brace,amplitude=10pt]
- (0,0)(3,1){BBB}[b=20pt]
+% \tzslope: repeated
+\begin{tikzpicture}
+\tzhelplines(1,1)(5,4)
+\tzcoors*(0,1)(A)(2,3)(B)(4,2)(C);
+\tzparabola"AA"(A)(B)(C)
+\foreach \x in {1,1.5,...,3.5}
+ { \tzslope[thick,red]{AA}(\x,0){2cm} }
\end{tikzpicture}
\end{tzcode}
+You can add \Tikz\ code with the last option |<code.append>|.
+\begin{tzcode}{.3}
+% \tztangent, \tzslope: extend/shorten lines
+\begin{tikzpicture}[scale=.5]
+\tzhelplines(9,8)
+\tzaxes(9,8)
+\tzplotcurve"AA"(1,7)(3,3)(8,1);
+\tzcoors(2,0)(K2)(4,0)(K4);
+\tzslope[red,tzextend={1cm}{2cm}]{AA}(2,0){1cm} %%
+\tztangent[blue]{AA}(K4)[1:7]{tangent}[red,b]
+\tzslope[->]{AA}(4,0){0.1pt}[90]
+ <--([turn]0:2cm) node [r] {gradient} > %%
+\tzvXpoint*{AA}(K4)
+\tzticksx{1,7}
+\end{tikzpicture}
+\end{tzcode}
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc-E-v2.0.tex b/graphics/pgf/contrib/tzplot/tzplot-doc-E-v2.0.tex
new file mode 100644
index 0000000000..f3cc24f124
--- /dev/null
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc-E-v2.0.tex
@@ -0,0 +1,476 @@
+%!TEX root = tzplot-doc.tex
+%\begin{document}
+
+%%%%%===== PART: NOT YET!!! ==============
+%%%%%%%%==================================
+%%%%%\part{Miscellaneous Macros and Examples}
+%%%%%%%%==================================
+%%%%%\label{p:miscandexamples}
+%%%%%
+%%==================================
+
+%%==================================
+\chapter{Miscellany}
+\label{c:misc}
+
+%%------------------------------------------------------------
+\section{Middle arrows}
+\label{s:midarrows}
+
+Four styles for middle arrow tips are predefined: |-->--|, |--o--|, |--x--| and |--/--|.
+
+\subsection{Controllable middle arrow tips: \texttt{-->--} and \protect\cmd{\settzmidarrow}}
+
+The middle arrow tip style \ixxw{-->--} prints a middle arrow tip of |stealth| by default.
+It accepts one argument that changes the position (|0.5| by default) of a \iisw{middle arrow tip}, like |-->--=.75|.
+
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% middle arrow tip: -->--
+\tzhelplines(4,3)
+\tzline[-->--](0,3)(4,3)
+\tzline[-->--=.75,blue,thick](0,2.5)(4,2.5)
+\tzto[-->--,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{How to control middle arrow tips}
+The default options for middle arrow tips are |-|, |thin|, |solid|, and |shorten >=0|, and |bend right=0|. The defaults can be changed by |\settzmidarrow|.
+
+The macro \icmd{\settzmidarrow} controls the position, style, and other options of middle arrow tips. The effect is valid until the end of the |tikzpicture| environment, unless changed again.
+
+\begin{tzdef}{}
+% syntax:
+\settzmidarrow<position>{<arrow tip style>}[<opt>]
+% all arguments are optional
+% defaults:
+ <0.5>{stealth}[-,thin,solid,shorten <=0,shorten >=0,bend right=0]
+\end{tzdef}
+
+
+\begin{tzcode}{.3}
+% \settzmidarrow
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzmidarrow<.25>{Stealth[reversed]}[red,scale=2] %
+\tzline[-->--](0,3)(4,3)
+\tzline[-->--=.75,blue,thick](0,2.5)(4,2.5)
+\tzto[-->--,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\begin{tzcode}{.3}
+% various arrow tip styles: arrows.meta
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\settzmidarrow{Circle[open]}[blue,scale=2]
+\tzline[-->--](0,3)(4,3)
+\tikzset{>=to} %%
+\settzmidarrow{>>>}[blue,scale=2]
+\tzline[-->--](0,2.5)(4,2.5)
+\settzmidarrow<.25>{Rays}[blue,scale=2]
+\tzline[-->--=.75,blue,thick](0,2)(4,2)
+\tzto[-->--,->,red,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+You can use various styles of arrow tips. (See \Tikz\ manual on |arrows.meta| library, for more details.)
+
+
+
+\subsection{Fixed middle arrow tip styles: \texttt{--o--}, \texttt{--x--}, \texttt{--/--}}
+
+Three styles for middle arrow tips are predefined: \xem{circle} |--o--| , \xem{cross} |--x--| , and \xem{diagonal} |--/--| middle arrow tips.
+These middle arrow tip styles are fixed and cannot be changed.
+|\settzmidarrow| can only be used with |[<opt>]| to control these middle arrow tips.
+The other options |<position>| and |{<arrow tip style>}| options are ignored for these styles.
+
+\paragraph{Circle middle arrow tips:}
+
+The circle middle arrow tip style \ixxw{--o--} takes one argument to change the position (|0.5| by default).
+
+The circle is drawn like this:
+
+\begin{verbatim}
+ \draw [<opt>] (0,0) circle (1.2pt) ;
+\end{verbatim}
+
+|\settzmidarrow| controls the circle with |<opt>|.
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% circle middle arrow tip: --o--
+\tzhelplines(4,3)
+\tzline[--o--](0,3)(4,3)
+\tzline[--o--=.75,blue,thick](0,2.5)(4,2.5)
+\tzto[--o--,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% \settzmidarrow: difference
+\tzhelplines(4,3)
+\settzmidarrow<.25>{Circle[open,fill=green]}[scale=2] %
+\tzline[--o--,thick](0,3)(4,3)
+\tzline[-->--=.5,blue,thick](0,2.5)(4,2.5)
+\tzline[-->--,blue,thick](0,2)(4,2)
+\settzmidarrow[scale=2,thick,fill=green]
+\tzto[--o--=.25,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{Cross middle arrow tips:}
+
+The cross middle arrow tip style \ixxw{--x--} takes one argument to change the position (|0.5| by default).
+
+The cross mark is drawn like this:
+
+\begin{verbatim}
+ \draw [<opt>] (2pt,2pt) to (-2pt,-2pt) ;
+ \draw [<opt>] (-2pt,2pt) to (2pt,-2pt) ;
+\end{verbatim}
+
+|\settzmidarrow| controls the circle with |<opt>|.
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% cross middle arrow tip: --x--
+\tzhelplines(4,3)
+\tzline[--x--](0,3)(4,3)
+\tzline[--x--=.75,blue,thick](0,2.5)(4,2.5)
+\tzto[--x--,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% \settzmidarrow: scale, tzextend
+\tzhelplines(4,3)
+\settzmidarrow<.25>{Rays[red]}[scale=2] %
+\tzline[--x--,thick](0,3)(4,3)
+\tzline[-->--=.5,blue,thick](0,2.5)(4,2.5)
+\tzline[-->--,blue,thick](0,2)(4,2)
+\settzmidarrow[thick,blue,tzextend={8pt}{8pt}]
+\tzto[--x--=.25,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+\paragraph{Diagonal middle arrow tips}
+
+The diagonal middle arrow tip style \ixxw{--/--} takes one argument to change the position (|0.5| by default).
+
+The diagonal line is drawn like this:
+
+\begin{verbatim}
+ \draw [<opt>] (2pt,2pt) to (-2pt,-2pt) ;
+\end{verbatim}
+
+|\settzmidarrow| controls the circle with |<opt>|.
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% diagonal middle arrow tip: --/--
+\tzhelplines(4,3)
+\tzline[--/--](0,3)(4,3)
+\tzline[--/--=.75,blue,thick](0,2.5)(4,2.5)
+\tzto[--/--,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% \settzmidarrow: rotate, tzextend
+\tzhelplines(4,3)
+\tzline[--/--,thick](0,3)(4,3)
+\tzline[--/--=.25,blue,thick](0,2.5)(4,2.5)
+\settzmidarrow[rotate=90,red,tzextend={3pt}{3pt}]
+\tzline[--/--,blue,thick](0,2)(4,2)
+\tzto[--/--=.75,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+% \settzmidarrow: bend left
+\tzhelplines(4,3)
+\settzmidarrow[scale=2,rotate=45,bend left=60]
+\tzline[--/--,thick](0,3)(4,3)
+\tzline[--/--=.25,blue,thick](0,2.5)(4,2.5)
+\settzmidarrow[rotate=90,red,tzextend={3pt}{3pt}]
+\tzline[--/--,blue,thick](0,2)(4,2)
+\tzto[--/--=.75,->,out=45](0,0)(4,1)
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzbrace(')}}
+\label{s:tzbrace}
+
+\icmd{\tzbrace} takes two coordinates as mandatory arguments to draw a \xem{calligraphic brace} connecting them.
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzbrace(<coor>)(<coor>)
+% syntax: medium
+\tzbrace(<coor>)(<coor>){<text>}[<node opt>]
+% syntax: full
+\tzbrace[<draw opt>]{<raise>}[<decoration opt>]<shift coor>
+ (<coor>)(<coor>){<text>}[<node opt>]
+% defaults
+ []{5pt}[amplitude=5pt]<>(<m>)(<m>){}[]
+\end{tzdef}
+
+The |raise| value of a brace is |5pt| by default and the value can be changed by the first curly brace optional argument |{<raise>}|.
+
+The |amplitude| of a brace is |5pt| by default. You can control the amplitude by writing the option |amplitude=<dim>| in the second bracket option |[<decoration opt>]|.
+
+\begin{tztikz}{}
+\tzbrace[thick](0,0)(3,1) % works like:
+ \draw [thick,decorate,decoration={calligraphic brace, amplitude=5pt, raise=5pt}]
+ (0,0) to (3,1);
+\end{tztikz}
+
+The \iisw{swap version} \icmd{\tzbrace'} swaps the coordinates.
+So it prints a mirror image of |\tzbrace|.
+For example, |\tzbrace'(0,0)(3,1)| is equivalent to |\tzbrace(3,1)(0,0)|.
+
+\begin{tzcode}{.3}
+% \tzbrace(')
+\begin{tikzpicture}[sloped]
+\tzhelplines(4,2)
+\tzline(0,0)(3,1)
+\tzbrace(0,0)(3,1){AAA}[above=10pt,blue]
+\tzbrace'[red](0,0)(3,1){BBB}[below=10pt]
+\end{tikzpicture}
+\end{tzcode}
+
+You can change the style of the decorating brace by the second bracket optional argument |[<decoration opt>]|.
+
+The color of the calligraphic brace can be changed by the option |pen colour| in the list of |[<draw option>]|.
+
+\begin{tzcode}{.3}
+% \tzbrace('): decoration options
+\begin{tikzpicture}[sloped]
+\tzhelplines(4,3)
+\tzline(0,0)(3,1)
+\tzbrace [very thick,pen colour=blue]
+ [amplitude=10pt]
+ (0,0)(3,1){AAA}[a=15pt]
+\tzbrace'[red,very thick]{10pt}
+ [brace,amplitude=10pt]
+ (0,0)(3,1){BBB}[b=20pt]
+\end{tikzpicture}
+\end{tzcode}
+
+You can also move a brace by specifying the option |<shift coor>| immediately before the the first mandatory coordinate.
+The empty shift option |<>| is not allowed.
+
+\begin{tzcode}{.3}
+% \tzbrace('): shift
+\begin{tikzpicture}[sloped]
+\tzhelplines(4,3)
+\tzline(0,0)(3,1)
+\tzbrace [very thick,pen colour=blue][amplitude=10pt]
+ <.5,.5>(0,0)(3,1){AAA}[a=15pt]
+\tzbrace'[red,very thick]{10pt}[brace,amplitude=10pt]
+ (0,0)(3,1){BBB}[b=20pt]
+\end{tikzpicture}
+\end{tzcode}
+
+
+
+
+%%------------------------------------------------------------
+\section{\protect\cmd{\tzsnake(+)}: Snake lines (Experimental)}
+\label{s:tzsnake}
+
+\icmd{\tzsnake} connects two points with a snaked line, with many default values, using \Tikz's |to| operation.
+
+\begin{tztikz}{}
+\tzsnake(0,1)(3,2) % works like
+ \draw [ decorate , decoration={ %% many defaults
+ snake,
+ segment length=5pt, % controlled by \tzsnake
+ amplitude=2.5pt,
+ pre length=5pt,
+ post length=5pt
+ }
+ ] (0,1) to (3,2) ;
+\end{tztikz}
+
+\begin{tzcode}{.3}
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzsnake(0,1)(3,2)
+\tzsnake[->,blue,bend right](1,0)(4,3)
+\end{tikzpicture}
+\end{tzcode}
+
+\begin{tzdef}{}
+% syntax: minimum
+\tzsnake[<opt>]{<segment length>}[<decoration opt>]<shift coor>
+ (<coor>){<text>}[<node opt>](<coor>){<text>}[<node opt>]<code.append>
+% syntax: full
+\tzsnake[<opt>]{<segment length>}[<decoration opt>]<shift coor>
+ (<coor>){<text>}[<node opt>]
+ (<coor>){<text>}[<node opt>]<code.append>
+% defaults
+ []{5pt}[many defaults above]<>(<m>){}[](<m>){}[]<>
+\end{tzdef}
+
+The key |segment length| is controlled by the first curly brace option and you should write down all the other keys in the second bracket option |[<decoration opt>]| to change the values. Not specifying the option |{<segment length>}|, when the first bracket option is empty, you need empty brackets |[]|, like |\tzsnake[][<decoration op>]...|.
+
+\begin{tzcode}{.3}
+% \tzsnake: {segment length} option
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzsnake[blue]{3pt}[coil](0,1){spring}[a,sloped](3,2)
+\tzsnake[->,bend right]{3pt}
+ [coil,amplitude=5pt,post length=20pt]
+ (1,0){coil line}[b,sloped](4,3){Up!}[draw,r]
+\end{tikzpicture}
+\end{tzcode}
+
+The plus version \icmd{\tzsnake+} uses the second mandatory coordinate as a relative coordinate to the first. Everything else is the same as in |\tzsnake|.
+
+
+\begin{tzcode}{.3}
+% \tzsnake(+): shift
+\begin{tikzpicture}
+\tzhelplines(4,3)
+\tzsnake[->][post length=20pt](0,0)(3,0)
+\tzsnake[->,red][post length=20pt]<1,1>(0,0)(3,0) %%
+\tzsnake+[->,bend left,blue]{10pt}[post length=10pt]
+ (0,1){snake line}[a,sloped](4,2){what?}[r]
+\end{tikzpicture}
+\end{tzcode}
+
+
+%%%%%%%% (under construction)
+%%%%%
+%%%%%
+%%%%%%%------------------------------------------------------------
+%%%%%\section{\protect\cmd{\tzspy} (Experimental)}
+%%%%%\label{s:tzspy}
+%%%%%
+%%%%%
+%%%%%\begin{tzdef}{}
+%%%%%% syntax: minimum
+%%%%%\tzspy(<coor>)(<coor>)
+%%%%%% syntax: full
+%%%%%\tzbrace[<opt>]{<size>}[<maginificaltion>]
+%%%%% (<on-coor>)(<in-coor>)[<node opt>]<code.append>
+%%%%%% defaults
+%%%%% [circle]{2cm}{5}(<m>)(<m>)[]<>
+%%%%%\end{tzdef}
+%%%%%
+%%%%%To use |\tzspy| you need to tell \Tikz\ that a picture will be magnified, by specifying some special keys in the |tikzpicture| environment option, such as |spy using outlines|, |spy using overlays|, etc., as follows:
+%%%%%\begin{verbatim}
+%%%%% \begin{tikzpicture}[spy using outlines]
+%%%%% <tzplot code>
+%%%%% <tikz code>
+%%%%% \tzspy...
+%%%%% \end{tikzpicture}
+%%%%%\end{verbatim}
+%%%%%
+%%%%%\begin{tzcode}[text above listing]{1}
+%%%%%\begin{tikzpicture}[scale=.1,font=\scriptsize,spy using outlines]
+%%%%%\settzdotsize{1.2pt}
+%%%%%\tzaxes(-15,0)(60,60){$Q$}{$P$}
+%%%%%
+%%%%%\def\Dem{50-\x}
+%%%%%\def\Sup{.5*\x+5}
+%%%%%\def\Supa{.5*\x+6.5}
+%%%%%
+%%%%%\tzfn{\Dem}[0:50]{$D$}
+%%%%%\tzfn{\Sup}[-10:50]{$S$}[r]
+%%%%%\tzfn{\Supa}[-10:50]{$S'$}
+%%%%%
+%%%%%\tzXpoint*{Dem}{Sup}(eqm)
+%%%%%\tzXpoint*{Dem}{Supa}(eqma)
+%%%%%\tzvXpointat*{Sup}{29}(eqmb)
+%%%%%
+%%%%%\tzproj[densely dotted](eqm){\rlap{300}}{200}
+%%%%%\tzproj[densely dotted](eqma){\llap{290}}{\raisebox{1em}{210}}
+%%%%%\tzprojy[densely dotted](eqmb){\raisebox{-2em}{195}}
+%%%%%
+%%%%%\tzticks{-10/-100,50/500}{5/50,50/500}
+%%%%%
+%%%%%\tzpath*[blue](eqm)(eqma)(eqmb);
+%%%%%
+%%%%%\tzspy($(eqma)!.5!(eqmb)$)(100,30)
+%%%%%
+%%%%%%\spy [blue,draw,circle,size=5cm, magnification = 5,connect spies]
+%%%%%%on ($(eqma)!.5!(eqmb)$) in node at (100,30);
+%%%%%\end{tikzpicture}
+%%%%%\end{tzcode}
+%%%%%
+%%%%%
+%%%%%\begin{tzcode}[text above listing]{1}
+%%%%%\begin{tikzpicture}[scale=.1,font=\scriptsize,spy using overlays]
+%%%%%\settzdotsize{1.2pt}
+%%%%%\tzaxes(-15,0)(60,60){$Q$}{$P$}
+%%%%%
+%%%%%\def\Dem{50-\x}
+%%%%%\def\Sup{.5*\x+5}
+%%%%%\def\Supa{.5*\x+6.5}
+%%%%%
+%%%%%\tzfn{\Dem}[0:50]{$D$}
+%%%%%\tzfn{\Sup}[-10:50]{$S$}[r]
+%%%%%\tzfn{\Supa}[-10:50]{$S'$}
+%%%%%
+%%%%%\tzXpoint*{Dem}{Sup}(eqm)
+%%%%%\tzXpoint*{Dem}{Supa}(eqma)
+%%%%%\tzvXpointat*{Sup}{29}(eqmb)
+%%%%%
+%%%%%\tzproj[densely dotted](eqm){\rlap{300}}{200}
+%%%%%\tzproj[densely dotted](eqma){\llap{290}}{\raisebox{1em}{210}}
+%%%%%\tzprojy[densely dotted](eqmb){\raisebox{-2em}{195}}
+%%%%%
+%%%%%\tzticks{-10/-100,50/500}{5/50,50/500}
+%%%%%
+%%%%%\tzpath*[blue](eqm)(eqma)(eqmb);
+%%%%%
+%%%%%\tzspy[connect spies]{5cm}[6]($(eqma)!.5!(eqmb)$)(100,30)[draw,fill=red,thick]
+%%%%%\end{tikzpicture}
+%%%%%\end{tzcode}
+%%%%%
+
+
+
+%%%%%%%% (under construction)
+%%%%%\section{\protect\cmd{\tzplotfile}: plotting data}
+%%%%%\label{s:tzplotfile}
+%%%%%
+%%%%%\icmd{\tzplotfile} plots data.
+%%%%%
+%%%%%\begin{tcblisting}{listing only}
+%%%%%% syntax
+%%%%%\tzplotfile[<opt>]{<file name>}[<plot opt>]
+%%%%%\end{tcblisting}
+%%%%%
+%%%%%
+%%%%%\begin{tcblisting}{listing above text}
+%%%%%\begin{tikzpicture}
+%%%%%\tzplotfile{sine.data}
+%%%%%\end{tikzpicture}
+%%%%%\end{tcblisting}
+%%%%%
+%%%%%\begin{tcblisting}{listing above text}
+%%%%%\begin{tikzpicture}
+%%%%%\tzplotfile[blue]{sine.data}[mark=x]
+%%%%%\end{tikzpicture}
+%%%%%\end{tcblisting}
+
+
+
+
+
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc.pdf b/graphics/pgf/contrib/tzplot/tzplot-doc.pdf
index 1c1b26fa8d..db3e4926a4 100644
--- a/graphics/pgf/contrib/tzplot/tzplot-doc.pdf
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tzplot/tzplot-doc.tex b/graphics/pgf/contrib/tzplot/tzplot-doc.tex
index 7c2394ee7a..1a5fbb62dc 100644
--- a/graphics/pgf/contrib/tzplot/tzplot-doc.tex
+++ b/graphics/pgf/contrib/tzplot/tzplot-doc.tex
@@ -1,22 +1,33 @@
%!TEX program = arara
% arara: xelatex: {shell: yes, synctex: yes}
% arara: xelatex: {shell: yes, synctex: yes}
-% arara: makeindex: {style: tzplot}
+% arara: komkindex: {script: makeindex, style: tzplot}
% arara: xelatex: {shell: yes, synctex: yes}
% arara: xelatex: {shell: yes, synctex: yes}
-%% 2021/03/20 v1.0.1
-\def\tmpdate{2021/03/20}
-\def\tmpversion{1.0.1}
+%% 2022/02/28 v2.0
+\def\tmpdate{2022/02/28}
+\def\tmpversion{2.0}
+
+\def\printtodos{}
+\def\printtmptest{}
+\def\printtzplottest{}
+%--------------------------------------------
+%\renewcommand\printtodos{\input{todos.tex}}
+%\renewcommand\printtmptest{\input{tz-tmp-test.tex}}
+%\renewcommand\printtzplottest{\input{tzplot-test.tex}}
%------------------------------------------------------
\def\myincludeonly{%
\includeonly{%
-tzplot-doc-A-v\tmpversion, % getting ready
-tzplot-doc-B-v\tmpversion, % intuitive introductions (getting started)
-tzplot-doc-C-v\tmpversion, % points, lines, and curves
-tzplot-doc-D-v\tmpversion, % plotting graphs
-%tzplot-eco-v\tmpversion, % economics
+tzplot-doc-A-v\tmpversion, % getting ready
+tzplot-doc-B-v\tmpversion, % intuitive introductions (getting started)
+tzplot-doc-C-v\tmpversion, % points, lines, and curves -- Part III
+tzplot-doc-C1-v\tmpversion, % connecting points -- Part III
+tzplot-doc-C2-v\tmpversion, % polygons and angles -- Part III
+tzplot-doc-D-v\tmpversion, % plotting graphs -- Part IV
+tzplot-doc-E-v\tmpversion, % misc : final chapter : (-- Part V: not yet)
+%%%tzplot-eco-v\tmpversion, % economics
}}
%------------------------------------------------------
@@ -24,8 +35,12 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\gdef\clearforchapter{} % no clearpage for chapter
+%\usepackage{istgame} % middle arrow test
+%\usepackage{tzplot-v\tmpversion}
\usepackage{tzplot}
+%\AtBeginDocument{\tikzset{>=to}}
+
% ndh
\usepackage{etoolbox}
\input{tzplot-oblivoirpartstyle}
@@ -36,13 +51,6 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
%\settocdepth{subsubsection}
%\setlength\cftsubsubsectionindent{4.5em}
-\renewcommand*\contentsname{Contents}
-\renewcommand*\figurename{Figure}
-\renewcommand*\tablename{Table}
-\renewcommand*\abstractname{Abstract}
-\renewcommand*\indexname{Index}
-\renewcommand*\pagerefname{\kern-4pt}
-
\hypersetup{pdfborder={0 0 0}} % to suppress the hyperlink red box
%%====================================== (ndh)
@@ -71,7 +79,7 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\setlength\cftsectionindent{1.8em}
\setlength\cftsectionnumwidth{2.7em}
\setlength\cftsubsectionindent{4.5em}
-\setlength\cftsubsectionnumwidth{3em}
+\setlength\cftsubsectionnumwidth{3.5em} % 3em -> 3.5em
%%% chapter style
\makechapterstyle{tzdoc}{%
@@ -84,6 +92,7 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
%\usepackage{xparse} %% oblivoir loads xparse
\usepackage{tikz}
+\usetikzlibrary{shapes.misc}
\usepackage{makecell}
@@ -91,6 +100,8 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\usepackage[normalem]{ulem} % [normalem] to correct the pdf bookmark broken characters
\usepackage{idxlayout}
+\usepackage{tabu,tabu-fix}
+
\usepackage{tcolorbox}
\tcbuselibrary{minted,listings,breakable}
@@ -169,9 +180,14 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\newcommand\ipkg[1]{\textsf{#1}\index{#1@\textsf{#1}}}
\newcommand\ienv[1]{\textsf{#1}\index{#1@\textsf{#1}}}
+%\makeatletter
+%\newcommand{\icmd}[1]{\cmdprint{#1}%
+% \index{\expandafter\@gobble\string#1@\string\cmdprint{\string#1}}}
+%\makeatother
+
\makeatletter
\newcommand{\icmd}[1]{\cmdprint{#1}%
- \index{\expandafter\@gobble\string#1@\string\cmdprint{\string#1}}}
+ \index{\expandafter\@gobble\string#1(@\string\cmdprint{\string#1}}}
\makeatother
\makeindex
@@ -201,10 +217,39 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\def\listdivider{\leavevmode\smallskip\hrule width 1.5em\smallskip}
\newcommand\remark{\bigskip\noindent \textbf{Remark: }}
+\newcommand\remarkafterskip{\bigskip}
\newcommand\warning{\bigskip\noindent \textbf{Warning: }}
\newcommand\threeways{\textsc{Three Ways}}
+\usepackage{filecontents}
+
+\begin{filecontents*}{sine.data}
+#Curve 0, 20 points
+#x y type
+0.00000 0.00000 i
+0.52632 0.50235 i
+1.05263 0.86873 i
+1.57895 0.99997 i
+2.10526 0.86054 i
+2.63158 0.48819 i
+3.15789 -0.01630 i
+3.68421 -0.51638 i
+4.21053 -0.87669 i
+4.73684 -0.99970 i
+5.26316 -0.85212 i
+5.78947 -0.47390 i
+6.31579 0.03260 i
+6.84211 0.53027 i
+7.36842 0.88441 i
+7.89474 0.99917 i
+8.42105 0.84348 i
+8.94737 0.45948 i
+9.47368 -0.04889 i
+10.00000 -0.54402 i
+\end{filecontents*}
+
+
%\parindent=0pt
\title{\texttt{tzplot.sty} \\ Plot Graphs with \Tikz\ Abbreviations}\author{In-Sung Cho \\ \texttt{ischo <at> ktug.org}}
@@ -213,6 +258,15 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\def\tmpclearpage{\clearpage}
+\AtBeginDocument{%
+\renewcommand*\contentsname{Contents}
+\renewcommand*\figurename{Figure}
+\renewcommand*\tablename{Table}
+\renewcommand*\abstractname{Abstract}
+\renewcommand*\indexname{Index}
+\renewcommand*\pagerefname{\kern-4pt}
+}
+
\AtBeginDocument{\MakeShortVerb{\|}}
%%% english based document: \flushbottom
@@ -226,6 +280,8 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\myincludeonly
+\firmlists
+
%=============================================================
\begin{document}
@@ -235,7 +291,7 @@ tzplot-doc-D-v\tmpversion, % plotting graphs
\renewcommand{\abstracttextfont}{\normalfont\small\noindent\ignorespaces}
\begin{abstract}
This is a \LaTeX{} package that provides \Tikz\ based macros to make it easy to draw graphs.
-The macros provided in the \pkg{tzplot} package are just \emph{abbreviations} for \Tikz\ codes, which can be complicated, but using the package, hopefully, makes drawing easier, especially when drawing repeatedly. The macros were chosen and developed with an emphasis on drawing graphs in \emph{economics}.
+The macros provided in the \pkg{tzplot} package are just \emph{abbreviations} for \Tikz\ codes, which can be complicated, but using the package, hopefully, makes drawing easier, especially when drawing repeatedly. The macros have been chosen and developed with an emphasis on drawing graphs in \emph{economics}.
\begin{keywords}
lines, dots, curves, axes, functions,
@@ -247,22 +303,202 @@ projection, ticks, intersections, tangent lines
\mainmatter
-\include{tzplot-doc-A-v\tmpversion}
-\include{tzplot-doc-B-v\tmpversion}
+\printtodos
+
+\printtmptest
+
+\printtzplottest
-\include{tzplot-doc-C-v\tmpversion}
-\include{tzplot-doc-D-v\tmpversion}
+% Part I
+\include{tzplot-doc-A-v\tmpversion} % getting ready
-%\include{tzplot-eco-v\tmpversion}
+% Part II
+\include{tzplot-doc-B-v\tmpversion} % getting started
+
+% Part III
+\include{tzplot-doc-C-v\tmpversion} % dots, lines, curves, angles
+\include{tzplot-doc-C1-v\tmpversion} % connecting points
+\include{tzplot-doc-C2-v\tmpversion} % polygons and angles
+
+% Part IV
+\include{tzplot-doc-D-v\tmpversion} % plot functions
+
+% Part V (chapter now) %%% Part: not yet.
+\include{tzplot-doc-E-v\tmpversion} % misc and examples
+
+% Not Yet!
+\include{tzplot-eco-v\tmpversion} % application to economics
\chapter*{Version history}
\addcontentsline{toc}{chapter}{Version history}
\begin{itemize}
-\item v\tmpversion (\tmpdate)
+%%%\item v\tmpversion (\tmpdate)
+%%% \begin{itemize}
+%%% \item
+%%% \item
+%%% \item
+%%% \end{itemize}
+\item v2.0 (2022/02/28)
+ \begin{itemize}
+ \item Uploaded to CTAN
+ \item document done
+ \end{itemize}
+\item v1.98 (2022/02/27)
+ \begin{itemize}
+ \item added |\tzpointangle|
+ \item added |\tzfnarealine(')|, |\settzfnarealinestyle|
+ \end{itemize}
+\item v1.97 (2022/02/26)
+ \begin{itemize}
+ \item corrected |\tzpdfN|: bug fix
+ \item redesigned |\tzfnarea| (renamed from |\tzfnArea|)
+ \item added |\settzfnarearlayer|
+ \end{itemize}
+\item v1.96 (2022/02/25)
+ \begin{itemize}
+ \item modified |\tzanglemark|, |\tzrightanglemark|
+ \item added |\settzAAlinestyle| and |\settzRAlinestyle|
+ \item added |\settzAAradius|, |\settzRAsize|
+ \item predefined coordinates |(tzAAmid)|, |(tzRAvertext)|
+ \item corrected |\tzdefLFn|, |\tzdefLFnofy|, |\tzLfn|, |\tzLFnofy|
+ \item added |error message|: infinite slope error (for |LFn...| things)
+ \end{itemize}
+\item v1.95 (2022/02/24)
+ \begin{itemize}
+ \item documented
+ \item redefined |\tzedge(+)| and |\tzedges(+)| to make them consistent with \Tikz\ way
+ \item added aliases: |\tzbox|, |\tzboxring|, |\tzcirclering|
+ \item renamed |\tzangleONE|, |\tzangleTWO|, |\tzanglresult|
+ \end{itemize}
+%%%\item v1.94 (2022/02/22)
+%%% \begin{itemize}
+%%% \item added |\tzprojs(*)|, |\tzprojsx(*)|, |\tzprojsy(*)| (semicolon versions)
+%%% \item added |\tznoderectangle(*)| and |\tznodebox(*)|: aliases of |\tznodeframe(*)|
+%%% \item added |\tznodeoval(*)|: an alias of |\tznodeellipse(*)|
+%%% \item modified |\tznode(*)|: to use full features of the \Tikz\ |node| operation with |<node.code>|
+%%% \end{itemize}
+%%%\item v1.93 (2022/02/19)
+%%% \begin{itemize}
+%%% \item added middle arrow tip styles: |-->--|, |--o--|, |--x--|, and |--/--|
+%%% \item added |\settzmidarrow| to control middle arrow tips
+%%% \item added libraries |arrows.meta| and |bending|
+%%% \item added |error message|: when a semicolon is forgotten for semicolon versions
+%%% \end{itemize}
+%%%\item v1.92 (2022/02/17)
+%%% \begin{itemize}
+%%% \item redefined |\tzfn| and |\tzfnofy| to resolve issue with |\tz<...>AtBegin|
+%%% \begin{itemize}
+%%% \item used |(current subpath start)|
+%%% \end{itemize}
+%%% \item redefined |\tzfnmax| and |\tzfnmin| to resolve issue with |\tz<...>AtBegin|
+%%% \item redefined |\tzLFn| and |\tzLFnofy| to resolve issue with |\tz<...>AtBegin|
+%%% \item redefined |\tzplot| and |\tzplotcurve| to resolve issue with |\tz<...>AtBegin|
+%%% \end{itemize}
+%%%\item v1.91 (2022/02/15)
+%%% \begin{itemize}
+%%% \item added |\tznodedots(*)| and |\tznodes(*)|: semicolon versions
+%%% \begin{itemize}
+%%% \item modified |\tzdots| for consistency with |\tznodedots|
+%%% \end{itemize}
+%%% \end{itemize}
+%%%\item v1.9 (2022/02/11)
+%%% \begin{itemize}
+%%% \item redefined |\tzparabola| to add |\tzparabolaAtBegin|, |\tzparabolaAtEnd|
+%%% \item redefined |\tzbezier| to add |\tzbezierAtBegin|, |\tzbezierAtEnd|
+%%% \item redefined |\tzplot|, |\tzplotcurve| to use string replacement for angles
+%%% \item redefined |\tznodedot| to use string replacement for angles
+%%% \item modified |\tzlinks| and |\tzpath| to make them to be (almost) equal
+%%% \begin{itemize}
+%%% \item |\let\tzpathstyle\tzlinkstyle| and |\let\settzpathstyle\settzlinkstyle|
+%%% \end{itemize}
+%%% \end{itemize}
+%%%\item v1.8 (2022/02/08)
+%%% \begin{itemize}
+%%% \item redefined |\tzdot| and many other macros related to points, dots, and coordinates
+%%% \begin{itemize}
+%%% \item allows users to place labels not only by angles but also by string replacement:
+%%% \item |\tzdot(s)|, |\tzcdot(s)|, |\tzcoor(s)|, |\tzcoorsquick|
+%%% \item |\tzXpoint|, |\tzLFnXpoint|, |\tzhXpoint(at)|, |\tzvXpoint(at)|
+%%% \end{itemize}
+%%% \item modified |\tzfn| and |\tzfn'| (for functions of |\x| only)
+%%% \item modified |\tzfnofy| and |\tzfnofy'| (for functions of |\y| only)
+%%% \item modified |\tzdeffn|, |\tzdeffnofy|, |\tzdefLFn|, |\tzdefLFnofy| (no prime versions)
+%%% \item redefined |\tzLFnofy| to add |\tzLFnofy'|
+%%% \item rearraged document
+%%% \end{itemize}
+%%%\item v1.7 (2022/02/06)
+%%% \begin{itemize}
+%%% \item redefined |\tzrightanglemark|
+%%% \begin{itemize}
+%%% \item added |\tzrightanglemark*| to replace |\tzrightanglefill|, to be removed
+%%% \item added |\tzrightanglemark'| to avoid frequent coding error
+%%% \end{itemize}
+%%% \item redefined |\tzanglemark|
+%%% \begin{itemize}
+%%% \item added |\tzanglemark*| to replace |\tzanglefill|, to be removed
+%%% \item added |\tzanglemark'| to avoid frequent coding error
+%%% \end{itemize}
+%%% \end{itemize}
+%%%\item v1.6 (2022/01/26)
+%%% \begin{itemize}
+%%% \item renamed |\tzmarkangle(')| to |\tzanglemark(')|
+%%% \item renamed |\tzfillkangle(')| to |\tzanglefill(')|
+%%% \item renamed |\tzmarkrightangle| to |\tzrightanglemark|
+%%% \item renamed |\tzfillrightangle| to |\tzrightanglefill|
+%%% \item redefined |\tzpath| and its friends to make |\settzpathlayer| work with them
+%%% \item added |\tzlineAtBegin| and |\tzlineAtEnd|
+%%% \item added |\tzlinesAtBegin| and |\tzlinesAtEnd|
+%%% \item added |\tztoAtBegin| and |\tztoAtEnd|
+%%% \item added |\tztosAtBegin| and |\tztosAtEnd|
+%%% \item added |\tzLFnAtBegin| and |\tzLFnAtEnd|
+%%% \item added |\tzLFnofyAtBegin| and |\tzLFnofyAtEnd|
+%%% \item added |\tzvfn(at)AtBegin| and |\tzvfn(at)AtEnd|
+%%% \item added |\tzhfn(at)AtBegin| and |\tzhfn(at)AtEnd|
+%%% \end{itemize}
+%%%\item v1.5 (2021/11/29)
+%%% \begin{itemize}
+%%% \item added |\tzfnArea| (need to be completed, and then rename to |\tzfnarea|)
+%%% \begin{itemize}
+%%% \item currently |no shift|, |no extension|, |no code.append|
+%%% \end{itemize}
+%%% \item added |\tzpdfZ| and |\tzpdfN| for normal distribution functions
+%%% \end{itemize}
+%%%\item v1.4 (2021/11/05)
+%%% \begin{itemize}
+%%% \item revived |\tzslope|, |\tzslopeat|, |\settzslopelayer|, |\tzslopeepsilon|
+%%% \item revived |\tzdeffn(')|, |\tzdeffnofy(')|, |\tzdefLFn(')|, |\tzdefLFnofy|
+%%% \item revived |\tzfn'|, |\tzfnofy|, |\tzLFnofy|, |\tzLFnXpoint(*)|
+%%% \end{itemize}
+%%%\item v1.3 (2021/04/09)
+%%% \begin{itemize}
+%%% \item revived |\tzlink(+)|, |\tzlinkAtBegin|, |\tzlinkAtEnd|, |\settzlinkstyle|
+%%% \item revived |\tzlinks(+)|, |\tzlinksAtBegin|, |\tzlinksAtEnd|
+%%% \item revived |\tzedge(+)|, |\tzedges(+)|
+%%% \item revived |\tzslope|, |\tzslopeat|
+%%% \item revived |\tzLFXpoint(*)|
+%%% \item revived |\tzfnofy|, |\tzdeffn|, |\tzdeffnofy|
+%%% \item revived |\tzLFnofy|, |\tzdefLFn|, |\tzdefLFnofy|
+%%% \item revived |\tzplotfile|
+%%% \end{itemize}
+%%%\item v1.2 (2021/04/03)
+%%% \begin{itemize}
+%%% \item revived |\tzsnake|, |\tzspy|
+%%% \item added |\tzmarkrightangle|, |\tzfillrightangle|
+%%% \item added |\tzmarkangle(')|, |\tzfillangle(')|
+%%% \item added |\settzanglelayer|, |\tzangleresult|, |\tzangleONEresult|, |\tzangleTWOresult|
+%%% \item added |\tzpicangle| (considering to drop later)
+%%% \item added |\tzfnmax|, |\tzfnmin|, |\tz<...>AtBegin|, |\tz<...>AtEnd|
+%%% \end{itemize}
+%%%\item v1.1 (2021/03/23)
+%%% \begin{itemize}
+%%% \item added |\tzring(*)|, |\tzellipsering(*)|, |\tzrectanglering(*)|
+%%% \item added aliases: |\tzovalring(*)|, |\tzframering(*)|
+%%% \end{itemize}
+\item v1.0.1 (2021/03/20) uploaded to CTAN
\begin{itemize}
\item revised the document with typo corrections
\item added the option |<code.append>| to |\tzframe|, |\tzcircle|, and |\tzellipse|
@@ -281,7 +517,7 @@ projection, ticks, intersections, tangent lines
\item added |\tzpathlayer| and |\settzpathlayer|, for later use. (currently not used)
\item removed explanation of the option |<+or++>| in the document (considering to remove later)
\item changed the delimiter |<path style>| to |[<path style>]| in |\tzpath| and |\tzlink(s)| (critical change)
- \item added |text opactiy=1| everywhere |fill opacity=.3| is used
+ \item added |text opacity=1| everywhere |fill opacity=.3| is used
\end{itemize}
%%%\item v0.99j (2021/02/18)
%%% \begin{itemize}
@@ -359,7 +595,7 @@ projection, ticks, intersections, tangent lines
\chapter*{Acknowledgement}
\addcontentsline{toc}{chapter}{Acknowledgement}
-I am grateful to Kangsoo Kim of KTUG (Korean TeX Users Group) who has written many packages including |oblivoir.cls| for helping to implement the idea of the semicolon version with |expl3|.
+Many thanks to Kangsoo Kim from KTUG (Korean TeX Users Group) who wrote many packages, including |oblivoir.cls|, for helping to implement the semicolon versions and to handle \TeX\ expansion issues using |expl3|.
\chapter*{References}
\addcontentsline{toc}{chapter}{Reference}
@@ -368,7 +604,7 @@ I am grateful to Kangsoo Kim of KTUG (Korean TeX Users Group) who has written ma
\hpara{}\uline{\hphantom{Casteleyn, Jean Pierre}}~(2018), ``Visual TikZ," version 0.66.
-\hpara{}Tantau, Till~(2020), ``\TikZ\ and PGF: Manual for version 3.1.8b," \url{http://sourceforge.net/projects/pgf}.
+\hpara{}Tantau, Till~(2021), ``\TikZ\ and PGF: Manual for version 3.1.9a," \url{http://sourceforge.net/projects/pgf}.
\clearpage
\printindex
diff --git a/graphics/pgf/contrib/tzplot/tzplot.sty b/graphics/pgf/contrib/tzplot/tzplot.sty
index c5a1413a14..7b574bdc25 100644
--- a/graphics/pgf/contrib/tzplot/tzplot.sty
+++ b/graphics/pgf/contrib/tzplot/tzplot.sty
@@ -2,7 +2,7 @@
%%
%% tzplot
%%
-%% (C) Copyright 2017-2021 In-Sung Cho <ischo at ktug.org>
+%% (C) Copyright 2017-2022 In-Sung Cho <ischo at ktug.org>
%%
%% This work may be distributed and/or modified
%% under the conditions of the LaTeX Project Public License,
@@ -11,7 +11,7 @@
%% http://www.latex-project.org/lppl.txt.
%%
%% -------------------------------------------------
-\ProvidesPackage{tzplot-v1.0.1}[2021/03/20 v1.0.1 Plot Graphs with TikZ Abbreviations]
+\ProvidesPackage{tzplot}[2022/02/28 v2.0 Plot Graphs with TikZ Abbreviations]
% expl3,xparse: LPPL
% tikz: LPPL and/or GNU GPL
@@ -19,11 +19,35 @@
\RequirePackage{tikz}
\usetikzlibrary{
-calc,backgrounds,positioning,intersections,
-arrows,shapes,patterns,
-plotmarks, % for \tzplot[mark]
-decorations.pathreplacing, % for tzshowcontrols/show path construction, tzbrace
+arrows, % (deprecated in tikz)
+backgrounds,
+calc,
+decorations.pathreplacing, % for tzshowcontrols, tzbrace
calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
+intersections,
+patterns,
+plotmarks, % for \tzplot[mark]
+positioning,
+shapes,
+}
+
+%%(ADDED)
+\usetikzlibrary{
+% for later use
+%angles, % for \tzpicangle %% (Removed!!!)
+arrows.meta, % (added)
+bending, % (added with arrows.meta)
+decorations.markings, % need for "decoration"
+decorations.pathmorphing, % for \tzsnake
+spy, % for \tzspy (later)
+fpu, % for computation for \tzpicangle
+%fit,
+%quotes,
+%through,
+%shadings,
+%shadows,
+%scopes,
+%graphs,
}
@@ -34,42 +58,40 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,behind,main,above,foreground}
-%% usage: \begin{pgfonlayer}{foreground} ... \end{pgfonlayer}
+%% USAGE: \begin{pgfonlayer}{foreground} ... \end{pgfonlayer}
%%%%% defaults
-\def\tz@default@radius{1.2pt} % fixed
-\def\tz@initial@radius{\tz@default@radius} % changeable
-\NewDocumentCommand\settzdotradius{m}{\renewcommand\tz@initial@radius{#1}}
-\newcommand\tzdotradius{\tz@initial@radius}
-% circle dot (using radius)
+%%%%% basic defaults
+
+%% circle dot (using radius)
\def\tz@default@Cdot@radius{1.2pt} % fixed
\def\tz@initial@Cdot@radius{\tz@default@Cdot@radius} % changeable
\NewDocumentCommand\settzcdotradius{m}{\renewcommand\tz@initial@Cdot@radius{#1}}
\newcommand\tzCdotradius{\tz@initial@Cdot@radius}
-% node dot (using minimum size)
+%% node dot (using minimum size: diameter)
\def\tz@default@dot@size{2.4pt} % fixed
\def\tz@initial@dot@size{\tz@default@dot@size} % changeable
\NewDocumentCommand\settzdotsize{m}{\renewcommand\tz@initial@dot@size{#1}}
\newcommand\tzdotsize{\tz@initial@dot@size}
-% mark (using mark size, which is a radius) % tikz initial = 2pt
+%% mark (using mark size: radius) % tikz initial = 2pt
\def\tz@default@mark@size{2pt} % fixed
\def\tz@initial@mark@size{\tz@default@mark@size} % changeable
\NewDocumentCommand\settzmarksize{m}{\renewcommand\tz@initial@mark@size{#1}}
\newcommand\tzmarksize{\tz@initial@mark@size}
-% opacity
+%% opacity
\def\tz@default@fill@opacity{0.3} % fixed
\def\tz@initial@fill@opacity{\tz@default@fill@opacity} % changeable
\NewDocumentCommand\settzfillopacity{m}{\renewcommand\tz@initial@fill@opacity{#1}}
\newcommand\tzfillopacity{\tz@initial@fill@opacity}
-% fillcolor
-\def\tz@default@fill@color{black!50} % fixed
-\def\tz@initial@fill@color{\tz@default@fill@color} % changeable
+%% fillcolor
+\def\tz@default@fill@color{black!50} % fixed
+\def\tz@initial@fill@color{\tz@default@fill@color} % changeable
\NewDocumentCommand\settzfillcolor{mg}
{%
\renewcommand\tz@initial@fill@color{#1}
@@ -77,19 +99,22 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
\newcommand\tzfillcolor{\tz@initial@fill@color}
-% link style
+%% link style
\def\tz@default@link@style{to} % fixed
\def\tz@initial@link@style{\tz@default@link@style} % changeable
\NewDocumentCommand\settzlinkstyle{m}{\renewcommand\tz@initial@link@style{#1}}
\newcommand\tzlinkstyle{\tz@initial@link@style}
-% path style
-\def\tz@default@path@style{to} % fixed
-\def\tz@initial@path@style{\tz@default@path@style} % changeable
-\NewDocumentCommand\settzpathstyle{m}{\renewcommand\tz@initial@path@style{#1}}
-\newcommand\tzpathstyle{\tz@initial@path@style}
+\let\tzpathstyle\tzlinkstyle
+\let\settzpathstyle\settzlinkstyle
-% tangent epsilon
+%%% path style
+%\def\tz@default@path@style{to} % fixed
+%\def\tz@initial@path@style{\tz@default@path@style} % changeable
+%\NewDocumentCommand\settzpathstyle{m}{\renewcommand\tz@initial@path@style{#1}}
+%\newcommand\tzpathstyle{\tz@initial@path@style}
+
+%% tangent epsilon
\def\tz@default@tangent@epsilonL{.01}
\def\tz@default@tangent@epsilonR{.01}
@@ -104,28 +129,130 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
\newcommand\tztangentepsilonL{\tz@initial@tangent@epsilonL}
\newcommand\tztangentepsilonR{\tz@initial@tangent@epsilonR}
+
\let\tztangentatepsilonL\tztangentepsilonL
\let\tztangentatepsilonR\tztangentepsilonR
-% tzpath layer %% (NOT USED!!!) (to be considered later)
-\def\tz@default@tzpath@layer{main} % fixed
-\def\tz@initial@tzpath@layer{\tz@default@tzpath@layer} % changeable
-\NewDocumentCommand\settzpathlayer{m}{\renewcommand\tz@initial@tzpath@layer{#1}}
-\newcommand\tzpathlayer{\tz@initial@tzpath@layer}
+%%(ADDED)
+%% slope epsilon
+
+\def\tz@default@slope@epsilonL{.01}
+\def\tz@default@slope@epsilonR{.01}
+\def\tz@initial@slope@epsilonL{\tz@default@slope@epsilonL}
+\def\tz@initial@slope@epsilonR{\tz@default@slope@epsilonL}
+\NewDocumentCommand\settzslopeepsilon{mg}
+{%
+ \renewcommand\tz@initial@slope@epsilonL{#1}
+ \IfNoValueTF {#2}
+ {\renewcommand\tz@initial@slope@epsilonR{#1}}
+ {\renewcommand\tz@initial@slope@epsilonR{#2}}
+}
+\newcommand\tzslopeepsilonL{\tz@initial@slope@epsilonL}
+\newcommand\tzslopeepsilonR{\tz@initial@slope@epsilonR}
+
+\let\tzslopeatepsilonL\tzslopeepsilonL
+\let\tzslopeatepsilonR\tzslopeepsilonR
+
-% tangent layer
+%%%%% layers: defaults
+
+%% tzpath layer %% default: main
+\def\tz@default@tzpath@layer{main} % fixed
+\def\tz@initial@tzpath@layer{\tz@default@tzpath@layer} % changeable
+\NewDocumentCommand\settzpathlayer{m}
+ {\renewcommand\tz@initial@tzpath@layer{#1}}
+\newcommand\tzpathlayer{\tz@initial@tzpath@layer}
+%% (there is No \tz-link-layer thing)
+
+%% tzfnArea layer %% default: main
+\def\tz@default@tzfnArea@layer{behind} % fixed
+\def\tz@initial@tzfnArea@layer{\tz@default@tzfnArea@layer} % changeable
+\NewDocumentCommand\settzfnArealayer{m}
+ {\renewcommand\tz@initial@tzfnArea@layer{#1}}
+\newcommand\tzfnArealayer{\tz@initial@tzfnArea@layer}
+
+%% tzfnarea layer %% default: main
+\def\tz@default@tzfnarea@layer{behind} % fixed
+\def\tz@initial@tzfnarea@layer{\tz@default@tzfnarea@layer} % changeable
+\NewDocumentCommand\settzfnarealayer{m}
+ {\renewcommand\tz@initial@tzfnarea@layer{#1}}
+\newcommand\tzfnarealayer{\tz@initial@tzfnarea@layer}
+
+%% tangent layer
\def\tz@default@tangent@layer{behind} % fixed
\def\tz@initial@tangent@layer{\tz@default@tangent@layer} % changeable
-\NewDocumentCommand\settztangentlayer{m}{\renewcommand\tz@initial@tangent@layer{#1}}
+\NewDocumentCommand\settztangentlayer{m}
+ {\renewcommand\tz@initial@tangent@layer{#1}}
\newcommand\tztangentlayer{\tz@initial@tangent@layer}
+
\let\tztangentatlayer\tztangentlayer
+\let\settztangentatlayer\settztangentlayer
-% secant layer
-\def\tz@default@secant@layer{behind} % fixed
-\def\tz@initial@secant@layer{\tz@default@secant@layer} % changeable
-\NewDocumentCommand\settzsecantlayer{m}{\renewcommand\tz@initial@secant@layer{#1}}
+%% secant layer
+\def\tz@default@secant@layer{behind} % fixed
+\def\tz@initial@secant@layer{\tz@default@secant@layer} % changeable
+\NewDocumentCommand\settzsecantlayer{m}
+ {\renewcommand\tz@initial@secant@layer{#1}}
\newcommand\tzsecantlayer{\tz@initial@secant@layer}
+
\let\tzsecantatlayer\tzsecantlayer
+\let\settzsecantatlayer\settzsecantlayer
+
+%%(ADDED)
+%% slope layer
+\def\tz@default@slope@layer{behind} % fixed
+\def\tz@initial@slope@layer{\tz@default@slope@layer} % changeable
+\NewDocumentCommand\settzslopelayer{m}
+ {\renewcommand\tz@initial@slope@layer{#1}}
+\newcommand\tzslopelayer{\tz@initial@slope@layer}
+
+\let\tzslopeatlayer\tzslopelayer
+\let\settzslopeatlayer\settzslopelayer
+
+%% angle layer
+\def\tz@default@angle@layer{behind} % fixed
+\def\tz@initial@angle@layer{\tz@default@angle@layer} % changeable
+\NewDocumentCommand\settzanglelayer{m}
+ {\renewcommand\tz@initial@angle@layer{#1}}
+\newcommand\tzanglelayer{\tz@initial@angle@layer}
+
+\let\tzanglemarklayer\tzanglelayer
+\let\settzanglemarklayer\settzanglelayer
+
+
+%%%%% line style, radius, size: defaults
+
+%% function area (fnA) line width
+\def\tz@default@fnA@linestyle{very thin} % fixed
+\def\tz@initial@fnA@linestyle{\tz@default@fnA@linestyle} % changeable
+\NewDocumentCommand\settzfnarealinestyle{m}
+ {\renewcommand\tz@initial@fnA@linestyle{#1}}
+\newcommand\tzfnALstyle{\tz@initial@fnA@linestyle}
+
+%% angle arc (AA) line style
+\def\tz@default@AA@linestyle{very thin} % fixed
+\def\tz@initial@AA@linestyle{\tz@default@AA@linestyle} % changeable
+\NewDocumentCommand\settzAAlinestyle{m}
+ {\renewcommand\tz@initial@AA@linestyle{#1}}
+\newcommand\tzAAlinestyle{\tz@initial@AA@linestyle}
+
+\let\tzRAlinestyle\tzAAlinestyle
+\let\settzRAlinestyle\settzAAlinestyle
+
+%% angle arc (AA) radius
+\def\tz@default@AA@radius{10pt} % fixed
+\def\tz@initial@AA@radius{\tz@default@AA@radius} % changeable
+\NewDocumentCommand\settzAAradius{m}
+ {\renewcommand\tz@initial@AA@radius{#1}}
+\newcommand\tzAAradius{\tz@initial@AA@radius}
+
+%% right angle (RA) marc size
+\def\tz@default@RA@size{5pt} % fixed
+\xdef\tz@initial@RA@size{\tz@default@RA@size} % changeable
+\NewDocumentCommand\settzRAsize{m}
+ {\renewcommand\tz@initial@RA@size{#1}}
+\newcommand\tzRAsize{\tz@initial@RA@size}
+
%%%%% TikZ alias styles
@@ -157,6 +284,13 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
tzdot options/.style={tzdot=\tzdotsize,#1}
}
+%%%%%%% tzshowdot
+%%%%%\tikzset{
+%%%%% tzshowdot/.style=
+%%%%% {draw,fill,solid,thin,circle,inner sep=0pt,minimum size=\tzdotsize,#1},
+%%%%%% tzshowdot/.default=circle
+%%%%%}
+
%% tzmark
\tikzset{
tzmark/.style=
@@ -227,6 +361,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
}
+
%=====================================================
%%=====================================================
%%=====================================================
@@ -234,6 +369,42 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%=====================================================
%%=====================================================
+%%% error messages:
+
+%% semicolon versions
+\msg_new:nnn { tzplot } { semicolon-error }
+ { You~may~have~forgotten~a~semicolon~here~or~above! }
+
+%% infinite slope error: LFn related macros
+\msg_new:nnn { tzplot } { infinite~slope~error }
+ { Perhaps~you~are~trying~an~'infinite~slope'~here~or~above! }
+
+
+%%%% string replacement
+%%%%%% to use string replacement for label positions
+\cs_new:Npn \extract_posopt:w [ #1 ] #2 \q_stop % ndh
+{
+ \tl_set:Nn \l_label_pos_str_tl { [ \exp_not:n { #1 } ] } % \exp_not needed!!!
+
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #2 } }
+
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_put_right:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_put_right:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_put_right:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_put_right:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_put_right:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_put_right:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_put_right:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_put_right:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_put_right:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_put_right:Nn \l_label_pos_str_tl { #2 }
+ }
+}
+
%%%%% help lines
\NewDocumentCommand\tzhelplines{ s O{} r() d() }
@@ -309,6 +480,11 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%%% --- end of \tzgetxyval
+
+
+
+
+
%%%%% Dots
%%% Node Dots %%% (basic: using minimum size)
@@ -318,13 +494,44 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\bool_new:N \l_tzdot_shift_coor_bool
-\NewDocumentCommand\tzdot{ s O{} d<> r() +G{} O{} D(){\tz@initial@dot@size} }
+%%% \tzdot (main)
+\NewDocumentCommand\tzdot
+ { s O{} d<> r() +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tzdot_cmd_tl
- \IfValueT { #7 }
+ \tl_if_empty:nF { #7 }
{ \renewcommand\tzdotsize{ #7 } }
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #6 }
+ {
+ \tl_if_in:nnTF { #6 } { [ }
+ { \extract_posopt:w #6 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #6 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #6 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\IfValueTF { #3 }
{
\tl_set:Nn \l_tzdot_shift_coor_tl { #3 }
@@ -339,11 +546,13 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
\tl_put_right:Nx \l_tzdot_cmd_tl
{
- ( [ shift = { (\l_tzdot_shift_coor_tl) } ]#4 ) node
+ ( [ shift = { (\l_tzdot_shift_coor_tl) } ] #4 )
}
}
- { \tl_put_right:Nn \l_tzdot_cmd_tl { (#4) node } }
+ { \tl_put_right:Nn \l_tzdot_cmd_tl { (#4) } }
+ \tl_put_right:Nn \l_tzdot_cmd_tl { node } %%
+
\IfBooleanTF { #1 }
{
\tl_put_right:Nn \l_tzdot_cmd_tl
@@ -355,7 +564,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
\tl_put_right:Nx \l_tzdot_cmd_tl
{
- label = { \exp_not:n { #6 } \c_colon_str \exp_not:n { #5 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #5 } } , % pos_str
}
\tl_put_right:Nn \l_tzdot_cmd_tl
{
@@ -367,6 +576,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzdot
+
%%% multiple dots
%%% coding CAUTION! : _tzdot_ changed to _tzdots_
@@ -377,6 +587,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_new:N \l_tzdots_cmd_tl
\bool_new:N \l_tzdots_shift_coor_bool
+%%% \tzdots (main)
\NewDocumentCommand\tzdots{ s O{} d<> }
{
\tl_clear:N \l_tzdots_cmd_tl
@@ -413,29 +624,60 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzdots_late_opt_fn }
}
{
- \tzdots_stop_action
+% \tzdots_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
-\NewDocumentCommand\tzdots_sub_fn { r() +G{} O{} }
+\NewDocumentCommand\tzdots_sub_fn { r() +G{} >{\TrimSpaces}o }
{
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #3 }
+ {
+ \tl_if_in:nnTF { #3 } { [ }
+ { \extract_posopt:w #3 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #3 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #3 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\bool_if:NTF \l_tzdots_shift_coor_bool
{
\tl_put_right:Nx \l_tzdots_cmd_tl
{% if shift
- ( [ shift = { (\l_tzdots_shift_coor_tl) } ]#1 )
+ ( [ shift = { (\l_tzdots_shift_coor_tl) } ] #1 )
}
}
{ \tl_put_right:Nn \l_tzdots_cmd_tl { (#1) } }
+ \tl_put_right:Nn \l_tzdots_cmd_tl { node } %%
+
\tl_put_right:Nx \l_tzdots_cmd_tl
{
- node
[
\l_tzdots_STYLE_fill_tl ,
minimum~size = \exp_not:n { \tzdotsize } ,
- label = { \exp_not:n { #3 } \c_colon_str \exp_not:n { #2 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #2 } } , % pos_str
}
\tl_put_right:No \l_tzdots_cmd_tl % expand `once'
{
@@ -476,12 +718,12 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\clist_new:N \l_tzCdot_opt_clist
\bool_new:N \l_tzCdot_shift_coor_bool
-\NewDocumentCommand\tzcdot{ s o d<> r() +G{} O{} d() }
+%%% \tzcdot (main)
+\NewDocumentCommand\tzcdot{ s o d<> r() +G{} >{\TrimSpaces}o d() }
{
\tl_clear:N \l_tzCdot_opt_tl % (needed)
\tl_clear:N \l_tzCdot_cmd_tl
- % default dot radius == arg specifier D<>{\tz@initial@radius}
\renewcommand\tzCdotradius{\tz@initial@Cdot@radius}
\IfValueT { #7 }
@@ -512,8 +754,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
\str_if_in:nnTF { ##1 } { tzcdot }
{ % (matched item)
- \clist_pop:NN \l_tzCdot_opt_input_clist \l_tmpa_tl
- \keys_set:nV { keytzCdot } \l_tmpa_tl % form: { tzcdot=\l_tmpa_tl }
+ \clist_pop:NN \l_tzCdot_opt_input_clist \l_label_pos_str_tl
+ \keys_set:nV { keytzCdot } \l_label_pos_str_tl % form: { tzcdot=\l_label_pos_str_tl }
\exp_args:NNo \renewcommand\tzCdotradius { \key_tzCdot_radius_tl }
\clist_map_break:
% non-tested list remains
@@ -554,11 +796,40 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
circle ( \tzCdotradius )
}
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #6 }
+ {
+ \tl_if_in:nnTF { #6 } { [ }
+ { \extract_posopt:w #6 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #6 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #6 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\tl_put_right:Nx \l_tzCdot_cmd_tl
{
node
[ inner~sep = 0pt ,
- label = { \exp_not:n { #6 } \c_colon_str \exp_not:n { #5 } }
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #5 } } % pos_str
] {}
}
\exp_last_unbraced:No \draw \l_tzCdot_cmd_tl ;
@@ -570,6 +841,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% multiple dots
%%% coding CAUTION! : _tzCdot_ changes to _tzCdots
+
+%%% \tzcdots
%%% *[<opt>]<shift> (){}[] (){}[] repeated (){}[] ; (radius)
%%% repeat pattern: (coor){label}[angle]
@@ -577,6 +850,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\bool_new:N \l_tzCdots_size_call_bool
\bool_new:N \l_tzCdots_shift_coor_bool
+%%% \tzcdots (main)
\NewDocumentCommand\tzcdots{ s o d<> }
{
\renewcommand\tzCdotradius{\tz@initial@Cdot@radius}
@@ -609,8 +883,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
\str_if_in:nnTF { ##1 } { tzcdot }
{
- \clist_pop:NN \l_tzCdots_opt_input_clist \l_tmpa_tl
- \keys_set:nV { keytzCdot } \l_tmpa_tl
+ \clist_pop:NN \l_tzCdots_opt_input_clist \l_label_pos_str_tl
+ \keys_set:nV { keytzCdot } \l_label_pos_str_tl
\exp_args:NNo \renewcommand\tzCdotradius { \key_tzCdot_radius_tl }
\bool_set_true:N \l_tzCdots_size_call_bool
\clist_map_break:
@@ -643,12 +917,41 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzCdots_late_opt_fn }
}
{
- \tzCdots_stop_action
+% \tzCdots_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
-\NewDocumentCommand\tzCdots_sub_fn { r() +G{} O{} }
+\NewDocumentCommand\tzCdots_sub_fn { r() +G{} >{\TrimSpaces}o }
{
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #3 }
+ {
+ \tl_if_in:nnTF { #3 } { [ }
+ { \extract_posopt:w #3 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #3 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #3 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
\bool_if:NTF \l_tzCdots_shift_coor_bool
{% if shift
\tl_put_right:Nx \l_tzCdots_cmd_tl
@@ -664,7 +967,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
node
[ inner~sep = 0pt ,
- label = { \exp_not:n { #3 } \c_colon_str \exp_not:n { #2 } }
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #2 } } % pos_str
] {}
}
\tzCdots_check_token:n
@@ -761,7 +1064,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%%%% Coordinates
%%% \tzcoor()(){label}[pos]
-\NewDocumentCommand\tzcoor{ s O{} d<> r() r() +G{} O{} D(){\tz@initial@dot@size} }
+\NewDocumentCommand\tzcoor{ s O{} d<> r() r() +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tzcoor_cmd_tl
@@ -791,9 +1094,37 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
[ inner~sep = 0pt ,
}
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #7 }
+ {
+ \tl_if_in:nnTF { #7 } { [ }
+ { \extract_posopt:w #7 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #7 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #7 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
\tl_put_right:Nx \l_tzcoor_cmd_tl
{
- label = { \exp_not:n { #7 } \c_colon_str \exp_not:n { #6 } }
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #6 } } % pos_str
}
\tl_put_right:Nn \l_tzcoor_cmd_tl
{
@@ -812,6 +1143,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzcoors*[opt]<radius> ()(){}[] ()(){}[] repeated ()(){}[];
%% repeat pattern: (coor)(name){label}[pos]
+
+%%% \tzcoors (main)
\NewDocumentCommand\tzcoors{ s O{} d<> }
{
\tl_clear:N \l_tzcoors_cmd_tl
@@ -849,12 +1182,41 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzcoors_late_opt_fn }
}
{
- \tzcoors_stop_action
+% \tzcoors_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
-\NewDocumentCommand\tzcoors_sub_fn { r() r() +G{} O{} }
+\NewDocumentCommand\tzcoors_sub_fn { r() r() +G{} >{\TrimSpaces}o }
{
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #4 }
+ {
+ \tl_if_in:nnTF { #4 } { [ }
+ { \extract_posopt:w #4 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #4 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #4 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
\bool_if:NTF \l_tmpa_bool
{
% collect only coor info
@@ -884,7 +1246,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
\tl_put_right:Nx \l_tzcoors_tzdot_cmd_tl
{
- label = { \exp_not:n { #4 } \c_colon_str \exp_not:n { #3 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #3 } } , % abb
}
\tl_put_right:No \l_tzcoors_tzdot_cmd_tl
{
@@ -903,7 +1265,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ (#1) coordinate }
}
\tl_put_right:Nx \l_tzcoors_cmd_tl
- { [ label = { \exp_not:n { #4 } \c_colon_str \exp_not:n { #3 } } ] }
+ { [ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #3 } } ] } % pos_str
\tl_put_right:Nn \l_tzcoors_cmd_tl
{ (#2) }
}
@@ -931,6 +1293,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\bool_new:N \l_tzcoors_quick_shift_coor_bool
+%%% \tzcoorsquick (main)
\NewDocumentCommand\tzcoorsquick { s O{} d<> }
{
\tl_clear:N \l_tzcoors_quick_cmd_tl
@@ -968,25 +1331,70 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzcoorsquick_late_opt_fn }
}
{
- \tzcoorsquick_stop_action
+% \tzcoorsquick_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
% repetition ***
-\NewDocumentCommand\tzcoorsquick_sub_fn { r() r() +g O{} }
+\NewDocumentCommand\tzcoorsquick_sub_fn { r() r() +g >{\TrimSpaces}o }
{
\IfValueTF { #3 }
- { \tl_set:Nx \l_tmpa_tl { \exp_not:n { #3 } } }
- { \tl_set:Nn \l_tmpa_tl { #2 } } % automatic view
- \tl_if_empty:nTF { #4 }
+ { \tl_set:Nx \l_label_pos_tl { \exp_not:n { #3 } } }
+ { \tl_set:Nn \l_label_pos_tl { #2 } } % automatic view
+
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #4 }
{
+ \tl_if_in:nnTF { #4 } { [ }
+ { \extract_posopt:w #4 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #4 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #4 }
+ }
+ }
+ \tl_set:Nx \l_tmpb_tl { \l_label_pos_str_tl } % pos_str
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
\bool_if:NTF \l_tmpa_bool
{ \tl_set:Nn \l_tmpb_tl { } } % texts with dots (tikz default: above)
{ \tl_set:Nn \l_tmpb_tl { center } } % only texts
}
- {
- \tl_set:Nx \l_tmpb_tl { \exp_not:n { #4 } }
- }
+%%%%%%%%%%
+
+% \IfValueTF { #4 }
+% {
+% \tl_set:Nx \l_tmpb_tl { \l_label_pos_str_tl } % pos_str
+% }
+% {
+% \bool_if:NTF \l_tmpa_bool
+% { \tl_set:Nn \l_tmpb_tl { } } % texts with dots (tikz default: above)
+% { \tl_set:Nn \l_tmpb_tl { center } } % only texts
+% }
+
+% \tl_if_empty:nTF { #4 }
+% {
+% \bool_if:NTF \l_tmpa_bool
+% { \tl_set:Nn \l_tmpb_tl { } } % texts with dots (tikz default: above)
+% { \tl_set:Nn \l_tmpb_tl { center } } % only texts
+% }
+% {
+% \tl_set:Nx \l_tmpb_tl { \exp_not:n { #4 } }
+% }
\bool_if:NTF \l_tmpa_bool
{ %% glancing labels with dots
@@ -1018,7 +1426,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
\tl_put_right:Nx \l_tzcoors_quick_tzdot_cmd_tl
{
- label = { \l_tmpb_tl \c_colon_str { \l_tmpa_tl } } ,
+ label = { \l_tmpb_tl \c_colon_str { \l_label_pos_tl } } ,
}
\tl_put_right:No \l_tzcoors_quick_tzdot_cmd_tl
{
@@ -1038,7 +1446,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ (#1) coordinate }
}
\tl_put_right:Nx \l_tzcoors_quick_cmd_tl
- { [ label = { \l_tmpb_tl \c_colon_str { \l_tmpa_tl } } ] }
+ { [ label = { \l_tmpb_tl \c_colon_str { \l_label_pos_tl } } ] }
\tl_put_right:Nn \l_tzcoors_quick_cmd_tl
{ (#2) }
}
@@ -1071,9 +1479,25 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzline
+\bool_new:N \g_tzline_BEGIN_cmd_bool
+\bool_new:N \g_tzline_END_cmd_bool
\bool_new:N \l_tzline_shift_coor_bool
-%%% \tzline
+%% \tzlineAtBegin
+\NewDocumentCommand\tzlineAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzline_BEGIN_cmd_bool
+ \tl_gset:No \g_tzline_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzlineAtEnd
+\NewDocumentCommand\tzlineAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzline_END_cmd_bool
+ \tl_gset:No \g_tzline_END_cmd_tl { #1 }
+}
+
+%%% \tzline (main)
\NewDocumentCommand\tzline{ s t+ o d<> d"" }
{
\tl_clear:N \l_tzline_cmd_tl
@@ -1167,6 +1591,11 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_put_right:Nn \l_tzline_cmd_tl
{ node [ #7 ] { #6 } }
+ % add at begin/end
+ \bool_if:NT \g_tzline_BEGIN_cmd_bool
+ { \tl_put_left:Nx \l_tzline_cmd_tl { \g_tzline_BEGIN_cmd_tl } }
+ \bool_if:NT \g_tzline_END_cmd_bool
+ { \tl_put_right:Nx \l_tzline_cmd_tl { \g_tzline_END_cmd_tl } }
% final action
\tl_put_left:No \l_tzline_cmd_tl
@@ -1178,6 +1607,11 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ [ \l_tzline_namepath_tl , }
\exp_last_unbraced:Nf \draw \l_tzline_cmd_tl #8 ;
+
+ \bool_gset_false:N \g_tzline_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzline_END_cmd_bool
+% \tl_clear:N \g_tzline_BEGIN_cmd_tl
+% \tl_clear:N \g_tzline_END_cmd_tl
}
%%% --- end of \tzline
@@ -1185,8 +1619,25 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzlines
+\bool_new:N \g_tzlines_BEGIN_cmd_bool
+\bool_new:N \g_tzlines_END_cmd_bool
\bool_new:N \l_tzlines_shift_coor_bool
+%% \tzlinesAtBegin
+\NewDocumentCommand\tzlinesAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzlines_BEGIN_cmd_bool
+ \tl_gset:No \g_tzlines_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzlinesAtEnd
+\NewDocumentCommand\tzlinesAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzlines_END_cmd_bool
+ \tl_gset:No \g_tzlines_END_cmd_tl { #1 }
+}
+
+%%% \tzlines (main)
%% do not use: inner sep=0pt
\NewDocumentCommand\tzlines{ s t+ O{} d<> D""{} }
{
@@ -1234,7 +1685,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzlines_late_opt_fn }
}
{
- \tzlines_stop_action
+% \tzlines_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
@@ -1299,6 +1751,11 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
\tl_put_right:No \l_tzlines_cmd_tl { \l_tzlines_STYLE_B_tl }
\tl_clear:N \l_tzlines_STYLE_tl
+ % add at begin/end
+ \bool_if:NT \g_tzlines_BEGIN_cmd_bool
+ { \tl_put_left:Nx \l_tzlines_cmd_tl { \g_tzlines_BEGIN_cmd_tl } }
+ \bool_if:NT \g_tzlines_END_cmd_bool
+ { \tl_put_right:Nx \l_tzlines_cmd_tl { \g_tzlines_END_cmd_tl } }
% gathering options
\tl_put_left:No \l_tzlines_cmd_tl
{
@@ -1309,6 +1766,11 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
% final action
\exp_last_unbraced:Nf
\draw \l_tzlines_cmd_tl \l_tzlines_code_at_end_tl ;
+
+ \bool_gset_false:N \g_tzlines_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzlines_END_cmd_bool
+% \tl_clear:N \g_tzlines_BEGIN_cmd_tl
+% \tl_clear:N \g_tzlines_END_cmd_tl
}
%%% --- end of \tzlines
@@ -1318,6 +1780,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\bool_new:N \l_tzpolygon_shift_coor_bool
+%%% \tzpolygon (main)
%% do not use: inner sep=0pt
\NewDocumentCommand\tzpolygon{ s t+ O{} d<> D""{} }
{
@@ -1365,7 +1828,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzpolygon_late_opt_fn }
}
{
- \tzpolygon_stop_action
+% \tzpolygon_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
@@ -1456,14 +1920,354 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzpolygon
+%%(ADDED)
+%%%%% Linking points
+
+%%% \tzlink (general version of \tzline)
+
+\bool_new:N \g_tzlink_BEGIN_cmd_bool
+\bool_new:N \g_tzlink_END_cmd_bool
+\bool_new:N \l_tzlink_shift_coor_bool
+
+%% \tzlinkAtBegin
+\NewDocumentCommand\tzlinkAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzlink_BEGIN_cmd_bool
+ \tl_gset:No \g_tzlink_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzlinkAtEnd
+\NewDocumentCommand\tzlinkAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzlink_END_cmd_bool
+ \tl_gset:No \g_tzlink_END_cmd_tl { #1 }
+}
+
+%%% \tzlink (main)
+\NewDocumentCommand\tzlink{ s t+ G{\tz@initial@link@style} o d<> d"" }
+{
+ \tl_clear:N \l_tzlink_cmd_tl
+
+ \renewcommand\tzlinkstyle{ #3 }
+
+ \IfBooleanTF { #1 } % (*) or not (NOT USED!)
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 } % (+) or not
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #5 }
+ {
+ \tl_set:Nn \l_tzlink_shift_coor_tl { #5 }
+ \bool_set_true:N \l_tzlink_shift_coor_bool
+ }
+ {
+ \tl_clear:N \l_tzlink_shift_coor_tl
+ \bool_set_false:N \l_tzlink_shift_coor_bool
+ }
+
+ \IfValueTF { #4 }
+ { \tl_set:Nn \l_tzlink_opt_tl { #4 } }
+ { \tl_clear:N \l_tzlink_opt_tl }
+
+
+ \IfValueTF { #6 }
+ { \tl_set:Nn \l_tzlink_namepath_tl { name~path = #6 } }
+ { \tl_clear:N \l_tzlink_namepath_tl }
+
+ \tzlink_check_token:n
+}
+
+\cs_new:Npn \tzlink_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzlink_sub_fn ( }
+% \tzlink_stop_action
+}
+
+\NewDocumentCommand\tzlink_sub_fn{ r() O{} +G{} O{} d<> r() +G{} O{} D<>{} }
+{
+ % determine connect line STYLE
+ \tl_if_empty:nTF { #2 }
+ {
+ \tl_set:Nn \l_tzlink_STYLE_A_tl { ~ \tzlinkstyle ~ }
+ }
+ {
+ \tl_set:Nn \l_tzlink_STYLE_A_tl { ~ #2 ~ }
+ }
+ \IfValueTF { #5 }
+ {
+ \tl_set:Nn \l_tzlink_STYLE_C_tl { #5 } % + or ++
+ }
+ {
+ \bool_if:NTF \l_tmpb_bool
+ { \tl_set:Nn \l_tzlink_STYLE_C_tl { ++ } }
+ { \tl_set:Nn \l_tzlink_STYLE_C_tl { } }
+ }
+ % insert connect line STYLE
+ \bool_if:NTF \l_tzlink_shift_coor_bool
+ {
+ \tl_put_right:Nx \l_tzlink_cmd_tl
+ { ([ shift = { (\l_tzlink_shift_coor_tl) } ]#1) }
+ }
+ { \tl_put_right:Nn \l_tzlink_cmd_tl { (#1) } }
+
+ \tl_put_right:No \l_tzlink_cmd_tl % once
+ {
+ \l_tzlink_STYLE_A_tl
+ }
+ \tl_put_right:Nn \l_tzlink_cmd_tl
+ {
+ ~ node [ above , #4 ] { #3 } % above
+ }
+ \tl_put_right:No \l_tzlink_cmd_tl % once
+ {
+ \l_tzlink_STYLE_C_tl
+ }
+ \bool_if:NTF \l_tmpb_bool
+ {% if ++
+ \tl_put_right:Nn \l_tzlink_cmd_tl { (#6) }
+ }
+ {% no ++
+ \bool_if:NTF \l_tzlink_shift_coor_bool
+ {% if shift
+ \tl_put_right:Nx \l_tzlink_cmd_tl
+ { ( [ shift = { (\l_tzlink_shift_coor_tl) } ] \exp_not:n { #6 } ) }
+ }
+ { \tl_put_right:Nn \l_tzlink_cmd_tl { (#6) } }
+ }
+
+ \tl_put_right:Nn \l_tzlink_cmd_tl
+ {
+ node [ #8 ] { #7 }
+ }
+ % add at begin/end
+ \bool_if:NT \g_tzlink_BEGIN_cmd_bool
+ { \tl_put_left:Nx \l_tzlink_cmd_tl { \g_tzlink_BEGIN_cmd_tl } }
+ \bool_if:NT \g_tzlink_END_cmd_bool
+ { \tl_put_right:Nx \l_tzlink_cmd_tl { \g_tzlink_END_cmd_tl } }
+
+ % final action
+ \tl_put_left:No \l_tzlink_cmd_tl
+ {
+ \l_tzlink_opt_tl ] % expand `once' needed
+ }
+
+ \tl_put_left:Nx \l_tzlink_cmd_tl
+ { [ \l_tzlink_namepath_tl , }
+
+ \exp_last_unbraced:Nf \draw \l_tzlink_cmd_tl #9 ;
+
+ \bool_gset_false:N \g_tzlink_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzlink_END_cmd_bool
+% \tl_clear:N \g_tzlink_BEGIN_cmd_tl
+% \tl_clear:N \g_tzlink_END_cmd_tl
+}
+
+%%% --- end of \tzlink
+
+
+
+
+%%%(ADDED)
+%%% \tzlinks -- generalized version of \tzlines
+
+\bool_new:N \g_tzlinks_BEGIN_cmd_bool
+\bool_new:N \g_tzlinks_END_cmd_bool
+\bool_new:N \l_tzlinks_shift_coor_bool
+
+%% \tzlinksAtBegin
+\NewDocumentCommand\tzlinksAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzlinks_BEGIN_cmd_bool
+ \tl_gset:No \g_tzlinks_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzlinksAtEnd
+\NewDocumentCommand\tzlinksAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzlinks_END_cmd_bool
+ \tl_gset:No \g_tzlinks_END_cmd_tl { #1 }
+}
+
+%%% \tzlinks (main)
+%% do not use: inner sep=0pt
+\NewDocumentCommand\tzlinks{ s t+ G{\tz@initial@link@style} O{} d<> D""{} }
+{
+ \tl_clear:N \l_tzlinks_cmd_tl
+ \tl_clear:N \l_tzlinks_STYLE_tl
+
+ \IfValueT { #3 }
+ { \renewcommand\tzlinkstyle{ #3 } }
+
+ \IfBooleanTF { #1 } % (*) or not
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 } % (+) or not
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #5 }
+ {
+ \tl_set:Nn \l_tzlinks_shift_coor_tl { #5 }
+ \bool_set_true:N \l_tzlinks_shift_coor_bool
+ }
+ {
+ \tl_clear:N \l_tzlinks_shift_coor_tl
+ \bool_set_false:N \l_tzlinks_shift_coor_bool
+ }
+
+ \IfValueTF { #4 }
+ { \tl_set:Nx \l_tzlinks_opt_tl { #4 } }
+ { \tl_clear:N \l_tzlinks_opt_tl }
+
+ \IfValueTF { #6 }
+ { \tl_set:Nn \l_tzlinks_namepath_tl { name~path = #6 } }
+ { \tl_clear:N \l_tzlinks_namepath_tl }
+
+ \int_zero:N \l_tmpa_int
+ \tzlinks_check_token:n
+}
+
+\cs_new:Npn \tzlinks_check_token:n #1
+{
+% \token_if_eq_charcode:NNTF #1 (
+% { \tzlinks_sub_fn #1 }
+% { \tzlinks_stop_action }
+ \str_case:nnF { #1 }
+ {
+ { ( } { \tzlinks_sub_fn #1 }
+ { ; } { \tzlinks_late_opt_fn }
+ }
+ {
+% \tzlinks_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
+ }
+}
+
+\NewDocumentCommand\tzlinks_sub_fn{ r() O{} +G{} O{} d<> }
+{
+ \int_incr:N \l_tmpa_int
+ % (from the second round) put line STYLE before the next cmd-tl
+ \int_compare:nT { \l_tmpa_int > 1 }
+ {
+ \tl_put_right:No \l_tzlinks_cmd_tl { \l_tzlinks_STYLE_tl }
+ \tl_clear:N \l_tzlinks_STYLE_tl
+ }
+
+ % collect cmd-tl
+ \bool_if:NTF \l_tzlinks_shift_coor_bool
+ {% shift-coor
+ \bool_if:NTF \l_tmpb_bool
+ {% if ++
+ \int_compare:nTF { \l_tmpa_int > 1 }
+ { \tl_put_right:Nn \l_tzlinks_cmd_tl { (#1) } } % no shift from 2nd
+ {
+ \tl_put_right:Nx \l_tzlinks_cmd_tl
+ { ([ shift = { (\l_tzlinks_shift_coor_tl) } ]#1) } % shift first
+ }
+ }
+ {% no ++
+ \tl_put_right:Nx \l_tzlinks_cmd_tl
+ { ([ shift = { (\l_tzlinks_shift_coor_tl) } ]#1) } % shift all coors
+ }
+ }
+ { \tl_put_right:Nn \l_tzlinks_cmd_tl { (#1) } } % no shift (normal)
+
+ % (from the first round on) determine and save STYLE
+ % determine connect line STYLE
+ \tl_if_empty:nTF { #2 }
+ { \tl_set:Nn \l_tzlinks_STYLE_A_tl { ~ \tzlinkstyle ~ } }
+ { \tl_set:Nn \l_tzlinks_STYLE_A_tl { #2 } }
+ % save node info (for later use, at the end)
+ \tl_if_empty:nTF { #3 }
+ {
+ \tl_clear:N \l_tzlinks_STYLE_B_tl
+ }
+ {
+ \tl_set:Nn \l_tzlinks_STYLE_B_tl
+ { ~ node [ #4 ] { #3 } }
+ }
+ \IfValueTF { #5 } % <+ or ++ or none> (NOT USED!)
+ {
+ \tl_set:Nn \l_tzlinks_STYLE_C_tl { #5 }
+ }
+ {
+ \bool_if:NTF \l_tmpb_bool
+ { \tl_set:Nn \l_tzlinks_STYLE_C_tl { ++ } }
+ { \tl_set:Nn \l_tzlinks_STYLE_C_tl { } }
+ }
+
+ \tl_put_right:No \l_tzlinks_STYLE_tl { \l_tzlinks_STYLE_A_tl }
+ \tl_put_right:No \l_tzlinks_STYLE_tl { \l_tzlinks_STYLE_B_tl }
+ \tl_put_right:No \l_tzlinks_STYLE_tl { \l_tzlinks_STYLE_C_tl }
+
+ \tzlinks_check_token:n
+}
+
+\NewDocumentCommand\tzlinks_late_opt_fn { G{\tz@initial@fill@opacity} D<>{} }
+{
+ \renewcommand\tzfillopacity{ #1 }
+ \tl_set:Nn \l_tzlinks_code_at_end_tl { #2 }
+ \tzlinks_stop_action
+}
+
+\NewDocumentCommand\tzlinks_stop_action {}
+{
+ \tl_if_empty:NF \l_tzlinks_STYLE_B_tl
+ {
+ \tl_put_right:No \l_tzlinks_cmd_tl { \l_tzlinks_STYLE_B_tl }
+ }
+ \tl_clear:N \l_tzlinks_STYLE_tl
+ %% add at begin/end
+ \bool_if:NT \g_tzlinks_BEGIN_cmd_bool
+ { \tl_put_left:Nx \l_tzlinks_cmd_tl { \g_tzlinks_BEGIN_cmd_tl } }
+ \bool_if:NT \g_tzlinks_END_cmd_bool
+ { \tl_put_right:Nx \l_tzlinks_cmd_tl { \g_tzlinks_END_cmd_tl } }
+ %% collect options
+ \tl_put_left:No \l_tzlinks_cmd_tl
+ { \l_tzlinks_opt_tl ] } % expand `once' needed
+ % * or not
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \tl_put_left:Nx \l_tzlinks_cmd_tl
+ {
+ [ fill=\tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 ,
+ \l_tzlinks_namepath_tl ,
+ }
+ }
+ {
+ \tl_put_left:Nx \l_tzlinks_cmd_tl
+ { [ \l_tzlinks_namepath_tl , }
+ }
+ %% final action
+% \begin{pgfonlayer}{\tzlinklayer} % default tzlinklayer = main
+ \exp_last_unbraced:Nf
+ \draw \l_tzlinks_cmd_tl \l_tzlinks_code_at_end_tl ; %% draw (\tzlinks)
+% \end{pgfonlayer}
+
+ \bool_gset_false:N \g_tzlinks_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzlinks_END_cmd_bool
+}
+
+%%% --- end of \tzlinks
+
+
%%% \tzpath
%% draw=none version of \tzlinks (mainly for filling area)
+\bool_new:N \g_tzfnArea_call_bool
+
\bool_new:N \g_tzpath_BEGIN_cmd_bool
\bool_new:N \g_tzpath_END_cmd_bool
\bool_new:N \l_tzpath_shift_coor_bool
+
%% \tzpathAtBegin
\NewDocumentCommand\tzpathAtBegin{ m }
{
@@ -1478,9 +2282,9 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_gset:No \g_tzpath_END_cmd_tl { #1 }
}
-%%% \tzpath
+%%% \tzpath (main)
%% do not use: inner sep=0pt
-\NewDocumentCommand\tzpath{ s t+ G{\tz@initial@path@style} O{} d<> D""{} }
+\NewDocumentCommand\tzpath{ s t+ G{\tz@initial@link@style} O{} d<> D""{} }
{
\tl_clear:N \l_tzpath_cmd_tl
\tl_clear:N \l_tzpath_STYLE_tl
@@ -1529,7 +2333,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzpath_late_opt_fn }
}
{
- \tzpath_stop_action
+% \tzpath_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
@@ -1552,12 +2357,12 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ \tl_put_right:Nn \l_tzpath_cmd_tl { (#1) } } % no shift from 2nd
{
\tl_put_right:Nx \l_tzpath_cmd_tl
- { ([ shift = { (\l_tzpath_shift_coor_tl) } ]#1) } % shift first
+ { ( [ shift = { (\l_tzpath_shift_coor_tl) } ] #1 ) } % shift first
}
}
{% no ++
\tl_put_right:Nx \l_tzpath_cmd_tl
- { ([ shift = { (\l_tzpath_shift_coor_tl) } ]#1) } % shift all coors
+ { ( [ shift = { (\l_tzpath_shift_coor_tl) } ] #1 ) } % shift all coors
}
}
{ \tl_put_right:Nn \l_tzpath_cmd_tl { (#1) } } % no shift (normal)
@@ -1593,6 +2398,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tzpath_check_token:n
}
+% \tzpath fill opacity : 0.3 (default) % differ from \tzlinks
\NewDocumentCommand\tzpath_late_opt_fn { G{\tz@initial@fill@opacity} D<>{} }
{
\renewcommand\tzfillopacity{ #1 }
@@ -1630,9 +2436,19 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ [ \l_tzpath_namepath_tl , }
}
%% final action
- \exp_last_unbraced:Nf
- \path \l_tzpath_cmd_tl \l_tzpath_code_at_end_tl ; %% path
-
+ \bool_if:NTF \g_tzfnArea_call_bool
+ { % (ADDED) for \tzfnArealayer
+ \begin{pgfonlayer}{\tzfnArealayer} % default tzpathlayer = main
+ \exp_last_unbraced:Nf
+ \path \l_tzpath_cmd_tl \l_tzpath_code_at_end_tl ; %% path (\tzpath)
+ \end{pgfonlayer}
+ }
+ { % for original \tzpath
+ \begin{pgfonlayer}{\tzpathlayer} % default tzpathlayer = main
+ \exp_last_unbraced:Nf
+ \path \l_tzpath_cmd_tl \l_tzpath_code_at_end_tl ; %% path (\tzpath)
+ \end{pgfonlayer}
+ }
\bool_gset_false:N \g_tzpath_BEGIN_cmd_bool
\bool_gset_false:N \g_tzpath_END_cmd_bool
}
@@ -1827,7 +2643,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tztos_late_opt_fn }
}
{
- \tztos_stop_action
+% \tztos_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
@@ -1922,6 +2739,231 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tztos
+%%(ADDED)
+%%% \tzedge
+
+\bool_new:N \l_tzedge_shift_coor_bool
+
+%%% \tzedge (main)
+\NewDocumentCommand\tzedge{ s t+ o d<> }
+{
+ \tl_clear:N \l_tzedge_cmd_tl
+
+ \IfBooleanTF { #1 } % (*) or not (NOT USED!)
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 } % (+) or not
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #4 }
+ {
+ \tl_set:Nn \l_tzedge_shift_coor_tl { #4 }
+ \bool_set_true:N \l_tzedge_shift_coor_bool
+ }
+ {
+ \tl_clear:N \l_tzedge_shift_coor_tl
+ \bool_set_false:N \l_tzedge_shift_coor_bool
+ }
+
+ \IfValueTF { #3 }
+ { \tl_set:Nn \l_tzedge_opt_tl { #3 } }
+ { \tl_clear:N \l_tzedge_opt_tl }
+
+ \tzedge_check_token:n
+}
+
+\cs_new:Npn \tzedge_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzedge_sub_fn ( }
+% \tzedge_stop_action
+}
+
+\NewDocumentCommand\tzedge_sub_fn{ r() +G{} O{} r() +G{} O{} D<>{} }
+{
+ \bool_if:NTF \l_tzedge_shift_coor_bool
+ {% if shift
+ \tl_put_right:Nx \l_tzedge_cmd_tl
+ { ([ shift = { (\l_tzedge_shift_coor_tl) } ]#1) }
+ }
+ { \tl_put_right:Nn \l_tzedge_cmd_tl { (#1) } }
+
+ \tl_put_right:Nn \l_tzedge_cmd_tl
+ { edge [ }
+ \tl_put_right:No \l_tzedge_cmd_tl
+ { \l_tzedge_opt_tl ] } % expand `once' needed
+ \tl_put_right:Nn \l_tzedge_cmd_tl
+ { node [ #3 ] { #2 } }
+
+
+ \bool_if:NTF \l_tmpb_bool
+ {% if ++
+ \tl_put_right:Nn \l_tzedge_cmd_tl { ++ (#4) ++ (#4) }
+ }
+ {% no ++
+ \bool_if:NTF \l_tzedge_shift_coor_bool
+ {% if shift
+ \tl_put_right:Nx \l_tzedge_cmd_tl
+ {
+ ([ shift = { (\l_tzedge_shift_coor_tl) } ]#4)
+ ([ shift = { (\l_tzedge_shift_coor_tl) } ]#4)
+ }
+ }
+ { \tl_put_right:Nn \l_tzedge_cmd_tl { (#4) (#4) } }
+ }
+
+ \tl_if_empty:nF { #5 }
+ {
+ \tl_put_right:Nn \l_tzedge_cmd_tl
+ { node [ #6 ] { #5 } }
+ }
+
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzedge_cmd_tl #7 ;
+}
+
+%%% --- end of \tzedge
+
+
+%%(ADDED)
+%%% \tzedges -- generalized version of \tzlines
+
+\bool_new:N \l_tzedges_shift_coor_bool
+
+%%% \tzedges (main)
+%% do not use: inner sep=0pt
+\NewDocumentCommand\tzedges{ s t+ O{} d<> }
+{
+ \tl_clear:N \l_tzedges_cmd_tl
+ \tl_clear:N \l_tzedges_STYLE_tl
+
+% \IfValueT { #3 }
+% { \renewcommand\tzedgestyle{ #3 } }
+
+ \IfBooleanTF { #1 } % (*) or not (NOT USED!)
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 } % (+) or not
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #4 }
+ {
+ \tl_set:Nn \l_tzedges_shift_coor_tl { #4 }
+ \bool_set_true:N \l_tzedges_shift_coor_bool
+ }
+ {
+ \tl_clear:N \l_tzedges_shift_coor_tl
+ \bool_set_false:N \l_tzedges_shift_coor_bool
+ }
+
+ \IfValueTF { #3 }
+ { \tl_set:Nn \l_tzedges_opt_tl { #3 } }
+ { \tl_clear:N \l_tzedges_opt_tl }
+
+ \int_zero:N \l_tmpa_int
+ \tzedges_check_token:n
+}
+
+\cs_new:Npn \tzedges_check_token:n #1
+{
+% \token_if_eq_charcode:NNTF #1 (
+% { \tzedges_sub_fn #1 }
+% { \tzedges_stop_action }
+ \str_case:nnF { #1 }
+ {
+ { ( } { \tzedges_sub_fn #1 }
+% { ; } { \tzedges_late_opt_fn }
+ { ; } { \tzedges_stop_action }
+ }
+ {
+% \tzedges_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
+ }
+}
+
+\NewDocumentCommand\tzedges_sub_fn{ r() O{} +G{} O{} }
+{
+ \int_incr:N \l_tmpa_int
+ % (from the second round) put line STYLE before the next cmd-tl
+ \int_compare:nT { \l_tmpa_int > 1 }
+ {
+ \tl_put_right:No \l_tzedges_cmd_tl { \l_tzedges_STYLE_tl }
+ \tl_clear:N \l_tzedges_STYLE_tl
+ }
+
+ % collect cmd-tl
+ \bool_if:NTF \l_tzedges_shift_coor_bool
+ {% shift-coor
+ \bool_if:NTF \l_tmpb_bool
+ {% if ++
+ \int_compare:nTF { \l_tmpa_int > 1 }
+ { \tl_put_right:Nn \l_tzedges_cmd_tl { (#1) } } % no shift from 2nd
+ {
+ \tl_put_right:Nx \l_tzedges_cmd_tl
+ { ([ shift = { (\l_tzedges_shift_coor_tl) } ]#1) } % shift first
+ }
+ }
+ {% no ++
+ \tl_put_right:Nx \l_tzedges_cmd_tl
+ { ([ shift = { (\l_tzedges_shift_coor_tl) } ]#1) } % shift all coors
+ }
+ }
+ { \tl_put_right:Nn \l_tzedges_cmd_tl { (#1) } } % no shift (normal)
+
+ % (from the first round on) determine and save STYLE
+ % determine connect line STYLE
+ \tl_set:Nn \l_tzedges_STYLE_A_tl { edge [ #2 ] }
+ % save node info (for later use, at the end)
+ \tl_if_empty:nTF { #3 }
+ {
+ \tl_clear:N \l_tzedges_STYLE_B_tl
+ }
+ {
+ \tl_set:Nn \l_tzedges_STYLE_B_tl
+ { ~ node [ #4 ] { #3 } }
+ }
+ \bool_if:NTF \l_tmpb_bool
+ { \tl_set:Nn \l_tzedges_STYLE_C_tl { ++ } }
+ { \tl_set:Nn \l_tzedges_STYLE_C_tl { } }
+
+ \tl_put_right:No \l_tzedges_STYLE_tl { \l_tzedges_STYLE_A_tl }
+ \tl_put_right:No \l_tzedges_STYLE_tl { \l_tzedges_STYLE_B_tl }
+ \tl_put_right:No \l_tzedges_STYLE_tl { \l_tzedges_STYLE_C_tl }
+
+ \tzedges_check_token:n
+}
+
+%\NewDocumentCommand\tzedges_late_opt_fn { D<>{} }
+%{
+% \tl_set:Nn \l_tzedges_code_at_end_tl { #1 }
+% \tzedges_stop_action
+%}
+
+\NewDocumentCommand\tzedges_stop_action { D<>{} }
+{
+ % #1 works with the first coordinate
+ % because [edge] and [node] does not change the current point
+ \tl_if_empty:NF \l_tzedges_STYLE_B_tl
+ {
+ \tl_put_right:No \l_tzedges_cmd_tl { \l_tzedges_STYLE_B_tl }
+ }
+ \tl_clear:N \l_tzedges_STYLE_tl
+
+ \tl_put_left:No \l_tzedges_cmd_tl
+ { [ \l_tzedges_opt_tl ] } % expand `once' needed
+
+ % final action
+ \exp_last_unbraced:Nf
+ \draw \l_tzedges_cmd_tl #1 ; %% draw
+}
+
+%%% --- end of \tzedges
+
+
%%%%% Figures: circles, frames, ellipses, triangles, etc.
%%% \tzcircle
@@ -1929,18 +2971,18 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\NewDocumentCommand\tzcircle
{ s O{} d<> D""{} r() r() G{\tz@initial@fill@opacity} D<>{} }
{
- \renewcommand\tzfillopacity{#7}
+ \renewcommand\tzfillopacity{#7} % effective only in * version
\IfBooleanTF { #1 }
{
\IfValueTF { #3 }
{% if shift
- \draw [ fill = \tzfillcolor , fill~opacity = #7 ,
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
text~opacity = 1 ,
name~path = #4 , #2 ] ([shift={(#3)}]#5) circle (#6)
#8 ;
}
{% no shift (normal)
- \draw [ fill = \tzfillcolor , fill~opacity = #7 ,
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
text~opacity = 1 ,
name~path = #4 , #2 ] (#5) circle (#6)
#8 ;
@@ -1948,31 +2990,81 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
{
\IfValueTF { #3 }
- { \draw [ #2 ] ([shift={(#3)}]#5) circle (#6) #8 ; }
- { \draw [ #2 ] (#5) circle (#6) #8 ; }
+ { \draw [ name~path = #4 , #2 ] ([shift={(#3)}]#5) circle (#6) #8 ; }
+ { \draw [ name~path = #4 , #2 ] (#5) circle (#6) #8 ; }
}
}
+%%% \tzring
+
+\NewDocumentCommand\tzring
+ { s O{} d<> r() r() d() d() G{\tz@initial@fill@opacity} D<>{} }
+{
+ \renewcommand\tzfillopacity{#8} % effective only in * version
+ \IfBooleanTF { #1 }
+ {
+ \IfValueTF { #3 }
+ {% if shift
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 ,
+ even~odd~rule , #2 ]
+ ([shift={(#3)}]#4) circle (#5)
+ \IfValueT { #6 } { ([shift={(#3)}]#6) circle (#7) }
+ #9 ;
+ }
+ {% no shift (normal)
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 ,
+ even~odd~rule , #2 ]
+ (#4) circle (#5)
+ \IfValueT { #6 } { (#6) circle (#7) }
+ #9 ;
+ }
+ }
+ {
+ \IfValueTF { #3 }
+ {
+ \draw [ even~odd~rule , #2 ]
+ ([shift={(#3)}]#4) circle (#5)
+ \IfValueT { #6 } { ([shift={(#3)}]#6) circle (#7) }
+ #9 ;
+ }
+ {
+ \draw [ even~odd~rule , #2 ]
+ (#4) circle (#5)
+ \IfValueT { #6 } { (#6) circle (#7) }
+ #9 ;
+ }
+ }
+}
+
+%%% --- end of \tzring
+
+\let\tzcirclering\tzring
+
+
%%% \tzellipse
\NewDocumentCommand\tzellipse
{ s O{} d<> D""{} r() r() G{\tz@initial@fill@opacity} D<>{} }
{
- \renewcommand\tzfillopacity{#7}
+ \renewcommand\tzfillopacity{#7} % effective only in * version
\IfBooleanTF { #1 }
{
\IfValueTF { #3 }
{% if shift
- \draw [ fill = \tzfillcolor , fill~opacity = #7 ,
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
text~opacity = 1 ,
- name~path = #4 , #2 ] ([shift={(#3)}]#5) ellipse (#6)
- #8 ;
+ name~path = #4 , #2 ]
+ ([shift={(#3)}]#5) ellipse (#6)
+ #8 ;
}
{% no shift (normal)
- \draw [ fill = \tzfillcolor , fill~opacity = #7 ,
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
text~opacity = 1 ,
- name~path = #4 , #2 ] (#5) ellipse (#6)
- #8 ;
+ name~path = #4 , #2 ]
+ (#5) ellipse (#6)
+ #8 ;
}
}
{
@@ -1987,12 +3079,60 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\let\tzoval\tzellipse
+%%% \tzellipsering
+
+\NewDocumentCommand\tzellipsering
+ { s O{} d<> r() r() d() d() G{\tz@initial@fill@opacity} D<>{} }
+{
+ \renewcommand\tzfillopacity{#8} % effective only in * version
+ \IfBooleanTF { #1 }
+ {
+ \IfValueTF { #3 }
+ {% if shift
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 ,
+ even~odd~rule , #2 ]
+ ([shift={(#3)}]#4) ellipse (#5)
+ \IfValueT { #6 } { ([shift={(#3)}]#6) ellipse (#7) }
+ #9 ;
+ }
+ {% no shift (normal)
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 ,
+ even~odd~rule , #2 ]
+ (#4) ellipse (#5)
+ \IfValueT { #6 } { (#6) ellipse (#7) }
+ #9 ;
+ }
+ }
+ {
+ \IfValueTF { #3 }
+ {
+ \draw [ even~odd~rule , #2 ]
+ ([shift={(#3)}]#4) ellipse (#5)
+ \IfValueT { #6 } { ([shift={(#3)}]#6) ellipse (#7) }
+ #9 ;
+ }
+ {
+ \draw [ even~odd~rule , #2 ]
+ (#4) ellipse (#5)
+ \IfValueT { #6 } { (#6) ellipse (#7) }
+ #9 ;
+ }
+ }
+}
+
+%%% --- end of \tzellipsering
+
+\let\tzovalring\tzellipsering
+
+
%%% \tzframe
\NewDocumentCommand\tzframe
{ s t+ O{} d<> D""{} r() r() G{\tz@initial@fill@opacity} D<>{} }
{
- \renewcommand\tzfillopacity{#8}
+ \renewcommand\tzfillopacity{#8} % effective only in * version
\IfBooleanTF { #1 }
{
\IfBooleanTF { #2 }
@@ -2060,12 +3200,171 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzframe
\let\tzrectangle\tzframe
+\let\tzbox\tzframe
+
+
+
+%%% \tzrectanglering
+
+\NewDocumentCommand\tzrectanglering
+ { s O{} d<> r() r() d() d() G{\tz@initial@fill@opacity} D<>{} }
+{
+ \renewcommand\tzfillopacity{#8} % effective only in * version
+ \IfBooleanTF { #1 }
+ {
+ \IfValueTF { #3 }
+ {% if shift
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 ,
+ even~odd~rule , #2 ]
+ ([shift={(#3)}]#4) rectangle ([shift={(#3)}]#5)
+ \IfValueT { #6 } { ([shift={(#3)}]#6) rectangle ([shift={(#3)}]#7) }
+ #9 ;
+ }
+ {% no shift (normal)
+ \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 ,
+ even~odd~rule , #2 ]
+ (#4) rectangle (#5)
+ \IfValueT { #6 } { (#6) rectangle (#7) }
+ #9 ;
+ }
+ }
+ {
+ \IfValueTF { #3 }
+ {
+ \draw [ even~odd~rule , #2 ]
+ ([shift={(#3)}]#4) rectangle ([shift={(#3)}]#5)
+ \IfValueT { #6 } { ([shift={(#3)}]#6) rectangle ([shift={(#3)}]#7) }
+ #9 ;
+ }
+ {
+ \draw [ even~odd~rule , #2 ]
+ (#4) rectangle (#5)
+ \IfValueT { #6 } { (#6) rectangle (#7) }
+ #9 ;
+ }
+ }
+}
+
+%%% --- end of \tzrectanglering
+
+\let\tzframering\tzrectanglering
+\let\tzboxring\tzrectanglering
+
+
+
+%%%%%%%(ADDED) -- to be removed
+%%%%%%%% \tzdiamond
+%%%%%
+%%%%%\NewDocumentCommand\tzdiamond
+%%%%% { s O{} d<> D""{} r() r() G{\tz@initial@fill@opacity} }
+%%%%%{
+%%%%% \renewcommand\tzfillopacity{#7}
+%%%%% \IfBooleanTF { #1 }
+%%%%% {
+%%%%% \IfValueTF { #3 }
+%%%%% {% if shift
+%%%%% \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+%%%%% text~opacity = 1 , #2 ]
+%%%%% ([shift={(#3)}]$ (#5) + (#6|-0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) + (#6-|0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) - (#6|-0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) - (#6-|0,0) $) -- cycle;
+%%%%% }
+%%%%% {% no shift (normal)
+%%%%% \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+%%%%% text~opacity = 1 , #2 ]
+%%%%% ($ (#5) + (#6|-0,0) $)
+%%%%% -- ($ (#5) + (#6-|0,0) $)
+%%%%% -- ($ (#5) - (#6|-0,0) $)
+%%%%% -- ($ (#5) - (#6-|0,0) $) -- cycle;
+%%%%% }
+%%%%% }
+%%%%% {
+%%%%% \IfValueTF { #3 }
+%%%%% {% if shift
+%%%%% \draw [ #2 ]
+%%%%% ([shift={(#3)}]$ (#5) + (#6|-0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) + (#6-|0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) - (#6|-0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) - (#6-|0,0) $) -- cycle;
+%%%%% }
+%%%%% {% no shift (normal)
+%%%%% \draw [ #2 ]
+%%%%% ($ (#5) + (#6|-0,0) $)
+%%%%% -- ($ (#5) + (#6-|0,0) $)
+%%%%% -- ($ (#5) - (#6|-0,0) $)
+%%%%% -- ($ (#5) - (#6-|0,0) $) -- cycle;
+%%%%% }
+%%%%% }
+%%%%%}
+%%%%%
+%%%%%
+%%%%%%%(ADDED) -- to be removed
+%%%%%%%% \tztriangle
+%%%%%
+%%%%%\NewDocumentCommand\tztriangle
+%%%%% { s O{} d<> D""{} r() r() G{\tz@initial@fill@opacity} }
+%%%%%{
+%%%%% \renewcommand\tzfillopacity{#7}
+%%%%% \IfBooleanTF { #1 }
+%%%%% {
+%%%%% \IfValueTF { #3 }
+%%%%% {% if shift
+%%%%% \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+%%%%% text~opacity = 1 , name~path = #4 , #2 ]
+%%%%% ([shift={(#3)}]$ (#5) + .5*(#6|-0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) + (0,0|-#6) $)
+%%%%% -- ([shift={(#3)}]$ (#5) - .5*(#6|-0,0) $) -- cycle;
+%%%%% }
+%%%%% {% no shift
+%%%%% \draw [ fill = \tzfillcolor , fill~opacity = \tzfillopacity ,
+%%%%% text~opacity = 1 , name~path = #4 , #2 ]
+%%%%% ($ (#5) + .5*(#6|-0,0) $)
+%%%%% -- ($ (#5) + (0,0|-#6) $)
+%%%%% -- ($ (#5) - .5*(#6|-0,0) $) -- cycle;
+%%%%% }
+%%%%% }
+%%%%% {
+%%%%% \IfValueTF { #3 }
+%%%%% {% if shift
+%%%%% \draw [ name~path = #4 , #2 ]
+%%%%% ([shift={(#3)}]$ (#5) + .5*(#6|-0,0) $)
+%%%%% -- ([shift={(#3)}]$ (#5) + (0,0|-#6) $)
+%%%%% -- ([shift={(#3)}]$ (#5) - .5*(#6|-0,0) $) -- cycle;
+%%%%% }
+%%%%% {% no shift
+%%%%% \draw [ name~path = #4 , #2 ]
+%%%%% ($ (#5) + .5*(#6|-0,0) $)
+%%%%% -- ($ (#5) + (0,0|-#6) $)
+%%%%% -- ($ (#5) - .5*(#6|-0,0) $) -- cycle;
+%%%%% }
+%%%%% }
+%%%%%}
%%% \tzparabola
+\bool_new:N \g_tzparabola_BEGIN_cmd_bool
+\bool_new:N \g_tzparabola_END_cmd_bool
\bool_new:N \l_tzparabola_shift_coor_bool
+%% \tzparabolaAtBegin
+\NewDocumentCommand\tzparabolaAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzparabola_BEGIN_cmd_bool
+ \tl_gset:No \g_tzparabola_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzparabolaAtEnd
+\NewDocumentCommand\tzparabolaAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzparabola_END_cmd_bool
+ \tl_gset:No \g_tzparabola_END_cmd_tl { #1 }
+}
+
+%% \tzparabola (main)
\NewDocumentCommand\tzparabola
{ s t+ O{} d<> D""{} }
{
@@ -2183,13 +3482,27 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
}
+ \tl_put_right:Nn \l_tzparabola_cmd_tl
+ { node [ #5 ] { #4 } }
+ % add at begin/end
+ \bool_if:NT \g_tzparabola_BEGIN_cmd_bool
+ { \tl_put_left:Nx \l_tzparabola_cmd_tl { \g_tzparabola_BEGIN_cmd_tl } }
+ \bool_if:NT \g_tzparabola_END_cmd_bool
+ { \tl_put_right:Nx \l_tzparabola_cmd_tl { \g_tzparabola_END_cmd_tl } }
+
+ % final action
\tl_put_left:No \l_tzparabola_cmd_tl
{ \l_tzparabola_opt_tl ] } % expand `once'
\tl_put_left:Nx \l_tzparabola_cmd_tl
{ [ \l_tzparabola_pathname_tl , }
- % final action
+
\exp_last_unbraced:Nf
- \draw \l_tzparabola_cmd_tl node [ #5 ] { #4 } #7 ;
+ \draw \l_tzparabola_cmd_tl #7 ;
+
+ \bool_gset_false:N \g_tzparabola_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzparabola_END_cmd_bool
+% \tl_clear:N \g_tzparabola_BEGIN_cmd_tl
+% \tl_clear:N \g_tzparabola_END_cmd_tl
}
%%% -- end of \tzparabola
@@ -2197,8 +3510,25 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzbezier
+\bool_new:N \g_tzbezier_BEGIN_cmd_bool
+\bool_new:N \g_tzbezier_END_cmd_bool
\bool_new:N \l_tzbezier_shift_coor_bool
+%% \tzbezierAtBegin
+\NewDocumentCommand\tzbezierAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzbezier_BEGIN_cmd_bool
+ \tl_gset:No \g_tzbezier_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzbezierAtEnd
+\NewDocumentCommand\tzbezierAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzbezier_END_cmd_bool
+ \tl_gset:No \g_tzbezier_END_cmd_tl { #1 }
+}
+
+%% \tzbezier (main)
\NewDocumentCommand\tzbezier{ s t+ O{} d<> D""{tzplot~path} }
{
\tl_clear:N \l_tzbezier_cmd_tl
@@ -2324,17 +3654,31 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
}
+ \tl_put_right:Nn \l_tzbezier_cmd_tl
+ { node [ #6 ] { #5 } }
+ % add at begin/end
+ \bool_if:NT \g_tzbezier_BEGIN_cmd_bool
+ { \tl_put_left:Nx \l_tzbezier_cmd_tl { \g_tzbezier_BEGIN_cmd_tl } }
+ \bool_if:NT \g_tzbezier_END_cmd_bool
+ { \tl_put_right:Nx \l_tzbezier_cmd_tl { \g_tzbezier_END_cmd_tl } }
+
+ % final action
\tl_put_left:No \l_tzbezier_cmd_tl { \l_tzbezier_opt_tl ] }
\tl_put_left:Nx \l_tzbezier_cmd_tl
{ [ \l_tzbezier_pathname_tl , }
- % final action
- \exp_last_unbraced:Nf \draw \l_tzbezier_cmd_tl node [ #6 ] { #5 } #7 ;
+
+ \exp_last_unbraced:Nf \draw \l_tzbezier_cmd_tl #7 ;
+
+ \bool_gset_false:N \g_tzbezier_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzbezier_END_cmd_bool
+% \tl_clear:N \g_tzbezier_BEGIN_cmd_tl
+% \tl_clear:N \g_tzbezier_END_cmd_tl
}
%%% -- end of \tzbezier
-%%% \tzarc
+%%% \tzarc (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzarc
@@ -2369,14 +3713,14 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
arc ( \tzarcAngleA
\c_colon_str
- \IfBooleanTF {#2}
+ \IfBooleanTF { #2 }
{\tzarcAngleB - 360}
{\tzarcAngleB}
\c_colon_str
\tzarcRadius )
}
{
- arc ( \IfBooleanTF {#2}
+ arc ( \IfBooleanTF { #2 }
{\tzarcAngleA - 360}
{\tzarcAngleA}
\c_colon_str
@@ -2412,8 +3756,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzarc
-
-%%% \tzarcfrom % (works like tikz original)
+%%% \tzarcfrom (main)
+%% (works like tikz original)
\use:x{
\NewDocumentCommand \exp_not:N \tzarcfrom
@@ -2492,7 +3836,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzarcfrom
-%%% \tzarcsfrom % (works like tikz original)
+%%% \tzarcsfrom (main)
+%% (works like tikz original)
\tl_new:N \l_tzarcsfrom_code_at_end_tl
@@ -2531,7 +3876,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzarcsfrom_late_opt_fn }
}
{
- \tzarcsfrom_stop_action
+% \tzarcsfrom_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
@@ -2597,8 +3943,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzarcsfrom
-
-%%% \tzwedge
+%%% \tzwedge (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzwedge
@@ -2692,23 +4037,471 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzwedge
-%%%%% plot of Tikz
+%%%%% Angles
+
+
+%%% \tzp
+
+\NewDocumentCommand\tzpointangle{ r() r() m }
+{
+ \pgfmathanglebetweenpoints{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}
+ \edef#3{\pgfmathresult}
+% \tl_set:cx { #3 } { \pgfmathresult }
+}
+
+
+
+%%% \tzanglemark (main)
+
+\NewDocumentCommand\tzanglemark{ s t' o }
+{
+ \tl_clear:N \l_tzanglemark_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 }
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #3 }
+ { \tl_set:Nn \l_tzanglemark_opt_tl { #3 } }
+ { \tl_clear:N \l_tzanglemark_opt_tl }
+
+ \tzanglemark_check_token:n
+}
+
+\cs_new:Npn \tzanglemark_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzanglemark_sub_fn ( }
+}
+
+\NewDocumentCommand\tzanglemark_sub_fn
+ { r() r() r() +G{} O{}
+ D(){\tz@initial@AA@radius} G{\tz@initial@fill@opacity}
+ }
+
+{
+ \renewcommand\tzfillopacity{#7}
+ \renewcommand\tzAAradius{#6}
+
+ \path (#1) coordinate (tzAng-A)
+ (#2) coordinate (tzAng-B)
+ (#3) coordinate (tzAng-C);
+ \pgfmathanglebetweenpoints{\pgfpointanchor{tzAng-B}{center}}%
+ {\pgfpointanchor{tzAng-A}{center}}
+ \edef\tzangleONE{\pgfmathresult}
+ \pgfmathanglebetweenpoints{\pgfpointanchor{tzAng-B}{center}}%
+ {\pgfpointanchor{tzAng-C}{center}}
+ \edef\tzangleTWO{\pgfmathresult}
+
+ \fp_set:Nn \l_tmpa_fp { \tzangleONE }
+ \fp_set:Nn \l_tmpb_fp { \tzangleTWO }
+
+ \bool_if:NTF \l_tmpb_bool
+ {
+ \edef\tzangleresult{\fp_eval:n { 360 - abs(\l_tmpb_fp - \l_tmpa_fp) } }
+ }
+ {
+ \edef\tzangleresult{\fp_eval:n { abs(\l_tmpb_fp - \l_tmpa_fp) } }
+ }
+
+% % test
+% \node (0,0) [align=left,right] {\tzangleresult \\ \halfangle};
+
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \tl_put_right:No \l_tzanglemark_cmd_tl
+ {
+ [ \tzAAlinestyle , draw = none , fill = \tzfillcolor ,
+ fill~opacity = \tzfillopacity , text~opacity = 1 ,
+ }
+ }
+ {
+ \tl_put_right:No \l_tzanglemark_cmd_tl
+ {
+ [ \tzAAlinestyle ,
+ }
+ }
+
+ \tl_put_right:No \l_tzanglemark_cmd_tl
+ { \l_tzanglemark_opt_tl ] }
+
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \tl_put_right:Nx \l_tzanglemark_cmd_tl
+ { (#2) -- ++ (\tzangleONE \c_colon_str #6) }
+ }
+ {
+ \tl_put_right:Nx \l_tzanglemark_cmd_tl
+ { (#2) ++ (\tzangleONE \c_colon_str #6) }
+ }
+
+ \tl_put_right:Nx \l_tzanglemark_cmd_tl
+ {
+ \fp_compare:nTF { \l_tmpa_fp < \l_tmpb_fp }
+ {
+ arc ( \tzangleONE
+ \c_colon_str
+ \bool_if:NTF \l_tmpb_bool
+ { \tzangleTWO - 360 }
+ { \tzangleTWO }
+ \c_colon_str
+ \tzAAradius ) node (tzAAmid) [midway] {}
+ }
+ {
+ arc ( \bool_if:NTF \l_tmpb_bool
+ { \tzangleONE -360 }
+ { \tzangleONE }
+ \c_colon_str
+ \tzangleTWO
+ \c_colon_str
+ \tzAAradius ) node (tzAAmid) [midway] {}
+ }
+ }
+
+ \begin{pgfonlayer}{\tzanglelayer}
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \exp_last_unbraced:Nf
+ \draw \l_tzanglemark_cmd_tl -- cycle ; %% -- cycle
+ }
+ {
+ \exp_last_unbraced:Nf
+ \draw \l_tzanglemark_cmd_tl ;
+ }
+ \end{pgfonlayer}
+
+ \path (#2) -- (tzAAmid.center) node [ pos = 1.5, #5 ] { #4 } ;
+}
+
+%%% --- end of \tzanglemark
+
+
+%%% \tzanglefill (obsolete: to be removed)
+
+\NewDocumentCommand\tzanglefill{ s t' o }
+{
+ \tl_clear:N \l_tzanglefill_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 }
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #3 }
+ { \tl_set:Nn \l_tzanglefill_opt_tl { #3 } }
+ { \tl_clear:N \l_tzanglefill_opt_tl }
+
+ \tzanglefill_check_token:n
+}
+
+\cs_new:Npn \tzanglefill_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzanglefill_sub_fn ( }
+}
+
+\NewDocumentCommand\tzanglefill_sub_fn
+ { r() r() r() +G{} O{} D(){10pt} G{\tz@initial@fill@opacity} }
+
+{
+ \renewcommand\tzfillopacity{#7}
+
+ \path (#1) coordinate (tzAng-A)
+ (#2) coordinate (tzAng-B)
+ (#3) coordinate (tzAng-C);
+ \pgfmathanglebetweenpoints{\pgfpointanchor{tzAng-B}{center}}%
+ {\pgfpointanchor{tzAng-A}{center}}
+ \edef\tzangleONE{\pgfmathresult}
+ \pgfmathanglebetweenpoints{\pgfpointanchor{tzAng-B}{center}}%
+ {\pgfpointanchor{tzAng-C}{center}}
+ \edef\tzangleTWO{\pgfmathresult}
+
+ \fp_set:Nn \l_tmpa_fp { \tzangleONE }
+ \fp_set:Nn \l_tmpb_fp { \tzangleTWO }
+
+ \bool_if:NTF \l_tmpb_bool
+ {
+ \edef\tzangleresult{\fp_eval:n { 360 - abs(\l_tmpb_fp - \l_tmpa_fp) } }
+ }
+ {
+ \edef\tzangleresult{\fp_eval:n { abs(\l_tmpb_fp - \l_tmpa_fp) } }
+ }
+
+% % test
+% \node (0,0) [align=left,right] {\tzangleresult};
+
+ \bool_if:NTF \l_tmpa_bool %%% (* NOT USED!)
+ {
+ \tl_put_right:No \l_tzanglefill_cmd_tl
+ {
+ [ \tzAAlinestyle , fill = \tzfillcolor ,
+ fill~opacity = \tzfillopacity , text~opacity = 1 ,
+ }
+ }
+ {
+ \tl_put_right:No \l_tzanglefill_cmd_tl
+ {
+ [ \tzAAlinestyle , fill = \tzfillcolor ,
+ fill~opacity = \tzfillopacity , text~opacity = 1 ,
+ }
+ }
+
+ \tl_put_right:No \l_tzanglefill_cmd_tl
+ { \l_tzanglefill_opt_tl ] }
+
+ \tl_put_right:Nx \l_tzanglefill_cmd_tl
+ { (#2) -- ++ (\tzangleONE \c_colon_str #6) }
+
+ \tl_put_right:Nx \l_tzanglefill_cmd_tl
+ {
+ \fp_compare:nTF { \l_tmpa_fp < \l_tmpb_fp }
+ {
+ arc ( \tzangleONE
+ \c_colon_str
+ \bool_if:NTF \l_tmpb_bool
+ { \tzangleTWO - 360 }
+ { \tzangleTWO }
+ \c_colon_str
+ #6 ) node (tzAAmid) [midway] {}
+ }
+ {
+ arc ( \bool_if:NTF \l_tmpb_bool
+ { \tzangleONE -360 }
+ { \tzangleONE }
+ \c_colon_str
+ \tzangleTWO
+ \c_colon_str
+ #6 ) node (tzAAmid) [midway] {}
+ }
+ }
+
+ \begin{pgfonlayer}{\tzanglelayer}
+ \exp_last_unbraced:Nf
+ \path \l_tzanglefill_cmd_tl -- cycle ; %% -- cycle
+ \end{pgfonlayer}
+ \path (#2) -- (tzAAmid.center) node [ pos = 1.5, #5 ] { #4 } ;
+}
+
+%%% --- end of \tzanglefill
+
+
+
+
+%%%(ADDED)
+%%% \tzrightanglemark (main)
+
+\NewDocumentCommand\tzrightanglemark{ s t' o }
+{
+ \tl_clear:N \l_tzrightanglemark_cmd_tl
+ \tl_clear:N \l_tzrightanglemark_fill_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 } % NOT USED (just to avoid frequent coding error)
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #3 }
+ { \tl_set:Nn \l_tzrightanglemark_opt_tl { #3 } }
+ { \tl_clear:N \l_tzrightanglemark_opt_tl }
+
+ \tzrightanglemark_check_token:n
+}
+
+\cs_new:Npn \tzrightanglemark_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzrightanglemark_sub_fn ( }
+}
+
+\NewDocumentCommand\tzrightanglemark_sub_fn
+ { r() r() r() +G{} O{} D(){\tz@initial@RA@size} G{\tz@initial@fill@opacity} }
+
+{
+ \renewcommand\tzfillopacity{#7}
+ \renewcommand\tzRAsize{#6}
+
+ \coordinate (tzRAOne) at ($(#2)!\tzRAsize!(#1)$) ;
+ \coordinate (tzRAThree) at ($(#2)!\tzRAsize!(#3)$) ;
+ \coordinate (tzRAvertex) at ($(tzRAThree) + (tzRAOne) - (#2)$) ;
+
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \tl_put_right:No \l_tzrightanglemark_cmd_tl
+ {
+ [ \tzAAlinestyle , draw = none ,
+ fill = \tzfillcolor , fill~opacity = \tzfillopacity , text~opacity = 1 ,
+ }
+ }
+ {
+ \tl_put_right:No \l_tzrightanglemark_cmd_tl
+ {
+ [ \tzAAlinestyle ,
+ }
+ }
+
+ \tl_put_right:No \l_tzrightanglemark_cmd_tl
+ { \l_tzrightanglemark_opt_tl ] }
+
+ \begin{pgfonlayer}{\tzanglelayer}
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \exp_last_unbraced:Nf
+ \draw \l_tzrightanglemark_cmd_tl
+ (#2) -- (tzRAOne) -- (tzRAvertex) -- (tzRAThree) -- cycle ;
+ }
+ {
+ \exp_last_unbraced:Nf
+ \draw \l_tzrightanglemark_cmd_tl
+ (tzRAOne) -- (tzRAvertex) -- (tzRAThree) ;
+ }
+ \end{pgfonlayer}
+ \path (#2) -- (tzRAvertex) node [ pos = 2 , #5 ] { #4 } ;
+}
+
+%%% --- end of \tzrightanglemark
+
+
+%%% \tzrightanglefill (obsolete: to be removed)
+
+\NewDocumentCommand\tzrightanglefill{ s t' o }
+{
+ \tl_clear:N \l_tzrightanglefill_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 }
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #3 }
+ { \tl_set:Nn \l_tzrightanglefill_opt_tl { #3 } }
+ { \tl_clear:N \l_tzrightanglefill_opt_tl }
+
+ \tzrightanglefill_check_token:n
+}
+
+\cs_new:Npn \tzrightanglefill_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzrightanglefill_sub_fn ( }
+}
+
+\NewDocumentCommand\tzrightanglefill_sub_fn
+ { r() r() r() +G{} O{} D(){5pt} G{\tz@initial@fill@opacity} }
+
+{
+ \renewcommand\tzfillopacity{#7}
+
+ \coordinate (tzRAOne) at ($(#2)!#6!(#1)$) ;
+ \coordinate (tzRAThree) at ($(#2)!#6!(#3)$) ;
+ \coordinate (tzRAvertex) at ($(tzRAThree) + (tzRAOne) - (#2)$) ;
+
+ \tl_put_right:Nn \l_tzrightanglefill_cmd_tl
+ {
+ [ very~thin ,
+ }
+
+ \tl_put_right:Nn \l_tzrightanglefill_cmd_tl
+ {
+ fill = \tzfillcolor , fill~opacity = \tzfillopacity , text~opacity = 1 ,
+ }
+
+ \tl_put_right:No \l_tzrightanglefill_cmd_tl
+ { \l_tzrightanglefill_opt_tl ] }
+
+ \begin{pgfonlayer}{\tzanglelayer}
+ \exp_last_unbraced:Nf
+ \fill \l_tzrightanglefill_cmd_tl
+ (#2) -- (tzRAOne) -- (tzRAvertex) -- (tzRAThree) -- cycle ;
+ \end{pgfonlayer}
+ \path (#2) -- (tzRAvertex) node [ pos = 2 , #5 ] { #4 } ;
+}
+
+%%% --- end of \tzrightanglefill
+
+
+
+%%%(ADDED)
+%%% \tzpicangle (to be removed)
+\NewDocumentCommand\tzpicangle
+ { t' O{} O{} r() r() r() G{} O{1.5} D(){10pt} }
+{
+ \IfBooleanTF #1
+ {
+ \begin{pgfonlayer}{background}
+ \path [ #3 ] (#4) coordinate (tzangleA) --
+ (#5) coordinate (tzangleB) --
+ (#6) coordinate (tzangleC)
+ pic [ draw , "#7" , angle~radius=#9 , angle~eccentricity = #8 , #2 ]
+ { angle = tzangleC -- tzangleB -- tzangleA } ;
+ % C to A (counter clockwise)
+ \end{pgfonlayer}
+ }
+ {
+ \begin{pgfonlayer}{background}
+ \path [ #3 ] (#4) coordinate (tzangleA) --
+ (#5) coordinate (tzangleB) --
+ (#6) coordinate (tzangleC)
+ pic [ draw , "#7" , angle~radius=#9 , angle~eccentricity = #8 , #2 ]
+ { angle = tzangleA -- tzangleB -- tzangleC } ;
+ % A to C (clockwise)
+ \end{pgfonlayer}
+ }
+}
+
+%%% --- end of \tzpicangle
+
+
+
+%%%%% plot coordinates (of TikZ)
+
%%% \tzplot
\bool_new:N \l_tzplot_shift_coor_bool
+\bool_new:N \g_tzplot_BEGIN_cmd_bool
+\bool_new:N \g_tzplot_END_cmd_bool
+
+%% \tzplotAtBegin
+\NewDocumentCommand\tzplotAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzplot_BEGIN_cmd_bool
+ \tl_gset:No \g_tzplot_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzplotAtEnd
+\NewDocumentCommand\tzplotAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzplot_END_cmd_bool
+ \tl_gset:No \g_tzplot_END_cmd_tl { #1 }
+}
+%%% \tzplot (main)
\NewDocumentCommand\tzplot{ s O{} G{0} O{} d<> D""{} }
{
- \tl_clear:N \l_tzplot_opt_cmd_tl
- \tl_clear:N \l_tzplot_cmd_tl
- \tl_clear:N \l_tzplot_nodes_cmd_tl
- \tl_clear:N \l_tzplot_coors_cmd_tl
- \tl_clear:N \l_tzplot_code_at_end_tl
+ \tl_clear:N \l_tzplot_opt_tl % [opt]
+ \tl_clear:N \l_tzplot_TEMP_opt_tl % for path only: [opt,mark=none]
+ \tl_clear:N \l_tzplot_plot_coordinates_tl % plot coordinates
+ \tl_clear:N \l_tzplot_coors_tl % {(coor-1)(coor-2)...(coor-n)}
+ \tl_clear:N \l_tzplot_code_at_end_tl % <code.append>
+ \tl_clear:N \l_tzplot_nodes_tl
\renewcommand\tzmarksize{\tz@initial@mark@size}
- \tl_put_right:Nn \l_tzplot_opt_cmd_tl
+ \tl_put_right:Nn \l_tzplot_opt_tl
{
[
name~path = #6 ,
@@ -2717,12 +4510,23 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
tzmark = \tzmarksize ,
}
- \IfBooleanT { #1 }
+ %% closing options
+ % if AtBegin_true, USE mark=none (for path only)
+ \bool_if:NT \g_tzplot_BEGIN_cmd_bool
+ {
+ \tl_set_eq:NN \l_tzplot_TEMP_opt_tl \l_tzplot_opt_tl
+ \tl_put_right:Nn \l_tzplot_TEMP_opt_tl { mark = none ] }
+ }
+ % (normal)
+ \IfBooleanTF { #1 }
{
- \tl_put_right:Nn \l_tzplot_opt_cmd_tl
- { mark = * , draw = none , }
+ \tl_put_right:Nn \l_tzplot_opt_tl
+ { mark = * , draw = none , #2 ] }
+ }
+ {
+ \tl_put_right:Nn \l_tzplot_opt_tl
+ { #2 ] }
}
-
\IfValueTF { #5 }
{
\tl_set:Nn \l_tzplot_shift_coor_tl { #5 }
@@ -2733,12 +4537,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\bool_set_false:N \l_tzplot_shift_coor_bool
}
- \tl_put_right:Nn \l_tzplot_opt_cmd_tl
- {
- #2
- ]
- plot [ #4 ] coordinates
- }
+ \tl_put_right:Nn \l_tzplot_plot_coordinates_tl
+ { plot [ #4 ] coordinates }
\tzplot_check_token:n
}
@@ -2753,34 +4553,63 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzplot_late_opt_fn }
}
{
- \tzplot_stop_action
+% \tzplot_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
-\NewDocumentCommand\tzplot_sub_fn{ r() +G{} O{} }
+\NewDocumentCommand\tzplot_sub_fn{ r() +G{} >{\TrimSpaces}o }
{
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #3 }
+ {
+ \tl_if_in:nnTF { #3 } { [ }
+ { \extract_posopt:w #3 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #3 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #3 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
% collect coordinates only
\bool_if:NTF \l_tzplot_shift_coor_bool
{
- \tl_put_right:Nx \l_tzplot_coors_cmd_tl
- { ([shift = { (\l_tzplot_shift_coor_tl) } ]#1) }
+ \tl_put_right:Nx \l_tzplot_coors_tl
+ { ( [ shift = { (\l_tzplot_shift_coor_tl) } ] \exp_not:n { #1 } ) }
}
{
- \tl_put_right:Nn \l_tzplot_coors_cmd_tl { (#1) }
+ \tl_put_right:Nn \l_tzplot_coors_tl { (#1) }
}
% collect nodes information
\bool_if:NTF \l_tzplot_shift_coor_bool
{
- \tl_put_right:Nx \l_tzplot_nodes_cmd_tl
- { ([shift = { (\l_tzplot_shift_coor_tl) } ]#1) }
+ \tl_put_right:Nx \l_tzplot_nodes_tl
+ { ( [ shift = { (\l_tzplot_shift_coor_tl) } ] \exp_not:n { #1 } ) }
}
{
- \tl_put_right:Nn \l_tzplot_nodes_cmd_tl { (#1) }
+ \tl_put_right:Nn \l_tzplot_nodes_tl { (#1) }
}
- \tl_put_right:Nx \l_tzplot_nodes_cmd_tl
+ \tl_put_right:Nx \l_tzplot_nodes_tl
{
node
- [ label = { \exp_not:n { #3 } \c_colon_str \exp_not:n { #2 } }
+ [ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #2 } } % pos_str
] {}
}
\tzplot_check_token:n
@@ -2798,14 +4627,80 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\NewDocumentCommand\tzplot_stop_action {}
{
\renewcommand\tzmarksize{ \tztmpMarkSize }
- % final action
- \exp_last_unbraced:Nf
- \draw
- \l_tzplot_opt_cmd_tl % [opt] plot coordinates
- { \l_tzplot_coors_cmd_tl } % { (coor-1)(coor-2)...(coor-n) }
- \l_tzplot_code_at_end_tl % should precede _nodes_cmd_tl
- \l_tzplot_nodes_cmd_tl % (coor-i) node [opt] {text}, for all i
- ;
+ %% final action cases:
+ \bool_if:NTF \g_tzplot_BEGIN_cmd_bool
+ { %% if AtBegin_true
+ % define (tzCPSS) by path (WITH \l_tzplot_TEMP_opt_tl )
+ \exp_last_unbraced:Nf
+ \path
+ \l_tzplot_TEMP_opt_tl
+ \l_tzplot_plot_coordinates_tl
+ { \l_tzplot_coors_tl }
+ ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ % all together (important)
+ \tl_put_right:No \l_tmpa_tl { \g_tzplot_BEGIN_cmd_tl }
+ \tl_put_right:Nn \l_tmpa_tl { (tzCSPS) -- }
+ \tl_put_right:No \l_tmpa_tl { \l_tzplot_plot_coordinates_tl } % important
+ \bool_if:NTF \g_tzplot_END_cmd_bool
+ { %% if AtEnd_true
+ % append AtBegin, AtEnd
+ % plot AtBegin, (coors), and AtEnd (WITH \l_tzplot_opt_tl)
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplot_opt_tl
+ \l_tmpa_tl % AtBegin + plot coordinates
+ { \l_tzplot_coors_tl }
+ \g_tzplot_END_cmd_tl % AtEnd
+ \l_tzplot_code_at_end_tl
+ \l_tzplot_nodes_tl
+ ;
+ }
+ { %% if AtEnd_false
+ % plot AtBegin and (coors)
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplot_opt_tl
+ \l_tmpa_tl % AtBegin + plot coordinates
+ { \l_tzplot_coors_tl }
+% \g_tzplot_END_cmd_tl % AtEnd
+ \l_tzplot_code_at_end_tl
+ \l_tzplot_nodes_tl
+ ;
+
+ }
+ }
+ { %% if AtBegin_false
+ \bool_if:NTF \g_tzplot_END_cmd_bool
+ { %% if AtEnd_true
+ % append AtBegin, AtEnd
+ % plot AtBegin, (coors), and AtEnd (WITH \l_tzplot_opt_tl)
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplot_opt_tl
+ \l_tzplot_plot_coordinates_tl
+ { \l_tzplot_coors_tl }
+ \g_tzplot_END_cmd_tl % AtEnd
+ \l_tzplot_code_at_end_tl
+ \l_tzplot_nodes_tl
+ ;
+ }
+ { %% if AtEnd_false
+ % normal
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplot_opt_tl % [opt]
+ \l_tzplot_plot_coordinates_tl % plot coordinates
+ { \l_tzplot_coors_tl } % { (coor-1)(coor-2)...(coor-n) }
+% \g_tzplot_END_cmd_tl % AtEnd
+ \l_tzplot_code_at_end_tl % <code.append>
+ \l_tzplot_nodes_tl % (coor-i) node [opt] {text}, all i
+ ;
+ }
+ }
+
+ \bool_gset_false:N \g_tzplot_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzplot_END_cmd_bool
}
%%% --- end of \tzplot
@@ -2814,18 +4709,37 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzplotcurve
\bool_new:N \l_tzplotcurve_shift_coor_bool
+\bool_new:N \g_tzplotcurve_BEGIN_cmd_bool
+\bool_new:N \g_tzplotcurve_END_cmd_bool
+
+%% \tzplotcurveAtBegin
+\NewDocumentCommand\tzplotcurveAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzplotcurve_BEGIN_cmd_bool
+ \tl_gset:No \g_tzplotcurve_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzplotcurveAtEnd
+\NewDocumentCommand\tzplotcurveAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzplotcurve_END_cmd_bool
+ \tl_gset:No \g_tzplotcurve_END_cmd_tl { #1 }
+}
+
+%%% \tzplotcurve (main)
\NewDocumentCommand\tzplotcurve{ s O{} G{1} O{} d<> D""{} }
{
- \IfBooleanT { #1 } {}{} % NOT USED!
+ \tl_clear:N \l_tzplotcurve_opt_tl % [opt]
+ \tl_clear:N \l_tzplotcurve_TEMP_opt_tl % for path only: [opt,mark=none]
+ \tl_clear:N \l_tzplotcurve_plot_coordinates_tl % plot coordinates
+ \tl_clear:N \l_tzplotcurve_coors_tl % {(coor-1)(coor-2)...(coor-n)}
+ \tl_clear:N \l_tzplotcurve_code_at_end_tl % <code.append>
+ \tl_clear:N \l_tzplotcurve_nodes_tl
- \tl_clear:N \l_tzplotcurve_opt_cmd_tl
- \tl_clear:N \l_tzplotcurve_cmd_tl
- \tl_clear:N \l_tzplotcurve_nodes_cmd_tl
- \tl_clear:N \l_tzplotcurve_coors_cmd_tl
- \tl_clear:N \l_tzplotcurve_code_at_end_tl
+ \renewcommand\tzmarksize{\tz@initial@mark@size}
- \tl_put_right:Nn \l_tzplotcurve_opt_cmd_tl
+ \tl_put_right:Nn \l_tzplotcurve_opt_tl
{
[ name~path = #6 ,
tension = #3 ,
@@ -2833,10 +4747,20 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
tzmark = \tzmarksize ,
}
- \IfBooleanT { #1 }
+ %% closing options
+ % if AtBegin_true, USE mark=none (for path only)
+ \bool_if:NT \g_tzplotcurve_BEGIN_cmd_bool
+ {
+ \tl_set_eq:NN \l_tzplotcurve_TEMP_opt_tl \l_tzplotcurve_opt_tl
+ \tl_put_right:Nn \l_tzplotcurve_TEMP_opt_tl { mark = none ] }
+ }
+ % (normal)
+ \IfBooleanTF { #1 }
{
- \tl_put_right:Nn \l_tzplotcurve_opt_cmd_tl
- { mark = * , }
+ \tl_put_right:Nn \l_tzplotcurve_opt_tl { mark = * , #2 ] }
+ }
+ {
+ \tl_put_right:Nn \l_tzplotcurve_opt_tl { #2 ] }
}
\IfValueTF { #5 }
@@ -2849,12 +4773,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\bool_set_false:N \l_tzplotcurve_shift_coor_bool
}
- \tl_put_right:Nn \l_tzplotcurve_opt_cmd_tl
- {
- #2
- ]
- plot [ #4 ] coordinates
- }
+ \tl_put_right:Nn \l_tzplotcurve_plot_coordinates_tl
+ { plot [ #4 ] coordinates }
\tzplotcurve_check_token:n
}
@@ -2869,33 +4789,62 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ ; } { \tzplotcurve_late_opt_fn }
}
{
- \tzplotcurve_stop_action
+% \tzplotcurve_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
}
}
-\NewDocumentCommand\tzplotcurve_sub_fn{ r() +G{} O{} }
+\NewDocumentCommand\tzplotcurve_sub_fn{ r() +G{} >{\TrimSpaces}o }
{
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #3 }
+ {
+ \tl_if_in:nnTF { #3 } { [ }
+ { \extract_posopt:w #3 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #3 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #3 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
% collect coordinates only
\bool_if:NTF \l_tzplotcurve_shift_coor_bool
{
- \tl_put_right:Nx \l_tzplotcurve_coors_cmd_tl
- { ([shift = { (\l_tzplotcurve_shift_coor_tl) } ]#1) }
+ \tl_put_right:Nx \l_tzplotcurve_coors_tl
+ { ( [ shift = { (\l_tzplotcurve_shift_coor_tl) } ] \exp_not:n { #1 } ) }
}
{
- \tl_put_right:Nn \l_tzplotcurve_coors_cmd_tl { (#1) }
+ \tl_put_right:Nn \l_tzplotcurve_coors_tl { (#1) }
}
% collect nodes information
\bool_if:NTF \l_tzplotcurve_shift_coor_bool
{
- \tl_put_right:Nx \l_tzplotcurve_nodes_cmd_tl
- { ([shift = { (\l_tzplotcurve_shift_coor_tl) } ]#1) }
+ \tl_put_right:Nx \l_tzplotcurve_nodes_tl
+ { ( [ shift = { (\l_tzplotcurve_shift_coor_tl) } ] \exp_not:n { #1 } ) }
}
{
- \tl_put_right:Nn \l_tzplotcurve_nodes_cmd_tl { (#1) }
+ \tl_put_right:Nn \l_tzplotcurve_nodes_tl { (#1) }
}
- \tl_put_right:Nx \l_tzplotcurve_nodes_cmd_tl
+ \tl_put_right:Nx \l_tzplotcurve_nodes_tl
{ node
- [ label = { \exp_not:n { #3 } \c_colon_str \exp_not:n { #2 } }
+ [ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #2 } } % pos_str
] {}
}
\tzplotcurve_check_token:n
@@ -2913,19 +4862,155 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\NewDocumentCommand\tzplotcurve_stop_action {}
{
\renewcommand\tzmarksize{ \tztmpMarkSize }
- % final action
- \exp_last_unbraced:Nf
- \draw
- \l_tzplotcurve_opt_cmd_tl % [opt] plot [ smooth ] coordinates
- { \l_tzplotcurve_coors_cmd_tl } % { (coor-1)(coor-2)...(coor-n) }
- \l_tzplotcurve_code_at_end_tl % should precede _nodes_cmd_tl
- \l_tzplotcurve_nodes_cmd_tl % (coor-i) node [opt] {text}, for all i
- ;
+ %% final action cases:
+ \bool_if:NTF \g_tzplotcurve_BEGIN_cmd_bool
+ { %% if AtBegin_true
+ % define (tzCPSS) by path (WITH \l_tzplotcurve_TEMP_opt_tl )
+ \exp_last_unbraced:Nf
+ \path
+ \l_tzplotcurve_TEMP_opt_tl
+ \l_tzplotcurve_plot_coordinates_tl
+ { \l_tzplotcurve_coors_tl }
+ ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ % all together (important)
+ \tl_put_right:No \l_tmpa_tl { \g_tzplotcurve_BEGIN_cmd_tl }
+ \tl_put_right:Nn \l_tmpa_tl { (tzCSPS) -- }
+ \tl_put_right:No \l_tmpa_tl { \l_tzplotcurve_plot_coordinates_tl } % important
+ \bool_if:NTF \g_tzplotcurve_END_cmd_bool
+ { %% if AtEnd_true
+ % append AtBegin, AtEnd
+ % plot AtBegin, (coors), and AtEnd (WITH \l_tzplotcurve_opt_tl)
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplotcurve_opt_tl
+ \l_tmpa_tl % AtBegin + plot coordinates
+ { \l_tzplotcurve_coors_tl }
+ \g_tzplotcurve_END_cmd_tl % AtEnd
+ \l_tzplotcurve_code_at_end_tl
+ \l_tzplotcurve_nodes_tl
+ ;
+ }
+ { %% if AtEnd_false
+ % plot AtBegin and (coors)
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplotcurve_opt_tl
+ \l_tmpa_tl % AtBegin + plot coordinates
+ { \l_tzplotcurve_coors_tl }
+% \g_tzplotcurve_END_cmd_tl % AtEnd
+ \l_tzplotcurve_code_at_end_tl
+ \l_tzplotcurve_nodes_tl
+ ;
+
+ }
+ }
+ { %% if AtBegin_false
+ \bool_if:NTF \g_tzplotcurve_END_cmd_bool
+ { %% if AtEnd_true
+ % append AtBegin, AtEnd
+ % plot AtBegin, (coors), and AtEnd (WITH \l_tzplotcurve_opt_tl)
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplotcurve_opt_tl
+ \l_tzplotcurve_plot_coordinates_tl
+ { \l_tzplotcurve_coors_tl }
+ \g_tzplotcurve_END_cmd_tl % AtEnd
+ \l_tzplotcurve_code_at_end_tl
+ \l_tzplotcurve_nodes_tl
+ ;
+ }
+ { %% if AtEnd_false
+ % normal
+ \exp_last_unbraced:Nf
+ \draw
+ \l_tzplotcurve_opt_tl % [opt]
+ \l_tzplotcurve_plot_coordinates_tl % plot coordinates
+ { \l_tzplotcurve_coors_tl } % { (coor-1)(coor-2)...(coor-n) }
+% \g_tzplotcurve_END_cmd_tl % AtEnd
+ \l_tzplotcurve_code_at_end_tl % <code.append>
+ \l_tzplotcurve_nodes_tl % (coor-i) node [opt] {text}, all i
+ ;
+ }
+ }
+
+ \bool_gset_false:N \g_tzplotcurve_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzplotcurve_END_cmd_bool
}
%%% --- end of \tzplotcurve
+%%(ADDED)
+%%% \tzplotfile
+\NewDocumentCommand\tzplotfile{ O{} m O{} }
+{
+ \draw [ #1 ] plot [ smooth , #3 ] file { #2 } ;
+}
+
+%%% --- end of \tzplotfile
+
+
+%%%%% Plot functions
+
+%%% \tzdeffn
+\NewDocumentCommand\tzdeffn{ m m }
+{
+ \tl_set:cn { #1 } { #2 }
+}
+%% USAGE: \tzdeffn{Fx}{2*\x+1}
+
+%%% \tzdeffnofy
+\NewDocumentCommand\tzdeffnofy{ m m }
+{
+ \tl_set:cn { #1 } { #2 }
+}
+%% just a reminder of using \y instead of \x
+%% USAGE: \tzdeffn'{Gy}{2*\y+1}
+
+
+%%% \tzdefLFn
+\NewDocumentCommand\tzdefLFn{ m r() d() G{1} }
+{
+ \IfNoValueTF { #3 }
+ {
+ \tzgetxyval(#2){\tzdefLFnXvalS}{\tzdefLFnYvalS}
+ \def#1{#4*(\x-\tzdefLFnXvalS)+\tzdefLFnYvalS}
+ }
+ {
+ \tzgetxyval(#2){\tzdefLFnXval}{\tzdefLFnYval}
+ \tzgetxyval(#3){\tzdefLFnXXval}{\tzdefLFnYYval}
+ \fp_compare:nT { \tzdefLFnXXval - \tzdefLFnXval = 0 }
+ { \msg_error:nn { tzplot } { infinite~slope~error } }
+ \edef\tzdefLFnSlope{%
+ (\tzdefLFnYYval-\tzdefLFnYval)/(\tzdefLFnXXval-\tzdefLFnXval)
+ }
+ \def#1{\tzdefLFnSlope*(\x-\tzdefLFnXval)+\tzdefLFnYval}
+ }
+}
+
+%%% \tzdefLFnofy
+\NewDocumentCommand\tzdefLFnofy{ m r() d() G{1} }
+{ % linear function of \y
+ \IfNoValueTF { #3 }
+ {
+ \tzgetxyval(#2){\tzdefLFnofyXvalS}{\tzdefLFnofyYvalS}
+ \def#1{#4*(\y-\tzdefLFnofyYvalS)+\tzdefLFnofyXvalS}
+ }
+ {
+ \tzgetxyval(#2){\tzdefLFnofyXval}{\tzdefLFnofyYval}
+ \tzgetxyval(#3){\tzdefLFnofyXXval}{\tzdefLFnofyYYval}
+ \fp_compare:nT { \tzdefLFnofyYYval - \tzdefLFnofyYval = 0 }
+ { \msg_error:nn { tzplot } { infinite~slope~error } }
+ \edef\tzdefLFnofySlope{%
+ (\tzdefLFnofyXXval-\tzdefLFnofyXval)/(\tzdefLFnofyYYval-\tzdefLFnofyYval)
+ }
+ \def#1{\tzdefLFnofySlope*(\y-\tzdefLFnofyYval)+\tzdefLFnofyXval}
+ }
+}
+
+
+
%%% \tzLFn -- plot Linear Function (LF)
\bool_new:N \g_tzLFn_BEGIN_cmd_bool
@@ -2945,12 +5030,14 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_gset:No \g_tzLFn_END_cmd_tl { #1 }
}
-%%% \tzLFn
+%%% \tzLFn (main)
%% \tzLFn : variable = \x (default)
-%% \tzLFn': variable = \y
\NewDocumentCommand \tzLFn { t' o D<>{0,0} d"" }
{
+ \tl_clear:N \l_tzLFn_opt_tl
+ \tl_clear:N \l_tzLFn_path_tl
+ \tl_clear:N \l_tzLFn_TEMP_cmd_tl
\tl_clear:N \l_tzLFn_cmd_tl
\IfBooleanTF { #1 }
@@ -2965,8 +5052,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{ \tl_clear:N \l_tzLFn_shift_tl }
\IfValueTF { #2 }
- { \tl_set:Nn \l_tzLFn_opt_tl { #2 } }
- { \tl_clear:N \l_tzLFn_opt_tl }
+ { \tl_set:Nn \l_tzLFn_user_opt_tl { #2 } }
+ { \tl_clear:N \l_tzLFn_user_opt_tl }
\IfValueTF { #4 }
{ \tl_set:Nn \l_tzLFn_namepath_tl { name~path = #4 } }
@@ -2990,57 +5077,65 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
{
\tzLFn_domain_process #4
- \tl_put_right:Nx \l_tzLFn_cmd_tl
+ \tl_put_right:Nx \l_tzLFn_opt_tl
{
[
+% samples = 201 ,
\l_tzLFn_namepath_tl ,
domain = \tzLFnFromVal \c_colon_str \tzLFnToVal , %%% [here?]
-% samples = 200 ,
- \bool_if:NTF \l_tmpa_bool
- { variable = \exp_not:n { \y } }
- { variable = \exp_not:n { \x } } ,
+% variable = \exp_not:n { \x } ,
\l_tzLFn_shift_tl ,
}
- \tl_put_right:No \l_tzLFn_cmd_tl
+ \tl_put_right:No \l_tzLFn_opt_tl
{
- \l_tzLFn_opt_tl
+ \l_tzLFn_user_opt_tl
]
}
- \bool_if:NT \g_tzLFn_BEGIN_cmd_bool
- { \tl_put_right:No \l_tzLFn_cmd_tl { \g_tzLFn_BEGIN_cmd_tl } }
- % define LF
- \tzgetxyval(#1){\tzLFAval}{\tzLFBval}
+ % define LF: (X,Y)(XX,YY){slope num: dY/dX}
\IfNoValueTF { #2 }
{
- \bool_if:NTF \l_tmpa_bool
- { \def\tzLFnDEF{#3*(\y-\tzLFBval)+\tzLFAval} }
- { \def\tzLFnDEF{#3*(\x-\tzLFAval)+\tzLFBval} }
+ \tzgetxyval(#1){\tzLFnXvalS}{\tzLFnYvalS}
+ \def\tzLFnDEF{#3*(\x-\tzLFnXvalS)+\tzLFnYvalS}
}
{
- \tzgetxyval(#2){\tzLFAAval}{\tzLFBBval}
- \bool_if:NTF \l_tmpa_bool
- {
- \edef\tzLFSlope{(\tzLFAAval-\tzLFAval)/(\tzLFBBval-\tzLFBval)}
- \def\tzLFnDEF{\tzLFSlope*(\y-\tzLFBval)+\tzLFAval}
- }
- {
- \edef\tzLFSlope{(\tzLFBBval-\tzLFBval)/(\tzLFAAval-\tzLFAval)}
- \def\tzLFnDEF{\tzLFSlope*(\x-\tzLFAval)+\tzLFBval}
- }
+ \tzgetxyval(#1){\tzLFnXval}{\tzLFnYval}
+ \tzgetxyval(#2){\tzLFnXXval}{\tzLFnYYval}
+ \fp_compare:nT { \tzLFnXXval - \tzLFnXval = 0 }
+ { \msg_error:nn { tzplot } { infinite~slope~error } }
+ \edef\tzLFSlope{(\tzLFnYYval-\tzLFnYval)/(\tzLFnXXval-\tzLFnXval)}
+ \def\tzLFnDEF{\tzLFSlope*(\x-\tzLFnXval)+\tzLFnYval}
}
\bool_if:NTF \l_tmpa_bool
{
- \tl_put_right:Nn \l_tzLFn_cmd_tl
- { plot ( { \tzLFnDEF } , \y ) } % \y should not be expanded
+ \tl_put_right:Nn \l_tzLFn_path_tl
+ { plot ( { \tzLFnDEF } , \x ) } % \x should not be expanded
}
{
- \tl_put_right:Nn \l_tzLFn_cmd_tl
+ \tl_put_right:Nn \l_tzLFn_path_tl
{ plot ( \x , { \tzLFnDEF } ) } % \x should not be expanded
}
+ % to resolve AtBegin issue with "plot" operation
+ \bool_if:NTF \g_tzLFn_BEGIN_cmd_bool
+ {
+ \tl_put_right:No \l_tzLFn_TEMP_cmd_tl { \l_tzLFn_opt_tl }
+ \tl_put_right:No \l_tzLFn_TEMP_cmd_tl { \l_tzLFn_path_tl }
+ \exp_last_unbraced:Nf \path \l_tzLFn_TEMP_cmd_tl ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ \tl_put_right:No \l_tzLFn_cmd_tl { \l_tzLFn_opt_tl }
+ \tl_put_right:No \l_tzLFn_cmd_tl { \g_tzLFn_BEGIN_cmd_tl } % insert
+ \tl_put_right:Nn \l_tzLFn_cmd_tl { (tzCSPS) -- } %
+ \tl_put_right:No \l_tzLFn_cmd_tl { \l_tzLFn_path_tl }
+ }
+ {
+ \tl_put_right:No \l_tzLFn_cmd_tl { \l_tzLFn_opt_tl }
+ \tl_put_right:No \l_tzLFn_cmd_tl { \l_tzLFn_path_tl }
+ }
\bool_if:NT \g_tzLFn_END_cmd_bool
- { \tl_put_right:No \l_tzLFn_cmd_tl { \g_tzLFn_END_cmd_tl } }
+ {
+ \tl_put_right:No \l_tzLFn_cmd_tl { \g_tzLFn_END_cmd_tl } % append
+ }
\tl_put_right:Nn \l_tzLFn_cmd_tl
{ node [ #6 ] { #5 } }
% final action
@@ -3059,7 +5154,155 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzLFn
-%% \tzfn (variable=\x -- default)
+
+%%% \tzLFnofy
+%% variable = \y
+
+\bool_new:N \g_tzLFnofy_BEGIN_cmd_bool
+\bool_new:N \g_tzLFnofy_END_cmd_bool
+
+%% \tzLFnofyAtBegin
+\NewDocumentCommand\tzLFnofyAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzLFnofy_BEGIN_cmd_bool
+ \tl_gset:No \g_tzLFnofy_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzLFnofyAtEnd
+\NewDocumentCommand\tzLFnofyAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzLFnofy_END_cmd_bool
+ \tl_gset:No \g_tzLFnofy_END_cmd_tl { #1 }
+}
+
+%%% \tzLFnofy (main)
+%% \tzLFnofy : variable = \y
+\NewDocumentCommand \tzLFnofy { t' o D<>{0,0} d"" }
+{
+ \tl_clear:N \l_tzLFnofy_opt_tl
+ \tl_clear:N \l_tzLFnofy_path_tl
+ \tl_clear:N \l_tzLFnofy_TEMP_cmd_tl
+ \tl_clear:N \l_tzLFnofy_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfValueTF { #3 }
+ {
+ \tl_set:Nn \l_tzLFnofy_shift_tl
+ { shift = { (#3) } }
+ }
+ { \tl_clear:N \l_tzLFnofy_shift_tl }
+
+ \IfValueTF { #2 }
+ { \tl_set:Nn \l_tzLFnofy_user_opt_tl { #2 } }
+ { \tl_clear:N \l_tzLFnofy_user_opt_tl }
+
+ \IfValueTF { #4 }
+ { \tl_set:Nn \l_tzLFnofy_namepath_tl { name~path = #4 } }
+ { \tl_clear:N \l_tzLFnofy_namepath_tl }
+
+ \tzLFnofy_check_token:n
+}
+
+\cs_new:Npn \tzLFnofy_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzLFnofy_sub_fn ( }
+}
+
+\use:x{
+ \NewDocumentCommand \exp_not:N \tzLFnofy_sub_fn
+ { r() d() G{1}
+ >{ \SplitArgument {1} { \tl_to_str:n {:} } } r[] + G{} O{} D<>{}
+ }
+}
+{
+ \tzLFnofy_domain_process #4
+
+ \tl_put_right:Nx \l_tzLFnofy_opt_tl
+ {
+ [
+% samples = 201 ,
+ \l_tzLFnofy_namepath_tl ,
+ domain = \tzLFnofyFromVal \c_colon_str \tzLFnofyToVal , %%% [here?]
+ variable = \exp_not:n { \y } ,
+ \l_tzLFnofy_shift_tl ,
+ }
+ \tl_put_right:No \l_tzLFnofy_opt_tl
+ {
+ \l_tzLFnofy_user_opt_tl
+ ]
+ }
+
+ % define LFofy: (X,Y)(XX,YY){slope num: dX/dY}
+ \IfNoValueTF { #2 }
+ {
+ \tzgetxyval(#1){\tzLFnofyXvalS}{\tzLFnofyYvalS}
+ \def\tzLFnofyDEF{#3*(\y-\tzLFnofyYvalS)+\tzLFnofyXvalS}
+ }
+ {
+ \tzgetxyval(#1){\tzLFnofyXval}{\tzLFnofyYval}
+ \tzgetxyval(#2){\tzLFnofyXXval}{\tzLFnofyYYval}
+ \fp_compare:nT { \tzLFnofyYYval - \tzLFnofyYval = 0 }
+ { \msg_error:nn { tzplot } { infinite~slope~error } }
+ \edef\tzLFofySlope
+ {
+ (\tzLFnofyXXval-\tzLFnofyXval)/(\tzLFnofyYYval-\tzLFnofyYval)
+ }
+ \def\tzLFnofyDEF{\tzLFofySlope*(\y-\tzLFnofyYval)+\tzLFnofyXval}
+ }
+
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \tl_put_right:Nn \l_tzLFnofy_path_tl
+ { plot ( \y , { \tzLFnofyDEF } ) } % \y should not be expanded
+ }
+ {
+ \tl_put_right:Nn \l_tzLFnofy_path_tl
+ { plot ( { \tzLFnofyDEF } , \y ) } % \y should not be expanded
+ }
+ % to resolve AtBegin issue with "plot" operation
+ \bool_if:NTF \g_tzLFnofy_BEGIN_cmd_bool
+ {
+ \tl_put_right:No \l_tzLFnofy_TEMP_cmd_tl { \l_tzLFnofy_opt_tl }
+ \tl_put_right:No \l_tzLFnofy_TEMP_cmd_tl { \l_tzLFnofy_path_tl }
+ \exp_last_unbraced:Nf \path \l_tzLFnofy_TEMP_cmd_tl ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ \tl_put_right:No \l_tzLFnofy_cmd_tl { \l_tzLFnofy_opt_tl }
+ \tl_put_right:No \l_tzLFnofy_cmd_tl { \g_tzLFnofy_BEGIN_cmd_tl } % insert
+ \tl_put_right:Nn \l_tzLFnofy_cmd_tl { (tzCSPS) -- } %
+ \tl_put_right:No \l_tzLFnofy_cmd_tl { \l_tzLFnofy_path_tl }
+ }
+ {
+ \tl_put_right:No \l_tzLFnofy_cmd_tl { \l_tzLFnofy_opt_tl }
+ \tl_put_right:No \l_tzLFnofy_cmd_tl { \l_tzLFnofy_path_tl }
+ }
+ \bool_if:NT \g_tzLFnofy_END_cmd_bool
+ {
+ \tl_put_right:No \l_tzLFnofy_cmd_tl { \g_tzLFnofy_END_cmd_tl } % append
+ }
+ \tl_put_right:Nn \l_tzLFnofy_cmd_tl
+ { node [ #6 ] { #5 } }
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzLFnofy_cmd_tl #7 ;
+
+ \bool_gset_false:N \g_tzLFnofy_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzLFnofy_END_cmd_bool
+}
+
+\NewDocumentCommand\tzLFnofy_domain_process{ m m }
+{
+ \def\tzLFnofyFromVal{#1}
+ \def\tzLFnofyToVal{#2}
+}
+
+%%% --- end of \tzLFnofy
+
+
+%%% \tzfn
+%%(variable=\x -- default)
\bool_new:N \g_tzfn_BEGIN_cmd_bool
\bool_new:N \g_tzfn_END_cmd_bool
@@ -3078,8 +5321,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_gset:No \g_tzfn_END_cmd_tl { #1 }
}
-%% \tzfn (variable=\x)
-%% \tzfn' (variable=\y) -- equivalent to \tzfnofy
+%%% \tzfn (main)
+%%(variable =\x)
\use:x{
\NewDocumentCommand \exp_not:N \tzfn
{ t' O{} D<>{0,0} D""{} m
@@ -3087,6 +5330,9 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
}
{
+ \tl_clear:N \l_tzfn_opt_tl
+ \tl_clear:N \l_tzfn_path_tl
+ \tl_clear:N \l_tzfn_TEMP_cmd_tl
\tl_clear:N \l_tzfn_cmd_tl
\IfBooleanTF { #1 }
@@ -3095,35 +5341,50 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tzfn_domain_process #6
- \tl_set:No \l_tmpa_tl { \tl_to_str:n { #5 } }
- \tl_set:No \l_tzfn_pathname_tl { \tl_tail:N \l_tmpa_tl }
- \tl_put_right:Nx \l_tzfn_cmd_tl
+ \tl_set:No \l_label_pos_tl { \tl_to_str:n { #5 } }
+ \tl_set:No \l_tzfn_pathname_tl { \tl_tail:N \l_label_pos_tl }
+ \tl_put_right:Nx \l_tzfn_opt_tl
{
[
+ samples = 201 ,
name~path =
\tl_if_empty:nTF { #4 } { \l_tzfn_pathname_tl } { #4 } ,
domain = \tzfnFromVal \c_colon_str \tzfnToVal ,
- samples = 200 ,
shift = { (#3) } ,
- \bool_if:NTF \l_tmpa_bool
- { variable = \exp_not:n { \y } }
- { variable = \exp_not:n { \x } } ,
+% variable = \exp_not:n { \x } ,
\exp_not:n { #2 }
]
}
- \bool_if:NT \g_tzfn_BEGIN_cmd_bool
- { \tl_put_right:No \l_tzfn_cmd_tl { \g_tzfn_BEGIN_cmd_tl } }
+
\bool_if:NTF { \l_tmpa_bool }
{
- \tl_put_right:Nn \l_tzfn_cmd_tl
- { plot ( { #5 } , \y ) } % \y should not be expanded
+ \tl_put_right:No \l_tzfn_path_tl
+ { plot ( { #5 } , \exp_not:n { \x } ) } % \x should not be expanded
}
{
- \tl_put_right:Nn \l_tzfn_cmd_tl
- { plot ( \x , { #5 } ) } % \x should not be expanded
+ \tl_put_right:No \l_tzfn_path_tl
+ { plot ( \exp_not:n { \x } , { #5 } ) } % \x should not be expanded
}
+ % to resolve AtBegin issue with "plot" operation
+ \bool_if:NTF \g_tzfn_BEGIN_cmd_bool
+ {
+ \tl_put_right:No \l_tzfn_TEMP_cmd_tl { \l_tzfn_opt_tl }
+ \tl_put_right:No \l_tzfn_TEMP_cmd_tl { \l_tzfn_path_tl }
+ \exp_last_unbraced:Nf \path \l_tzfn_TEMP_cmd_tl ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ \tl_put_right:No \l_tzfn_cmd_tl { \l_tzfn_opt_tl }
+ \tl_put_right:No \l_tzfn_cmd_tl { \g_tzfn_BEGIN_cmd_tl } % insert
+ \tl_put_right:Nn \l_tzfn_cmd_tl { (tzCSPS) -- } %
+ \tl_put_right:No \l_tzfn_cmd_tl { \l_tzfn_path_tl }
+ }
+ {
+ \tl_put_right:No \l_tzfn_cmd_tl { \l_tzfn_opt_tl }
+ \tl_put_right:No \l_tzfn_cmd_tl { \l_tzfn_path_tl }
+ }
\bool_if:NT \g_tzfn_END_cmd_bool
- { \tl_put_right:No \l_tzfn_cmd_tl { \g_tzfn_END_cmd_tl } }
+ {
+ \tl_put_right:No \l_tzfn_cmd_tl { \g_tzfn_END_cmd_tl } % append
+ }
\tl_put_right:Nn \l_tzfn_cmd_tl
{ node [ #8 ] { #7 } }
% final action
@@ -3142,7 +5403,457 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzfn
-%% \tzvfnat
+%%% \tzfnofy
+%% (variable = \y)
+
+\bool_new:N \g_tzfnofy_BEGIN_cmd_bool
+\bool_new:N \g_tzfnofy_END_cmd_bool
+
+%% \tzfnofyAtBegin
+\NewDocumentCommand\tzfnofyAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzfnofy_BEGIN_cmd_bool
+ \tl_gset:No \g_tzfnofy_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzfnofyAtEnd
+\NewDocumentCommand\tzfnofyAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzfnofy_END_cmd_bool
+ \tl_gset:No \g_tzfnofy_END_cmd_tl { #1 }
+}
+
+%%% \tzfnofy (main)
+%% (variable=\y)
+\use:x{
+ \NewDocumentCommand \exp_not:N \tzfnofy
+ { t' O{} D<>{0,0} D""{} m
+ >{ \SplitArgument {1} { \tl_to_str:n {:} } } r[] +G{} O{} D<>{}
+ }
+}
+{
+ \tl_clear:N \l_tzfnofy_opt_tl
+ \tl_clear:N \l_tzfnofy_path_tl
+ \tl_clear:N \l_tzfnofy_TEMP_cmd_tl
+ \tl_clear:N \l_tzfnofy_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \tzfnofy_domain_process #6
+
+ \tl_set:No \l_label_pos_tl { \tl_to_str:n { #5 } }
+ \tl_set:No \l_tzfnofy_pathname_tl { \tl_tail:N \l_label_pos_tl }
+ \tl_put_right:Nx \l_tzfnofy_opt_tl
+ {
+ [
+ samples = 201 ,
+ name~path =
+ \tl_if_empty:nTF { #4 } { \l_tzfnofy_pathname_tl } { #4 } ,
+ domain = \tzfnofyFromVal \c_colon_str \tzfnofyToVal ,
+ shift = { (#3) } ,
+ variable = \exp_not:n { \y } ,
+ \exp_not:n { #2 }
+ ]
+ }
+
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \tl_put_right:Nn \l_tzfnofy_path_tl
+ { plot ( \y , { #5 } ) } % \y should not be expanded
+ }
+ {
+ \tl_put_right:Nn \l_tzfnofy_path_tl
+ { plot ( { #5 } , \y ) } % \y should not be expanded
+ }
+ % to resolve AtBegin issue with "plot" operation
+ \bool_if:NTF \g_tzfnofy_BEGIN_cmd_bool
+ {
+ \tl_put_right:No \l_tzfnofy_TEMP_cmd_tl { \l_tzfnofy_opt_tl }
+ \tl_put_right:No \l_tzfnofy_TEMP_cmd_tl { \l_tzfnofy_path_tl }
+ \exp_last_unbraced:Nf \path \l_tzfnofy_TEMP_cmd_tl ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ \tl_put_right:No \l_tzfnofy_cmd_tl { \l_tzfnofy_opt_tl }
+ \tl_put_right:No \l_tzfnofy_cmd_tl { \g_tzfnofy_BEGIN_cmd_tl } % insert
+ \tl_put_right:Nn \l_tzfnofy_cmd_tl { (tzCSPS) -- } %
+ \tl_put_right:No \l_tzfnofy_cmd_tl { \l_tzfnofy_path_tl }
+ }
+ {
+ \tl_put_right:No \l_tzfnofy_cmd_tl { \l_tzfnofy_opt_tl }
+ \tl_put_right:No \l_tzfnofy_cmd_tl { \l_tzfnofy_path_tl }
+ }
+ \bool_if:NT \g_tzfnofy_END_cmd_bool
+ {
+ \tl_put_right:No \l_tzfnofy_cmd_tl { \g_tzfnofy_END_cmd_tl } % append
+ }
+ \tl_put_right:Nn \l_tzfnofy_cmd_tl
+ { node [ #8 ] { #7 } }
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzfnofy_cmd_tl #9 ;
+
+ \bool_gset_false:N \g_tzfnofy_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzfnofy_END_cmd_bool
+}
+
+\NewDocumentCommand\tzfnofy_domain_process{ m m }
+{
+ \def\tzfnofyFromVal{#1}
+ \def\tzfnofyToVal{#2}
+}
+
+%%% --- end of \tzfnofy
+
+
+%%% \tzfnmax
+%% (variable=\x -- default)
+
+\bool_new:N \g_tzfnmax_BEGIN_cmd_bool
+\bool_new:N \g_tzfnmax_END_cmd_bool
+
+%% \tzfnmaxAtBegin
+\NewDocumentCommand\tzfnmaxAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzfnmax_BEGIN_cmd_bool
+ \tl_gset:No \g_tzfnmax_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzfnmaxAtEnd
+\NewDocumentCommand\tzfnmaxAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzfnmax_END_cmd_bool
+ \tl_gset:No \g_tzfnmax_END_cmd_tl { #1 }
+}
+
+
+%%% \tzfnmax (main)
+%% (variable=\x)
+\use:x{
+ \NewDocumentCommand \exp_not:N \tzfnmax
+ { t' O{} D<>{0,0} D""{} m
+ >{ \SplitArgument {1} { \tl_to_str:n {:} } } r[] +G{} O{} D<>{}
+ }
+}
+{
+ \tl_clear:N \l_tzfnmax_opt_tl
+ \tl_clear:N \l_tzfnmax_path_tl
+ \tl_clear:N \l_tzfnmax_TEMP_cmd_tl
+ \tl_clear:N \l_tzfnmax_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \tzfnmax_domain_process #6
+
+ \tl_put_right:Nx \l_tzfnmax_opt_tl
+ {
+ [
+ thick , samples = 201 ,
+ name~path = #4 ,
+ domain = \tzfnmaxFromVal \c_colon_str \tzfnmaxToVal ,
+ shift = { (#3) } ,
+% varialbe = \exp_not:n { \x } ,
+ \exp_not:n { #2 }
+ ]
+ }
+
+ \bool_if:NTF { \l_tmpa_bool }
+ {
+ \tl_put_right:Nn \l_tzfnmax_path_tl
+ { plot ( { max(#5) } , \x ) } % \x should not be expanded
+ }
+ {
+ \tl_put_right:Nn \l_tzfnmax_path_tl
+ { plot ( \x , { max(#5) } ) } % \x should not be expanded
+ }
+ % to resolve AtBegin issue with "plot" operation
+ \bool_if:NTF \g_tzfnmax_BEGIN_cmd_bool
+ {
+ \tl_put_right:No \l_tzfnmax_TEMP_cmd_tl { \l_tzfnmax_opt_tl }
+ \tl_put_right:No \l_tzfnmax_TEMP_cmd_tl { \l_tzfnmax_path_tl }
+ \exp_last_unbraced:Nf \path \l_tzfnmax_TEMP_cmd_tl ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ \tl_put_right:No \l_tzfnmax_cmd_tl { \l_tzfnmax_opt_tl }
+ \tl_put_right:No \l_tzfnmax_cmd_tl { \g_tzfnmax_BEGIN_cmd_tl } % insert
+ \tl_put_right:Nn \l_tzfnmax_cmd_tl { (tzCSPS) -- } %
+ \tl_put_right:No \l_tzfnmax_cmd_tl { \l_tzfnmax_path_tl }
+ }
+ {
+ \tl_put_right:No \l_tzfnmax_cmd_tl { \l_tzfnmax_opt_tl }
+ \tl_put_right:No \l_tzfnmax_cmd_tl { \l_tzfnmax_path_tl }
+ }
+ \bool_if:NT \g_tzfnmax_END_cmd_bool
+ {
+ \tl_put_right:No \l_tzfnmax_cmd_tl { \g_tzfnmax_END_cmd_tl } % append
+ }
+ \tl_put_right:Nn \l_tzfnmax_cmd_tl
+ { node [ #8 ] { #7 } }
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzfnmax_cmd_tl #9 ;
+
+ \bool_gset_false:N \g_tzfnmax_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzfnmax_END_cmd_bool
+}
+
+\NewDocumentCommand\tzfnmax_domain_process{ m m }
+{
+ \def\tzfnmaxFromVal{#1}
+ \def\tzfnmaxToVal{#2}
+}
+
+%%% --- end of \tzfnmax
+
+
+
+%%% \tzfnmin
+%% (variable=\x -- default)
+
+\bool_new:N \g_tzfnmin_BEGIN_cmd_bool
+\bool_new:N \g_tzfnmin_END_cmd_bool
+
+%% \tzfnminAtBegin
+\NewDocumentCommand\tzfnminAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzfnmin_BEGIN_cmd_bool
+ \tl_gset:No \g_tzfnmin_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzfnminAtEnd
+\NewDocumentCommand\tzfnminAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzfnmin_END_cmd_bool
+ \tl_gset:No \g_tzfnmin_END_cmd_tl { #1 }
+}
+
+
+
+%%% \tzfnmin (main)
+%% (variable=\x)
+\use:x{
+ \NewDocumentCommand \exp_not:N \tzfnmin
+ { t' O{} D<>{0,0} D""{} m
+ >{ \SplitArgument {1} { \tl_to_str:n {:} } } r[] +G{} O{} D<>{}
+ }
+}
+{
+ \tl_clear:N \l_tzfnmin_opt_tl
+ \tl_clear:N \l_tzfnmin_path_tl
+ \tl_clear:N \l_tzfnmin_TEMP_cmd_tl
+ \tl_clear:N \l_tzfnmin_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \tzfnmin_domain_process #6
+
+% \tl_set:No \l_label_pos_tl { \tl_to_str:n { #5 } }
+% \tl_set:No \l_tzfnmin_pathname_tl { \tl_tail:N \l_label_pos_tl }
+ \tl_put_right:Nx \l_tzfnmin_opt_tl
+ {
+ [
+ thick , samples = 201 ,
+ name~path = #4 ,
+% \tl_if_empty:nTF { #4 } { } { #4 } ,
+ domain = \tzfnminFromVal \c_colon_str \tzfnminToVal ,
+ shift = { (#3) } ,
+% variable = \exp_not:n { \x } ,
+ \exp_not:n { #2 }
+ ]
+ }
+
+ \bool_if:NTF { \l_tmpa_bool }
+ {
+ \tl_put_right:Nn \l_tzfnmin_path_tl
+ { plot ( { min(#5) } , \x ) } % \x should not be expanded
+ }
+ {
+ \tl_put_right:Nn \l_tzfnmin_path_tl
+ { plot ( \x , { min(#5) } ) } % \x should not be expanded
+ }
+ % to resolve AtBegin issue with "plot" operation
+ \bool_if:NTF \g_tzfnmin_BEGIN_cmd_bool
+ {
+ \tl_put_right:No \l_tzfnmin_TEMP_cmd_tl { \l_tzfnmin_opt_tl }
+ \tl_put_right:No \l_tzfnmin_TEMP_cmd_tl { \l_tzfnmin_path_tl }
+ \exp_last_unbraced:Nf \path \l_tzfnmin_TEMP_cmd_tl ;
+ \path (current~subpath~start) coordinate (tzCSPS) ;
+ \tl_put_right:No \l_tzfnmin_cmd_tl { \l_tzfnmin_opt_tl }
+ \tl_put_right:No \l_tzfnmin_cmd_tl { \g_tzfnmin_BEGIN_cmd_tl } % insert
+ \tl_put_right:Nn \l_tzfnmin_cmd_tl { (tzCSPS) -- } %
+ \tl_put_right:No \l_tzfnmin_cmd_tl { \l_tzfnmin_path_tl }
+ }
+ {
+ \tl_put_right:No \l_tzfnmin_cmd_tl { \l_tzfnmin_opt_tl }
+ \tl_put_right:No \l_tzfnmin_cmd_tl { \l_tzfnmin_path_tl }
+ }
+ \bool_if:NT \g_tzfnmin_END_cmd_bool
+ {
+ \tl_put_right:No \l_tzfnmin_cmd_tl { \g_tzfnmin_END_cmd_tl } % append
+ }
+ \tl_put_right:Nn \l_tzfnmin_cmd_tl
+ { node [ #8 ] { #7 } }
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzfnmin_cmd_tl #9 ;
+
+ \bool_gset_false:N \g_tzfnmin_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzfnmin_END_cmd_bool
+}
+
+\NewDocumentCommand\tzfnmin_domain_process{ m m }
+{
+ \def\tzfnminFromVal{#1}
+ \def\tzfnminToVal{#2}
+}
+
+%%% --- end of \tzfnmin
+
+
+%%% pdf
+
+%% normal distribution
+
+\NewExpandableDocumentCommand\tzpdfN{ s m m }
+{
+ \IfBooleanTF { #1 }
+ { % standard deviation
+ 1/(#3*sqrt(2*pi))*exp( -1/2*( (\exp_not:n{\x}-#2)^2 / (#3)^2 ) )
+ }
+ { % variance (default)
+ 1/(sqrt(#3)*sqrt(2*pi))*exp(-1/2*((\exp_not:n{\x}-#2)^2/(sqrt(#3))^2))
+ }
+}
+
+
+%% standard normal distribution
+
+\NewExpandableDocumentCommand\tzpdfZ{ }
+{
+% \IfBooleanTF { #1 } {}{} % NOT USED! (to avoid coding error)
+ 1/sqrt(2*pi)*exp( -1/2*( \exp_not:n{\x} )^2 )
+}
+
+
+
+%%% \tzfnarea
+%% no shift, no name path
+
+\use:x{
+ \NewDocumentCommand \exp_not:N \tzfnarea
+ { s O{} m >{ \SplitArgument {1} { \tl_to_str:n {:} } } r[] G{.3} D<>{} }
+}
+{
+ \tl_clear:N \l_tzfnarea_cmd_tl
+
+ \tl_if_empty:nTF { #5 }
+ { \renewcommand\tzfillopacity{\tz@initial@fill@opacity} }
+ { \renewcommand\tzfillopacity{#5} }
+
+ \tzfnarea_domain_process #4
+
+ % collect fill options
+ \IfBooleanTF { #1 }
+ {
+ \tl_put_right:Nx \l_tzfnarea_cmd_tl
+ {
+ [ fill=\tzfillcolor , fill~opacity = \tzfillopacity ,
+ text~opacity = 1 , \exp_not:n { #2 } ]
+ }
+ }
+ {
+ \tl_put_right:Nn \l_tzfnarea_cmd_tl
+ { [ #2 ] }
+ }
+
+
+ \tl_put_right:Nx \l_tzfnarea_cmd_tl
+ {
+ (\tzfnareaFromVal,0) -- plot
+ [ samples = 201 ,
+ domain = \tzfnareaFromVal \c_colon_str \tzfnareaToVal ,
+% variable = \exp_not:n { \x } ,
+ ]
+ }
+ \tl_put_right:No \l_tzfnarea_cmd_tl
+ {
+ ( \exp_not:n { \x } , { #3 } ) -- (\tzfnareaToVal,0)
+ }
+
+ % final action
+ \begin{pgfonlayer}{ \tzfnarealayer } % default = behind
+ \exp_last_unbraced:Nf
+ \path \l_tzfnarea_cmd_tl #6 ;
+ \end{pgfonlayer}
+}
+
+\NewDocumentCommand\tzfnarea_domain_process{ m m }
+{
+ \def\tzfnareaFromVal{#1}
+ \def\tzfnareaToVal{#2}
+}
+
+%%% --- end of \tzfnarea
+
+
+\NewDocumentCommand\tzfnarealine{ t' O{} m m O{} D(){0,0} g O{} D(){0,0} }
+{
+ \tzvXpointat{#3}{#4}(tzfnAL)
+
+ \IfBooleanTF { #1 }
+ {
+ \begin{pgfonlayer}{\tzfnarealayer}
+ \tzto [ \tzfnALstyle , #2 , #8 ] (tzfnAL) (tzfnAL -| #6)
+ \end{pgfonlayer}
+ }
+ {
+ \begin{pgfonlayer}{\tzfnarealayer}
+ \tzto [ \tzfnALstyle , #2 , #8 ] (tzfnAL) (tzfnAL |- #6)
+ \end{pgfonlayer}
+ }
+
+ \IfValueT { #7 }
+ {
+ \tzvXpointat{#3}{#7}(tzfnAR)
+
+ \IfBooleanTF { #1 }
+ {
+ \begin{pgfonlayer}{\tzfnarealayer}
+ \tzto [ \tzfnALstyle , #2 , #8 ] (tzfnAR) (tzfnAR -| #9)
+ \end{pgfonlayer}
+ }
+ {
+ \begin{pgfonlayer}{\tzfnarealayer}
+ \tzto [ \tzfnALstyle , #2 , #8 ] (tzfnAR) (tzfnAR|-#9)
+ \end{pgfonlayer}
+ }
+ }
+}
+
+
+
+
+%%% \tzvfnat
+%% -- vertical line at x
+
+\bool_new:N \g_tzvfnat_BEGIN_cmd_bool
+\bool_new:N \g_tzvfnat_END_cmd_bool
+
+%% \tzvfnatAtBegin
+\NewDocumentCommand\tzvfnatAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzvfnat_BEGIN_cmd_bool
+ \tl_gset:No \g_tzvfnat_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzvfnatAtEnd
+\NewDocumentCommand\tzvfnatAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzvfnat_END_cmd_bool
+ \tl_gset:No \g_tzvfnat_END_cmd_tl { #1 }
+}
+
+%% \tzvfnat (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzvfnat
{ O{} D<>{0,0} D""{} m
@@ -3157,12 +5868,14 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_put_right:Nx \l_tzvfnat_cmd_tl
{
[
+% samples = 201 ,
name~path = #3 ,
shift = { (#2) } ,
-% samples = 200 ,
\exp_not:n { #1 }
]
}
+ \bool_if:NT \g_tzvfnat_BEGIN_cmd_bool
+ { \tl_put_right:No \l_tzvfnat_cmd_tl { \g_tzvfnat_BEGIN_cmd_tl } }
\IfValueTF { #5 }
{
\tl_put_right:Nn \l_tzvfnat_cmd_tl
@@ -3175,10 +5888,15 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
-- (#4,0 |- current~bounding~box.north)
}
}
+ \bool_if:NT \g_tzvfnat_END_cmd_bool
+ { \tl_put_right:No \l_tzvfnat_cmd_tl { \g_tzvfnat_END_cmd_tl } }
\tl_put_right:Nn \l_tzvfnat_cmd_tl
{ node [ #7 ] { #6 } }
% final action
\exp_last_unbraced:Nf \draw \l_tzvfnat_cmd_tl #8 ;
+
+ \bool_gset_false:N \g_tzvfnat_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzvfnat_END_cmd_bool
}
\NewDocumentCommand\tzvfnat_domain_process{ m m }
@@ -3190,10 +5908,27 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzvfnat
-%%% \tzvfn (On) -- vertical line through (x,y)
+%%% \tzvfn (On)
+%% -- vertical line through (x,y)
+
+\bool_new:N \g_tzvfn_BEGIN_cmd_bool
+\bool_new:N \g_tzvfn_END_cmd_bool
+
+%% \tzvfnAtBegin
+\NewDocumentCommand\tzvfnAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzvfn_BEGIN_cmd_bool
+ \tl_gset:No \g_tzvfn_BEGIN_cmd_tl { #1 }
+}
+%% \tzvfnAtEnd
+\NewDocumentCommand\tzvfnAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzvfn_END_cmd_bool
+ \tl_gset:No \g_tzvfn_END_cmd_tl { #1 }
+}
-%%% \tzvfn
+%%% \tzvfn (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzvfn
{ O{} d<> D""{} r()
@@ -3212,6 +5947,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\exp_not:n { #1 }
]
}
+ \bool_if:NT \g_tzvfn_BEGIN_cmd_bool
+ { \tl_put_right:No \l_tzvfn_cmd_tl { \g_tzvfn_BEGIN_cmd_tl } }
\IfValueTF { #5 }
{
\IfValueTF { #2 }
@@ -3243,10 +5980,15 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
}
}
+ \bool_if:NT \g_tzvfn_END_cmd_bool
+ { \tl_put_right:No \l_tzvfn_cmd_tl { \g_tzvfn_END_cmd_tl } }
\tl_put_right:Nn \l_tzvfn_cmd_tl
{ node [ #7 ] { #6 } }
% final action
\exp_last_unbraced:Nf \draw \l_tzvfn_cmd_tl #8 ;
+
+ \bool_gset_false:N \g_tzvfn_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzvfn_END_cmd_bool
}
\NewDocumentCommand\tzvfn_domain_process{ m m }
@@ -3258,7 +6000,27 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzvfn
-%% \tzhfnat
+%%% \tzhfnat
+%% -- horizontal line at y
+
+\bool_new:N \g_tzhfnat_BEGIN_cmd_bool
+\bool_new:N \g_tzhfnat_END_cmd_bool
+
+%% \tzhfnatAtBegin
+\NewDocumentCommand\tzhfnatAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzhfnat_BEGIN_cmd_bool
+ \tl_gset:No \g_tzhfnat_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzhfnatAtEnd
+\NewDocumentCommand\tzhfnatAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzhfnat_END_cmd_bool
+ \tl_gset:No \g_tzhfnat_END_cmd_tl { #1 }
+}
+
+%% \tzhfnat (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzhfnat
{ O{} D<>{0,0} D""{} m
@@ -3279,6 +6041,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\exp_not:n { #1 }
]
}
+ \bool_if:NT \g_tzhfnat_BEGIN_cmd_bool
+ { \tl_put_right:No \l_tzhfnat_cmd_tl { \g_tzhfnat_BEGIN_cmd_tl } }
\IfValueTF { #5 }
{
\tl_put_right:Nn \l_tzhfnat_cmd_tl
@@ -3291,10 +6055,15 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
-- (0,#4 -| current~bounding~box.east)
}
}
+ \bool_if:NT \g_tzhfnat_END_cmd_bool
+ { \tl_put_right:No \l_tzhfnat_cmd_tl { \g_tzhfnat_END_cmd_tl } }
\tl_put_right:Nn \l_tzhfnat_cmd_tl
{ node [ #7 ] { #6 } }
% final action
\exp_last_unbraced:Nf \draw \l_tzhfnat_cmd_tl #8 ;
+
+ \bool_gset_false:N \g_tzhfnat_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzhfnat_END_cmd_bool
}
\NewDocumentCommand\tzhfnat_domain_process{ m m }
@@ -3306,9 +6075,27 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzhfnat
-%%% \tzhfn (On) -- horizontal line through (x,y)
+%%% \tzhfn (On)
+%% -- horizontal line through (x,y)
+
+\bool_new:N \g_tzhfn_BEGIN_cmd_bool
+\bool_new:N \g_tzhfn_END_cmd_bool
-%% \tzhfn
+%% \tzhfnAtBegin
+\NewDocumentCommand\tzhfnAtBegin{ m }
+{
+ \bool_gset_true:N \g_tzhfn_BEGIN_cmd_bool
+ \tl_gset:No \g_tzhfn_BEGIN_cmd_tl { #1 }
+}
+
+%% \tzhfnAtEnd
+\NewDocumentCommand\tzhfnAtEnd{ m }
+{
+ \bool_gset_true:N \g_tzhfn_END_cmd_bool
+ \tl_gset:No \g_tzhfn_END_cmd_tl { #1 }
+}
+
+%% \tzhfn (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzhfn
{ O{} d<> D""{} r()
@@ -3328,6 +6115,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\exp_not:n { #1 }
]
}
+ \bool_if:NT \g_tzhfn_BEGIN_cmd_bool
+ { \tl_put_right:No \l_tzhfn_cmd_tl { \g_tzhfn_BEGIN_cmd_tl } }
\IfValueTF { #5 }
{
\IfValueTF { #2 }
@@ -3363,10 +6152,15 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
}
}
+ \bool_if:NT \g_tzhfn_END_cmd_bool
+ { \tl_put_right:No \l_tzhfn_cmd_tl { \g_tzhfn_END_cmd_tl } }
\tl_put_right:Nn \l_tzhfn_cmd_tl
{ node [ #7 ] { #6 } }
% final action
\exp_last_unbraced:Nf \draw \l_tzhfn_cmd_tl #8 ;
+
+ \bool_gset_false:N \g_tzhfn_BEGIN_cmd_bool
+ \bool_gset_false:N \g_tzhfn_END_cmd_bool
}
\NewDocumentCommand\tzhfn_domain_process{ m m }
@@ -3382,9 +6176,37 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzXpoint -- intersection point of two paths
\NewDocumentCommand\tzXpoint
- { s O{} m m D(){intersection} O{1} +G{} O{} D(){\tz@initial@dot@size} }
+ { s O{} m m D(){intersection} O{1} +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tzXpoint_cmd_tl
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #8 }
+ {
+ \tl_if_in:nnTF { #8 } { [ }
+ { \extract_posopt:w #8 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #8 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #8 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
\path [ name~intersections = { of = #3 ~ and ~ #4 , name = #5 } ] ;
\tl_put_right:Nn \l_tzXpoint_cmd_tl
{
@@ -3396,7 +6218,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_put_right:Nx \l_tzXpoint_cmd_tl
{
- label = { \exp_not:n { #8 } \c_colon_str \exp_not:n { #7 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #7 } } , % pos_str
}
\tl_put_right:Nn \l_tzXpoint_cmd_tl
@@ -3411,15 +6233,119 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzXpoint
+%%% \tzLFnXpoint : linear Xpoint
+\NewDocumentCommand\tzLFnXpoint
+ { s O{} m m o D(){} +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
+{
+ \tl_clear:N \l_tzLFnXpoint_cmd_tl
+
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #8 }
+ {
+ \tl_if_in:nnTF { #8 } { [ }
+ { \extract_posopt:w #8 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #8 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #8 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
+ \IfValueTF { #5 }
+ {
+ \def\x{#5}
+ \path (\x,{#3}) coordinate (tzLFnXA-1) (\x,{#4}) coordinate (tzLFnXB-1);
+ \def\x{\fp_eval:n {1.01*#5+.1}}
+ \path (\x,{#3}) coordinate (tzLFnXA-2) (\x,{#4}) coordinate (tzLFnXB-2);
+ }
+ {
+ \def\x{0}
+ \path (\x,{#3}) coordinate (tzLFnXA-1) (\x,{#4}) coordinate (tzLFnXB-1);
+ \def\x{.1}
+ \path (\x,{#3}) coordinate (tzLFnXA-2) (\x,{#4}) coordinate (tzLFnXB-2);
+ }
+
+ \tl_put_right:Nn \l_tzLFnXpoint_cmd_tl
+ {
+ (intersection~of~tzLFnXA-1--tzLFnXA-2 ~and~ tzLFnXB-1--tzLFnXB-2)
+ coordinate (#6)
+ \IfBooleanTF {#1}
+ { node [ tzdot , fill , minimum~size = #9 , }
+ { node [ tzdot , draw = none , minimum~size = 0pt , }
+ }
+
+ \tl_put_right:Nx \l_tzLFnXpoint_cmd_tl
+ {
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #7 } } , % pos_str
+ }
+
+ \tl_put_right:Nn \l_tzLFnXpoint_cmd_tl
+ {
+ #2
+ ] {}
+ }
+
+ \exp_last_unbraced:Nf \draw \l_tzLFnXpoint_cmd_tl ;
+}
+
+%%% --- end of \tzLFnXpoint
+
+
%%% \tzvXpointat -- vertical intersection point at x
%%% *[<opt>]{<path>}(<coor>)(<coor name>)[<nth>]{<label>}[<[<opt>]angle>](<dotsize>)
\NewDocumentCommand\tzvXpointat
- { s O{} m m D(){intersection} O{1} +G{} O{} D(){\tz@initial@dot@size} }
+ { s O{} m m D(){intersection} O{1} +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tzvXpointat_cmd_tl
\tzvfnat[draw=none]"tzvXpoint-At" {#4} % depends on (current bounding box)
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #8 }
+ {
+ \tl_if_in:nnTF { #8 } { [ }
+ { \extract_posopt:w #8 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #8 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #8 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\path [ name~intersections = { of = tzvXpoint-At ~and~ #3 , name = #5 } ] ;
\tl_put_right:Nn \l_tzvXpointat_cmd_tl
@@ -3432,7 +6358,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_put_right:Nx \l_tzvXpointat_cmd_tl
{
- label = { \exp_not:n { #8 } \c_colon_str \exp_not:n { #7 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #7 } } , % pos_str
}
\tl_put_right:Nn \l_tzvXpointat_cmd_tl
@@ -3452,12 +6378,41 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% -- vertical intersection point at (x,y) of a path
%%% *[<opt>]{<path>}(<coor>)(<coor name>)[<nth>]{<label>}[<[<opt>]angle>](<dotsize>)
\NewDocumentCommand\tzvXpoint
- { s O{} m r() D(){intersection} O{1} +G{} O{} D(){\tz@initial@dot@size} }
+ { s O{} m r() D(){intersection} O{1} +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tzvXpoint_cmd_tl
\tzvfn[draw=none]"tzvXpoint-On"(#4) % depends on (current bounding box)
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #8 }
+ {
+ \tl_if_in:nnTF { #8 } { [ }
+ { \extract_posopt:w #8 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #8 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #8 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\path [ name~intersections = { of = tzvXpoint-On ~and~ #3 , name = #5 } ] ;
\tl_put_right:Nn \l_tzvXpoint_cmd_tl
{
@@ -3469,7 +6424,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_put_right:Nx \l_tzvXpoint_cmd_tl
{
- label = { \exp_not:n { #8 } \c_colon_str \exp_not:n { #7 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #7 } } , % pos_str
}
\tl_put_right:Nn \l_tzvXpoint_cmd_tl
@@ -3488,12 +6443,41 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzhXpointat -- horizontal intersection point at y
\NewDocumentCommand\tzhXpointat
- { s O{} m m D(){intersection} O{1} +G{} O{} D(){\tz@initial@dot@size} }
+ { s O{} m m D(){intersection} O{1} +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tzhXpointat_cmd_tl
\tzhfnat[draw=none]"tzhXpoint-At"{#4} % depends on (current bounding box)
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #8 }
+ {
+ \tl_if_in:nnTF { #8 } { [ }
+ { \extract_posopt:w #8 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #8 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #8 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\path [ name~intersections = { of = tzhXpoint-At ~and~ #3 , name = #5 } ] ;
\tl_put_right:Nn \l_tzhXpointat_cmd_tl
{
@@ -3505,7 +6489,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_put_right:Nx \l_tzhXpointat_cmd_tl
{
- label = { \exp_not:n { #8 } \c_colon_str \exp_not:n { #7 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #7 } } , % pos_str
}
\tl_put_right:Nn \l_tzhXpointat_cmd_tl
@@ -3523,12 +6507,41 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \tzhXpoint (On) -- horizontal intersection point at (x,y)
\NewDocumentCommand\tzhXpoint
- { s O{} m r() D(){intersection} O{1} +G{} O{} D(){\tz@initial@dot@size} }
+ { s O{} m r() D(){intersection} O{1} +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tzhXpoint_cmd_tl
\tzhfn[draw=none]"tzhXpoint-On"(#4) % depends on (current bounding box)
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #8 }
+ {
+ \tl_if_in:nnTF { #8 } { [ }
+ { \extract_posopt:w #8 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #8 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #8 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\path [ name~intersections = { of = tzhXpoint-On ~and~ #3 , name = #5 } ] ;
\tl_put_right:Nn \l_tzhXpoint_cmd_tl
@@ -3541,7 +6554,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\tl_put_right:Nx \l_tzhXpoint_cmd_tl
{
- label = { \exp_not:n { #8 } \c_colon_str \exp_not:n { #7 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #7 } } , % pos_str
}
\tl_put_right:Nn \l_tzhXpoint_cmd_tl
@@ -3585,6 +6598,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
}
+
%%% \tzaxesL -- simpler version of \tzaxes
\NewDocumentCommand\tzaxesL{ t' O{} d<> r() r() +G{} O{} +G{} O{} }
@@ -3634,6 +6648,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% -- end of \tzaxesL
+
%%% \tzaxisx
\NewDocumentCommand\tzaxisx{ s O{} D<>{0} m m G{} O{} }
@@ -3642,6 +6657,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
( #4 , #3 ) -- ( #5 , #3 ) node [ right , #7 ] { #6 } ;
}
+
%%% \tzaxisy
\NewDocumentCommand\tzaxisy{ s O{} D<>{0} m m G{} O{} }
@@ -3734,7 +6750,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzticks
-%%% \tztikcsx -- ticks and labels along the x axis
+%%% \tztikcsx (main)
+%% -- ticks and labels along the x axis
\use:x{
\NewDocumentCommand \exp_not:N \tzticksx
@@ -3784,7 +6801,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzticksx
-%%% \tztikcsy -- ticks and labels along with the y axis
+%%% \tztikcsy (main)
+%% -- ticks and labels along with the y axis
\use:x{
\NewDocumentCommand \exp_not:N \tzticksy
@@ -3849,10 +6867,77 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
text~depth = .25ex ,
below , #6 ] { #5 }
-- (#4) -- (tzProj |- #4)
- node [ left , #8 ] {#7} ;
+ node [ left , #8 ] { #7 } ;
\IfBooleanT {#1} { \tzdot*(#4)(#9) }
}
+%%% \tzprojs : semicolon version
+
+%\bool_new:N \l_tzprojs_shift_coor_bool
+
+%%% \tzprojs (main)
+\NewDocumentCommand\tzprojs { s O{} d<> }
+{
+ \tl_clear:N \l_tzprojs_cmd_tl
+% \tl_clear:N \l_tzprojs_opt_tl
+ \tl_clear:N \l_tzprojs_coors_tl
+
+ \IfValueTF { #3 }
+ { \coordinate (tzProjs) at (#3) ; }
+ { \coordinate (tzProjs) at (0,0) ; }
+
+ \tl_put_right:Nn \l_tzprojs_cmd_tl { [ dotted , #2 ] }
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \tzprojs_check_token:n
+}
+
+\cs_new:Npn \tzprojs_check_token:n #1
+{
+% \token_if_eq_charcode:NNTF #1 (
+% { \tzprojs_sub_fn #1 }
+% { \tzprojs_stop_action }
+ \str_case:nnF { #1 }
+ {
+ { ( } { \tzprojs_sub_fn #1 }
+ { ; } { \tzprojs_stop_action }
+ }
+ {
+ \msg_error:nn { tzplot } { semicolon-error }
+ }
+}
+
+\NewDocumentCommand\tzprojs_sub_fn { r() G{} O{} G{} O{} }
+{
+ % collect only coordinates (to print dots)
+ \tl_put_right:Nn \l_tzprojs_coors_tl { (#1) }
+ % collect cmd_tl (for all inputs)
+ \tl_put_right:Nn \l_tzprojs_cmd_tl
+ {
+ (#1 |- tzProjs)
+ node [ text~height = 1.25ex ,
+ text~depth = .25ex ,
+ below , #3 ] { #2 }
+ -- (#1) -- (tzProjs |- #1)
+ node [ left , #5 ] { #4 }
+ }
+
+ \tzprojs_check_token:n
+}
+
+\NewDocumentCommand\tzprojs_stop_action { D(){\tz@initial@dot@size} }
+{
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzprojs_cmd_tl ;
+ \bool_if:NT \l_tmpa_bool
+ { \exp_last_unbraced:NNf \tzdots* \l_tzprojs_coors_tl ; (#1) }
+}
+%%% --- end of \tzprojs
+
+
%%% \tzprojx
\NewDocumentCommand\tzprojx
@@ -3883,35 +6968,276 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
\IfBooleanT { #1 } { \tzdot*(#4)(#7) }
}
+%%% \tzprojsx : semicolon version
+
+%\bool_new:N \l_tzprojsx_shift_coor_bool
+
+%%% \tzprojsx (main)
+\NewDocumentCommand\tzprojsx { s O{} d<> }
+{
+ \tl_clear:N \l_tzprojsx_cmd_tl
+% \tl_clear:N \l_tzprojsx_opt_tl
+ \tl_clear:N \l_tzprojsx_coors_tl
+
+ \IfValueTF { #3 }
+ { \coordinate (tzProjsx) at (#3) ; }
+ { \coordinate (tzProjsx) at (0,0) ; }
+
+ \tl_put_right:Nn \l_tzprojsx_cmd_tl { [ dotted , #2 ] }
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \tzprojsx_check_token:n
+}
+
+\cs_new:Npn \tzprojsx_check_token:n #1
+{
+% \token_if_eq_charcode:NNTF #1 (
+% { \tzprojsx_sub_fn #1 }
+% { \tzprojsx_stop_action }
+ \str_case:nnF { #1 }
+ {
+ { ( } { \tzprojsx_sub_fn #1 }
+ { ; } { \tzprojsx_stop_action }
+ }
+ {
+ \msg_error:nn { tzplot } { semicolon-error }
+ }
+}
+
+\NewDocumentCommand\tzprojsx_sub_fn { r() G{} O{} }
+{
+ % collect only coordinates (to print dots)
+ \tl_put_right:Nn \l_tzprojsx_coors_tl { (#1) }
+ % collect cmd_tl (for all inputs)
+ \tl_put_right:Nn \l_tzprojsx_cmd_tl
+ {
+ (#1) -- (#1 |- tzProjsx)
+ node [ text~height = 1.25ex ,
+ text~depth = .25ex ,
+ below , #3 ] { #2 }
+ }
+
+ \tzprojsx_check_token:n
+}
+
+\NewDocumentCommand\tzprojsx_stop_action { D(){\tz@initial@dot@size} }
+{
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzprojsx_cmd_tl ;
+ \bool_if:NT \l_tmpa_bool
+ { \exp_last_unbraced:NNf \tzdots* \l_tzprojsx_coors_tl ; (#1) }
+}
+%%% --- end of \tzprojsx
+
+
+%%% \tzprojsy : semicolon version
+
+%\bool_new:N \l_tzprojsy_shift_coor_bool
+
+%%% \tzprojsy (main)
+\NewDocumentCommand\tzprojsy { s O{} d<> }
+{
+ \tl_clear:N \l_tzprojsy_cmd_tl
+% \tl_clear:N \l_tzprojsy_opt_tl
+ \tl_clear:N \l_tzprojsy_coors_tl
+
+ \IfValueTF { #3 }
+ { \coordinate (tzProjsy) at (#3) ; }
+ { \coordinate (tzProjsy) at (0,0) ; }
+
+ \tl_put_right:Nn \l_tzprojsy_cmd_tl { [ dotted , #2 ] }
+
+ \IfBooleanTF { #1 }
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \tzprojsy_check_token:n
+}
+
+\cs_new:Npn \tzprojsy_check_token:n #1
+{
+% \token_if_eq_charcode:NNTF #1 (
+% { \tzprojsy_sub_fn #1 }
+% { \tzprojsy_stop_action }
+ \str_case:nnF { #1 }
+ {
+ { ( } { \tzprojsy_sub_fn #1 }
+ { ; } { \tzprojsy_stop_action }
+ }
+ {
+ \msg_error:nn { tzplot } { semicolon-error }
+ }
+}
+
+\NewDocumentCommand\tzprojsy_sub_fn { r() G{} O{} }
+{
+ % collect only coordinates (to print dots)
+ \tl_put_right:Nn \l_tzprojsy_coors_tl { (#1) }
+ % collect cmd_tl (for all inputs)
+ \tl_put_right:Nn \l_tzprojsy_cmd_tl
+ {
+ (#1) -- (#1 -| tzProjsy)
+ node [ left , #3 ] { #2 }
+ }
+
+ \tzprojsy_check_token:n
+}
+
+\NewDocumentCommand\tzprojsy_stop_action { D(){\tz@initial@dot@size} }
+{
+ % final action
+ \exp_last_unbraced:Nf \draw \l_tzprojsy_cmd_tl ;
+ \bool_if:NT \l_tmpa_bool
+ { \exp_last_unbraced:NNf \tzdots* \l_tzprojsy_coors_tl ; (#1) }
+}
+%%% --- end of \tzprojsy
+
%%%%% Nodes
%%% \tznode -- putting texts (and labels as option)
-\NewDocumentCommand\tznode{ s O{} d<> r() D(){tzNodeName} +G{} O{} }
+\NewDocumentCommand\tznode{ s O{} d<> r() D(){tzNodeName} +m O{} D<>{} }
{
\IfBooleanTF { #1 }
{
\IfValueTF { #3 }
- { \node [ draw , #2 ] (#5) at ([shift={(#3)}]#4) [ #7 ] { #6 } ; }
- { \node [ draw , #2 ] (#5) at (#4) [ #7 ] { #6 } ; }
+ { \node #8 [ draw , #2 ] (#5) at ([shift={(#3)}]#4) [ #7 ] { #6 } ; }
+ { \node #8 [ draw , #2 ] (#5) at (#4) [ #7 ] { #6 } ; }
}
{
\IfValueTF { #3 }
- { \node [ #2 ] (#5) at ([shift={(#3)}]#4) [ #7 ] { #6 } ; }
- { \node [ #2 ] (#5) at (#4) [ #7 ] { #6 } ; }
+ { \node #8 [ #2 ] (#5) at ([shift={(#3)}]#4) [ #7 ] { #6 } ; }
+ { \node #8 [ #2 ] (#5) at (#4) [ #7 ] { #6 } ; }
}
}
+%%% --- end of \tznode
+
+
+%%% \tznodes
+%%% repeat pattern: (coor)(nodename){label}[pos]
+
+%\tl_new:N \l_tznodes_opt_tl
+%\tl_new:N \l_tznodes_cmd_tl
+\bool_new:N \l_tznodes_shift_coor_bool
+
+%%% \tznodes (main)
+\NewDocumentCommand\tznodes{ s O{} d<> }
+{
+ \tl_clear:N \l_tznodes_cmd_tl
+
+ \IfBooleanTF { #1 }
+ {
+ \tl_set:Nn \l_tznodes_cmd_tl { [ every~node/.style = { draw , #2 } ] }
+ }
+ {
+ \tl_set:Nn \l_tznodes_cmd_tl { [ every~node/.style = { #2 } ] }
+ }
+
+ \IfValueTF { #3 }
+ {
+ \tl_set:Nn \l_tznodes_shift_coor_tl { #3 }
+ \bool_set_true:N \l_tznodes_shift_coor_bool
+ }
+ {
+ \tl_clear:N \l_tznodes_shift_coor_tl
+ \bool_set_false:N \l_tznodes_shift_coor_bool
+ }
+ \tznodes_check_token:n
+}
+
+\cs_new:Npn \tznodes_check_token:n #1
+{
+% \token_if_eq_charcode:NNTF #1 (
+% { \tznodes_sub_fn #1 }
+% { \tznodes_stop_action }
+ \str_case:nnF { #1 }
+ {
+ { ( } { \tznodes_sub_fn #1 }
+ { ; } { \tznodes_late_opt_fn }
+ }
+ {
+% \tznodes_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
+ }
+}
+
+
+\NewDocumentCommand\tznodes_sub_fn { r() r() +G{} O{} }
+{
+ \bool_if:NTF \l_tznodes_shift_coor_bool
+ {
+ \tl_put_right:Nx \l_tznodes_cmd_tl
+ {% if shift
+ ( [ shift = { (\l_tznodes_shift_coor_tl) } ] #1 )
+ }
+ }
+ { \tl_put_right:Nn \l_tznodes_cmd_tl { (#1) } }
+
+ \tl_put_right:Nn \l_tznodes_cmd_tl { node (#2) } %% node (name)
+ \tl_put_right:Nn \l_tznodes_cmd_tl
+ { [ #4 ] { #3 } }
+ \tznodes_check_token:n
+}
+
+\NewDocumentCommand\tznodes_late_opt_fn { D<>{} }
+{
+ % #1 does nothing (kept for consistency with \tznodedots)
+ \tznodes_stop_action
+}
+
+
+\NewDocumentCommand\tznodes_stop_action {}
+{
+ \exp_last_unbraced:Nf \path \l_tznodes_cmd_tl ;
+}
+
+%%% --- end of \tznodes
+
+
+
+%%% \tznodedot (main)
-%%% \tznodedot
\NewDocumentCommand\tznodedot
- { s O{} d<> r() D(){tzNodeName} +G{} O{} D(){\tz@initial@dot@size} }
+ { s O{} d<> r() D(){tzNodeName} +G{} >{\TrimSpaces}o D(){\tz@initial@dot@size} }
{
\tl_clear:N \l_tznodedot_cmd_tl
\renewcommand\tzdotsize{ #8 }
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #7 }
+ {
+ \tl_if_in:nnTF { #7 } { [ }
+ { \extract_posopt:w #7 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #7 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #7 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
\IfValueTF { #3 }
{% if shift
\tl_put_right:Nn \l_tznodedot_cmd_tl
@@ -3930,7 +7256,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
}
\tl_put_right:Nx \l_tznodedot_cmd_tl
{
- label = { \exp_not:n { #7 } \c_colon_str \exp_not:n { #6 } } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #6 } } , % str_opt
}
\tl_put_right:Nn \l_tznodedot_cmd_tl
{
@@ -3942,6 +7268,131 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tznodedot
+%%% \tznodedots
+%%% repeat pattern: (coor)(nodename){label}[pos]
+
+\tl_new:N \l_tznodedots_opt_tl
+\tl_new:N \l_tznodedots_cmd_tl
+\bool_new:N \l_tznodedots_shift_coor_bool
+
+%%% \tznodedots (main)
+\NewDocumentCommand\tznodedots{ s O{} d<> }
+{
+ \tl_clear:N \l_tznodedots_cmd_tl
+
+ \IfBooleanTF { #1 }
+ { \tl_set:Nn \l_tznodedots_STYLE_fill_tl { fill } }
+ { \tl_set:Nn \l_tznodedots_STYLE_fill_tl { fill = none } }
+
+ \tl_if_empty:nTF { #2 }
+ { \tl_set:Nn \l_tznodedots_opt_tl { tzdot } }
+ { \tl_set:Nn \l_tznodedots_opt_tl { tzdot , #2 } }
+
+ \IfValueTF { #3 }
+ {
+ \tl_set:Nn \l_tznodedots_shift_coor_tl { #3 }
+ \bool_set_true:N \l_tznodedots_shift_coor_bool
+ }
+ {
+ \tl_clear:N \l_tznodedots_shift_coor_tl
+ \bool_set_false:N \l_tznodedots_shift_coor_bool
+ }
+
+ \tznodedots_check_token:n
+}
+
+\cs_new:Npn \tznodedots_check_token:n #1
+{
+% \token_if_eq_charcode:NNTF #1 (
+% { \tznodedots_sub_fn #1 }
+% { \tznodedots_stop_action }
+ \str_case:nnF { #1 }
+ {
+ { ( } { \tznodedots_sub_fn #1 }
+ { ; } { \tznodedots_late_opt_fn }
+ }
+ {
+% \tznodedots_stop_action
+ \msg_error:nn { tzplot } { semicolon-error }
+ }
+}
+
+
+\NewDocumentCommand\tznodedots_sub_fn { r() r() +G{} >{\TrimSpaces}o }
+{
+%%%%%% to use string replacement for label positions
+ \IfValueTF { #4 }
+ {
+ \tl_if_in:nnTF { #4 } { [ }
+ { \extract_posopt:w #4 \q_stop } % ndh
+ {
+ \tl_set:Nx \l_label_pos_str_trimmed_tl { \tl_trim_spaces:n { #4 } }
+ \str_case_e:nnF { \l_label_pos_str_trimmed_tl }
+ {
+ {l} { \tl_set:Nn \l_label_pos_str_tl {left} }
+ {r} { \tl_set:Nn \l_label_pos_str_tl {right} }
+ {a} { \tl_set:Nn \l_label_pos_str_tl {above} }
+ {b} { \tl_set:Nn \l_label_pos_str_tl {below} }
+ {c} { \tl_set:Nn \l_label_pos_str_tl {center} }
+ {al} { \tl_set:Nn \l_label_pos_str_tl {above~left} }
+ {ar} { \tl_set:Nn \l_label_pos_str_tl {above~right} }
+ {bl} { \tl_set:Nn \l_label_pos_str_tl {below~left} }
+ {br} { \tl_set:Nn \l_label_pos_str_tl {below~right} }
+ }
+ {
+ \tl_set:Nn \l_label_pos_str_tl { #4 }
+ }
+ }
+ }
+ {
+ \tl_clear:N \l_label_pos_str_tl
+ }
+%%%%%%%%%%
+
+ \bool_if:NTF \l_tznodedots_shift_coor_bool
+ {
+ \tl_put_right:Nx \l_tznodedots_cmd_tl
+ {% if shift
+ ( [ shift = { (\l_tznodedots_shift_coor_tl) } ] #1 )
+ }
+ }
+ { \tl_put_right:Nn \l_tznodedots_cmd_tl { (#1) } }
+
+ \tl_put_right:Nn \l_tznodedots_cmd_tl { node (#2) } %% node (name)
+
+ \tl_put_right:Nx \l_tznodedots_cmd_tl
+ {
+ [
+ \l_tznodedots_STYLE_fill_tl ,
+ minimum~size = \exp_not:n { \tzdotsize } ,
+ label = { \l_label_pos_str_tl \c_colon_str \exp_not:n { #3 } } , % pos_str
+ }
+ \tl_put_right:No \l_tznodedots_cmd_tl % expand `once'
+ {
+ \l_tznodedots_opt_tl
+ ] {}
+ }
+ \tznodedots_check_token:n
+}
+
+\NewDocumentCommand\tznodedots_late_opt_fn { D(){\tz@initial@dot@size} }
+{
+ \renewcommand\tzdotsize{ #1 }
+
+ \tznodedots_stop_action
+}
+
+
+\NewDocumentCommand\tznodedots_stop_action {}
+{
+ \exp_last_unbraced:Nf \path \l_tznodedots_cmd_tl ;
+}
+
+%%% --- end of \tznodedots
+
+
+
+
%%% \tznodeframe
@@ -4030,7 +7481,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%% secant line
-%%% \tzsecantat
+%%% \tzsecantat (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzsecantat
@@ -4129,7 +7580,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tzsecantat
-%%% \tzsecant
+%%% \tzsecant (main)
\use:x{
\NewDocumentCommand \exp_not:N \tzsecant
@@ -4256,15 +7707,224 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% \gdef\TANCurve{<#m>}\gdef\TANWhere{<#n>}
-%%%%% Tangent lines
+%%%%% Slope lines
+%% No <shift coor>
+%% No <shift coor>
+%% No <shift coor>
-%%% ref. \settztangentepsilon
+%%% \tzslopeat
+%% -- slope line at x
-\bool_new:N \l_tztangentat_bbox_bool
+\bool_new:N \l_tzslopeat_bbox_bool
+
+%%% \tzslopeat (main)
+\NewDocumentCommand\tzslopeat
+ { O{} m m
+ >{ \SplitArgument { 1 } { , } } d()
+ m O{0} +G{} O{} D<>{}
+ }
+{
+ % to resolve discrepancy (due to bounding box), when repeated
+ \bool_if:nTF
+ {
+ \str_if_eq_p:ee { \TANCurve } { #2 } &&
+ \str_if_eq_p:ee { \TANWhere } { #3 }
+ }
+ { \bool_set_true:N \l_tzslopeat_bbox_bool }
+ { \bool_set_false:N \l_tzslopeat_bbox_bool }
+
+ % for local change of epsilon_1, epsilon_2
+ \IfValueT { #4 }
+ {
+ \tzslopeat_epsilon_process #4
+ \renewcommand\tzslopeepsilonL{\tzslopeatEpsilonOne}
+ \renewcommand\tzslopeepsilonR{\tzslopeatEpsilonTwo}
+ }
+
+ % getting ready
+ \coordinate (LXcoor) at ($(#3,0)-(\tzslopeepsilonL,0)$) ;
+ \coordinate (RXcoor) at ($(#3,0)+(\tzslopeepsilonR,0)$) ;
+
+ \bool_if:NTF \l_tzslopeat_bbox_bool
+ {
+ \IfNodeDefined{bbxBottom}{}
+ {
+ \coordinate (bbxTop) at (current~bounding~box.north) ;
+ \coordinate (bbxBottom) at (current~bounding~box.south) ;
+ }
+ }
+ {
+ \coordinate (bbxTop) at (current~bounding~box.north) ;
+ \coordinate (bbxBottom) at (current~bounding~box.south) ;
+ }
+
+ % find vertical X points
+ \path [ name~path = C-vline ] (#3,0 |- bbxBottom) -- (#3,0 |- bbxTop) ;
+ \path [ name~intersections = { of = #2 ~ and ~ C-vline , name = TANp } ] ;
+
+ \path [ name~path = L-vline ] (LXcoor |- bbxBottom) -- (LXcoor |- bbxTop) ;
+ \path [ name~intersections = { of = #2 ~ and ~ L-vline , name = LXcut } ] ;
+
+ \path [ name~path = R-vline ] (RXcoor |- bbxBottom) -- (RXcoor |- bbxTop) ;
+ \path [ name~intersections = { of = #2 ~ and ~ R-vline , name = RXcut } ] ;
+
+ % move to tangent point
+ \coordinate (tzXproj)
+ at ($(LXcut-1)!(TANp-1)!(RXcut-1)$); % projection
+ \coordinate (LLpoint)
+ at ($(LXcut-1)+(TANp-1)-(tzXproj)$); % move
+ \coordinate (RRpoint)
+ at ($(RXcut-1)+(TANp-1)-(tzXproj)$); % move
+
+ % determine final extended points
+ \tl_set:Nx \l_label_pos_tl
+ {
+ (RRpoint) -- (TANp-1) --
+ ([turn]#6 \c_colon_str #5/2 ) coordinate (final-LL)
+ }
+ \tl_set:Nx \l_tmpb_tl
+ {
+ (LLpoint) -- (TANp-1) --
+ ([turn]#6 \c_colon_str #5/2 ) coordinate (final-RR)
+ }
+
+ \exp_last_unbraced:Nf \path \l_label_pos_tl ;
+ \exp_last_unbraced:Nf \path \l_tmpb_tl ;
+
+ \tl_set:Nn \l_tzslopeat_cmd_tl
+ {
+ [ #1 ] (final-LL) -- (final-RR)
+ }
+
+ \gdef\TANCurve{#2}\gdef\TANWhere{#3}
+
+ \begin{pgfonlayer}{\tzslopelayer}
+ \exp_last_unbraced:Nf \draw \l_tzslopeat_cmd_tl node [ #8 ] { #7 } #9 ;
+ \end{pgfonlayer}
+ % to resolve TikZ issue: unknown path name with layer group
+ \exp_last_unbraced:Nf \path \l_tzslopeat_cmd_tl ;
+}
+
+\NewDocumentCommand\tzslopeat_epsilon_process{ m m }
+{
+ \def\tzslopeatEpsilonOne{#1}
+ \def\tzslopeatEpsilonTwo{#2}
+}
+
+%%% --- end of \tzslopeat
+
+
+%%% \tzslope (On) -- slope line at (x,y)
+
+\bool_new:N \l_tzslope_bbox_bool
+
+%%% \tzslope (main)
+\NewDocumentCommand\tzslope
+ { O{} m r()
+ >{ \SplitArgument { 1 } { , } } d()
+ m O{0} +G{} O{} D<>{}
+ }
+{
+ % to resolve discrepancy (due to bounding box), when repeated
+ \bool_if:nTF
+ {
+ \str_if_eq_p:ee { \TANCurve } { #2 } &&
+ \str_if_eq_p:ee { \TANWhere } { #3 }
+ }
+ { \bool_set_true:N \l_tzslope_bbox_bool }
+ { \bool_set_false:N \l_tzslope_bbox_bool }
+
+ % for local change of epsilon_1, epsilon_2
+ \IfValueT { #4 }
+ {
+ \tzslope_epsilon_process #4
+ \renewcommand\tzslopeepsilonL{\tzslopeEpsilonOne}
+ \renewcommand\tzslopeepsilonR{\tzslopeEpsilonTwo}
+ }
+
+ % getting ready
+ \coordinate (LXcoor) at ($(#3)-(\tzslopeepsilonL,0)$) ;
+ \coordinate (RXcoor) at ($(#3)+(\tzslopeepsilonR,0)$) ;
+
+ \bool_if:NTF \l_tzslope_bbox_bool
+ {
+ \IfNodeDefined{bbxBottom}{}
+ {
+ \coordinate (bbxTop) at (current~bounding~box.north) ;
+ \coordinate (bbxBottom) at (current~bounding~box.south) ;
+ }
+ }
+ {
+ \coordinate (bbxTop) at (current~bounding~box.north) ;
+ \coordinate (bbxBottom) at (current~bounding~box.south) ;
+ }
+
+ % find vertical X points
+ \path [ name~path = C-vline ] (#3,0 |- bbxBottom) -- (#3,0 |- bbxTop) ;
+ \path [ name~intersections = { of = #2 ~ and ~ C-vline , name = TANp } ] ;
+
+ \path [ name~path = L-vline ] (LXcoor |- bbxBottom) -- (LXcoor |- bbxTop) ;
+ \path [ name~intersections = { of = #2 ~ and ~ L-vline , name = LXcut } ] ;
+
+ \path [ name~path = R-vline ] (RXcoor |- bbxBottom) -- (RXcoor |- bbxTop) ;
+ \path [ name~intersections = { of = #2 ~ and ~ R-vline , name = RXcut } ] ;
+
+ % move to tangent point
+ \coordinate (tzXproj)
+ at ($(LXcut-1)!(TANp-1)!(RXcut-1)$); % projection
+ \coordinate (LLpoint)
+ at ($(LXcut-1)+(TANp-1)-(tzXproj)$); % move
+ \coordinate (RRpoint)
+ at ($(RXcut-1)+(TANp-1)-(tzXproj)$); % move
+
+ % determine final extended points
+ \tl_set:Nx \l_label_pos_tl
+ {
+ (RRpoint) -- (TANp-1) --
+ ([turn]#6 \c_colon_str #5/2 ) coordinate (final-LL)
+ }
+ \tl_set:Nx \l_tmpb_tl
+ {
+ (LLpoint) -- (TANp-1) --
+ ([turn]#6 \c_colon_str #5/2 ) coordinate (final-RR)
+ }
+
+ \exp_last_unbraced:Nf \path \l_label_pos_tl ;
+ \exp_last_unbraced:Nf \path \l_tmpb_tl ;
+
+ \tl_set:Nn \l_tzslope_cmd_tl
+ {
+ [ #1 ] (final-LL) -- (final-RR)
+ }
+
+ \gdef\TANCurve{#2}\gdef\TANWhere{#3}
+
+ \begin{pgfonlayer}{\tzslopelayer}
+ \exp_last_unbraced:Nf \draw \l_tzslope_cmd_tl node [ #8 ] { #7 } #9 ;
+ \end{pgfonlayer}
+ % to resolve TikZ issue: unknown path name with layer group
+ \exp_last_unbraced:Nf \path \l_tzslope_cmd_tl ;
+}
+
+\NewDocumentCommand\tzslope_epsilon_process{ m m }
+{
+ \def\tzslopeEpsilonOne{#1}
+ \def\tzslopeEpsilonTwo{#2}
+}
+
+%%% --- end of \tzslope
+
+
+
+%%%%% Tangent lines
%%% \tztangentat -- tangent to a path at x
+%%% ref. \settztangentepsilon
%%% [<opt>]<shift coor>"<path name>"{<path>}{<x>}(<epsilon1>,<epsilon2>)[<from>:<to>]{<text>}[<pos,opt>]<code.append>
+\bool_new:N \l_tztangentat_bbox_bool
+
+%%% \tztangentat (main)
\use:x{
\NewDocumentCommand \exp_not:N \tztangentat
{ s O{} d<> D""{} m m
@@ -4333,7 +7993,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
at ($(RXcut-1)+(TANp-1)-(tzXproj)$); % move
% determine final extended points
- \tl_set:Nx \l_tmpa_tl
+ \tl_set:Nx \l_label_pos_tl
{
(RRpoint) -- (TANp-1) --
([turn]0 \c_colon_str ~ -\tztangentatFromVal) coordinate (final-LL)
@@ -4344,7 +8004,7 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
([turn]0 \c_colon_str ~ \tztangentatToVal) coordinate (final-RR)
}
- \exp_last_unbraced:Nf \path \l_tmpa_tl ;
+ \exp_last_unbraced:Nf \path \l_label_pos_tl ;
\exp_last_unbraced:Nf \path \l_tmpb_tl ;
\tzgetxyval(LLpoint){\tzTANLLX}{\tzTANLLY}
@@ -4414,11 +8074,12 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tztangentat
-\bool_new:N \l_tztangent_bbox_bool
-
%%% \tztangent (On) -- tangent to a path at (x,y)
%%% [<opt>]<shift coor>"<path name>"{<path>}(<coor>)(<epsilon1>,<epsilon2>)[<from>:<to>]{<text>}[<pos,opt>]<code.append>
+\bool_new:N \l_tztangent_bbox_bool
+
+%%% \tztangent (main)
\use:x{
\NewDocumentCommand \exp_not:N \tztangent
{ s O{} d<> D""{} m r()
@@ -4487,14 +8148,14 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
at ($(RXcut-1)+(TANp-1)-(tzXproj)$); % move
% determine final extended points
- \tl_set:Nx \l_tmpa_tl
+ \tl_set:Nx \l_label_pos_tl
{ (RRpoint) -- (TANp-1) --
([turn]0 \c_colon_str ~ -\tztangentFromVal) coordinate (final-LL) }
\tl_set:Nx \l_tmpb_tl
{ (LLpoint) -- (TANp-1) --
([turn]0 \c_colon_str ~ \tztangentToVal) coordinate (final-RR) }
- \exp_last_unbraced:Nf \path \l_tmpa_tl ;
+ \exp_last_unbraced:Nf \path \l_label_pos_tl ;
\exp_last_unbraced:Nf \path \l_tmpb_tl ;
\tzgetxyval(LLpoint){\tzTANLLX}{\tzTANLLY}
@@ -4564,6 +8225,8 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% --- end of \tztangent
+
+
%%%%% \tzbrace
%%% \tzbrace'[<opt>]{<raise>}[<brace opt>]
@@ -4596,6 +8259,232 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%%% -- end of \tzbrace
+%%%(ADDED)
+%%% \tzsnake
+
+\bool_new:N \l_tzsnake_shift_coor_bool
+
+%%% \tzsnake (main)
+\NewDocumentCommand\tzsnake{ s t+ o G{5pt} O{} d<> }
+{
+ \tl_clear:N \l_tzsnake_cmd_tl
+
+ \IfBooleanTF { #1 } % (*) or not (NOT USED!)
+ { \bool_set_true:N \l_tmpa_bool }
+ { \bool_set_false:N \l_tmpa_bool }
+
+ \IfBooleanTF { #2 } % (+) or not
+ { \bool_set_true:N \l_tmpb_bool }
+ { \bool_set_false:N \l_tmpb_bool }
+
+ \IfValueTF { #3 }
+ { \tl_set:Nn \l_tzsnake_opt_tl { #3 } }
+ { \tl_clear:N \l_tzsnake_opt_tl }
+
+ \tl_set:Nn \l_tzsnake_segment_length_tl { #4 }
+
+ \tl_set:Nn \l_tzsnake_snake_opt_tl { #5 }
+
+ \IfValueTF { #6 }
+ {
+ \tl_set:Nn \l_tzsnake_shift_coor_tl { #6 }
+ \bool_set_true:N \l_tzsnake_shift_coor_bool
+ }
+ {
+ \tl_clear:N \l_tzsnake_shift_coor_tl
+ \bool_set_false:N \l_tzsnake_shift_coor_bool
+ }
+
+ \tzsnake_check_token:n
+}
+
+\cs_new:Npn \tzsnake_check_token:n #1
+{
+ \str_if_eq:nnT { #1 } { ( }
+ { \tzsnake_sub_fn ( }
+% \tzsnake_stop_action
+}
+
+\NewDocumentCommand\tzsnake_sub_fn{ r() +G{} O{} r() +G{} O{} D<>{} }
+{
+
+ \bool_if:NTF \l_tzsnake_shift_coor_bool
+ {% if shift
+ \tl_put_right:Nx \l_tzsnake_cmd_tl
+ { ([ shift = { (\l_tzsnake_shift_coor_tl) } ]#1) }
+ }
+ { \tl_put_right:Nn \l_tzsnake_cmd_tl { (#1) } }
+
+ \tl_put_right:Nn \l_tzsnake_cmd_tl
+ { to ~node [ #3 ] { #2 } }
+
+ \bool_if:NTF \l_tmpb_bool
+ {% if ++
+ \tl_put_right:Nn \l_tzsnake_cmd_tl { ++ (#4) }
+ }
+ {% no ++
+ \bool_if:NTF \l_tzsnake_shift_coor_bool
+ {% if shift
+ \tl_put_right:Nx \l_tzsnake_cmd_tl
+ { ([ shift = { (\l_tzsnake_shift_coor_tl) } ]#4) }
+ }
+ { \tl_put_right:Nn \l_tzsnake_cmd_tl { (#4) } }
+ }
+
+ \tl_put_right:Nn \l_tzsnake_cmd_tl
+ { node [ #6 ] { #5 } }
+
+ % final action
+ \tl_put_left:No \l_tzsnake_cmd_tl
+ {
+ \l_tzsnake_opt_tl ] % expand `once' needed
+ }
+
+ \tl_put_left:Nx \l_tzsnake_cmd_tl
+ {
+ [ decorate ,
+ decoration =
+ { snake ,
+ pre~length = 5pt , post~length = 5pt ,
+ amplitude = 2.5pt ,
+ segment~length = \l_tzsnake_segment_length_tl ,
+ \l_tzsnake_snake_opt_tl
+ } ,
+ }
+
+ \exp_last_unbraced:Nf \draw \l_tzsnake_cmd_tl #7 ;
+}
+
+%%% --- end of \tzsnake
+
+
+%%%(ADDED)
+%%% \tzspy
+
+\NewDocumentCommand\tzspy{ s O{} G{2cm} O{5} r() r() O{} D<>{} }
+{
+ \IfBooleanTF { #1 } {}{} % (NOT USED!!!)
+ \spy [ circle , size = #3 , magnification = #4 , #2 ]
+ on (#5) in~node at (#6) [ #7 ] #8 ;
+}
+
+%%% --- end of \tzspy
+
+
+
+%%%%% Arrows (copy from istgame.sty and modified)
+
+
+%%%%% middle arrows
+
+%%% mid arrow styles
+%% \tz@default... used
+
+%% defaults
+\def\tz@default@midarrow@pos { .5 } % istgame: .55
+\def\tz@midarrow@pos { \tz@default@midarrow@pos }
+\def\tz@default@midarrow@opt { } % istgame: black
+\def\tz@midarrow@opt { \tz@default@midarrow@opt }
+\def\tz@default@midarrow@shape { > }
+\def\tz@midarrow@shape { \tz@default@midarrow@shape }
+\newcommand*\tzmidarrowpos { \tz@midarrow@pos }
+\newcommand*\tzmidarrowopt { \tz@midarrow@opt }
+\newcommand*\tzmidarrowshape { \tz@midarrow@shape }
+
+
+%% \settzmidarrow
+%% to toss values to arrow tip styles
+\NewDocumentCommand \settzmidarrow
+{
+ D<>{ \tz@default@midarrow@pos }
+ G{ \tz@default@midarrow@shape }
+ O{ \tz@default@midarrow@opt }
+}
+{
+ \renewcommand*\tz@midarrow@pos { #1 }
+ \renewcommand*\tz@midarrow@shape { #2 }
+ \renewcommand*\tzmidarrowopt
+ { - , thin , solid , shorten~> = 0 , shorten~< = 0 , bend~right = 0 , #3 }
+}
+
+%% initial set for defaults
+\AtBeginDocument{\settzmidarrow}
+
+%% -->-- : position controllable by \settzmidarrow<pos>
+\tikzset
+{ -->-- /.style =
+ {
+ decoration =
+ {
+ markings ,
+ mark = at~position~ #1 ~with~
+ { \exp_last_unbraced:NNV \arrow [ \tzmidarrowopt ] { \tzmidarrowshape } }
+ } ,
+ postaction = {decorate}
+ } ,
+ -->-- /.default = \tz@midarrow@pos
+}
+
+
+\tikzset
+{ --o-- /.style =
+ {
+ decoration =
+ {
+ markings ,
+ mark = at~position~ #1 ~with~
+ {
+% \exp_last_unbraced:NNo \arrow [ \tzmidarrowopt ] { o }
+ \exp_last_unbraced:NNf
+ \draw [ \tzmidarrowopt ] (0,0) circle (1.2pt) ;
+ }
+ } ,
+ postaction = {decorate}
+ } ,
+ --o-- /.default = .5 % istgame: .55
+}
+
+\tikzset
+{ --x-- /.style =
+ {
+ decoration =
+ {
+ markings ,
+ mark
+ = at~position~ #1 ~with~
+ { % use the option tzextend{2pt}{2pt} to change lenghts
+ \exp_last_unbraced:NNo
+ \draw [ \tzmidarrowopt ] (2pt,2pt) to (-2pt,-2pt) ;
+ \exp_last_unbraced:NNo
+ \draw [ \tzmidarrowopt ] (-2pt,2pt) to (2pt,-2pt) ;
+ }
+ } ,
+ postaction = {decorate}
+ } ,
+ --x-- /.default = .5
+}
+
+\tikzset
+{ --/-- /.style =
+ {
+ decoration =
+ {
+ markings ,
+ mark
+ = at~position~ #1 ~with~
+ { % use the option tzextend{2pt}{2pt} to change lenghts
+ \exp_last_unbraced:NNo
+ \draw [ \tzmidarrowopt ] (2pt,2pt) to (-2pt,-2pt) ;
+% \exp_last_unbraced:NNo
+% \draw [ \tzmidarrowopt ] (-2pt,2pt) to (2pt,-2pt) ;
+ }
+ } ,
+ postaction = {decorate}
+ } ,
+ --/-- /.default = .5
+}
+
+
%=====================================================
%=====================================================
\ExplSyntaxOff
@@ -4603,5 +8492,27 @@ calligraphy, % for calligraphic brace (load after decorations.pathreplacing)
%=====================================================
+%%% mixed NE
+
+% tzEu
+\NewDocumentCommand\TzEu{D(){LFname}O{}mmD<>{\tmpB}O{right}G{}}
+{
+\def\tmpEu{(#3-#4)*\x+#4}
+\def\tmpB{#3} %???
+\draw [name path=#1,#2] (0,#4) node [left] {#4} plot [domain=0:1] (\x,{\tmpEu}) node [right] {#5} node [#6] {#7};
+}
+
+% tzEu
+%\NewDocumentCommand\TzEu{D(){LFname}O{}mmD<>{\tmpB}O{right}G{}}
+\NewDocumentCommand\TzEU { O{} D""{} m m D[.{0} D.]{1} D<>{\tmpB} O{right} G{} }
+{
+\def\tmpEU{(#3-#4)*\x+#4}
+\def\tmpB{#3} %???
+%\draw [name path=#1,#2] (0,#4) node [left] {#4} plot [domain=0:1] (\x,{\tmpEu}) node [right] {#5} node [#6] {#7};
+\Tzfn [#1]"#2"{\tmpEU}[{#5}..{#6}]
+\path (0,#4) node [left] {#4} plot [domain=0:1] (\x,{\tmpEU}) node [right] {#7} node [#8] {#9};
+}
+
+
\endinput
diff --git a/macros/generic/markdown/VERSION b/macros/generic/markdown/VERSION
index 6e699bbb01..7d641125a9 100644
--- a/macros/generic/markdown/VERSION
+++ b/macros/generic/markdown/VERSION
@@ -1 +1 @@
-2.13.0-0-g1f680a8 (2022/01/30)
+2.14.0-0-g9635d76 (2022/02/28)
diff --git a/macros/generic/markdown/docstrip.cfg b/macros/generic/markdown/docstrip.cfg
index b1672cc298..2531152108 100644
--- a/macros/generic/markdown/docstrip.cfg
+++ b/macros/generic/markdown/docstrip.cfg
@@ -22,7 +22,7 @@
-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE^^J%
-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.^^J%
-- ^^J%
--- Copyright (C) 2016-2021 Vít Novotný^^J%
+-- Copyright (C) 2016-2022 Vít Novotný^^J%
-- ^^J%
-- This work may be distributed and/or modified under the^^J%
-- conditions of the LaTeX Project Public License, either version 1.3^^J%
diff --git a/macros/generic/markdown/examples/context-mkii.tex b/macros/generic/markdown/examples/context-mkii.tex
index b5aaa0e04e..19a7fb2931 100644
--- a/macros/generic/markdown/examples/context-mkii.tex
+++ b/macros/generic/markdown/examples/context-mkii.tex
@@ -35,7 +35,9 @@
% Typeset the document `example.tex` that we prepared separately using the
% Lua command-line interface and that contains a plain TeX representation
% of the document `example.md`.
+\catcode`\%=12\relax
\doiffileelse{./example.tex}{\input example}{}
+\catcode`\%=14\relax
% Typeset inline markdown text.
\startmarkdown
diff --git a/macros/generic/markdown/examples/context-mkiv.tex b/macros/generic/markdown/examples/context-mkiv.tex
index 65d1d05468..825632c5aa 100644
--- a/macros/generic/markdown/examples/context-mkiv.tex
+++ b/macros/generic/markdown/examples/context-mkiv.tex
@@ -47,7 +47,9 @@
% Typeset the document `example.tex` that we prepared separately using the
% Lua command-line interface and that contains a plain TeX representation
% of the document `example.md`.
+\catcode`\%=12\relax
\doiffileelse{./example.tex}{\input example}{}
+\catcode`\%=14\relax
% Typeset inline markdown text.
\startmarkdown
diff --git a/macros/generic/markdown/examples/latex.tex b/macros/generic/markdown/examples/latex.tex
index cf820dfa36..337263d38f 100644
--- a/macros/generic/markdown/examples/latex.tex
+++ b/macros/generic/markdown/examples/latex.tex
@@ -43,9 +43,30 @@ date: \today
% Typeset the document `example.tex` that we prepared separately using the
% Lua command-line interface of the Markdown package and that contains a
% plain TeX representation of the document `example.md`.
+\catcode`\%=12\relax
\InputIfFileExists{./example.tex}{}{}
+\catcode`\%=14\relax
\begin{markdown}
Here are some non-ASCII characters: *ěščřžýáíé*.
\end{markdown}
+
+\begin{markdown*}{html, hybrid}
+Here is some <b>HTML code</b> mixed *with Markdown*. In pdf \TeX, the HTML code
+will be silently ignored, whereas in \TeX 4ht, the HTML code will be passed
+through to the output:
+
+<table border="1">
+ <tr>
+ <td>Emil</td>
+ <td>Tobias</td>
+ <td>Linus</td>
+ </tr>
+ <tr>
+ <td>16</td>
+ <td>14</td>
+ <td>10</td>
+ </tr>
+</table>
+\end{markdown*}
\end{document}
diff --git a/macros/generic/markdown/markdown.dtx b/macros/generic/markdown/markdown.dtx
index 4b6b148082..c16740e2a1 100644
--- a/macros/generic/markdown/markdown.dtx
+++ b/macros/generic/markdown/markdown.dtx
@@ -3,8 +3,7 @@
%<*driver>
\documentclass{ltxdockit}
\usepackage[american]{babel}
-\usepackage{amsmath,btxdockit,doc,fancyvrb,graphicx,hologo,microtype,minted,varioref}
-\vrefwarning
+\usepackage{amsmath,btxdockit,doc,fancyvrb,graphicx,hologo,microtype,minted}
% Set up the style.
\usepackage{xcolor}
@@ -87,6 +86,7 @@
hybrid,
inlineFootnotes,
jekyllData,
+ relativeReferences,
stripPercentSigns,
underscores = false,
theme = witiko/dot,
@@ -763,12 +763,11 @@ abbr {
publisher = {Addison-Wesley}}
%</techdoc-bibliography>
%<*latex-themes-witiko-markdown-techdoc>
-\ProvidesPackage{markdownthemewitiko_markdown_techdoc}[2021/09/10]
+\ProvidesPackage{markdownthemewitiko_markdown_techdoc}[2022/02/23]
\RequirePackage{etoolbox}
\markdownSetup{
- renderers = {
+ rendererPrototypes = {
codeSpan = {\inline{#1}},
- link = {#1\footnote{See \url{#3}.}},
headingFour = {%
\paragraph{#1}\leavevmode
\def\markdownRendererInterblockSeparator{%
@@ -783,10 +782,38 @@ abbr {
{\def\addcontentsline##1##2##3{}\listoffigures}%
}%
},
+ headerAttributeContextBegin = {
+ \markdownSetup{
+ rendererPrototypes = {
+ attributeIdentifier = {%
+ \begingroup
+ \def\next####1{%
+ \def####1########1{%
+ \endgroup
+ ####1{########1}%
+ \label{sec:##1}%
+ }%
+ }%
+ \next\markdownRendererHeadingOne
+ \next\markdownRendererHeadingTwo
+ \next\markdownRendererHeadingThree
+ \next\markdownRendererHeadingFour
+ \next\markdownRendererHeadingFive
+ \next\markdownRendererHeadingSix
+ },
+ },
+ }%
+ },
},
}
+\def\markdownLaTeXRendererAbsoluteLink#1#2#3#4{%
+ #1\footnote{See \url{#3}.}}
+\RequirePackage{varioref}
+\vrefwarning
+\def\markdownLaTeXRendererRelativeLink#1{%
+ \ref{#1}}
\markdownSetupSnippet{options}{
- renderers = {
+ rendererPrototypes = {
dlBegin = {\begin{optionlist}},
dlItem = {
#1
@@ -812,7 +839,6 @@ abbr {
dlEnd = {\end{optionlist}},
}
}
-\RequirePackage{expl3}
\ExplSyntaxOn
\keys_define:nn
{ markdown/jekyllData }
@@ -866,8 +892,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 \vref{sec:interfaces} describes the interfaces
-% exposed by the package. Section \vref{sec:implementation} describes the
+% its prerequisites. Section <#sec:interfaces> describes the interfaces
+% exposed by the package. Section <#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]
@@ -894,7 +920,7 @@ local metadata = {
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ý"},
+ "2016-2022 Vít Novotný"},
license = "LPPL 1.3c"
}
@@ -997,8 +1023,8 @@ a directory named `markdown` due to [issue #74][issue-74].
%
% This section gives an overview of all resources required by the package.
%
-%### Lua Requirements
-% \label{sec:luaprerequisites}
+%### Lua Requirements {#luaprerequisites}
+%
% The Lua part of the package requires that the following Lua modules are
% available from within the Lua\TeX{} engine:
%
@@ -1074,11 +1100,11 @@ local md5 = require("md5")
% \par
% \begin{markdown}
%
-%### Plain \TeX{} Requirements
-% \label{sec:texprerequisites}
+%### Plain \TeX{} Requirements {#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 \vref{sec:luaprerequisites}), and the following Lua module:
+% Section <#sec:luaprerequisites>), and the following Lua module:
%
% \pkg{Lua File System}
%
@@ -1096,7 +1122,7 @@ 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 \vref{sec:lua-cli-interface}), the plain
+% command-line interface (see Section <#sec:lua-cli-interface>), the plain
% \TeX{} part of the package will require that either the Lua\TeX{}
% \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
@@ -1114,8 +1140,8 @@ local md5 = require("md5")
% \par
% \begin{markdown}
%
-%### \LaTeX{} Requirements
-% \label{sec:latexprerequisites}
+%### \LaTeX{} Requirements {#latexprerequisites}
+%
% The \LaTeX{} part of the package requires that the \Hologo{LaTeX2e} format is
% loaded,
% \end{markdown}
@@ -1130,7 +1156,7 @@ local md5 = require("md5")
% \fi
% \begin{markdown}
% a \TeX{} engine that extends \Hologo{eTeX}, all the plain \TeX{}
-% prerequisites (see Section \vref{sec:texprerequisites}), and the following
+% prerequisites (see Section <#sec:texprerequisites>), and the following
% \Hologo{LaTeX2e} packages:
%
% \pkg{keyval}
@@ -1160,10 +1186,10 @@ local md5 = require("md5")
%
% 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}):
+% <#sec:texrendererprototypes> and
+% <#sec:latexdefaultrendererprototypes>) or \LaTeX{} themes (see Section
+% <#sec:latexthemes>) and will not be loaded if the `plain` package option
+% has been enabled (see Section <#sec:latexplain>):
%
% \pkg{url}
%
@@ -1186,7 +1212,7 @@ local md5 = require("md5")
%: 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 \vref{sec:latexthemes}), and to provide default token
+% theme (see Section <#sec:latexthemes>), and to provide default token
% renderer prototypes.
%
% \pkg{fancyvrb}
@@ -1215,7 +1241,7 @@ local md5 = require("md5")
%
%: 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}.
+% <#sec:latexthemes>.
%
% \pkg{grffile}
%
@@ -1224,21 +1250,27 @@ local md5 = require("md5")
% 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}.
+% <#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}.
+% <#sec:latexyamlmetadata>, and also in the default renderer prototype
+% for attribute identifiers.
%
% \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}.
+% for links (see Section <#sec:latexlinks>), \acro{yaml} metadata (see
+% Section <#sec:latexyamlmetadata>), and in the implementation of
+% \LaTeX{} themes (see Section <#sec:latexthemesimplementation>).
%
% \end{markdown}
+% \begin{macrocode}
+\RequirePackage{expl3}
+% \end{macrocode}
% \iffalse
%</latex>
%<*context>
@@ -1249,14 +1281,14 @@ 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 \vref{sec:texprerequisites}), and the following \Hologo{ConTeXt}
+% Section <#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 \vref{sec:texrendererprototypes}).
+% Section <#sec:texrendererprototypes>).
%
% Feedback
%---------
@@ -1290,9 +1322,9 @@ local md5 = require("md5")
% interfacing with an external interpreter from \TeX{}, the \pkg{filecontents}
% package by Scott Pakin and others.
%
-% Interfaces
-%===========
-% \label{sec:interfaces}
+% Interfaces {#interfaces}
+%============
+%
% This part of the documentation describes the interfaces exposed by the package
% along with usage notes and examples. It is aimed at the user of the package.
%
@@ -1302,7 +1334,7 @@ local md5 = require("md5")
% 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
+% Figure <#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
@@ -1517,9 +1549,8 @@ Each part will be shown by example, leaving the implementation details to the
% \par
% \begin{markdown}
%
-% Lua Interface
-%--------------
-% \label{sec:luainterface}
+% Lua Interface {#luainterface}
+%---------------
%
% \iffalse
%</lua>
@@ -1550,7 +1581,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 \vref{sec:teximplementation}) and will be of
+% implementation (see Section <#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.
@@ -1562,12 +1593,12 @@ local M = {metadata = metadata}
% \par
% \begin{markdown}
%
-%### Conversion from Markdown to Plain \TeX{}
-% \label{sec:luaconversion}
+%### Conversion from Markdown to Plain \TeX{} {#luaconversion}
+%
% 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 \vref{sec:luaoptions}). The
+% recognized by the Lua interface. (see Section <#sec:luaoptions>). The
% `options` parameter is optional; when unspecified, the behaviour will be
% the same as if `options` were an empty table.
%
@@ -1739,8 +1770,8 @@ pdftex document.tex
% \fi
% \begin{markdown}
%
-%### Options
-% \label{sec:luaoptions}
+%### Options {#luaoptions}
+%
% The Lua interface recognizes the following options. When unspecified, the
% value of a key is taken from the \luamdef{defaultOptions} table.
%
@@ -3597,7 +3628,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 \vref{sec:texcontentblockrenderers} for more information.
+% See Section <#sec:texcontentblockrenderers> for more information.
% \end{markdown}
% \iffalse
@@ -4733,11 +4764,11 @@ defaultOptions.headerAttributes = false
%
: true
- : Enable the recognition of HTML tags, block elements, comments, HTML
- instructions, and entities in the input. Tags, block elements (along
- with contents), HTML instructions, and comments will be ignored and
- HTML entities will be replaced with the corresponding Unicode
- codepoints.
+ : Enable the recognition of inline HTML tags, block HTML elements,
+ HTML comments, HTML instructions, and entities in the input. Inline
+ HTML tags, block HTML elements and HTML comments will be rendered, HTML
+ instructions will be ignored, and HTML entities will be replaced with
+ the corresponding Unicode codepoints.
: false
@@ -5533,6 +5564,85 @@ defaultOptions.preserveTabs = false
%</lua,lua-cli>
%<*manual-options>
+#### Option `relativeReferences`
+
+`relativeReferences` (default value: `false`)
+
+% \fi
+% \begin{markdown}
+%
+% \Optitem[false]{relativeReferences}{\opt{true}, \opt{false}}
+%
+: true
+
+ : Enable [relative references][1] in autolinks:
+
+ ``` md
+ I conclude in Section <#conclusion>.
+
+ Conclusion {#conclusion}
+ ==========
+ In this paper, we have discovered that most
+ grandmas would rather eat dinner with their
+ grandchildren than get eaten. Begone, wolf!
+ ```
+
+: false
+
+ : Disable relative references in autolinks.
+
+ [1]: https://datatracker.ietf.org/doc/html/rfc3986#section-4.2
+
+% \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[headerAttributes, relativeReferences]{markdown}
+\begin{document}
+\begin{markdown}
+
+I conclude in Section <#conclusion>.
+
+Conclusion {#conclusion}
+==========
+In this paper, we have discovered that most
+grandmas would rather eat dinner with their
+grandchildren than get eaten. Begone, wolf!
+
+\end{markdown}
+\end{document}
+```````
+Next, invoke LuaTeX twice from the terminal:
+``` sh
+lualatex document.tex
+lualatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> I conclude in Section 1.
+>
+> # 1. Conclusion
+>
+> In this paper, we have discovered that most grandmas would rather eat dinner
+> with their grandchildren than get eaten. Begone, wolf!
+
+%</manual-options>
+%<*lua,lua-cli>
+% \fi
+% \begin{macrocode}
+defaultOptions.relativeReferences = false
+% \end{macrocode}
+% \par
+% \iffalse
+%</lua,lua-cli>
+%<*manual-options>
+
#### Option `shiftHeadings`
`shiftHeadings` (default value: `0`)
@@ -5876,7 +5986,6 @@ defaultOptions.slice = "^ $"
%</lua,lua-cli>
%<*manual-options>
-
#### Option `smartEllipses`
`smartEllipses` (default value: `false`)
@@ -6860,13 +6969,13 @@ defaultOptions.underscores = true
% \par
% \begin{markdown}
%
-%### Command-Line Interface
-% \label{sec:lua-cli-interface}
+%### Command-Line Interface {#lua-cli-interface}
+%
% 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}.
+% Figure <#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
@@ -6878,7 +6987,7 @@ defaultOptions.underscores = true
% 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}.
+% Figure <#fig:sequence-diagram-lua-cli>.
%
% \end{markdown}
% \begin{figure}
@@ -6968,7 +7077,7 @@ 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 \vref{sec:luaoptions}.
+% Section <#sec:luaoptions>.
% \end{markdown}
% \begin{macrocode}
elseif arg[i]:match("=") then
@@ -7067,9 +7176,8 @@ end
% \par
% \begin{markdown}
%
-% Plain \TeX{} Interface
-%-----------------------
-% \label{sec:texinterface}
+% Plain \TeX{} Interface {#texinterface}
+%------------------------
%
% \iffalse
%</tex>
@@ -7126,7 +7234,7 @@ 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 \vref{sec:luaoptions}) used during the conversion from markdown to
+% Section <#sec:luaoptions>) used during the conversion from markdown to
% plain \TeX{} and for changing the way markdown the tokens are rendered.
%
% \end{markdown}
@@ -7145,8 +7253,8 @@ pdftex --shell-escape document.tex
% \noindent It is expected that the special plain \TeX{} characters have the
% expected category codes, when \mref{input}ting the file.
%
-%### Typesetting Markdown
-% \label{sec:textypesetting}
+%### Typesetting Markdown {#textypesetting}
+%
% The interface exposes the \mdef{markdownBegin}, \mdef{markdownEnd}, and
% \mdef{markdownInput} macros.
%
@@ -7229,12 +7337,11 @@ pdftex --shell-escape document.tex
% \bye
% ```````
%
-%### Options
-% \label{sec:texoptions}
+%### Options {#texoptions}
%
% The plain \TeX{} options are represented by \TeX{} commands. Some of them map
% directly to the options recognized by the Lua interface (see
-% Section \vref{sec:luaoptions}), while some of them are specific to the plain
+% Section <#sec:luaoptions>), while some of them are specific to the plain
% \TeX{} interface.
%
% \end{markdown}
@@ -7499,7 +7606,7 @@ 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 \vref{sec:luaoptions}) and are not processed by the
+% interface (see Section <#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.
%
@@ -7530,6 +7637,7 @@ bug](https://github.com/witiko/markdown/issues).
\let\markdownOptionJekyllData\undefined
\let\markdownOptionPipeTables\undefined
\let\markdownOptionPreserveTabs\undefined
+\let\markdownOptionRelativeReferences\undefined
\let\markdownOptionShiftHeadings\undefined
\let\markdownOptionSlice\undefined
\let\markdownOptionSmartEllipses\undefined
@@ -7589,7 +7697,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 \vref{sec:buffering}) or not. Notably, this
+% Markdown input (see Section <#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
@@ -7613,9 +7721,8 @@ user to specify how every markdown token should be processed and rendered.
% \fi
% \begin{markdown}
-### Token Renderers
+### Token Renderers {#texrenderersuser}
-% \label{sec:texrenderersuser}
% \end{markdown}
% \iffalse
@@ -7627,10 +7734,10 @@ 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
-% \vref{sec:luaconversion}) and represent the parsed markdown tokens. These
+% <#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
-% \vref{sec:texrendererprototypes}).
+% <#sec:texrendererprototypes>).
#### Tickbox Renderers
The macros named \mdef{markdownRendererTickedBox},
@@ -7737,27 +7844,6 @@ into account.
##### \LaTeX{} Example {.unnumbered}
-\def\markdownRendererDocumentEnd{%
- \endgroup
- This is the end of a document.\par
-}
-\def\markdownRendererDocumentBegin{%
- This is the beginning of a document.\par
- \begingroup
- \def\markdownRendererDocumentBegin{%
- This is the beginning of a nested document.\par
- \begingroup
- \def\markdownRendererDocumentBegin{%
- This is the beginning of a nested document.\par
- \begingroup
- }%
- \def\markdownRendererDocumentEnd{%
- \endgroup
- This is the end of a nested document.\par
- }%
- }%
-}
-
Using a text editor, create a text document named `nested.md` with the
following content:
``` md
@@ -8785,8 +8871,8 @@ that the \TeX{} engine has shell access.
%
% \begin{markdown}
-#### Content Block Renderers
-\label{sec:texcontentblockrenderers}
+#### Content Block Rendere {#texcontentblockrenderers}
+
The \mdef{markdownRendererContentBlock} macro represents an iA\,Writer content
block. It receives four arguments: the local file or online image filename
extension cast to the lower case, the fully escaped \acro{uri} that can be
@@ -11863,12 +11949,17 @@ following text:
%
% \begin{markdown}
-#### Inline HTML Comment Renderer
+#### HTML Comment Renderers
+
The \mdef{markdownRendererInlineHtmlComment} macro represents the contents of an
inline \acro{HTML} comment. This macro will only be produced, when the
\Opt{html} option is enabled. The macro receives a single argument that
corresponds to the contents of the \acro{HTML} comment.
+The \mdef{markdownRendererBlockHtmlCommentBegin} and
+\mdef{markdownRendererBlockHtmlCommentEnd} macros represent the beginning
+and the end of a block \acro{HTML} comment. The macros receive no arguments.
+
% \end{markdown}
%
% \iffalse
@@ -11884,13 +11975,23 @@ following content:
\markdownSetup{
renderers = {
inlineHtmlComment = {\marginnote{#1}},
+ blockHtmlCommentBegin = {\begin{quote}},
+ blockHtmlCommentEnd = {\end{quote}},
},
}
\begin{document}
\begin{markdown}
-A useful use of HTML comments are side notes.
+A useful use of inline HTML comments are side notes.
<!-- Side notes are displayed in the horizontal margins next to the relevant
-passages, which makes them easier for the reader to find than footnotes. -->
+passages, which makes them *easier for the reader to find* than footnotes. -->
+
+We can render block HTML comments as blockquotes:
+
+<!--
+Here is a block HTML comment with a code example that a programmer might understand:
+
+ foo = bar + baz - 42
+-->
\end{markdown}
\end{document}
```````
@@ -11903,11 +12004,18 @@ A PDF document named `document.pdf` should be produced and contain the
following body text:
> A useful use of HTML comments are side notes.
+>
+> We can render block HTML comments as blockquotes:
+>
+> > Here is a block HTML comment with a code example that a programmer might
+> > understand:
+> >
+> > foo = bar + baz - 42
The horizontal margins should contain the following text:
> Side notes are displayed in the horizontal margins next to the relevant
-> passages, which makes them easier for the reader to find than footnotes.
+> passages, which makes them *easier for the reader to find* than footnotes.
%</manual-tokens>
%<*tex>
@@ -11916,6 +12024,268 @@ The horizontal margins should contain the following text:
% \begin{macrocode}
\def\markdownRendererInlineHtmlComment{%
\markdownRendererInlineHtmlCommentPrototype}%
+\def\markdownRendererBlockHtmlCommentBegin{%
+ \markdownRendererBlockHtmlCommentBeginPrototype}%
+\def\markdownRendererBlockHtmlCommentEnd{%
+ \markdownRendererBlockHtmlCommentEndPrototype}%
+% \end{macrocode}
+% \par
+%
+% \iffalse
+%</tex>
+%<*manual-tokens>
+% \fi
+%
+% \begin{markdown}
+
+#### HTML Tag and Element Renderers
+
+The \mdef{markdownRendererInlineHtmlTag} macro represents an opening, closing,
+or empty inline \acro{HTML} tag. This macro will only be produced, when the
+\Opt{html} option is enabled. The macro receives a single argument that
+corresponds to the contents of the \acro{HTML} tag.
+
+The \mdef{markdownRendererInputBlockHtmlElement} macro represents a block
+\acro{HTML} element. This macro will only be produced, when the \Opt{html}
+option is enabled. The macro receives a single argument that filename of a file
+containing the contents of the \acro{HTML} element.
+
+% \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[html]{markdown}
+\usepackage{marginnote}
+\usepackage{verbatim}
+\markdownSetup{
+ renderers = {
+ inlineHtmlTag = {\textbf{#1}},
+ inputBlockHtmlElement = {\verbatiminput{#1}},
+ },
+}
+\begin{document}
+\begin{markdown}
+<b>_Hello,_ world!</b><br/>
+
+<div>_Hello,_ world!</div>
+\end{markdown}
+\end{document}
+```````
+Next, invoke LuaTeX from the terminal:
+``` sh
+lualatex document.tex
+lualatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following body text:
+
+> **<b>**_Hello,_ world!**</b><br/>**
+>
+> <div>_Hello,_ world!</div>
+
+%</manual-tokens>
+%<*tex>
+% \fi
+%
+% \begin{macrocode}
+\def\markdownRendererInlineHtmlTag{%
+ \markdownRendererInlineHtmlTagPrototype}%
+\def\markdownRendererInputBlockHtmlElement{%
+ \markdownRendererInputBlockHtmlElementPrototype}%
+% \end{macrocode}
+% \par
+%
+% \iffalse
+%</tex>
+%<*manual-tokens>
+% \fi
+%
+% \begin{markdown}
+
+#### Attribute Renderers
+The following macros are only produced, when the \Opt{headerAttributes} option
+is enabled.
+
+\mdef{markdownRendererAttributeIdentifier} represents the \meta{identifier} of
+a markdown element (`id="`\meta{identifier}`"` in HTML and `#`\meta{identifier}
+in Markdown's \Opt{headerAttributes} syntax extension). The macro receives a
+single attribute that corresponds to the \meta{identifier}.
+
+\mdef{markdownRendererAttributeClassName} represents the \meta{class name} of a
+markdown element (`class="`\meta{class name} ...`"` in HTML and
+`.`\meta{class name} in Markdown's \Opt{headerAttributes} syntax extension).
+The macro receives a single attribute that corresponds to the \meta{class
+name}.
+
+\mdef{markdownRendererAttributeKeyValue} represents a HTML attribute in the form
+\meta{key}`=`\meta{value} that is neither an identifier nor a class name.
+The macro receives two attributes that correspond to the \meta{key} and the
+\meta{value}, 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[headerAttributes, underscores=false]{markdown}
+\markdownSetup{
+ renderers = {
+ attributeIdentifier = {%
+ \par
+ \emph{(Identifier: #1)}
+ \par
+ },
+ attributeClassName = {%
+ \par
+ \emph{(Class name: #1)}
+ \par
+ },
+ attributeKeyValue = {%
+ \par
+ \emph{(Key: #1, Value: #2)}
+ \par
+ },
+ },
+}
+\begin{document}
+\begin{markdown}
+
+# First top-level heading {jane=doe}
+
+## A subheading {#identifier}
+
+# Second top-level heading {.class_name}
+
+\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:
+
+> # First top-level heading
+>
+> *(Key: Jane, Value: Doe)*
+>
+> ## A subheading
+>
+> *(Identifier: identifier)*
+>
+> # Second top-level heading
+>
+> *(Class name: class\_name)*
+
+%</manual-tokens>
+%<*tex>
+% \fi
+%
+% \begin{macrocode}
+\def\markdownRendererAttributeIdentifier{%
+ \markdownRendererAttributeIdentifierPrototype}%
+\def\markdownRendererAttributeClassName{%
+ \markdownRendererAttributeClassNamePrototype}%
+\def\markdownRendererAttributeKeyValue{%
+ \markdownRendererAttributeKeyValuePrototype}%
+% \end{macrocode}
+% \par
+%
+% \iffalse
+%</tex>
+%<*manual-tokens>
+% \fi
+%
+% \begin{markdown}
+
+#### Header Attribute Context Renderers
+The following macros are only produced, when the \Opt{headerAttributes} option
+is enabled.
+
+The \mdef{markdownRendererHeaderAttributeContextBegin} and
+\mdef{markdownRendererHeaderAttributeContextEnd} macros represent the beginning
+and the end of a section in which the attributes of a heading apply. The macros
+receive no arguments.
+
+% \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[headerAttributes]{markdown}
+\markdownSetup{
+ renderers = {
+ headerAttributeContextBegin = {%
+ \par
+ \emph{(The beginning of a header attribute context)}
+ \par
+ },
+ headerAttributeContextBegin = {%
+ \par
+ \emph{(The end of a header attribute context)}
+ \par
+ },
+ },
+}
+\begin{document}
+\begin{markdown}
+
+# First top-level heading
+
+## A subheading {#identifier}
+
+# Second top-level heading {.class_name}
+
+\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:
+
+> # First top-level heading
+>
+> *(The beginning of a header attribute context)*
+>
+> ## A subheading
+>
+> *(The end of a header attribute context)*
+>
+> *(The beginning of a header attribute context)*
+>
+> # Second top-level heading
+>
+> *(The end of a header attribute context)*
+
+%</manual-tokens>
+%<*tex>
+% \fi
+%
+% \begin{macrocode}
+\def\markdownRendererHeaderAttributeContextBegin{%
+ \markdownRendererHeaderAttributeContextBeginPrototype}%
+\def\markdownRendererHeaderAttributeContextEnd{%
+ \markdownRendererHeaderAttributeContextEndPrototype}%
% \end{macrocode}
% \par
%
@@ -11926,9 +12296,8 @@ The horizontal margins should contain the following text:
%
% \begin{markdown}
-### Token Renderer Prototypes
+### Token Renderer Prototypes {#texrendererprototypes}
-% \label{sec:texrendererprototypes}
%
% \end{markdown}
% \iffalse
@@ -12049,19 +12418,24 @@ following text:
% \begin{markdown}
%
% The following \TeX{} macros provide definitions for the token renderers (see
-% Section \vref{sec:texrenderersuser}) that have not been redefined by the
+% Section <#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
-% \vref{sec:lateximplementation} and \vref{sec:contextimplementation}).
+% <#sec:lateximplementation> and <#sec:contextimplementation>).
%
% \end{markdown}
% \begin{macrocode}
+\def\markdownRendererAttributeIdentifierPrototype#1{}%
+\def\markdownRendererAttributeClassNamePrototype#1{}%
+\def\markdownRendererAttributeKeyValuePrototype#1#2{}%
\def\markdownRendererDocumentBeginPrototype{}%
\def\markdownRendererDocumentEndPrototype{}%
\def\markdownRendererInterblockSeparatorPrototype{}%
\def\markdownRendererLineBreakPrototype{}%
\def\markdownRendererEllipsisPrototype{}%
+\def\markdownRendererHeaderAttributeContextBeginPrototype{}%
+\def\markdownRendererHeaderAttributeContextEndPrototype{}%
\def\markdownRendererNbspPrototype{}%
\def\markdownRendererLeftBracePrototype{}%
\def\markdownRendererRightBracePrototype{}%
@@ -12129,6 +12503,10 @@ following text:
\def\markdownRendererTextCitePrototype#1{}%
\def\markdownRendererTablePrototype#1#2#3{}%
\def\markdownRendererInlineHtmlCommentPrototype#1{}%
+\def\markdownRendererBlockHtmlCommentBeginPrototype{\iffalse}%
+\def\markdownRendererBlockHtmlCommentEndPrototype{\fi}%
+\def\markdownRendererInlineHtmlTagPrototype#1{}%
+\def\markdownRendererInputBlockHtmlElementPrototype#1{}%
\def\markdownRendererTickedBoxPrototype{}%
\def\markdownRendererHalfTickedBoxPrototype{}%
\def\markdownRendererUntickedBoxPrototype{}%
@@ -12189,7 +12567,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 \vref{sec:directlua}), the first argument may not contain the
+% Section <#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
@@ -12233,9 +12611,8 @@ following text:
% \par
% \begin{markdown}
%
-% \LaTeX{} Interface
-%-------------------
-% \label{sec:latexinterface}
+% \LaTeX{} Interface {#latexinterface}
+%--------------------
%
% \end{markdown}
% \iffalse
@@ -12293,10 +12670,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 \vref{sec:luaoptions}) used during the conversion from
+% options (see Section <#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 \vref{sec:texinterface}).
+% interface (see Section <#sec:texinterface>).
%
% The \LaTeX{} interface is implemented by the `markdown.sty` file, which
% can be loaded from the \LaTeX{} document preamble as follows:
@@ -12306,10 +12683,10 @@ pdflatex --shell-escape document.tex
% \end{Verbatim}
% \begin{markdown}
% where \meta{options} are the \LaTeX{} interface options (see Section
-% \vref{sec:latexoptions}). Note that \meta{options} inside the \mref{usepackage}
+% <#sec:latexoptions>). Note that \meta{options} inside the \mref{usepackage}
% macro may not set the `markdownRenderers` (see Section
-% \vref{sec:latexrenderers}) and `markdownRendererPrototypes` (see Section
-% \vref{sec:latexrendererprototypes}) keys. This limitation is due to the way
+% <#sec:latexrenderers>) and `markdownRendererPrototypes` (see Section
+% <#sec:latexrendererprototypes>) keys. This limitation is due to the way
% \Hologo{LaTeX2e} parses package options.
%
% \end{markdown}
@@ -12323,7 +12700,7 @@ pdflatex --shell-escape document.tex
% The \envmref{markdown} and \envmref{markdown*} \LaTeX{} environments are used to
% typeset markdown document fragments. The starred version of the
% \envmref{markdown} environment accepts \LaTeX{} interface options (see
-% Section \vref{sec:latexoptions}) as its only argument. These options will
+% Section <#sec:latexoptions>) as its only argument. These options will
% only influence this markdown document fragment.
%
% \end{markdown}
@@ -12360,7 +12737,7 @@ pdflatex --shell-escape document.tex
% the filename of a markdown document and expands to the result of the
% conversion of the input markdown document to plain \TeX{}. Unlike the
% \mref{markdownInput} macro provided by the plain \TeX{} interface, this macro
-% also accepts \LaTeX{} interface options (see Section \vref{sec:latexoptions})
+% also accepts \LaTeX{} interface options (see Section <#sec:latexoptions>)
% as its optional argument. These options will only influnce this markdown
% document.
%
@@ -12376,25 +12753,24 @@ pdflatex --shell-escape document.tex
% \end{document}
% ```````
%
-%### Options
-% \label{sec:latexoptions}
+%### Options {#latexoptions}
%
% The \LaTeX{} options are represented by a comma-delimited list of
% \meta{key}`=`\meta{value} pairs. For boolean options, the `=`\meta{value}
% 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 \vref{sec:latexplain}, and
-% the \LaTeX{} themes described in Section \vref{sec:latexthemes}, and the
-% \LaTeX{} setup snippets described in Section \vref{sec:latexsetupsnippets},
+% Except for the `plain` option described in Section <#sec:latexplain>, and
+% the \LaTeX{} themes described in Section <#sec:latexthemes>, and the
+% \LaTeX{} setup snippets described in Section <#sec:latexsetupsnippets>,
% \LaTeX{} options map directly to the options recognized by the plain
-% \TeX{} interface (see Section \vref{sec:texoptions}) and to the markdown token
+% \TeX{} interface (see Section <#sec:texoptions>) and to the markdown token
% renderers and their prototypes recognized by the plain \TeX{} interface (see
-% Sections \vref{sec:texrenderersuser} and \vref{sec:texrendererprototypes}).
+% Sections <#sec:texrenderersuser> and <#sec:texrendererprototypes>).
%
% The \LaTeX{} options may be specified when loading the \LaTeX{} package, when
% using the \envmref{markdown*} \LaTeX{} environment or the \mref{markdownInput}
-% macro (see Section \vref{sec:latexinterface}), or via the \mdef{markdownSetup}
+% macro (see Section <#sec:latexinterface>), or via the \mdef{markdownSetup}
% macro. The \mref{markdownSetup} macro receives the options to set up as its only
% argument:
%
@@ -12428,8 +12804,8 @@ pdflatex --shell-escape document.tex
% \end{macrocode}
% \begin{markdown}
%
-% See Section \vref{sec:latexthemes} for information on interactions between
-% setup snippets and \LaTeX{} themes. See Section \vref{sec:latexsetupsnippets}
+% See Section <#sec:latexthemes> for information on interactions between
+% setup snippets and \LaTeX{} themes. See Section <#sec:latexsetupsnippets>
% for information about invoking the stored setup snippets.
%
% \end{markdown}
@@ -12470,16 +12846,16 @@ document:
% \par
% \begin{markdown}
-#### No default token renderer prototypes
-% \label{sec:latexplain}
+#### No default token renderer prototypes {#latexplain}
+
Default token renderer prototypes require \LaTeX{} packages that may clash with
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 \vref{sec:textokenrendererprototypes})
+% (see Section <#sec:textokenrendererprototypes>)
and prevent the soft \LaTeX{} prerequisites
-% in Section \vref{sec:latexprerequisites}
+% in Section <#sec:latexprerequisites>
from being loaded:
``` tex
@@ -12508,8 +12884,7 @@ from being loaded:
% \fi
% \begin{markdown}
-#### \LaTeX{} themes
-% \label{sec:latexthemes}
+#### \LaTeX{} themes {#latexthemes}
User-contributed \LaTeX{} themes for the Markdown package provide a
domain-specific interpretation of some Markdown tokens. Similarly to \LaTeX{}
@@ -12575,7 +12950,7 @@ would use the following code in the preamble of your document:
% \begin{macrocode}
\newif\ifmarkdownLaTeXLoaded
\markdownLaTeXLoadedfalse
-\AtEndOfPackage{\markdownLaTeXLoadedtrue}%
+\AtEndOfPackage{\markdownLaTeXLoadedtrue}
\define@key{markdownOptions}{theme}{%
\IfSubStr{#1}{/}{}{%
\markdownError
@@ -12586,23 +12961,11 @@ would use the following code in the preamble of your document:
markdowntheme\markdownLaTeXThemePackageName}%
\expandafter\markdownLaTeXThemeLoad\expandafter{%
\markdownLaTeXThemePackageName}{#1/}}%
-\newcommand\markdownLaTeXThemeName{}%
-\newcommand\markdownLaTeXThemeLoad[2]{%
- \ifmarkdownLaTeXLoaded
- \def\markdownLaTeXThemeName{#2}%
- \RequirePackage{#1}%
- \def\markdownLaTeXThemeName{}%
- \else
- \AtEndOfPackage{%
- \def\markdownLaTeXThemeName{#2}%
- \RequirePackage{#1}%
- \def\markdownLaTeXThemeName{}}%
- \fi}%
% \end{macrocode}
% \begin{markdown}
%
% The \LaTeX{} themes have a useful synergy with the setup snippets (see
-% Section \vref{sec:latexoptions}): To make it less likely that different
+% Section <#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`
@@ -12678,7 +13041,7 @@ Example themes provided with the Markdown package include:
% \end{document}
% ````````
% Typesetting the above document produces the output shown in
-% Figure \vref{fig:witiko/dot}.
+% Figure <#fig:witiko/dot>.
% ``` dot Various formats of mathemathical formulae \label{fig:witiko/dot}
% digraph tree {
% margin = 0;
@@ -12792,7 +13155,7 @@ conference article:
% \end{document}
% ```````
% Typesetting the above document produces the output shown in
-% Figure \vref{fig:witiko/graphicx/http}.
+% Figure <#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
@@ -12894,11 +13257,11 @@ following text, where the middot (`·`) denotes a non-breaking space:
% \par
% \begin{markdown}
%
-% Please, see Section \vref{sec:latexthemesimplementation} for implementation
+% Please, see Section <#sec:latexthemesimplementation> for implementation
% details of the example themes.
-#### \LaTeX{} setup snippets
-% \label{sec:latexsetupsnippets}
+#### \LaTeX{} setup snippets {#latexsetupsnippets}
+
% \end{markdown}
% \iffalse
@@ -12917,8 +13280,16 @@ various options locally.
% \fi
% \begin{macrocode}
\define@key{markdownOptions}{snippet}{%
- \expandafter\markdownSetup\expandafter{%
- \the\csname markdownLaTeXSetupSnippet#1\endcsname}}%
+ \@ifundefined
+ {markdownLaTeXSetupSnippet#1}{%
+ \markdownError
+ {Can't invoke setup snippet #1}%
+ {The setup snippet is undefined}%
+ }{%
+ \expandafter\markdownSetup\expandafter{%
+ \the\csname markdownLaTeXSetupSnippet#1\endcsname}%
+ }%
+ }%
% \end{macrocode}
% \iffalse
%</latex>
@@ -12958,7 +13329,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 \vref{sec:texoptions}).
+% \TeX{} interface (see Section <#sec:texoptions>).
%
% \markdownEnd
% \iffalse
@@ -13022,6 +13393,8 @@ The following ordered list will be preceded by roman numerals:
\def\markdownOptionPipeTables{#1}}%
\define@key{markdownOptions}{preserveTabs}[true]{%
\def\markdownOptionPreserveTabs{#1}}%
+\define@key{markdownOptions}{relativeReferences}[true]{%
+ \def\markdownOptionRelativeReferences{#1}}%
\define@key{markdownOptions}{smartEllipses}[true]{%
\def\markdownOptionSmartEllipses{#1}}%
\define@key{markdownOptions}{shiftHeadings}{%
@@ -13096,16 +13469,21 @@ The following ordered list will be preceded by roman numerals:
% }
% ```````
%
-%#### Plain \TeX{} Markdown Token Renderers
-% \label{sec:latexrenderers}
+%#### Plain \TeX{} Markdown Token Renderers {#latexrenderers}
%
% 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
-% \vref{sec:texrenderersuser}).
+% <#sec:texrenderersuser>).
%
% \end{markdown}
% \begin{macrocode}
+\define@key{markdownRenderers}{attributeIdentifier}{%
+ \renewcommand\markdownRendererAttributeIdentifier[1]{#1}}%
+\define@key{markdownRenderers}{attributeClassName}{%
+ \renewcommand\markdownRendererAttributeClassName[1]{#1}}%
+\define@key{markdownRenderers}{attributeKeyValue}{%
+ \renewcommand\markdownRendererAttributeKeyValue[2]{#1}}%
\define@key{markdownRenderers}{documentBegin}{%
\renewcommand\markdownRendererDocumentBegin{#1}}%
\define@key{markdownRenderers}{documentEnd}{%
@@ -13116,6 +13494,10 @@ The following ordered list will be preceded by roman numerals:
\renewcommand\markdownRendererLineBreak{#1}}%
\define@key{markdownRenderers}{ellipsis}{%
\renewcommand\markdownRendererEllipsis{#1}}%
+\define@key{markdownRenderers}{headerAttributeContextBegin}{%
+ \renewcommand\markdownRendererHeaderAttributeContextBegin{#1}}%
+\define@key{markdownRenderers}{headerAttributeContextEnd}{%
+ \renewcommand\markdownRendererHeaderAttributeContextEnd{#1}}%
\define@key{markdownRenderers}{nbsp}{%
\renewcommand\markdownRendererNbsp{#1}}%
\define@key{markdownRenderers}{leftBrace}{%
@@ -13250,6 +13632,14 @@ 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}{blockHtmlCommentBegin}{%
+ \renewcommand\markdownRendererBlockHtmlCommentBegin{#1}}%
+\define@key{markdownRenderers}{blockHtmlCommentEnd}{%
+ \renewcommand\markdownRendererBlockHtmlCommentEnd{#1}}%
+\define@key{markdownRenderers}{inlineHtmlTag}{%
+ \renewcommand\markdownRendererInlineHtmlTag[1]{#1}}%
+\define@key{markdownRenderers}{inputBlockHtmlElement}{%
+ \renewcommand\markdownRendererInputBlockHtmlElement[1]{#1}}%
\define@key{markdownRenderers}{tickedBox}{%
\renewcommand\markdownRendererTickedBox{#1}}%
\define@key{markdownRenderers}{halfTickedBox}{%
@@ -13272,15 +13662,21 @@ The following ordered list will be preceded by roman numerals:
% }
% ```````
%
-%#### Plain \TeX{} Markdown Token Renderer Prototypes
-% \label{sec:latexrendererprototypes}
+%#### Plain \TeX{} Markdown Token Renderer Prototypes {#latexrendererprototypes}
+%
% 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 \vref{sec:texrendererprototypes}).
+% Section <#sec:texrendererprototypes>).
%
% \end{markdown}
% \begin{macrocode}
+\define@key{markdownRendererPrototypes}{attributeIdentifier}{%
+ \renewcommand\markdownRendererAttributeIdentifierPrototype[1]{#1}}%
+\define@key{markdownRendererPrototypes}{attributeClassName}{%
+ \renewcommand\markdownRendererAttributeClassNamePrototype[1]{#1}}%
+\define@key{markdownRendererPrototypes}{attributeKeyValue}{%
+ \renewcommand\markdownRendererAttributeKeyValuePrototype[2]{#1}}%
\define@key{markdownRendererPrototypes}{documentBegin}{%
\renewcommand\markdownRendererDocumentBeginPrototype{#1}}%
\define@key{markdownRendererPrototypes}{documentEnd}{%
@@ -13291,6 +13687,10 @@ The following ordered list will be preceded by roman numerals:
\renewcommand\markdownRendererLineBreakPrototype{#1}}%
\define@key{markdownRendererPrototypes}{ellipsis}{%
\renewcommand\markdownRendererEllipsisPrototype{#1}}%
+\define@key{markdownRendererPrototypes}{headerAttributeContextBegin}{%
+ \renewcommand\markdownRendererHeaderAttributeContextBeginPrototype{#1}}%
+\define@key{markdownRendererPrototypes}{headerAttributeContextEnd}{%
+ \renewcommand\markdownRendererHeaderAttributeContextEndPrototype{#1}}%
\define@key{markdownRendererPrototypes}{nbsp}{%
\renewcommand\markdownRendererNbspPrototype{#1}}%
\define@key{markdownRendererPrototypes}{leftBrace}{%
@@ -13425,6 +13825,14 @@ 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}{blockHtmlCommentBegin}{%
+ \renewcommand\markdownRendererBlockHtmlCommentBeginPrototype{#1}}%
+\define@key{markdownRendererPrototypes}{blockHtmlCommentEnd}{%
+ \renewcommand\markdownRendererBlockHtmlCommentEndPrototype{#1}}%
+\define@key{markdownRendererPrototypes}{inlineHtmlTag}{%
+ \renewcommand\markdownRendererInlineHtmlTagPrototype[1]{#1}}%
+\define@key{markdownRendererPrototypes}{inputBlockHtmlElement}{%
+ \renewcommand\markdownRendererInputBlockHtmlElementPrototype[1]{#1}}%
\define@key{markdownRendererPrototypes}{tickedBox}{%
\renewcommand\markdownRendererTickedBoxPrototype{#1}}%
\define@key{markdownRendererPrototypes}{halfTickedBox}{%
@@ -13451,9 +13859,9 @@ The following ordered list will be preceded by roman numerals:
%</latex>
%<*context>
% \fi
-% \Hologo{ConTeXt} Interface
-%---------------------------
-% \label{sec:contextinterface}
+%
+% \Hologo{ConTeXt} Interface {#contextinterface}
+%----------------------------
%
% \iffalse
%</context>
@@ -13509,7 +13917,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
-% \vref{sec:texinterface}).
+% <#sec:texinterface>).
%
% \end{markdown}
% \begin{macrocode}
@@ -13559,14 +13967,14 @@ texexec --passon=--shell-escape document.tex
% \stoptext
% ```````
%
-% Implementation
-%===============
-% \label{sec:implementation}
+% Implementation {#implementation}
+%================
+%
% This part of the documentation describes the implementation of the interfaces
-% exposed by the package (see Section \vref{sec:interfaces}) and is aimed at the
+% exposed by the package (see Section <#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
+% Figure <#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
@@ -13580,9 +13988,9 @@ texexec --passon=--shell-escape document.tex
% \fi
% \begin{markdown}
%
-% Lua Implementation
-%-------------------
-% \label{sec:luaimplementation}
+% Lua Implementation {#luaimplementation}
+%--------------------
+%
% The Lua implementation implements \luamdef{writer} and \luamdef{reader}
% objects that provide the conversion from markdown to plain \TeX{}.
%
@@ -13590,7 +13998,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 \vref{sec:luainterface}).
+% Section <#sec:luainterface>).
%
% \end{markdown}
% \begin{macrocode}
@@ -15993,8 +16401,8 @@ end
% \par
% \begin{markdown}
%
-%### Plain \TeX{} Writer
-% \label{sec:texwriter}
+%### Plain \TeX{} Writer {#texwriter}
+%
% 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
@@ -16002,7 +16410,7 @@ end
% `lunamark/writer/latex.lua` files in the Lunamark Lua module.
%
% Although not specified in the Lua interface (see Section
-% \vref{sec:luainterface}), the \luamref{writer} object is exported, so that the
+% <#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 \luamref{writer.new} method described below. The user should be aware,
% however, that the implementation may change in a future revision.
@@ -16016,7 +16424,7 @@ M.writer = {}
%
% The \luamdef{writer.new} method creates and returns a new \TeX{} writer
% object associated with the Lua interface options (see Section
-% \vref{sec:luaoptions}) `options`. When `options` are unspecified, it is
+% <#sec:luaoptions>) `options`. When `options` are unspecified, it is
% assumed that an empty table was passed to the method.
%
% The objects produced by the \luamref{writer.new} method expose instance methods
@@ -16511,10 +16919,10 @@ function M.writer.new(options)
local contents = util.intersperse(buffer,"\n")
if tight and options.tightLists then
return {"\\markdownRendererOlBeginTight\n",contents,
- "\n\\markdownRendererOlEndTight "}
+ "\n\\markdownRendererOlEndTight "}
else
return {"\\markdownRendererOlBegin\n",contents,
- "\n\\markdownRendererOlEnd "}
+ "\n\\markdownRendererOlEnd "}
end
end
% \end{macrocode}
@@ -16534,6 +16942,50 @@ function M.writer.new(options)
% \par
% \begin{markdown}
%
+% Define \luamdef{writer->block_html_comment} as a function that will
+% transform the contents of a block \acro{HTML} comment, to the output
+% format, where `contents` are the contents of the \acro{HTML} comment.
+%
+% \end{markdown}
+% \begin{macrocode}
+ function self.block_html_comment(contents)
+ if not self.is_writing then return "" end
+ return {"\\markdownRendererBlockHtmlCommentBegin\n",contents,
+ "\n\\markdownRendererBlockHtmlCommentEnd "}
+ end
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
+% Define \luamdef{writer->inline_html_tag} as a function that will
+% transform the contents of an opening, closing, or empty inline \acro{HTML}
+% tag to the output format, where `contents` are the contents of the
+% \acro{HTML} tag.
+%
+% \end{markdown}
+% \begin{macrocode}
+ function self.inline_html_tag(contents)
+ return {"\\markdownRendererInlineHtmlTag{",self.string(contents),"}"}
+ end
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
+% Define \luamdef{writer->block_html_element} as a function that will
+% transform the contents of a block \acro{HTML} element to the output format,
+% where `s` are the contents of the \acro{HTML} element.
+%
+% \end{markdown}
+% \begin{macrocode}
+ function self.block_html_element(s)
+ if not self.is_writing then return "" end
+ local name = util.cache(options.cacheDir, s, nil, nil, ".verbatim")
+ return {"\\markdownRendererInputBlockHtmlElement{",name,"}"}
+ end
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
% Define \luamdef{writer->definitionlist} as a function that will transform an
% input definition list to the output format, where `items` is an array of
% tables, each of the form `{ term = t, definitions = defs }`, where `t`
@@ -16663,8 +17115,23 @@ function M.writer.new(options)
% \end{markdown}
% \begin{macrocode}
function self.document(d)
- return {"\\markdownRendererDocumentBegin\n", d,
- "\\markdownRendererDocumentEnd"}
+ local active_attributes = self.active_attributes
+ local buf = {"\\markdownRendererDocumentBegin\n", d}
+
+ -- pop attributes for sections that have ended
+ if options.headerAttributes and self.is_writing then
+ while #active_attributes > 0 do
+ local attributes = active_attributes[#active_attributes]
+ if #attributes > 0 then
+ table.insert(buf, "\\markdownRendererHeaderAttributeContextEnd")
+ end
+ table.remove(active_attributes, #active_attributes)
+ end
+ end
+
+ table.insert(buf, "\\markdownRendererDocumentEnd")
+
+ return buf
end
% \end{macrocode}
% \par
@@ -16765,13 +17232,13 @@ function M.writer.new(options)
% \par
% \begin{markdown}
%
-% Define \luamdef{writer->active\_headings} as a stack of identifiers
+% Define \luamdef{writer->active\_attributes} as a stack of attributes
% of the headings that are currently active. The
% \luamref{writer->active\_headings} member variable is mutable.
%
% \end{markdown}
% \begin{macrocode}
- self.active_headings = {}
+ self.active_attributes = {}
% \end{macrocode}
% \par
% \begin{markdown}
@@ -16782,50 +17249,99 @@ function M.writer.new(options)
%
% \end{markdown}
% \begin{macrocode}
- function self.heading(s,level,attributes)
- local active_headings = self.active_headings
+ function self.heading(s, level, attributes)
+ attributes = attributes or {}
+ for i = 1, #attributes do
+ attributes[attributes[i]] = true
+ end
+
+ local active_attributes = self.active_attributes
local slice_begin_type = self.slice_begin:sub(1, 1)
local slice_begin_identifier = self.slice_begin:sub(2) or ""
local slice_end_type = self.slice_end:sub(1, 1)
local slice_end_identifier = self.slice_end:sub(2) or ""
- while #active_headings < level do
- -- push empty identifiers for implied sections
- table.insert(active_headings, {})
+ local buf = {}
+
+ -- push empty attributes for implied sections
+ while #active_attributes < level-1 do
+ table.insert(active_attributes, {})
end
- while #active_headings >= level do
- -- pop identifiers for sections that have ended
- local active_identifiers = active_headings[#active_headings]
- if active_identifiers[slice_begin_identifier] ~= nil
+ -- pop attributes for sections that have ended
+ while #active_attributes >= level do
+ local active_identifiers = active_attributes[#active_attributes]
+ -- tear down all active attributes at slice end
+ if active_identifiers["#" .. slice_end_identifier] ~= nil
+ and slice_end_type == "$" then
+ for header_level = #active_attributes, 1, -1 do
+ if options.headerAttributes and #active_attributes[header_level] > 0 then
+ table.insert(buf, "\\markdownRendererHeaderAttributeContextEnd")
+ end
+ end
+ self.is_writing = false
+ end
+ table.remove(active_attributes, #active_attributes)
+ if self.is_writing and options.headerAttributes and #active_identifiers > 0 then
+ table.insert(buf, "\\markdownRendererHeaderAttributeContextEnd")
+ end
+ -- apply all active attributes at slice beginning
+ if active_identifiers["#" .. slice_begin_identifier] ~= nil
and slice_begin_type == "$" then
+ for header_level = 1, #active_attributes do
+ if options.headerAttributes and #active_attributes[header_level] > 0 then
+ table.insert(buf, "\\markdownRendererHeaderAttributeContextBegin")
+ end
+ end
self.is_writing = true
end
- if active_identifiers[slice_end_identifier] ~= nil
- and slice_end_type == "$" then
- self.is_writing = false
+ end
+
+ -- tear down all active attributes at slice end
+ if attributes["#" .. slice_end_identifier] ~= nil
+ and slice_end_type == "^" then
+ for header_level = #active_attributes, 1, -1 do
+ if options.headerAttributes and #active_attributes[header_level] > 0 then
+ table.insert(buf, "\\markdownRendererHeaderAttributeContextEnd")
+ end
end
- table.remove(active_headings, #active_headings)
+ self.is_writing = false
end
- -- push identifiers for the new section
- attributes = attributes or {}
- local identifiers = {}
- for index = 1, #attributes do
- attribute = attributes[index]
- identifiers[attribute:sub(2)] = true
+ -- push attributes for the new section
+ table.insert(active_attributes, attributes)
+ if self.is_writing and options.headerAttributes and #attributes > 0 then
+ table.insert(buf, "\\markdownRendererHeaderAttributeContextBegin")
end
- if identifiers[slice_begin_identifier] ~= nil
+
+ -- apply all active attributes at slice beginning
+ if attributes["#" .. slice_begin_identifier] ~= nil
and slice_begin_type == "^" then
+ for header_level = 1, #active_attributes do
+ if options.headerAttributes and #active_attributes[header_level] > 0 then
+ table.insert(buf, "\\markdownRendererHeaderAttributeContextBegin")
+ end
+ end
self.is_writing = true
end
- if identifiers[slice_end_identifier] ~= nil
- and slice_end_type == "^" then
- self.is_writing = false
- end
- table.insert(active_headings, identifiers)
- if not self.is_writing then return "" end
+ if self.is_writing then
+ table.sort(attributes)
+ local key, value
+ for i = 1, #attributes do
+ if attributes[i]:sub(1, 1) == "#" then
+ table.insert(buf, {"\\markdownRendererAttributeIdentifier{",
+ attributes[i]:sub(2), "}"})
+ elseif attributes[i]:sub(1, 1) == "." then
+ table.insert(buf, {"\\markdownRendererAttributeClassName{",
+ attributes[i]:sub(2), "}"})
+ else
+ key, value = attributes[i]:match("(%w+)=(%w+)")
+ table.insert(buf, {"\\markdownRendererAttributeKeyValue{",
+ key, "}{", value, "}"})
+ end
+ end
+ end
local cmd
level = level + options.shiftHeadings
@@ -16844,7 +17360,11 @@ function M.writer.new(options)
else
cmd = ""
end
- return {cmd,"{",s,"}"}
+ if self.is_writing then
+ table.insert(buf, {cmd, "{", s, "}"})
+ end
+
+ return buf
end
% \end{macrocode}
% \par
@@ -16900,7 +17420,7 @@ function M.writer.new(options)
function self.get_state()
return {
is_writing=self.is_writing,
- active_headings={table.unpack(self.active_headings)},
+ active_attributes={table.unpack(self.active_attributes)},
}
end
% \end{macrocode}
@@ -17082,7 +17602,7 @@ parsers.nonemptyline = parsers.line - parsers.blankline
%
% 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}.
+% <#fig:commented_line>.
%
% \end{markdown}
% \begin{macrocode}
@@ -17140,12 +17660,12 @@ parsers.css_identifier = (parsers.hash + parsers.period)
* (parsers.css_identifier_char
- parsers.digit)
* parsers.css_identifier_char^0))
-parsers.attribute_name_char = parsers.any - parsers.space
+parsers.attribute_key_char = parsers.any - parsers.space
- parsers.squote - parsers.dquote
- parsers.more - parsers.slash
- parsers.equal
-parsers.attribute_value_char = parsers.any - parsers.dquote
- - parsers.more
+parsers.attribute_value_char = parsers.any - parsers.space
+ - parsers.dquote - parsers.more
-- block followed by 0 or more optionally
-- indented blocks with first line indented.
@@ -17667,11 +18187,6 @@ end
parsers.in_matched_block_tags = parsers.less
* Cmt(#parsers.openelt_block, parse_matched_tags)
-parsers.displayhtml = parsers.htmlcomment / ""
- + parsers.emptyelt_block
- + parsers.openelt_exact("hr")
- + parsers.in_matched_block_tags
- + parsers.htmlinstruction
% \end{macrocode}
% \par
% \begin{markdown}
@@ -17786,7 +18301,7 @@ parsers.dlchunk = Cs(parsers.line * (parsers.indentedline - parsers.blankline)^0
% \end{markdown}
% \begin{macrocode}
parsers.heading_attribute = C(parsers.css_identifier)
- + C((parsers.attribute_name_char
+ + C((parsers.attribute_key_char
- parsers.rbrace)^1
* parsers.equal
* (parsers.attribute_value_char
@@ -17811,22 +18326,22 @@ end
% \par
% \begin{markdown}
%
-%### Markdown Reader
-% \label{sec:markdownreader}
+%### Markdown Reader {#markdownreader}
+%
% 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
-% \vref{sec:luainterface}), the \luamref{reader} object is exported, so that the
+% <#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 \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
-% \vref{sec:luaoptions}) `options` and with a writer object `writer`. When
+% <#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.
%
@@ -18349,6 +18864,14 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
"mailto:"..email)
end
+ larsers.AutoLinkRelativeReference
+ = parsers.less
+ * C(parsers.urlchar^1)
+ * parsers.more
+ / function(url)
+ return writer.link(writer.escape(url), url)
+ end
+
larsers.DirectLink = (parsers.tag / parse_inlines_no_link) -- no links inside links
* parsers.spnl
* parsers.lparent
@@ -18405,12 +18928,12 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
larsers.EscapedChar = parsers.backslash * C(parsers.escapable) / writer.string
- larsers.InlineHtml = parsers.emptyelt_any
+ larsers.InlineHtml = parsers.emptyelt_any / writer.inline_html_tag
+ (parsers.htmlcomment / parse_inlines_no_html)
/ writer.inline_html_comment
+ parsers.htmlinstruction
- + parsers.openelt_any
- + parsers.closeelt_any
+ + parsers.openelt_any / writer.inline_html_tag
+ + parsers.closeelt_any / writer.inline_html_tag
larsers.HtmlEntity = parsers.hexentity / entities.hex_entity / writer.string
+ parsers.decentity / entities.dec_entity / writer.string
@@ -18428,7 +18951,12 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
* parsers.contentblock_tail
/ writer.contentblock
- larsers.DisplayHtml = parsers.displayhtml
+ larsers.DisplayHtml = (parsers.htmlcomment / parse_blocks)
+ / writer.block_html_comment
+ + parsers.emptyelt_block / writer.block_html_element
+ + parsers.openelt_exact("hr") / writer.block_html_element
+ + parsers.in_matched_block_tags / writer.block_html_element
+ + parsers.htmlinstruction
larsers.Verbatim = Cs( (parsers.blanklines
* ((parsers.indentedline - parsers.blankline))^1)^1
@@ -18724,6 +19252,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
+ V("Code")
+ V("AutoLinkUrl")
+ V("AutoLinkEmail")
+ + V("AutoLinkRelativeReference")
+ V("InlineHtml")
+ V("HtmlEntity")
+ V("EscapedChar")
@@ -18744,6 +19273,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
+ V("Code")
+ V("AutoLinkUrl")
+ V("AutoLinkEmail")
+ + V("AutoLinkRelativeReference")
+ V("InlineHtml")
+ V("HtmlEntity")
+ V("EscapedChar")
@@ -18765,6 +19295,8 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
Code = larsers.Code,
AutoLinkUrl = larsers.AutoLinkUrl,
AutoLinkEmail = larsers.AutoLinkEmail,
+ AutoLinkRelativeReference
+ = larsers.AutoLinkRelativeReference,
InlineHtml = larsers.InlineHtml,
HtmlEntity = larsers.HtmlEntity,
EscapedChar = larsers.EscapedChar,
@@ -18822,6 +19354,10 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
syntax.Smart = parsers.fail
end
+ if not options.relativeReferences then
+ syntax.AutoLinkRelativeReference = parsers.fail
+ end
+
local blocks_toplevel_t = util.table_copy(syntax)
blocks_toplevel_t.Paragraph = larsers.ToplevelParagraph
larsers.blocks_toplevel = Ct(blocks_toplevel_t)
@@ -18868,7 +19404,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 \vref{sec:luaoptions}). The \Opt{cacheDir} option
+% Lua interface (see Section <#sec:luaoptions>). The \Opt{cacheDir} option
% is disregarded.
% \end{markdown}
% \begin{macrocode}
@@ -18936,7 +19472,7 @@ end
%### Conversion from Markdown to Plain \TeX{}
% The \luamref{new} method returns the \luamref{reader->convert} function of a reader
% object associated with the Lua interface options (see Section
-% \vref{sec:luaoptions}) `options` and with a writer object associated with
+% <#sec:luaoptions>) `options` and with a writer object associated with
% `options`.
%
% \end{markdown}
@@ -18956,10 +19492,10 @@ return M
% \par
% \begin{markdown}
%
-%### Command-Line Implementation
-% \label{sec:lua-cli-implementation}
+%### Command-Line Implementation {#lua-cli-implementation}
+%
% The command-line implementation provides the actual conversion routine for
-% the command-line interface described in Section~\vref{sec:lua-cli-interface}.
+% the command-line interface described in Section <#sec:lua-cli-interface>.
%
% \end{markdown}
% \begin{macrocode}
@@ -19024,16 +19560,15 @@ end
% \par
% \begin{markdown}
%
-% Plain \TeX{} Implementation
-%----------------------------
-% \label{sec:teximplementation}
+% Plain \TeX{} Implementation {#teximplementation}
+%-----------------------------
+%
% 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 \vref{sec:texinterface}).
+% exposed by the plain \TeX{} interface (see Section <#sec:texinterface>).
%
-%### Logging Facilities
-% \label{sec:texinterfacelogging}
+%### Logging Facilities {#texinterfacelogging}
%
% \end{markdown}
% \begin{macrocode}
@@ -19071,8 +19606,8 @@ end
% \par
% \begin{markdown}
%
-%### Token Renderer Prototypes
-% \label{sec:textokenrendererprototypes}
+%### Token Renderer Prototypes {#textokenrendererprototypes}
+%
% The following definitions should be considered placeholder.
%
% \end{markdown}
@@ -19149,8 +19684,8 @@ end
%
%### Lua Snippets
% The \mdef{markdownLuaOptions} macro expands to a Lua table that
-% contains the plain \TeX{} options (see Section \vref{sec:texoptions}) in a
-% format recognized by Lua (see Section \vref{sec:luaoptions}).
+% contains the plain \TeX{} options (see Section <#sec:texoptions>) in a
+% format recognized by Lua (see Section <#sec:luaoptions>).
%
% \end{markdown}
% \begin{macrocode}
@@ -19228,6 +19763,9 @@ end
\ifx\markdownOptionPreserveTabs\undefined\else
preserveTabs = \markdownOptionPreserveTabs,
\fi
+\ifx\markdownOptionRelativeReferences\undefined\else
+ relativeReferences = \markdownOptionRelativeReferences,
+\fi
\ifx\markdownOptionShiftHeadings\undefined\else
shiftHeadings = "\markdownOptionShiftHeadings",
\fi
@@ -19294,8 +19832,7 @@ end
% \par
% \begin{markdown}
%
-%### Buffering Markdown Input
-% \label{sec:buffering}
+%### Buffering Markdown Input {#buffering}
%
% The
% \mdef{markdownIfOption}`{`\meta{name}`}{`\meta{iftrue}`}{`\meta{iffalse}`}`
@@ -19495,14 +20032,14 @@ end
% \par
% \begin{markdown}
%
-%### Lua Shell Escape Bridge
-% \label{sec:luabridge}
+%### Lua Shell Escape Bridge {#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 \mref{markdownMode} values of `0` and `1`.
%
% The \mref{markdownLuaExecute} macro defined here and in Section
-% \vref{sec:directlua} are meant to be indistinguishable to the remaining code.
+% <#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
@@ -19666,11 +20203,11 @@ end
% \par
% \begin{markdown}
%
-%### Direct Lua Access
-% \label{sec:directlua}
+%### Direct Lua Access {#directlua}
+%
% The following \TeX{} code is intended for \TeX{} engines that provide
% direct access to Lua (Lua\TeX{}). The macro \mref{markdownLuaExecute} defined
-% here and in Section \vref{sec:luabridge} are meant to be indistinguishable to
+% here and in Section <#sec:luabridge> are meant to be indistinguishable to
% the remaining code. This corresponds to the \mref{markdownMode} value of `2`.
%
% \end{markdown}
@@ -19684,7 +20221,7 @@ end
% 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},
+% \mref{markdownLuaExecute} definition from Section <#sec:luabridge>,
%
% \end{markdown}
% \begin{macrocode}
@@ -19806,16 +20343,16 @@ end
% \par
% \begin{markdown}
%
-% \LaTeX{} Implementation
-%------------------------
-% \label{sec:lateximplementation}
+% \LaTeX{} Implementation {#lateximplementation}
+%-------------------------
+%
% The \LaTeX{} implemenation makes use of the fact that, apart from some subtle
% differences, \LaTeX{} implements the majority of the plain \TeX{}
% format~[@latex17, Section 9]. As a consequence, we can directly reuse the
% existing plain \TeX{} implementation.
%
% The \LaTeX{} implementation redefines the plain \TeX{} logging macros (see
-% Section \vref{sec:texinterfacelogging}) to use the \LaTeX{} \mref{PackageInfo},
+% Section <#sec:texinterfacelogging>) to use the \LaTeX{} \mref{PackageInfo},
% \mref{PackageWarning}, and \mref{PackageError} macros.
%
% \end{markdown}
@@ -19833,7 +20370,7 @@ end
%
%### Logging Facilities
% The \LaTeX{} implementation redefines the plain \TeX{} logging macros (see
-% Section \vref{sec:texinterfacelogging}) to use the \LaTeX{} \mref{PackageInfo},
+% Section <#sec:texinterfacelogging>) to use the \LaTeX{} \mref{PackageInfo},
% \mref{PackageWarning}, and \mref{PackageError} macros.
%
% \end{markdown}
@@ -19846,7 +20383,7 @@ end
% The \mdef{markdownInputPlainTeX} macro is used to store the original plain
% \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 \vref{sec:latexoptions}).
+% the \LaTeX{} interface (see Section <#sec:latexoptions>).
%
% \end{markdown}
% \begin{macrocode}
@@ -19892,36 +20429,55 @@ end
% \par
% \begin{markdown}
%
-%### Options
-% The supplied package options are processed using the \mref{markdownSetup} macro.
+%#### \LaTeX{} Themes {#latexthemesimplementation}
+%
+% This section implements the theme-loading mechanism and the example themes
+% provided with the Markdown package.
%
% \end{markdown}
% \begin{macrocode}
-\DeclareOption*{%
- \expandafter\markdownSetup\expandafter{\CurrentOption}}%
-\ProcessOptions\relax
+\ExplSyntaxOn
% \end{macrocode}
% \begin{markdown}
%
-% After processing the options, activate the `renderers` and
-% `rendererPrototypes` keys.
+% To keep track of our current place when packages themes have been nested,
+% we will maintain the \mdef{g_\@\@_latex_themes_seq} stack of theme names.
%
% \end{markdown}
% \begin{macrocode}
-\define@key{markdownOptions}{renderers}{%
- \setkeys{markdownRenderers}{#1}%
- \def\KV@prefix{KV@markdownOptions@}}%
-\define@key{markdownOptions}{rendererPrototypes}{%
- \setkeys{markdownRendererPrototypes}{#1}%
- \def\KV@prefix{KV@markdownOptions@}}%
+\newcommand\markdownLaTeXThemeName{}
+\seq_new:N \g_@@_latex_themes_seq
+\seq_put_right:NV
+ \g_@@_latex_themes_seq
+ \markdownLaTeXThemeName
+\newcommand\markdownLaTeXThemeLoad[2]{
+ \def\@tempa{%
+ \def\markdownLaTeXThemeName{#2}
+ \seq_put_right:NV
+ \g_@@_latex_themes_seq
+ \markdownLaTeXThemeName
+ \RequirePackage{#1}
+ \seq_pop_right:NN
+ \g_@@_latex_themes_seq
+ \l_tmpa_tl
+ \seq_get_right:NN
+ \g_@@_latex_themes_seq
+ \l_tmpa_tl
+ \exp_args:NNV
+ \def
+ \markdownLaTeXThemeName
+ \l_tmpa_tl}
+ \ifmarkdownLaTeXLoaded
+ \@tempa
+ \else
+ \exp_args:No
+ \AtEndOfPackage
+ { \@tempa }
+ \fi}
+\ExplSyntaxOff
% \end{macrocode}
-% \par
% \begin{markdown}
%
-%#### \LaTeX{} Themes
-% \label{sec:latexthemesimplementation}
-% This section implements example themes provided with the Markdown package.
-%
% The `witiko/dot` theme enables the \Opt{fencedCode} Lua option:
%
% \end{markdown}
@@ -19935,7 +20491,7 @@ end
% \begin{markdown}
%
% We load the \pkg{ifthen} and \pkg{grffile} packages, see also
-% Section~\ref{sec:latexprerequisites}:
+% Section <#sec:latexprerequisites>:
%
% \end{markdown}
% \begin{macrocode}
@@ -20009,7 +20565,7 @@ end
% \begin{markdown}
%
% We load the \pkg{catchfile} and \pkg{grffile} packages, see also
-% Section~\ref{sec:latexprerequisites}:
+% Section <#sec:latexprerequisites>:
%
% \end{markdown}
% \begin{macrocode}
@@ -20148,10 +20704,36 @@ end
% \par
% \begin{markdown}
%
-%### Token Renderer Prototypes
-% \label{sec:latexdefaultrendererprototypes}
+%### Options
+% The supplied package options are processed using the \mref{markdownSetup} macro.
+%
+% \end{markdown}
+% \begin{macrocode}
+\DeclareOption*{%
+ \expandafter\markdownSetup\expandafter{\CurrentOption}}%
+\ProcessOptions\relax
+% \end{macrocode}
+% \begin{markdown}
+%
+% After processing the options, activate the `renderers` and
+% `rendererPrototypes` keys.
+%
+% \end{markdown}
+% \begin{macrocode}
+\define@key{markdownOptions}{renderers}{%
+ \setkeys{markdownRenderers}{#1}%
+ \def\KV@prefix{KV@markdownOptions@}}%
+\define@key{markdownOptions}{rendererPrototypes}{%
+ \setkeys{markdownRendererPrototypes}{#1}%
+ \def\KV@prefix{KV@markdownOptions@}}%
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
+%### Token Renderer Prototypes {#latexdefaultrendererprototypes}
+%
% The following configuration should be considered placeholder. If the `plain`
-% package option has been enabled (see Section \vref{sec:latexplain}), none of
+% package option has been enabled (see Section <#sec:latexplain>), none of
% it will take effect.
% \end{markdown}
% \begin{macrocode}
@@ -20289,7 +20871,6 @@ end
\ifx\empty#4\empty\else
\caption{#4}%
\fi
- \label{fig:#1}%
\end{figure}},
ulBegin = {\begin{itemize}},
ulEnd = {\end{itemize}},
@@ -20303,6 +20884,37 @@ end
emphasis = {\emph{#1}},
tickedBox = {$\boxtimes$},
halfTickedBox = {$\boxdot$},
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
+% If identifier attributes appear at the beginning of a section, we make the
+% next heading produce the \mref{label} macro.
+%
+% \end{markdown}
+% \begin{macrocode}
+ headerAttributeContextBegin = {
+ \markdownSetup{
+ rendererPrototypes = {
+ attributeIdentifier = {%
+ \begingroup
+ \def\next####1{%
+ \def####1########1{%
+ \endgroup
+ ####1{########1}%
+ \label{##1}%
+ }%
+ }%
+ \next\markdownRendererHeadingOne
+ \next\markdownRendererHeadingTwo
+ \next\markdownRendererHeadingThree
+ \next\markdownRendererHeadingFour
+ \next\markdownRendererHeadingFive
+ \next\markdownRendererHeadingSix
+ },
+ },
+ }%
+ },
blockQuoteBegin = {\begin{quotation}},
blockQuoteEnd = {\end{quotation}},
inputVerbatim = {\VerbatimInput{#1}},
@@ -20415,6 +21027,40 @@ end
% \par
% \begin{markdown}
%
+%#### HTML elements
+% If the \Opt{html} option is enabled and we are using [\TeX{}4ht][1], we will
+% pass HTML elements to the output HTML document unchanged.
+%
+% [1]: https://tug.org/tex4ht/
+%
+% \end{markdown}
+% \begin{macrocode}
+\@ifundefined{HCode}{}{
+ \markdownSetup{
+ rendererPrototypes = {
+ inlineHtmlTag = {%
+ \ifvmode
+ \IgnorePar
+ \EndP
+ \fi
+ \HCode{#1}%
+ },
+ inputBlockHtmlElement = {%
+ \ifvmode
+ \IgnorePar
+ \fi
+ \EndP
+ \special{t4ht*<#1}%
+ \par
+ \ShowPar
+ },
+ },
+ }
+}
+% \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},
@@ -20650,20 +21296,44 @@ end
%#### 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,
-% we restore the original catcode.
-%
+% mistaken for a parameter character.
% \end{markdown}
% \begin{macrocode}
\RequirePackage{url}
-\def\markdownRendererLinkPrototype{%
+\RequirePackage{expl3}
+\ExplSyntaxOn
+\def\markdownRendererLinkPrototype{
\begingroup
\catcode`\#=12
- \def\next##1##2##3##4{%
- ##1\footnote{%
- \ifx\empty##4\empty\else##4: \fi\texttt<\url{##3}\texttt>}%
- \endgroup}%
- \next}
+ \def\next##1##2##3##4{
+ \endgroup
+% \end{macrocode}
+% \begin{markdown}
+% If the URL begins with a hash sign, then we assume that it is a relative
+% reference. Otherwise, we assume that it is an absolute URL.
+% \end{markdown}
+% \begin{macrocode}
+ \tl_set:Nx
+ \l_tmpa_tl
+ { \str_range:nnn { ##3 } { 1 } { 1 } }
+ \str_if_eq:NNTF
+ \l_tmpa_tl
+ \c_hash_str
+ {
+ \exp_args:No
+ \markdownLaTeXRendererRelativeLink
+ { \str_range:nnn { ##3 } { 2 } { -1 } }
+ }{
+ \markdownLaTeXRendererAbsoluteLink { ##1 } { ##2 } { ##3 } { ##4 }
+ }
+ }
+ \next
+}
+\ExplSyntaxOff
+\def\markdownLaTeXRendererAbsoluteLink#1#2#3#4{%
+ #1\footnote{\ifx\empty#4\empty\else#4: \fi\texttt<\url{#3}\texttt>}}
+\def\markdownLaTeXRendererRelativeLink#1{%
+ \ref{#1}}
% \end{macrocode}
% \par
% \begin{markdown}
@@ -20681,14 +21351,16 @@ end
\newtoks\markdownLaTeXTable
\newtoks\markdownLaTeXTableAlignment
\newtoks\markdownLaTeXTableEnd
-\@ifpackageloaded{booktabs}{
- \let\markdownLaTeXTopRule\toprule
- \let\markdownLaTeXMidRule\midrule
- \let\markdownLaTeXBottomRule\bottomrule
-}{
- \let\markdownLaTeXTopRule\hline
- \let\markdownLaTeXMidRule\hline
- \let\markdownLaTeXBottomRule\hline
+\AtBeginDocument{%
+ \@ifpackageloaded{booktabs}{%
+ \def\markdownLaTeXTopRule{\toprule}%
+ \def\markdownLaTeXMidRule{\midrule}%
+ \def\markdownLaTeXBottomRule{\bottomrule}%
+ }{%
+ \def\markdownLaTeXTopRule{\hline}%
+ \def\markdownLaTeXMidRule{\hline}%
+ \def\markdownLaTeXBottomRule{\hline}%
+ }%
}
\markdownSetup{rendererPrototypes={
table = {%
@@ -20755,17 +21427,12 @@ 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.
+%#### YAML Metadata {#latexyamlmetadata}
%
% \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
@@ -21079,9 +21746,9 @@ end
% \par
% \begin{markdown}
%
-% \Hologo{ConTeXt} Implementation
-%--------------------------------
-% \label{sec:contextimplementation}
+% \Hologo{ConTeXt} Implementation {#contextimplementation}
+%---------------------------------
+%
% The \Hologo{ConTeXt} implementation makes use of the fact that, apart from
% some subtle differences, the Mark II and Mark IV \Hologo{ConTeXt} formats
% *seem* to implement (the documentation is scarce) the majority of the
@@ -21090,7 +21757,7 @@ end
% after supplying the missing plain \TeX{} macros.
%
% The \Hologo{ConTeXt} implementation redefines the plain \TeX{} logging macros
-% (see Section \vref{sec:texinterfacelogging}) to use the \Hologo{ConTeXt}
+% (see Section <#sec:texinterfacelogging>) to use the \Hologo{ConTeXt}
% \mref{writestatus} macro.
%
% \end{markdown}
@@ -21219,7 +21886,7 @@ end
\markdownInput{#3}%
\fi}%
\def\markdownRendererImagePrototype#1#2#3#4{%
- \placefigure[][fig:#1]{#4}{\externalfigure[#3]}}%
+ \placefigure[][]{#4}{\externalfigure[#3]}}%
\def\markdownRendererUlBeginPrototype{\startitemize}%
\def\markdownRendererUlBeginTightPrototype{\startitemize[packed]}%
\def\markdownRendererUlItemPrototype{\item}%
diff --git a/macros/generic/markdown/markdown.html b/macros/generic/markdown/markdown.html
index 3576b6edaf..1ea4c65f35 100644
--- a/macros/generic/markdown/markdown.html
+++ b/macros/generic/markdown/markdown.html
@@ -82,7 +82,7 @@
<header id="title-block-header">
<h1 class="title">Markdown Package User Manual</h1>
<p class="author">Vít Novotný</p>
-<p class="date">2.13.0-0-g1f680a8 (2022/01/30)</p>
+<p class="date">2.14.0-0-g9635d76 (2022/02/28)</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
@@ -119,8 +119,8 @@
</ul></li>
<li><a href="#markdown-tokens"><span class="toc-section-number">2.3</span> Markdown Tokens</a>
<ul>
-<li><a href="#token-renderers"><span class="toc-section-number">2.3.1</span> Token Renderers</a></li>
-<li><a href="#token-renderer-prototypes"><span class="toc-section-number">2.3.2</span> Token Renderer Prototypes</a></li>
+<li><a href="#texrenderersuser"><span class="toc-section-number">2.3.1</span> Token Renderers</a></li>
+<li><a href="#texrendererprototypes"><span class="toc-section-number">2.3.2</span> Token Renderer Prototypes</a></li>
</ul></li>
</ul></li>
</ul>
@@ -1266,7 +1266,7 @@
<p>The TeXbook [1, p.·123·and·130] is good.</p>
<p>The TeXbook [1, p. 123 and 130] is good.</p>
<h3 id="references">References</h3>
-<p>[1] Donald·Ervin Knuth. <em>The TeXbook, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p>
+<p><a href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">1</a> Donald·Ervin Knuth. <em>The TeXbook, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p>
</blockquote>
<h4 data-number="2.2.1.8" id="option-citations"><span class="header-section-number">2.2.1.8</span> Option <code>citations</code></h4>
<dl>
@@ -1325,9 +1325,9 @@
<span id="cb126-4"><a href="#cb126-4" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
-<p>The TeXbook [1, p.·123 and 130] was written by Knuth [1].</p>
+<p>The TeXbook [1, p.·123 and 130] was written by Knuth <a href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">1</a>.</p>
<h3 id="references-1">References</h3>
-<p>[1] Donald Ervin Knuth. <em>The <span class="tex">T<sub>e</sub>X</span>book, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p>
+<p><a href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">1</a> Donald Ervin Knuth. <em>The <span class="tex">T<sub>e</sub>X</span>book, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p>
</blockquote>
<h4 data-number="2.2.1.9" id="option-codespans"><span class="header-section-number">2.2.1.9</span> Option <code>codeSpans</code></h4>
<dl>
@@ -2321,7 +2321,7 @@ Thomas,Edison,1847</code></pre>
<dt><code>html</code> (default value: <code>false</code>)</dt>
<dd><dl>
<dt>true</dt>
-<dd><p>Enable the recognition of HTML tags, block elements, comments, HTML instructions, and entities in the input. Tags, block elements (along with contents), HTML instructions, and comments will be ignored and HTML entities will be replaced with the corresponding Unicode codepoints.</p>
+<dd><p>Enable the recognition of inline HTML tags, block HTML elements, HTML comments, HTML instructions, and entities in the input. Inline HTML tags, block HTML elements and HTML comments will be rendered, HTML instructions will be ignored, and HTML entities will be replaced with the corresponding Unicode codepoints.</p>
</dd>
</dl>
</dd>
@@ -2901,7 +2901,56 @@ Thomas,Edison,1847</code></pre>
</dl>
</dd>
</dl>
-<h4 data-number="2.2.1.27" id="option-shiftheadings"><span class="header-section-number">2.2.1.27</span> Option <code>shiftHeadings</code></h4>
+<h4 data-number="2.2.1.27" id="option-relativereferences"><span class="header-section-number">2.2.1.27</span> Option <code>relativeReferences</code></h4>
+<dl>
+<dt><code>relativeReferences</code> (default value: <code>false</code>)</dt>
+<dd><dl>
+<dt>true</dt>
+<dd><p>Enable <a href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">relative references</a> in autolinks:</p>
+<div class="sourceCode" id="cb259"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb259-1"><a href="#cb259-1" aria-hidden="true"></a>I conclude in Section &lt;#conclusion&gt;.</span>
+<span id="cb259-2"><a href="#cb259-2" aria-hidden="true"></a></span>
+<span id="cb259-3"><a href="#cb259-3" aria-hidden="true"></a>Conclusion {#conclusion}</span>
+<span id="cb259-4"><a href="#cb259-4" aria-hidden="true"></a><span class="fu">==========</span></span>
+<span id="cb259-5"><a href="#cb259-5" aria-hidden="true"></a>In this paper, we have discovered that most</span>
+<span id="cb259-6"><a href="#cb259-6" aria-hidden="true"></a>grandmas would rather eat dinner with their</span>
+<span id="cb259-7"><a href="#cb259-7" aria-hidden="true"></a>grandchildren than get eaten. Begone, wolf!</span></code></pre></div>
+</dd>
+</dl>
+</dd>
+<dd><dl>
+<dt>false</dt>
+<dd><p>Disable relative references in autolinks.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h5 class="unnumbered" data-number="" id="latex-example-22"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb260"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb260-1"><a href="#cb260-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb260-2"><a href="#cb260-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[headerAttributes, relativeReferences]{<span class="ex">markdown</span>}</span>
+<span id="cb260-3"><a href="#cb260-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb260-4"><a href="#cb260-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb260-5"><a href="#cb260-5" aria-hidden="true"></a></span>
+<span id="cb260-6"><a href="#cb260-6" aria-hidden="true"></a>I conclude in Section &lt;#conclusion&gt;.</span>
+<span id="cb260-7"><a href="#cb260-7" aria-hidden="true"></a></span>
+<span id="cb260-8"><a href="#cb260-8" aria-hidden="true"></a>Conclusion {#conclusion}</span>
+<span id="cb260-9"><a href="#cb260-9" aria-hidden="true"></a>==========</span>
+<span id="cb260-10"><a href="#cb260-10" aria-hidden="true"></a>In this paper, we have discovered that most</span>
+<span id="cb260-11"><a href="#cb260-11" aria-hidden="true"></a>grandmas would rather eat dinner with their</span>
+<span id="cb260-12"><a href="#cb260-12" aria-hidden="true"></a>grandchildren than get eaten. Begone, wolf!</span>
+<span id="cb260-13"><a href="#cb260-13" aria-hidden="true"></a></span>
+<span id="cb260-14"><a href="#cb260-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb260-15"><a href="#cb260-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX twice from the terminal:</p>
+<div class="sourceCode" id="cb261"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb261-1"><a href="#cb261-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
+<span id="cb261-2"><a href="#cb261-2" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
+<blockquote>
+<p>I conclude in Section 1.</p>
+<h1 id="conclusion">1. Conclusion</h1>
+<p>In this paper, we have discovered that most grandmas would rather eat dinner with their grandchildren than get eaten. Begone, wolf!</p>
+</blockquote>
+<h4 data-number="2.2.1.28" id="option-shiftheadings"><span class="header-section-number">2.2.1.28</span> Option <code>shiftHeadings</code></h4>
<dl>
<dt><code>shiftHeadings</code> (default value: <code>0</code>)</dt>
<dd><p>All headings will be shifted by ⟨<em>shift amount</em>⟩, which can be both positive and negative. Headings will not be shifted beyond level 6 or below level 1. Instead, those headings will be shifted to level 6, when ⟨<em>shift amount</em>⟩ is positive, and to level 1, when ⟨<em>shift amount</em>⟩ is negative.</p>
@@ -2909,48 +2958,48 @@ Thomas,Edison,1847</code></pre>
</dl>
<h5 class="unnumbered" data-number="" id="plain-tex-example-11">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>example.md</code> with the following content:</p>
-<div class="sourceCode" id="cb259"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb259-1"><a href="#cb259-1" aria-hidden="true"></a><span class="fu">## A section</span></span></code></pre></div>
-<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb260"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb260-1"><a href="#cb260-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb260-2"><a href="#cb260-2" aria-hidden="true"></a></span>
-<span id="cb260-3"><a href="#cb260-3" aria-hidden="true"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span>
-<span id="cb260-4"><a href="#cb260-4" aria-hidden="true"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span>
-<span id="cb260-5"><a href="#cb260-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span>
-<span id="cb260-6"><a href="#cb260-6" aria-hidden="true"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span>
-<span id="cb260-7"><a href="#cb260-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span>
-<span id="cb260-8"><a href="#cb260-8" aria-hidden="true"></a></span>
-<span id="cb260-9"><a href="#cb260-9" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{-1}</span>
-<span id="cb260-10"><a href="#cb260-10" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb260-11"><a href="#cb260-11" aria-hidden="true"></a></span>
-<span id="cb260-12"><a href="#cb260-12" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{0}</span>
-<span id="cb260-13"><a href="#cb260-13" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb260-14"><a href="#cb260-14" aria-hidden="true"></a></span>
-<span id="cb260-15"><a href="#cb260-15" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{+1}</span>
-<span id="cb260-16"><a href="#cb260-16" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb260-17"><a href="#cb260-17" aria-hidden="true"></a></span>
-<span id="cb260-18"><a href="#cb260-18" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb261"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb261-1"><a href="#cb261-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb262"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb262-1"><a href="#cb262-1" aria-hidden="true"></a><span class="fu">## A section</span></span></code></pre></div>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb263"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb263-1"><a href="#cb263-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb263-2"><a href="#cb263-2" aria-hidden="true"></a></span>
+<span id="cb263-3"><a href="#cb263-3" aria-hidden="true"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span>
+<span id="cb263-4"><a href="#cb263-4" aria-hidden="true"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span>
+<span id="cb263-5"><a href="#cb263-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span>
+<span id="cb263-6"><a href="#cb263-6" aria-hidden="true"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span>
+<span id="cb263-7"><a href="#cb263-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span>
+<span id="cb263-8"><a href="#cb263-8" aria-hidden="true"></a></span>
+<span id="cb263-9"><a href="#cb263-9" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{-1}</span>
+<span id="cb263-10"><a href="#cb263-10" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb263-11"><a href="#cb263-11" aria-hidden="true"></a></span>
+<span id="cb263-12"><a href="#cb263-12" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{0}</span>
+<span id="cb263-13"><a href="#cb263-13" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb263-14"><a href="#cb263-14" aria-hidden="true"></a></span>
+<span id="cb263-15"><a href="#cb263-15" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{+1}</span>
+<span id="cb263-16"><a href="#cb263-16" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb263-17"><a href="#cb263-17" aria-hidden="true"></a></span>
+<span id="cb263-18"><a href="#cb263-18" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb264"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb264-1"><a href="#cb264-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<h1 id="a-section">A section</h1>
<h2 id="a-section-1">A section</h2>
<h3 id="a-section-2">A section</h3>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-22"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-23"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb262"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb262-1"><a href="#cb262-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb262-2"><a href="#cb262-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb262-3"><a href="#cb262-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{example.md}</span>
-<span id="cb262-4"><a href="#cb262-4" aria-hidden="true"></a>## A section</span>
-<span id="cb262-5"><a href="#cb262-5" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span>
-<span id="cb262-6"><a href="#cb262-6" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb262-7"><a href="#cb262-7" aria-hidden="true"></a><span class="fu">\markdownInput</span>[shiftHeadings=-1]{example.md}</span>
-<span id="cb262-8"><a href="#cb262-8" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb262-9"><a href="#cb262-9" aria-hidden="true"></a><span class="fu">\markdownInput</span>[shiftHeadings=+1]{example.md}</span>
-<span id="cb262-10"><a href="#cb262-10" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb265"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb265-1"><a href="#cb265-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb265-2"><a href="#cb265-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb265-3"><a href="#cb265-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{example.md}</span>
+<span id="cb265-4"><a href="#cb265-4" aria-hidden="true"></a>## A section</span>
+<span id="cb265-5"><a href="#cb265-5" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span>
+<span id="cb265-6"><a href="#cb265-6" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb265-7"><a href="#cb265-7" aria-hidden="true"></a><span class="fu">\markdownInput</span>[shiftHeadings=-1]{example.md}</span>
+<span id="cb265-8"><a href="#cb265-8" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb265-9"><a href="#cb265-9" aria-hidden="true"></a><span class="fu">\markdownInput</span>[shiftHeadings=+1]{example.md}</span>
+<span id="cb265-10"><a href="#cb265-10" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb263"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb263-1"><a href="#cb263-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb266"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb266-1"><a href="#cb266-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<h1 id="a-section-3">A section</h1>
@@ -2959,30 +3008,30 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-19">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>example.md</code> with the following content:</p>
-<div class="sourceCode" id="cb264"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb264-1"><a href="#cb264-1" aria-hidden="true"></a><span class="fu">## A section</span></span></code></pre></div>
-<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb265"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb265-1"><a href="#cb265-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb265-2"><a href="#cb265-2" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb265-3"><a href="#cb265-3" aria-hidden="true"></a></span>
-<span id="cb265-4"><a href="#cb265-4" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{-1}</span>
-<span id="cb265-5"><a href="#cb265-5" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb265-6"><a href="#cb265-6" aria-hidden="true"></a></span>
-<span id="cb265-7"><a href="#cb265-7" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{0}</span>
-<span id="cb265-8"><a href="#cb265-8" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb265-9"><a href="#cb265-9" aria-hidden="true"></a></span>
-<span id="cb265-10"><a href="#cb265-10" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{+1}</span>
-<span id="cb265-11"><a href="#cb265-11" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb265-12"><a href="#cb265-12" aria-hidden="true"></a></span>
-<span id="cb265-13"><a href="#cb265-13" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb267"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb267-1"><a href="#cb267-1" aria-hidden="true"></a><span class="fu">## A section</span></span></code></pre></div>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb268"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb268-1"><a href="#cb268-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb268-2"><a href="#cb268-2" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb268-3"><a href="#cb268-3" aria-hidden="true"></a></span>
+<span id="cb268-4"><a href="#cb268-4" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{-1}</span>
+<span id="cb268-5"><a href="#cb268-5" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb268-6"><a href="#cb268-6" aria-hidden="true"></a></span>
+<span id="cb268-7"><a href="#cb268-7" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{0}</span>
+<span id="cb268-8"><a href="#cb268-8" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb268-9"><a href="#cb268-9" aria-hidden="true"></a></span>
+<span id="cb268-10"><a href="#cb268-10" aria-hidden="true"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{+1}</span>
+<span id="cb268-11"><a href="#cb268-11" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb268-12"><a href="#cb268-12" aria-hidden="true"></a></span>
+<span id="cb268-13"><a href="#cb268-13" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb266"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb266-1"><a href="#cb266-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb269"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb269-1"><a href="#cb269-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<h1 id="a-section-6">A section</h1>
<h2 id="a-section-7">A section</h2>
<h3 id="a-section-8">A section</h3>
</blockquote>
-<h4 data-number="2.2.1.28" id="slice"><span class="header-section-number">2.2.1.28</span> Option <code>slice</code></h4>
+<h4 data-number="2.2.1.29" id="slice"><span class="header-section-number">2.2.1.29</span> Option <code>slice</code></h4>
<dl>
<dt><code>slice</code> (default value: <code>^ $</code>)</dt>
<dd><p>Two space-separated selectors that specify the slice of a document that will be processed, whereas the remainder of the document will be ignored. The following selectors are recognized:</p>
@@ -2998,39 +3047,39 @@ Thomas,Edison,1847</code></pre>
</dl>
<h5 class="unnumbered" data-number="" id="plain-tex-example-12">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>hamlet.md</code> with the following content:</p>
-<div class="sourceCode" id="cb267"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb267-1"><a href="#cb267-1" aria-hidden="true"></a><span class="fu"># The Tragedy of Hamlet</span></span>
-<span id="cb267-2"><a href="#cb267-2" aria-hidden="true"></a>Shakespeare&#39;s longest play.</span>
-<span id="cb267-3"><a href="#cb267-3" aria-hidden="true"></a></span>
-<span id="cb267-4"><a href="#cb267-4" aria-hidden="true"></a><span class="fu">## Act III {#act-3}</span></span>
-<span id="cb267-5"><a href="#cb267-5" aria-hidden="true"></a>Hamlet kills Polonius.</span>
-<span id="cb267-6"><a href="#cb267-6" aria-hidden="true"></a></span>
-<span id="cb267-7"><a href="#cb267-7" aria-hidden="true"></a><span class="fu">## Act V {#act-5}</span></span>
-<span id="cb267-8"><a href="#cb267-8" aria-hidden="true"></a>Hamlet dies.</span>
-<span id="cb267-9"><a href="#cb267-9" aria-hidden="true"></a></span>
-<span id="cb267-10"><a href="#cb267-10" aria-hidden="true"></a><span class="fu">## Act I {#act-1}</span></span>
-<span id="cb267-11"><a href="#cb267-11" aria-hidden="true"></a>Hamlet talks to ghost.</span></code></pre></div>
-<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb268"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb268-1"><a href="#cb268-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb268-2"><a href="#cb268-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHeaderAttributes</span>{true}</span>
-<span id="cb268-3"><a href="#cb268-3" aria-hidden="true"></a></span>
-<span id="cb268-4"><a href="#cb268-4" aria-hidden="true"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span>
-<span id="cb268-5"><a href="#cb268-5" aria-hidden="true"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span>
-<span id="cb268-6"><a href="#cb268-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span>
-<span id="cb268-7"><a href="#cb268-7" aria-hidden="true"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span>
-<span id="cb268-8"><a href="#cb268-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span>
-<span id="cb268-9"><a href="#cb268-9" aria-hidden="true"></a></span>
-<span id="cb268-10"><a href="#cb268-10" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{^ ^act-3}</span>
-<span id="cb268-11"><a href="#cb268-11" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
-<span id="cb268-12"><a href="#cb268-12" aria-hidden="true"></a></span>
-<span id="cb268-13"><a href="#cb268-13" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-1}</span>
-<span id="cb268-14"><a href="#cb268-14" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
-<span id="cb268-15"><a href="#cb268-15" aria-hidden="true"></a></span>
-<span id="cb268-16"><a href="#cb268-16" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-3 act-5}</span>
-<span id="cb268-17"><a href="#cb268-17" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
-<span id="cb268-18"><a href="#cb268-18" aria-hidden="true"></a></span>
-<span id="cb268-19"><a href="#cb268-19" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb269"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb269-1"><a href="#cb269-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb270"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb270-1"><a href="#cb270-1" aria-hidden="true"></a><span class="fu"># The Tragedy of Hamlet</span></span>
+<span id="cb270-2"><a href="#cb270-2" aria-hidden="true"></a>Shakespeare&#39;s longest play.</span>
+<span id="cb270-3"><a href="#cb270-3" aria-hidden="true"></a></span>
+<span id="cb270-4"><a href="#cb270-4" aria-hidden="true"></a><span class="fu">## Act III {#act-3}</span></span>
+<span id="cb270-5"><a href="#cb270-5" aria-hidden="true"></a>Hamlet kills Polonius.</span>
+<span id="cb270-6"><a href="#cb270-6" aria-hidden="true"></a></span>
+<span id="cb270-7"><a href="#cb270-7" aria-hidden="true"></a><span class="fu">## Act V {#act-5}</span></span>
+<span id="cb270-8"><a href="#cb270-8" aria-hidden="true"></a>Hamlet dies.</span>
+<span id="cb270-9"><a href="#cb270-9" aria-hidden="true"></a></span>
+<span id="cb270-10"><a href="#cb270-10" aria-hidden="true"></a><span class="fu">## Act I {#act-1}</span></span>
+<span id="cb270-11"><a href="#cb270-11" aria-hidden="true"></a>Hamlet talks to ghost.</span></code></pre></div>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb271"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb271-1"><a href="#cb271-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb271-2"><a href="#cb271-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHeaderAttributes</span>{true}</span>
+<span id="cb271-3"><a href="#cb271-3" aria-hidden="true"></a></span>
+<span id="cb271-4"><a href="#cb271-4" aria-hidden="true"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span>
+<span id="cb271-5"><a href="#cb271-5" aria-hidden="true"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span>
+<span id="cb271-6"><a href="#cb271-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span>
+<span id="cb271-7"><a href="#cb271-7" aria-hidden="true"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span>
+<span id="cb271-8"><a href="#cb271-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span>
+<span id="cb271-9"><a href="#cb271-9" aria-hidden="true"></a></span>
+<span id="cb271-10"><a href="#cb271-10" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{^ ^act-3}</span>
+<span id="cb271-11"><a href="#cb271-11" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
+<span id="cb271-12"><a href="#cb271-12" aria-hidden="true"></a></span>
+<span id="cb271-13"><a href="#cb271-13" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-1}</span>
+<span id="cb271-14"><a href="#cb271-14" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
+<span id="cb271-15"><a href="#cb271-15" aria-hidden="true"></a></span>
+<span id="cb271-16"><a href="#cb271-16" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-3 act-5}</span>
+<span id="cb271-17"><a href="#cb271-17" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
+<span id="cb271-18"><a href="#cb271-18" aria-hidden="true"></a></span>
+<span id="cb271-19"><a href="#cb271-19" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb272"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb272-1"><a href="#cb272-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<h1 id="the-tragedy-of-hamlet">The Tragedy of Hamlet</h1>
@@ -3042,30 +3091,30 @@ Thomas,Edison,1847</code></pre>
<h2 id="act-v">Act V</h2>
<p>Hamlet dies.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-23"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-24"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb270"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb270-1"><a href="#cb270-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb270-2"><a href="#cb270-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[headerAttributes]{<span class="ex">markdown</span>}</span>
-<span id="cb270-3"><a href="#cb270-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{hamlet.md}</span>
-<span id="cb270-4"><a href="#cb270-4" aria-hidden="true"></a># The Tragedy of Hamlet</span>
-<span id="cb270-5"><a href="#cb270-5" aria-hidden="true"></a>Shakespeare&#39;s longest play.</span>
-<span id="cb270-6"><a href="#cb270-6" aria-hidden="true"></a></span>
-<span id="cb270-7"><a href="#cb270-7" aria-hidden="true"></a>## Act III {#act-3}</span>
-<span id="cb270-8"><a href="#cb270-8" aria-hidden="true"></a>Hamlet kills Polonius.</span>
-<span id="cb270-9"><a href="#cb270-9" aria-hidden="true"></a></span>
-<span id="cb270-10"><a href="#cb270-10" aria-hidden="true"></a>## Act V {#act-5}</span>
-<span id="cb270-11"><a href="#cb270-11" aria-hidden="true"></a>Hamlet dies.</span>
-<span id="cb270-12"><a href="#cb270-12" aria-hidden="true"></a></span>
-<span id="cb270-13"><a href="#cb270-13" aria-hidden="true"></a>## Act I {#act-1}</span>
-<span id="cb270-14"><a href="#cb270-14" aria-hidden="true"></a>Hamlet talks to ghost.</span>
-<span id="cb270-15"><a href="#cb270-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span>
-<span id="cb270-16"><a href="#cb270-16" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb270-17"><a href="#cb270-17" aria-hidden="true"></a><span class="fu">\markdownInput</span>[slice=^ ^act-3]{hamlet.md}</span>
-<span id="cb270-18"><a href="#cb270-18" aria-hidden="true"></a><span class="fu">\markdownInput</span>[slice=act-1]{hamlet.md}</span>
-<span id="cb270-19"><a href="#cb270-19" aria-hidden="true"></a><span class="fu">\markdownInput</span>[slice=act-3 act-5]{hamlet.md}</span>
-<span id="cb270-20"><a href="#cb270-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb271"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb271-1"><a href="#cb271-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb273"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb273-1"><a href="#cb273-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb273-2"><a href="#cb273-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[headerAttributes]{<span class="ex">markdown</span>}</span>
+<span id="cb273-3"><a href="#cb273-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{hamlet.md}</span>
+<span id="cb273-4"><a href="#cb273-4" aria-hidden="true"></a># The Tragedy of Hamlet</span>
+<span id="cb273-5"><a href="#cb273-5" aria-hidden="true"></a>Shakespeare&#39;s longest play.</span>
+<span id="cb273-6"><a href="#cb273-6" aria-hidden="true"></a></span>
+<span id="cb273-7"><a href="#cb273-7" aria-hidden="true"></a>## Act III {#act-3}</span>
+<span id="cb273-8"><a href="#cb273-8" aria-hidden="true"></a>Hamlet kills Polonius.</span>
+<span id="cb273-9"><a href="#cb273-9" aria-hidden="true"></a></span>
+<span id="cb273-10"><a href="#cb273-10" aria-hidden="true"></a>## Act V {#act-5}</span>
+<span id="cb273-11"><a href="#cb273-11" aria-hidden="true"></a>Hamlet dies.</span>
+<span id="cb273-12"><a href="#cb273-12" aria-hidden="true"></a></span>
+<span id="cb273-13"><a href="#cb273-13" aria-hidden="true"></a>## Act I {#act-1}</span>
+<span id="cb273-14"><a href="#cb273-14" aria-hidden="true"></a>Hamlet talks to ghost.</span>
+<span id="cb273-15"><a href="#cb273-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span>
+<span id="cb273-16"><a href="#cb273-16" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb273-17"><a href="#cb273-17" aria-hidden="true"></a><span class="fu">\markdownInput</span>[slice=^ ^act-3]{hamlet.md}</span>
+<span id="cb273-18"><a href="#cb273-18" aria-hidden="true"></a><span class="fu">\markdownInput</span>[slice=act-1]{hamlet.md}</span>
+<span id="cb273-19"><a href="#cb273-19" aria-hidden="true"></a><span class="fu">\markdownInput</span>[slice=act-3 act-5]{hamlet.md}</span>
+<span id="cb273-20"><a href="#cb273-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb274"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb274-1"><a href="#cb274-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<h1 id="the-tragedy-of-hamlet-1">The Tragedy of Hamlet</h1>
@@ -3079,34 +3128,34 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-20">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>hamlet.md</code> with the following content:</p>
-<div class="sourceCode" id="cb272"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb272-1"><a href="#cb272-1" aria-hidden="true"></a><span class="fu"># The Tragedy of Hamlet</span></span>
-<span id="cb272-2"><a href="#cb272-2" aria-hidden="true"></a>Shakespeare&#39;s longest play.</span>
-<span id="cb272-3"><a href="#cb272-3" aria-hidden="true"></a></span>
-<span id="cb272-4"><a href="#cb272-4" aria-hidden="true"></a><span class="fu">## Act III {#act-3}</span></span>
-<span id="cb272-5"><a href="#cb272-5" aria-hidden="true"></a>Hamlet kills Polonius.</span>
-<span id="cb272-6"><a href="#cb272-6" aria-hidden="true"></a></span>
-<span id="cb272-7"><a href="#cb272-7" aria-hidden="true"></a><span class="fu">## Act V {#act-5}</span></span>
-<span id="cb272-8"><a href="#cb272-8" aria-hidden="true"></a>Hamlet dies.</span>
-<span id="cb272-9"><a href="#cb272-9" aria-hidden="true"></a></span>
-<span id="cb272-10"><a href="#cb272-10" aria-hidden="true"></a><span class="fu">## Act I {#act-1}</span></span>
-<span id="cb272-11"><a href="#cb272-11" aria-hidden="true"></a>Hamlet talks to ghost.</span></code></pre></div>
-<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb273"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb273-1"><a href="#cb273-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb273-2"><a href="#cb273-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHeaderAttributes</span>{true}</span>
-<span id="cb273-3"><a href="#cb273-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb273-4"><a href="#cb273-4" aria-hidden="true"></a></span>
-<span id="cb273-5"><a href="#cb273-5" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{^ ^act-3}</span>
-<span id="cb273-6"><a href="#cb273-6" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
-<span id="cb273-7"><a href="#cb273-7" aria-hidden="true"></a></span>
-<span id="cb273-8"><a href="#cb273-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-1}</span>
-<span id="cb273-9"><a href="#cb273-9" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
-<span id="cb273-10"><a href="#cb273-10" aria-hidden="true"></a></span>
-<span id="cb273-11"><a href="#cb273-11" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-3 act-5}</span>
-<span id="cb273-12"><a href="#cb273-12" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
-<span id="cb273-13"><a href="#cb273-13" aria-hidden="true"></a></span>
-<span id="cb273-14"><a href="#cb273-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb274"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb274-1"><a href="#cb274-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb275"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb275-1"><a href="#cb275-1" aria-hidden="true"></a><span class="fu"># The Tragedy of Hamlet</span></span>
+<span id="cb275-2"><a href="#cb275-2" aria-hidden="true"></a>Shakespeare&#39;s longest play.</span>
+<span id="cb275-3"><a href="#cb275-3" aria-hidden="true"></a></span>
+<span id="cb275-4"><a href="#cb275-4" aria-hidden="true"></a><span class="fu">## Act III {#act-3}</span></span>
+<span id="cb275-5"><a href="#cb275-5" aria-hidden="true"></a>Hamlet kills Polonius.</span>
+<span id="cb275-6"><a href="#cb275-6" aria-hidden="true"></a></span>
+<span id="cb275-7"><a href="#cb275-7" aria-hidden="true"></a><span class="fu">## Act V {#act-5}</span></span>
+<span id="cb275-8"><a href="#cb275-8" aria-hidden="true"></a>Hamlet dies.</span>
+<span id="cb275-9"><a href="#cb275-9" aria-hidden="true"></a></span>
+<span id="cb275-10"><a href="#cb275-10" aria-hidden="true"></a><span class="fu">## Act I {#act-1}</span></span>
+<span id="cb275-11"><a href="#cb275-11" aria-hidden="true"></a>Hamlet talks to ghost.</span></code></pre></div>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb276"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb276-1"><a href="#cb276-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb276-2"><a href="#cb276-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHeaderAttributes</span>{true}</span>
+<span id="cb276-3"><a href="#cb276-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb276-4"><a href="#cb276-4" aria-hidden="true"></a></span>
+<span id="cb276-5"><a href="#cb276-5" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{^ ^act-3}</span>
+<span id="cb276-6"><a href="#cb276-6" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
+<span id="cb276-7"><a href="#cb276-7" aria-hidden="true"></a></span>
+<span id="cb276-8"><a href="#cb276-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-1}</span>
+<span id="cb276-9"><a href="#cb276-9" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
+<span id="cb276-10"><a href="#cb276-10" aria-hidden="true"></a></span>
+<span id="cb276-11"><a href="#cb276-11" aria-hidden="true"></a><span class="fu">\def\markdownOptionSlice</span>{act-3 act-5}</span>
+<span id="cb276-12"><a href="#cb276-12" aria-hidden="true"></a><span class="fu">\markdownInput</span>{hamlet.md}</span>
+<span id="cb276-13"><a href="#cb276-13" aria-hidden="true"></a></span>
+<span id="cb276-14"><a href="#cb276-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb277"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb277-1"><a href="#cb277-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<h1 id="the-tragedy-of-hamlet-2">The Tragedy of Hamlet</h1>
@@ -3118,7 +3167,7 @@ Thomas,Edison,1847</code></pre>
<h2 id="act-v-2">Act V</h2>
<p>Hamlet dies.</p>
</blockquote>
-<h4 data-number="2.2.1.29" id="option-smartellipses"><span class="header-section-number">2.2.1.29</span> Option <code>smartEllipses</code></h4>
+<h4 data-number="2.2.1.30" id="option-smartellipses"><span class="header-section-number">2.2.1.30</span> Option <code>smartEllipses</code></h4>
<dl>
<dt><code>smartEllipses</code> (default value: <code>false</code>)</dt>
<dd><dl>
@@ -3136,23 +3185,23 @@ Thomas,Edison,1847</code></pre>
</dl>
<h5 class="unnumbered" data-number="" id="lua-module-example-11">Lua Module Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb275"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb275-1"><a href="#cb275-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb275-2"><a href="#cb275-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
-<span id="cb275-3"><a href="#cb275-3" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
-<span id="cb275-4"><a href="#cb275-4" aria-hidden="true"></a><span class="fu">\directlua</span>{</span>
-<span id="cb275-5"><a href="#cb275-5" aria-hidden="true"></a> local markdown = require(&quot;markdown&quot;)</span>
-<span id="cb275-6"><a href="#cb275-6" aria-hidden="true"></a> local convert = markdown.new()</span>
-<span id="cb275-7"><a href="#cb275-7" aria-hidden="true"></a> local input = &quot;These are just three regular dots ...&quot;</span>
-<span id="cb275-8"><a href="#cb275-8" aria-hidden="true"></a> tex.sprint(convert(input)) }</span>
-<span id="cb275-9"><a href="#cb275-9" aria-hidden="true"></a><span class="fu">\par</span></span>
-<span id="cb275-10"><a href="#cb275-10" aria-hidden="true"></a><span class="fu">\directlua</span>{</span>
-<span id="cb275-11"><a href="#cb275-11" aria-hidden="true"></a> local markdown = require(&quot;markdown&quot;)</span>
-<span id="cb275-12"><a href="#cb275-12" aria-hidden="true"></a> local convert = markdown.new({smartEllipses = true})</span>
-<span id="cb275-13"><a href="#cb275-13" aria-hidden="true"></a> local input = &quot;... and this is a victorian ellipsis.&quot;</span>
-<span id="cb275-14"><a href="#cb275-14" aria-hidden="true"></a> tex.sprint(convert(input)) }</span>
-<span id="cb275-15"><a href="#cb275-15" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb278"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb278-1"><a href="#cb278-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb278-2"><a href="#cb278-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
+<span id="cb278-3"><a href="#cb278-3" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
+<span id="cb278-4"><a href="#cb278-4" aria-hidden="true"></a><span class="fu">\directlua</span>{</span>
+<span id="cb278-5"><a href="#cb278-5" aria-hidden="true"></a> local markdown = require(&quot;markdown&quot;)</span>
+<span id="cb278-6"><a href="#cb278-6" aria-hidden="true"></a> local convert = markdown.new()</span>
+<span id="cb278-7"><a href="#cb278-7" aria-hidden="true"></a> local input = &quot;These are just three regular dots ...&quot;</span>
+<span id="cb278-8"><a href="#cb278-8" aria-hidden="true"></a> tex.sprint(convert(input)) }</span>
+<span id="cb278-9"><a href="#cb278-9" aria-hidden="true"></a><span class="fu">\par</span></span>
+<span id="cb278-10"><a href="#cb278-10" aria-hidden="true"></a><span class="fu">\directlua</span>{</span>
+<span id="cb278-11"><a href="#cb278-11" aria-hidden="true"></a> local markdown = require(&quot;markdown&quot;)</span>
+<span id="cb278-12"><a href="#cb278-12" aria-hidden="true"></a> local convert = markdown.new({smartEllipses = true})</span>
+<span id="cb278-13"><a href="#cb278-13" aria-hidden="true"></a> local input = &quot;... and this is a victorian ellipsis.&quot;</span>
+<span id="cb278-14"><a href="#cb278-14" aria-hidden="true"></a> tex.sprint(convert(input)) }</span>
+<span id="cb278-15"><a href="#cb278-15" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Then, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb276"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb276-1"><a href="#cb276-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb279"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb279-1"><a href="#cb279-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>These are just three regular dots …</p>
@@ -3160,19 +3209,19 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="lua-cli-example-9">Lua CLI Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb277"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb277-1"><a href="#cb277-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb277-2"><a href="#cb277-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
-<span id="cb277-3"><a href="#cb277-3" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
-<span id="cb277-4"><a href="#cb277-4" aria-hidden="true"></a><span class="fu">\input</span> optionfalse</span>
-<span id="cb277-5"><a href="#cb277-5" aria-hidden="true"></a><span class="fu">\par</span></span>
-<span id="cb277-6"><a href="#cb277-6" aria-hidden="true"></a><span class="fu">\input</span> optiontrue</span>
-<span id="cb277-7"><a href="#cb277-7" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb280"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb280-1"><a href="#cb280-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb280-2"><a href="#cb280-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
+<span id="cb280-3"><a href="#cb280-3" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
+<span id="cb280-4"><a href="#cb280-4" aria-hidden="true"></a><span class="fu">\input</span> optionfalse</span>
+<span id="cb280-5"><a href="#cb280-5" aria-hidden="true"></a><span class="fu">\par</span></span>
+<span id="cb280-6"><a href="#cb280-6" aria-hidden="true"></a><span class="fu">\input</span> optiontrue</span>
+<span id="cb280-7"><a href="#cb280-7" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Using a text editor, create a text document named <code>content.md</code> with the following content:</p>
-<div class="sourceCode" id="cb278"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb278-1"><a href="#cb278-1" aria-hidden="true"></a>Are these just three regular dots, a victorian ellipsis, or ... ?</span></code></pre></div>
+<div class="sourceCode" id="cb281"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb281-1"><a href="#cb281-1" aria-hidden="true"></a>Are these just three regular dots, a victorian ellipsis, or ... ?</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb279"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb279-1"><a href="#cb279-1" aria-hidden="true"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ -- content.md optionfalse.tex</span>
-<span id="cb279-2"><a href="#cb279-2" aria-hidden="true"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ smartEllipses=true -- content.md optiontrue.tex</span>
-<span id="cb279-3"><a href="#cb279-3" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb282"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb282-1"><a href="#cb282-1" aria-hidden="true"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ -- content.md optionfalse.tex</span>
+<span id="cb282-2"><a href="#cb282-2" aria-hidden="true"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ smartEllipses=true -- content.md optiontrue.tex</span>
+<span id="cb282-3"><a href="#cb282-3" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>where ⟨<em>CLI pathname</em>⟩ corresponds to the location of the Lua CLI script file, such as <code>~/texmf/scripts/markdown/markdown-cli.lua</code> on UN*X systems or <code>C:\Users\</code>⟨<em>Your username</em>⟩<code>\texmf\scripts\markdown\markdown-cli.lua</code> on Windows systems. Use the command <code>kpsewhich -a markdown-cli.lua</code> to locate the Lua CLI script file using <a href="https://tug.org/kpathsea/" title="Kpathsea - TeX Users Group">Kpathsea</a>.</p>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
@@ -3181,48 +3230,48 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="plain-tex-example-13">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb280"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb280-1"><a href="#cb280-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb280-2"><a href="#cb280-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
-<span id="cb280-3"><a href="#cb280-3" aria-hidden="true"></a></span>
-<span id="cb280-4"><a href="#cb280-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb280-5"><a href="#cb280-5" aria-hidden="true"></a>These are just three regular dots ...</span>
-<span id="cb280-6"><a href="#cb280-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb280-7"><a href="#cb280-7" aria-hidden="true"></a></span>
-<span id="cb280-8"><a href="#cb280-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
-<span id="cb280-9"><a href="#cb280-9" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb280-10"><a href="#cb280-10" aria-hidden="true"></a>... and this is a victorian ellipsis.</span>
-<span id="cb280-11"><a href="#cb280-11" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb280-12"><a href="#cb280-12" aria-hidden="true"></a></span>
-<span id="cb280-13"><a href="#cb280-13" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb283"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb283-1"><a href="#cb283-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb283-2"><a href="#cb283-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
+<span id="cb283-3"><a href="#cb283-3" aria-hidden="true"></a></span>
+<span id="cb283-4"><a href="#cb283-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb283-5"><a href="#cb283-5" aria-hidden="true"></a>These are just three regular dots ...</span>
+<span id="cb283-6"><a href="#cb283-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb283-7"><a href="#cb283-7" aria-hidden="true"></a></span>
+<span id="cb283-8"><a href="#cb283-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
+<span id="cb283-9"><a href="#cb283-9" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb283-10"><a href="#cb283-10" aria-hidden="true"></a>... and this is a victorian ellipsis.</span>
+<span id="cb283-11"><a href="#cb283-11" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb283-12"><a href="#cb283-12" aria-hidden="true"></a></span>
+<span id="cb283-13"><a href="#cb283-13" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb281"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb281-1"><a href="#cb281-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb284"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>These are just three regular dots …</p>
<p>. . . and this is a victorian ellipsis.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-24"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-25"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb282"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb282-1"><a href="#cb282-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb282-2"><a href="#cb282-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb282-3"><a href="#cb282-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb282-4"><a href="#cb282-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb282-5"><a href="#cb282-5" aria-hidden="true"></a> ellipsis = {. . .}</span>
-<span id="cb282-6"><a href="#cb282-6" aria-hidden="true"></a> }</span>
-<span id="cb282-7"><a href="#cb282-7" aria-hidden="true"></a>}</span>
-<span id="cb282-8"><a href="#cb282-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb282-9"><a href="#cb282-9" aria-hidden="true"></a></span>
-<span id="cb282-10"><a href="#cb282-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb282-11"><a href="#cb282-11" aria-hidden="true"></a>These are just three regular dots ...</span>
-<span id="cb282-12"><a href="#cb282-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb282-13"><a href="#cb282-13" aria-hidden="true"></a></span>
-<span id="cb282-14"><a href="#cb282-14" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{smartEllipses}</span>
-<span id="cb282-15"><a href="#cb282-15" aria-hidden="true"></a>... and this is a victorian ellipsis.</span>
-<span id="cb282-16"><a href="#cb282-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb282-17"><a href="#cb282-17" aria-hidden="true"></a></span>
-<span id="cb282-18"><a href="#cb282-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb283"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb283-1"><a href="#cb283-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb285"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb285-1"><a href="#cb285-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb285-2"><a href="#cb285-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb285-3"><a href="#cb285-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb285-4"><a href="#cb285-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb285-5"><a href="#cb285-5" aria-hidden="true"></a> ellipsis = {. . .}</span>
+<span id="cb285-6"><a href="#cb285-6" aria-hidden="true"></a> }</span>
+<span id="cb285-7"><a href="#cb285-7" aria-hidden="true"></a>}</span>
+<span id="cb285-8"><a href="#cb285-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb285-9"><a href="#cb285-9" aria-hidden="true"></a></span>
+<span id="cb285-10"><a href="#cb285-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb285-11"><a href="#cb285-11" aria-hidden="true"></a>These are just three regular dots ...</span>
+<span id="cb285-12"><a href="#cb285-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb285-13"><a href="#cb285-13" aria-hidden="true"></a></span>
+<span id="cb285-14"><a href="#cb285-14" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{smartEllipses}</span>
+<span id="cb285-15"><a href="#cb285-15" aria-hidden="true"></a>... and this is a victorian ellipsis.</span>
+<span id="cb285-16"><a href="#cb285-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb285-17"><a href="#cb285-17" aria-hidden="true"></a></span>
+<span id="cb285-18"><a href="#cb285-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb286"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb286-1"><a href="#cb286-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>These are just three regular dots …</p>
@@ -3230,28 +3279,28 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-21">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb284"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb284-2"><a href="#cb284-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
-<span id="cb284-3"><a href="#cb284-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb284-4"><a href="#cb284-4" aria-hidden="true"></a></span>
-<span id="cb284-5"><a href="#cb284-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb284-6"><a href="#cb284-6" aria-hidden="true"></a>These are just three regular dots ...</span>
-<span id="cb284-7"><a href="#cb284-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb284-8"><a href="#cb284-8" aria-hidden="true"></a></span>
-<span id="cb284-9"><a href="#cb284-9" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
-<span id="cb284-10"><a href="#cb284-10" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb284-11"><a href="#cb284-11" aria-hidden="true"></a>... and this is a victorian ellipsis.</span>
-<span id="cb284-12"><a href="#cb284-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb284-13"><a href="#cb284-13" aria-hidden="true"></a></span>
-<span id="cb284-14"><a href="#cb284-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb287"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb287-1"><a href="#cb287-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb287-2"><a href="#cb287-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span>
+<span id="cb287-3"><a href="#cb287-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb287-4"><a href="#cb287-4" aria-hidden="true"></a></span>
+<span id="cb287-5"><a href="#cb287-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb287-6"><a href="#cb287-6" aria-hidden="true"></a>These are just three regular dots ...</span>
+<span id="cb287-7"><a href="#cb287-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb287-8"><a href="#cb287-8" aria-hidden="true"></a></span>
+<span id="cb287-9"><a href="#cb287-9" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
+<span id="cb287-10"><a href="#cb287-10" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb287-11"><a href="#cb287-11" aria-hidden="true"></a>... and this is a victorian ellipsis.</span>
+<span id="cb287-12"><a href="#cb287-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb287-13"><a href="#cb287-13" aria-hidden="true"></a></span>
+<span id="cb287-14"><a href="#cb287-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb285"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb285-1"><a href="#cb285-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb288"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb288-1"><a href="#cb288-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>These are just three regular dots …</p>
<p>. . . and this is a victorian ellipsis.</p>
</blockquote>
-<h4 data-number="2.2.1.30" id="option-startnumber"><span class="header-section-number">2.2.1.30</span> Option <code>startNumber</code></h4>
+<h4 data-number="2.2.1.31" id="option-startnumber"><span class="header-section-number">2.2.1.31</span> Option <code>startNumber</code></h4>
<dl>
<dt><code>startNumber</code> (default value: <code>true</code>)</dt>
<dd><dl>
@@ -3267,32 +3316,32 @@ Thomas,Edison,1847</code></pre>
</dl>
</dd>
</dl>
-<h5 class="unnumbered" data-number="" id="latex-example-25"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-26"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb286"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb286-1"><a href="#cb286-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb286-2"><a href="#cb286-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb286-3"><a href="#cb286-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb286-4"><a href="#cb286-4" aria-hidden="true"></a></span>
-<span id="cb286-5"><a href="#cb286-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb286-6"><a href="#cb286-6" aria-hidden="true"></a>The following list respects the numbers specified in the markup:</span>
-<span id="cb286-7"><a href="#cb286-7" aria-hidden="true"></a></span>
-<span id="cb286-8"><a href="#cb286-8" aria-hidden="true"></a>3. third item</span>
-<span id="cb286-9"><a href="#cb286-9" aria-hidden="true"></a>4. fourth item</span>
-<span id="cb286-10"><a href="#cb286-10" aria-hidden="true"></a>5. fifth item</span>
-<span id="cb286-11"><a href="#cb286-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb286-12"><a href="#cb286-12" aria-hidden="true"></a></span>
-<span id="cb286-13"><a href="#cb286-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{startNumber=false}</span>
-<span id="cb286-14"><a href="#cb286-14" aria-hidden="true"></a>The following list does not respect the numbers specified in the</span>
-<span id="cb286-15"><a href="#cb286-15" aria-hidden="true"></a>markup:</span>
-<span id="cb286-16"><a href="#cb286-16" aria-hidden="true"></a></span>
-<span id="cb286-17"><a href="#cb286-17" aria-hidden="true"></a>3. third item</span>
-<span id="cb286-18"><a href="#cb286-18" aria-hidden="true"></a>4. fourth item</span>
-<span id="cb286-19"><a href="#cb286-19" aria-hidden="true"></a>5. fifth item</span>
-<span id="cb286-20"><a href="#cb286-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb286-21"><a href="#cb286-21" aria-hidden="true"></a></span>
-<span id="cb286-22"><a href="#cb286-22" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb287"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb287-1"><a href="#cb287-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb289"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb289-1"><a href="#cb289-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb289-2"><a href="#cb289-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb289-3"><a href="#cb289-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb289-4"><a href="#cb289-4" aria-hidden="true"></a></span>
+<span id="cb289-5"><a href="#cb289-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb289-6"><a href="#cb289-6" aria-hidden="true"></a>The following list respects the numbers specified in the markup:</span>
+<span id="cb289-7"><a href="#cb289-7" aria-hidden="true"></a></span>
+<span id="cb289-8"><a href="#cb289-8" aria-hidden="true"></a>3. third item</span>
+<span id="cb289-9"><a href="#cb289-9" aria-hidden="true"></a>4. fourth item</span>
+<span id="cb289-10"><a href="#cb289-10" aria-hidden="true"></a>5. fifth item</span>
+<span id="cb289-11"><a href="#cb289-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb289-12"><a href="#cb289-12" aria-hidden="true"></a></span>
+<span id="cb289-13"><a href="#cb289-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{startNumber=false}</span>
+<span id="cb289-14"><a href="#cb289-14" aria-hidden="true"></a>The following list does not respect the numbers specified in the</span>
+<span id="cb289-15"><a href="#cb289-15" aria-hidden="true"></a>markup:</span>
+<span id="cb289-16"><a href="#cb289-16" aria-hidden="true"></a></span>
+<span id="cb289-17"><a href="#cb289-17" aria-hidden="true"></a>3. third item</span>
+<span id="cb289-18"><a href="#cb289-18" aria-hidden="true"></a>4. fourth item</span>
+<span id="cb289-19"><a href="#cb289-19" aria-hidden="true"></a>5. fifth item</span>
+<span id="cb289-20"><a href="#cb289-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb289-21"><a href="#cb289-21" aria-hidden="true"></a></span>
+<span id="cb289-22"><a href="#cb289-22" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb290"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb290-1"><a href="#cb290-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>The following list respects the numbers specified in the markup:</p>
@@ -3310,28 +3359,28 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-22">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb288"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb288-1"><a href="#cb288-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb288-2"><a href="#cb288-2" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb288-3"><a href="#cb288-3" aria-hidden="true"></a></span>
-<span id="cb288-4"><a href="#cb288-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb288-5"><a href="#cb288-5" aria-hidden="true"></a>The following list respects the numbers specified in the markup:</span>
-<span id="cb288-6"><a href="#cb288-6" aria-hidden="true"></a></span>
-<span id="cb288-7"><a href="#cb288-7" aria-hidden="true"></a>3. third item</span>
-<span id="cb288-8"><a href="#cb288-8" aria-hidden="true"></a>4. fourth item</span>
-<span id="cb288-9"><a href="#cb288-9" aria-hidden="true"></a>5. fifth item</span>
-<span id="cb288-10"><a href="#cb288-10" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb288-11"><a href="#cb288-11" aria-hidden="true"></a></span>
-<span id="cb288-12"><a href="#cb288-12" aria-hidden="true"></a><span class="fu">\def\markdownOptionStartNumber</span>{false}</span>
-<span id="cb288-13"><a href="#cb288-13" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb288-14"><a href="#cb288-14" aria-hidden="true"></a>The following list respects the numbers specified in the markup:</span>
-<span id="cb288-15"><a href="#cb288-15" aria-hidden="true"></a></span>
-<span id="cb288-16"><a href="#cb288-16" aria-hidden="true"></a>3. third item</span>
-<span id="cb288-17"><a href="#cb288-17" aria-hidden="true"></a>4. fourth item</span>
-<span id="cb288-18"><a href="#cb288-18" aria-hidden="true"></a>5. fifth item</span>
-<span id="cb288-19"><a href="#cb288-19" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb288-20"><a href="#cb288-20" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb289"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb289-1"><a href="#cb289-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb291"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb291-1"><a href="#cb291-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb291-2"><a href="#cb291-2" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb291-3"><a href="#cb291-3" aria-hidden="true"></a></span>
+<span id="cb291-4"><a href="#cb291-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb291-5"><a href="#cb291-5" aria-hidden="true"></a>The following list respects the numbers specified in the markup:</span>
+<span id="cb291-6"><a href="#cb291-6" aria-hidden="true"></a></span>
+<span id="cb291-7"><a href="#cb291-7" aria-hidden="true"></a>3. third item</span>
+<span id="cb291-8"><a href="#cb291-8" aria-hidden="true"></a>4. fourth item</span>
+<span id="cb291-9"><a href="#cb291-9" aria-hidden="true"></a>5. fifth item</span>
+<span id="cb291-10"><a href="#cb291-10" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb291-11"><a href="#cb291-11" aria-hidden="true"></a></span>
+<span id="cb291-12"><a href="#cb291-12" aria-hidden="true"></a><span class="fu">\def\markdownOptionStartNumber</span>{false}</span>
+<span id="cb291-13"><a href="#cb291-13" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb291-14"><a href="#cb291-14" aria-hidden="true"></a>The following list respects the numbers specified in the markup:</span>
+<span id="cb291-15"><a href="#cb291-15" aria-hidden="true"></a></span>
+<span id="cb291-16"><a href="#cb291-16" aria-hidden="true"></a>3. third item</span>
+<span id="cb291-17"><a href="#cb291-17" aria-hidden="true"></a>4. fourth item</span>
+<span id="cb291-18"><a href="#cb291-18" aria-hidden="true"></a>5. fifth item</span>
+<span id="cb291-19"><a href="#cb291-19" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb291-20"><a href="#cb291-20" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb292"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb292-1"><a href="#cb292-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>The following list respects the numbers specified in the markup:</p>
@@ -3347,19 +3396,19 @@ Thomas,Edison,1847</code></pre>
<li>fifth item</li>
</ol>
</blockquote>
-<h4 data-number="2.2.1.31" id="option-stripindent"><span class="header-section-number">2.2.1.31</span> Option <code>stripIndent</code></h4>
+<h4 data-number="2.2.1.32" id="option-stripindent"><span class="header-section-number">2.2.1.32</span> Option <code>stripIndent</code></h4>
<dl>
<dt><code>stripIndent</code> (default value: <code>false</code>)</dt>
<dd><dl>
<dt>true</dt>
<dd><p>Strip the minimal indentation of non-blank lines from all lines in a markdown document. Requires that the <strong><code>preserveTabs</code></strong> Lua option is :</p>
-<div class="sourceCode" id="cb290"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb290-1"><a href="#cb290-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb290-2"><a href="#cb290-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span>
-<span id="cb290-3"><a href="#cb290-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb290-4"><a href="#cb290-4" aria-hidden="true"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb290-5"><a href="#cb290-5" aria-hidden="true"></a> Hello *world*!</span>
-<span id="cb290-6"><a href="#cb290-6" aria-hidden="true"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb290-7"><a href="#cb290-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb293"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb293-1"><a href="#cb293-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb293-2"><a href="#cb293-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span>
+<span id="cb293-3"><a href="#cb293-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb293-4"><a href="#cb293-4" aria-hidden="true"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb293-5"><a href="#cb293-5" aria-hidden="true"></a> Hello *world*!</span>
+<span id="cb293-6"><a href="#cb293-6" aria-hidden="true"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb293-7"><a href="#cb293-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
</dd>
</dl>
</dd>
@@ -3372,52 +3421,52 @@ Thomas,Edison,1847</code></pre>
</dl>
<h5 class="unnumbered" data-number="" id="plain-tex-example-14">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb291"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb291-1"><a href="#cb291-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb291-2"><a href="#cb291-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionStripIndent</span>{true}</span>
-<span id="cb291-3"><a href="#cb291-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb291-4"><a href="#cb291-4" aria-hidden="true"></a> Hello *world*!</span>
-<span id="cb291-5"><a href="#cb291-5" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb291-6"><a href="#cb291-6" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb294"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb294-1"><a href="#cb294-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb294-2"><a href="#cb294-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionStripIndent</span>{true}</span>
+<span id="cb294-3"><a href="#cb294-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb294-4"><a href="#cb294-4" aria-hidden="true"></a> Hello *world*!</span>
+<span id="cb294-5"><a href="#cb294-5" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb294-6"><a href="#cb294-6" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb292"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb292-1"><a href="#cb292-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb295"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb295-1"><a href="#cb295-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p>
-<h5 class="unnumbered" data-number="" id="latex-example-26"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-27"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb293"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb293-1"><a href="#cb293-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb293-2"><a href="#cb293-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span>
-<span id="cb293-3"><a href="#cb293-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb293-4"><a href="#cb293-4" aria-hidden="true"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb293-5"><a href="#cb293-5" aria-hidden="true"></a> Hello *world*!</span>
-<span id="cb293-6"><a href="#cb293-6" aria-hidden="true"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb293-7"><a href="#cb293-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb296"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb296-1"><a href="#cb296-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb296-2"><a href="#cb296-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span>
+<span id="cb296-3"><a href="#cb296-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb296-4"><a href="#cb296-4" aria-hidden="true"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb296-5"><a href="#cb296-5" aria-hidden="true"></a> Hello *world*!</span>
+<span id="cb296-6"><a href="#cb296-6" aria-hidden="true"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb296-7"><a href="#cb296-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb294"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb294-1"><a href="#cb294-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb297"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb297-1"><a href="#cb297-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p>
<h5 class="unnumbered" data-number="" id="context-example-23">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb295"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb295-1"><a href="#cb295-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb295-2"><a href="#cb295-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionStripIndent</span>{true}</span>
-<span id="cb295-3"><a href="#cb295-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb295-4"><a href="#cb295-4" aria-hidden="true"></a> <span class="fu">\startmarkdown</span></span>
-<span id="cb295-5"><a href="#cb295-5" aria-hidden="true"></a> Hello *world*!</span>
-<span id="cb295-6"><a href="#cb295-6" aria-hidden="true"></a> <span class="fu">\stopmarkdown</span></span>
-<span id="cb295-7"><a href="#cb295-7" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb298"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb298-1"><a href="#cb298-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb298-2"><a href="#cb298-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionStripIndent</span>{true}</span>
+<span id="cb298-3"><a href="#cb298-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb298-4"><a href="#cb298-4" aria-hidden="true"></a> <span class="fu">\startmarkdown</span></span>
+<span id="cb298-5"><a href="#cb298-5" aria-hidden="true"></a> Hello *world*!</span>
+<span id="cb298-6"><a href="#cb298-6" aria-hidden="true"></a> <span class="fu">\stopmarkdown</span></span>
+<span id="cb298-7"><a href="#cb298-7" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb296"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb296-1"><a href="#cb296-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb299"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb299-1"><a href="#cb299-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p>
-<h4 data-number="2.2.1.32" id="option-tablecaptions"><span class="header-section-number">2.2.1.32</span> Option <code>tableCaptions</code></h4>
+<h4 data-number="2.2.1.33" id="option-tablecaptions"><span class="header-section-number">2.2.1.33</span> Option <code>tableCaptions</code></h4>
<dl>
<dt><code>tableCaptions</code> (default value: <code>false</code>)</dt>
<dd><dl>
<dt>true</dt>
<dd><p>Enable the Pandoc <code>table_captions</code> syntax extension for <a href="#pipe-tables">pipe tables</a>.</p>
-<div class="sourceCode" id="cb297"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb297-1"><a href="#cb297-1" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
-<span id="cb297-2"><a href="#cb297-2" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
-<span id="cb297-3"><a href="#cb297-3" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
-<span id="cb297-4"><a href="#cb297-4" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
-<span id="cb297-5"><a href="#cb297-5" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
-<span id="cb297-6"><a href="#cb297-6" aria-hidden="true"></a></span>
-<span id="cb297-7"><a href="#cb297-7" aria-hidden="true"></a> : Demonstration of pipe table syntax.</span></code></pre></div>
+<div class="sourceCode" id="cb300"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb300-1"><a href="#cb300-1" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
+<span id="cb300-2"><a href="#cb300-2" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
+<span id="cb300-3"><a href="#cb300-3" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
+<span id="cb300-4"><a href="#cb300-4" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
+<span id="cb300-5"><a href="#cb300-5" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
+<span id="cb300-6"><a href="#cb300-6" aria-hidden="true"></a></span>
+<span id="cb300-7"><a href="#cb300-7" aria-hidden="true"></a> : Demonstration of pipe table syntax.</span></code></pre></div>
</dd>
</dl>
</dd>
@@ -3428,23 +3477,23 @@ Thomas,Edison,1847</code></pre>
</dl>
</dd>
</dl>
-<h5 class="unnumbered" data-number="" id="latex-example-27"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-28"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb298"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb298-1"><a href="#cb298-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb298-2"><a href="#cb298-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span>
-<span id="cb298-3"><a href="#cb298-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb298-4"><a href="#cb298-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb298-5"><a href="#cb298-5" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
-<span id="cb298-6"><a href="#cb298-6" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
-<span id="cb298-7"><a href="#cb298-7" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
-<span id="cb298-8"><a href="#cb298-8" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
-<span id="cb298-9"><a href="#cb298-9" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
-<span id="cb298-10"><a href="#cb298-10" aria-hidden="true"></a></span>
-<span id="cb298-11"><a href="#cb298-11" aria-hidden="true"></a> : Demonstration of pipe table syntax.</span>
-<span id="cb298-12"><a href="#cb298-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb298-13"><a href="#cb298-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb301"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb301-1"><a href="#cb301-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb301-2"><a href="#cb301-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span>
+<span id="cb301-3"><a href="#cb301-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb301-4"><a href="#cb301-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb301-5"><a href="#cb301-5" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
+<span id="cb301-6"><a href="#cb301-6" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
+<span id="cb301-7"><a href="#cb301-7" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
+<span id="cb301-8"><a href="#cb301-8" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
+<span id="cb301-9"><a href="#cb301-9" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
+<span id="cb301-10"><a href="#cb301-10" aria-hidden="true"></a></span>
+<span id="cb301-11"><a href="#cb301-11" aria-hidden="true"></a> : Demonstration of pipe table syntax.</span>
+<span id="cb301-12"><a href="#cb301-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb301-13"><a href="#cb301-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb299"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb299-1"><a href="#cb299-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb302"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb302-1"><a href="#cb302-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<table>
@@ -3481,22 +3530,22 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-24">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb300"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb300-1"><a href="#cb300-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb300-2"><a href="#cb300-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionPipeTables</span>{true}</span>
-<span id="cb300-3"><a href="#cb300-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionTableCaptions</span>{true}</span>
-<span id="cb300-4"><a href="#cb300-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb300-5"><a href="#cb300-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb300-6"><a href="#cb300-6" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
-<span id="cb300-7"><a href="#cb300-7" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
-<span id="cb300-8"><a href="#cb300-8" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
-<span id="cb300-9"><a href="#cb300-9" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
-<span id="cb300-10"><a href="#cb300-10" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
-<span id="cb300-11"><a href="#cb300-11" aria-hidden="true"></a></span>
-<span id="cb300-12"><a href="#cb300-12" aria-hidden="true"></a> : Demonstration of pipe table syntax.</span>
-<span id="cb300-13"><a href="#cb300-13" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb300-14"><a href="#cb300-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb303"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb303-1"><a href="#cb303-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb303-2"><a href="#cb303-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionPipeTables</span>{true}</span>
+<span id="cb303-3"><a href="#cb303-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionTableCaptions</span>{true}</span>
+<span id="cb303-4"><a href="#cb303-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb303-5"><a href="#cb303-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb303-6"><a href="#cb303-6" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
+<span id="cb303-7"><a href="#cb303-7" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
+<span id="cb303-8"><a href="#cb303-8" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
+<span id="cb303-9"><a href="#cb303-9" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
+<span id="cb303-10"><a href="#cb303-10" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
+<span id="cb303-11"><a href="#cb303-11" aria-hidden="true"></a></span>
+<span id="cb303-12"><a href="#cb303-12" aria-hidden="true"></a> : Demonstration of pipe table syntax.</span>
+<span id="cb303-13"><a href="#cb303-13" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb303-14"><a href="#cb303-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb301"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb301-1"><a href="#cb301-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb304"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb304-1"><a href="#cb304-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<table>
@@ -3531,15 +3580,15 @@ Thomas,Edison,1847</code></pre>
</tbody>
</table>
</blockquote>
-<h4 data-number="2.2.1.33" id="option-tasklists"><span class="header-section-number">2.2.1.33</span> Option <code>taskLists</code></h4>
+<h4 data-number="2.2.1.34" id="option-tasklists"><span class="header-section-number">2.2.1.34</span> Option <code>taskLists</code></h4>
<dl>
<dt><code>taskLists</code> (default value: <code>false</code>)</dt>
<dd><dl>
<dt>true</dt>
<dd><p>Enable the Pandoc <code>task_lists</code> syntax extension.</p>
-<div class="sourceCode" id="cb302"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb302-1"><a href="#cb302-1" aria-hidden="true"></a><span class="ss">- </span><span class="va">[ ]</span> an unticked task list item</span>
-<span id="cb302-2"><a href="#cb302-2" aria-hidden="true"></a><span class="ss">- </span><span class="co">[</span><span class="ot">/</span><span class="co">]</span> a half-checked task list item</span>
-<span id="cb302-3"><a href="#cb302-3" aria-hidden="true"></a><span class="ss">- </span><span class="co">[</span><span class="ot">X</span><span class="co">]</span> a ticked task list item</span></code></pre></div>
+<div class="sourceCode" id="cb305"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb305-1"><a href="#cb305-1" aria-hidden="true"></a><span class="ss">- </span><span class="va">[ ]</span> an unticked task list item</span>
+<span id="cb305-2"><a href="#cb305-2" aria-hidden="true"></a><span class="ss">- </span><span class="co">[</span><span class="ot">/</span><span class="co">]</span> a half-checked task list item</span>
+<span id="cb305-3"><a href="#cb305-3" aria-hidden="true"></a><span class="ss">- </span><span class="co">[</span><span class="ot">X</span><span class="co">]</span> a ticked task list item</span></code></pre></div>
</dd>
</dl>
</dd>
@@ -3550,26 +3599,26 @@ Thomas,Edison,1847</code></pre>
</dl>
</dd>
</dl>
-<h5 class="unnumbered" data-number="" id="latex-example-28"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-29"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb303"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb303-1"><a href="#cb303-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb303-2"><a href="#cb303-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span>
-<span id="cb303-3"><a href="#cb303-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb303-4"><a href="#cb303-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb303-5"><a href="#cb303-5" aria-hidden="true"></a> untickedBox = No,</span>
-<span id="cb303-6"><a href="#cb303-6" aria-hidden="true"></a> halfTickedBox = Maybe,</span>
-<span id="cb303-7"><a href="#cb303-7" aria-hidden="true"></a> tickedBox = Yes,</span>
-<span id="cb303-8"><a href="#cb303-8" aria-hidden="true"></a> },</span>
-<span id="cb303-9"><a href="#cb303-9" aria-hidden="true"></a>}</span>
-<span id="cb303-10"><a href="#cb303-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb303-11"><a href="#cb303-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb303-12"><a href="#cb303-12" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
-<span id="cb303-13"><a href="#cb303-13" aria-hidden="true"></a>- [/] I can?</span>
-<span id="cb303-14"><a href="#cb303-14" aria-hidden="true"></a>- [X] I can!</span>
-<span id="cb303-15"><a href="#cb303-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb303-16"><a href="#cb303-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb304"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb304-1"><a href="#cb304-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb306"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb306-1"><a href="#cb306-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb306-2"><a href="#cb306-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span>
+<span id="cb306-3"><a href="#cb306-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb306-4"><a href="#cb306-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb306-5"><a href="#cb306-5" aria-hidden="true"></a> untickedBox = No,</span>
+<span id="cb306-6"><a href="#cb306-6" aria-hidden="true"></a> halfTickedBox = Maybe,</span>
+<span id="cb306-7"><a href="#cb306-7" aria-hidden="true"></a> tickedBox = Yes,</span>
+<span id="cb306-8"><a href="#cb306-8" aria-hidden="true"></a> },</span>
+<span id="cb306-9"><a href="#cb306-9" aria-hidden="true"></a>}</span>
+<span id="cb306-10"><a href="#cb306-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb306-11"><a href="#cb306-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb306-12"><a href="#cb306-12" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
+<span id="cb306-13"><a href="#cb306-13" aria-hidden="true"></a>- [/] I can?</span>
+<span id="cb306-14"><a href="#cb306-14" aria-hidden="true"></a>- [X] I can!</span>
+<span id="cb306-15"><a href="#cb306-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb306-16"><a href="#cb306-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb307"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb307-1"><a href="#cb307-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<ul>
@@ -3580,20 +3629,20 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-25">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb305"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb305-1"><a href="#cb305-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb305-2"><a href="#cb305-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span>
-<span id="cb305-3"><a href="#cb305-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span>
-<span id="cb305-4"><a href="#cb305-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererHalftickedBox</span>{Maybe}</span>
-<span id="cb305-5"><a href="#cb305-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span>
-<span id="cb305-6"><a href="#cb305-6" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb305-7"><a href="#cb305-7" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb305-8"><a href="#cb305-8" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
-<span id="cb305-9"><a href="#cb305-9" aria-hidden="true"></a>- [/] I can?</span>
-<span id="cb305-10"><a href="#cb305-10" aria-hidden="true"></a>- [X] I can!</span>
-<span id="cb305-11"><a href="#cb305-11" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb305-12"><a href="#cb305-12" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb308"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb308-1"><a href="#cb308-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb308-2"><a href="#cb308-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span>
+<span id="cb308-3"><a href="#cb308-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span>
+<span id="cb308-4"><a href="#cb308-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererHalftickedBox</span>{Maybe}</span>
+<span id="cb308-5"><a href="#cb308-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span>
+<span id="cb308-6"><a href="#cb308-6" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb308-7"><a href="#cb308-7" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb308-8"><a href="#cb308-8" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
+<span id="cb308-9"><a href="#cb308-9" aria-hidden="true"></a>- [/] I can?</span>
+<span id="cb308-10"><a href="#cb308-10" aria-hidden="true"></a>- [X] I can!</span>
+<span id="cb308-11"><a href="#cb308-11" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb308-12"><a href="#cb308-12" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb306"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb306-1"><a href="#cb306-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb309"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb309-1"><a href="#cb309-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<ul>
@@ -3602,20 +3651,20 @@ Thomas,Edison,1847</code></pre>
<li>Yes I can!</li>
</ul>
</blockquote>
-<h4 data-number="2.2.1.34" id="option-texcomments"><span class="header-section-number">2.2.1.34</span> Option <code>texComments</code></h4>
+<h4 data-number="2.2.1.35" id="option-texcomments"><span class="header-section-number">2.2.1.35</span> Option <code>texComments</code></h4>
<dl>
<dt><code>texComments</code> (default value: <code>false</code>)</dt>
<dd><dl>
<dt>true</dt>
<dd><p>Strip <span class="tex">T<sub>e</sub>X</span>-style comments.</p>
-<div class="sourceCode" id="cb307"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb307-1"><a href="#cb307-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb307-2"><a href="#cb307-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span>
-<span id="cb307-3"><a href="#cb307-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb307-4"><a href="#cb307-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb307-5"><a href="#cb307-5" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
-<span id="cb307-6"><a href="#cb307-6" aria-hidden="true"></a> lo *world*!</span>
-<span id="cb307-7"><a href="#cb307-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb307-8"><a href="#cb307-8" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb310"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb310-1"><a href="#cb310-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb310-2"><a href="#cb310-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span>
+<span id="cb310-3"><a href="#cb310-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb310-4"><a href="#cb310-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb310-5"><a href="#cb310-5" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
+<span id="cb310-6"><a href="#cb310-6" aria-hidden="true"></a> lo *world*!</span>
+<span id="cb310-7"><a href="#cb310-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb310-8"><a href="#cb310-8" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Always enabled when <strong><code>hybrid</code></strong> is enabled.</p>
</dd>
</dl>
@@ -3629,43 +3678,43 @@ Thomas,Edison,1847</code></pre>
</dl>
<h5 class="unnumbered" data-number="" id="plain-tex-example-15">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb308"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb308-1"><a href="#cb308-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb308-2"><a href="#cb308-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTeXComments</span>{true}</span>
-<span id="cb308-3"><a href="#cb308-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb308-4"><a href="#cb308-4" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
-<span id="cb308-5"><a href="#cb308-5" aria-hidden="true"></a> lo *world*!</span>
-<span id="cb308-6"><a href="#cb308-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb308-7"><a href="#cb308-7" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb311"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb311-1"><a href="#cb311-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb311-2"><a href="#cb311-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTeXComments</span>{true}</span>
+<span id="cb311-3"><a href="#cb311-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb311-4"><a href="#cb311-4" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
+<span id="cb311-5"><a href="#cb311-5" aria-hidden="true"></a> lo *world*!</span>
+<span id="cb311-6"><a href="#cb311-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb311-7"><a href="#cb311-7" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb309"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb309-1"><a href="#cb309-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb312"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb312-1"><a href="#cb312-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p>
-<h5 class="unnumbered" data-number="" id="latex-example-29"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-30"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb310"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb310-1"><a href="#cb310-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb310-2"><a href="#cb310-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span>
-<span id="cb310-3"><a href="#cb310-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb310-4"><a href="#cb310-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb310-5"><a href="#cb310-5" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
-<span id="cb310-6"><a href="#cb310-6" aria-hidden="true"></a> lo *world*!</span>
-<span id="cb310-7"><a href="#cb310-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb310-8"><a href="#cb310-8" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb313"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb313-1"><a href="#cb313-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb313-2"><a href="#cb313-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span>
+<span id="cb313-3"><a href="#cb313-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb313-4"><a href="#cb313-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb313-5"><a href="#cb313-5" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
+<span id="cb313-6"><a href="#cb313-6" aria-hidden="true"></a> lo *world*!</span>
+<span id="cb313-7"><a href="#cb313-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb313-8"><a href="#cb313-8" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb311"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb311-1"><a href="#cb311-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb314"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb314-1"><a href="#cb314-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p>
<h5 class="unnumbered" data-number="" id="context-example-26">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb312"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb312-1"><a href="#cb312-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb312-2"><a href="#cb312-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTeXComments</span>{true}</span>
-<span id="cb312-3"><a href="#cb312-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb312-4"><a href="#cb312-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb312-5"><a href="#cb312-5" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
-<span id="cb312-6"><a href="#cb312-6" aria-hidden="true"></a> lo *world*!</span>
-<span id="cb312-7"><a href="#cb312-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb312-8"><a href="#cb312-8" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb315"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb315-1"><a href="#cb315-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb315-2"><a href="#cb315-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTeXComments</span>{true}</span>
+<span id="cb315-3"><a href="#cb315-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb315-4"><a href="#cb315-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb315-5"><a href="#cb315-5" aria-hidden="true"></a>Hel<span class="co">% this is a comment</span></span>
+<span id="cb315-6"><a href="#cb315-6" aria-hidden="true"></a> lo *world*!</span>
+<span id="cb315-7"><a href="#cb315-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb315-8"><a href="#cb315-8" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb313"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb313-1"><a href="#cb313-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb316"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb316-1"><a href="#cb316-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p>
-<h4 data-number="2.2.1.35" id="option-tightlists"><span class="header-section-number">2.2.1.35</span> Option <code>tightLists</code></h4>
+<h4 data-number="2.2.1.36" id="option-tightlists"><span class="header-section-number">2.2.1.36</span> Option <code>tightLists</code></h4>
<dl>
<dt><code>tightLists</code> (default value: <code>true</code>)</dt>
<dd><dl>
@@ -3681,39 +3730,39 @@ Thomas,Edison,1847</code></pre>
</dl>
</dd>
</dl>
-<h5 class="unnumbered" data-number="" id="latex-example-30"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-31"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb314"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb314-1"><a href="#cb314-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb314-2"><a href="#cb314-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb314-3"><a href="#cb314-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb314-4"><a href="#cb314-4" aria-hidden="true"></a></span>
-<span id="cb314-5"><a href="#cb314-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb314-6"><a href="#cb314-6" aria-hidden="true"></a>The following list is tight:</span>
-<span id="cb314-7"><a href="#cb314-7" aria-hidden="true"></a></span>
-<span id="cb314-8"><a href="#cb314-8" aria-hidden="true"></a> - first item</span>
-<span id="cb314-9"><a href="#cb314-9" aria-hidden="true"></a> - second item</span>
-<span id="cb314-10"><a href="#cb314-10" aria-hidden="true"></a> - third item</span>
-<span id="cb314-11"><a href="#cb314-11" aria-hidden="true"></a></span>
-<span id="cb314-12"><a href="#cb314-12" aria-hidden="true"></a>The following list is loose:</span>
-<span id="cb314-13"><a href="#cb314-13" aria-hidden="true"></a></span>
-<span id="cb314-14"><a href="#cb314-14" aria-hidden="true"></a> - first item</span>
-<span id="cb314-15"><a href="#cb314-15" aria-hidden="true"></a> - second item that spans</span>
-<span id="cb314-16"><a href="#cb314-16" aria-hidden="true"></a></span>
-<span id="cb314-17"><a href="#cb314-17" aria-hidden="true"></a> multiple paragraphs</span>
-<span id="cb314-18"><a href="#cb314-18" aria-hidden="true"></a> - third item</span>
-<span id="cb314-19"><a href="#cb314-19" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb314-20"><a href="#cb314-20" aria-hidden="true"></a></span>
-<span id="cb314-21"><a href="#cb314-21" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{tightLists=false}</span>
-<span id="cb314-22"><a href="#cb314-22" aria-hidden="true"></a>The following list is now also loose:</span>
-<span id="cb314-23"><a href="#cb314-23" aria-hidden="true"></a></span>
-<span id="cb314-24"><a href="#cb314-24" aria-hidden="true"></a> - first item</span>
-<span id="cb314-25"><a href="#cb314-25" aria-hidden="true"></a> - second item</span>
-<span id="cb314-26"><a href="#cb314-26" aria-hidden="true"></a> - third item</span>
-<span id="cb314-27"><a href="#cb314-27" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb314-28"><a href="#cb314-28" aria-hidden="true"></a></span>
-<span id="cb314-29"><a href="#cb314-29" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb315"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb315-1"><a href="#cb315-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb317"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb317-1"><a href="#cb317-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb317-2"><a href="#cb317-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb317-3"><a href="#cb317-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb317-4"><a href="#cb317-4" aria-hidden="true"></a></span>
+<span id="cb317-5"><a href="#cb317-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb317-6"><a href="#cb317-6" aria-hidden="true"></a>The following list is tight:</span>
+<span id="cb317-7"><a href="#cb317-7" aria-hidden="true"></a></span>
+<span id="cb317-8"><a href="#cb317-8" aria-hidden="true"></a> - first item</span>
+<span id="cb317-9"><a href="#cb317-9" aria-hidden="true"></a> - second item</span>
+<span id="cb317-10"><a href="#cb317-10" aria-hidden="true"></a> - third item</span>
+<span id="cb317-11"><a href="#cb317-11" aria-hidden="true"></a></span>
+<span id="cb317-12"><a href="#cb317-12" aria-hidden="true"></a>The following list is loose:</span>
+<span id="cb317-13"><a href="#cb317-13" aria-hidden="true"></a></span>
+<span id="cb317-14"><a href="#cb317-14" aria-hidden="true"></a> - first item</span>
+<span id="cb317-15"><a href="#cb317-15" aria-hidden="true"></a> - second item that spans</span>
+<span id="cb317-16"><a href="#cb317-16" aria-hidden="true"></a></span>
+<span id="cb317-17"><a href="#cb317-17" aria-hidden="true"></a> multiple paragraphs</span>
+<span id="cb317-18"><a href="#cb317-18" aria-hidden="true"></a> - third item</span>
+<span id="cb317-19"><a href="#cb317-19" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb317-20"><a href="#cb317-20" aria-hidden="true"></a></span>
+<span id="cb317-21"><a href="#cb317-21" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{tightLists=false}</span>
+<span id="cb317-22"><a href="#cb317-22" aria-hidden="true"></a>The following list is now also loose:</span>
+<span id="cb317-23"><a href="#cb317-23" aria-hidden="true"></a></span>
+<span id="cb317-24"><a href="#cb317-24" aria-hidden="true"></a> - first item</span>
+<span id="cb317-25"><a href="#cb317-25" aria-hidden="true"></a> - second item</span>
+<span id="cb317-26"><a href="#cb317-26" aria-hidden="true"></a> - third item</span>
+<span id="cb317-27"><a href="#cb317-27" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb317-28"><a href="#cb317-28" aria-hidden="true"></a></span>
+<span id="cb317-29"><a href="#cb317-29" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb318"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb318-1"><a href="#cb318-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>The following list is tight:</p>
@@ -3736,16 +3785,16 @@ Thomas,Edison,1847</code></pre>
<li><p>third item</p></li>
</ul>
</blockquote>
-<h4 data-number="2.2.1.36" id="option-underscores"><span class="header-section-number">2.2.1.36</span> Option <code>underscores</code></h4>
+<h4 data-number="2.2.1.37" id="option-underscores"><span class="header-section-number">2.2.1.37</span> Option <code>underscores</code></h4>
<dl>
<dt><code>underscores</code> (default value: <code>true</code>)</dt>
<dd><dl>
<dt>true</dt>
<dd><p>Both underscores and asterisks can be used to denote emphasis and strong emphasis:</p>
-<div class="sourceCode" id="cb316"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb316-1"><a href="#cb316-1" aria-hidden="true"></a>*single asterisks*</span>
-<span id="cb316-2"><a href="#cb316-2" aria-hidden="true"></a>_single underscores_</span>
-<span id="cb316-3"><a href="#cb316-3" aria-hidden="true"></a>**double asterisks**</span>
-<span id="cb316-4"><a href="#cb316-4" aria-hidden="true"></a>__double underscores__</span></code></pre></div>
+<div class="sourceCode" id="cb319"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb319-1"><a href="#cb319-1" aria-hidden="true"></a>*single asterisks*</span>
+<span id="cb319-2"><a href="#cb319-2" aria-hidden="true"></a>_single underscores_</span>
+<span id="cb319-3"><a href="#cb319-3" aria-hidden="true"></a>**double asterisks**</span>
+<span id="cb319-4"><a href="#cb319-4" aria-hidden="true"></a>__double underscores__</span></code></pre></div>
</dd>
</dl>
</dd>
@@ -3758,43 +3807,43 @@ Thomas,Edison,1847</code></pre>
</dl>
<h5 class="unnumbered" data-number="" id="plain-tex-example-16">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb317"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb317-1"><a href="#cb317-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb317-2"><a href="#cb317-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
-<span id="cb317-3"><a href="#cb317-3" aria-hidden="true"></a></span>
-<span id="cb317-4"><a href="#cb317-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb317-5"><a href="#cb317-5" aria-hidden="true"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span>
-<span id="cb317-6"><a href="#cb317-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb317-7"><a href="#cb317-7" aria-hidden="true"></a></span>
-<span id="cb317-8"><a href="#cb317-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionUnderscores</span>{false}</span>
-<span id="cb317-9"><a href="#cb317-9" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb317-10"><a href="#cb317-10" aria-hidden="true"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span>
-<span id="cb317-11"><a href="#cb317-11" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb317-12"><a href="#cb317-12" aria-hidden="true"></a></span>
-<span id="cb317-13"><a href="#cb317-13" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb320"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb320-1"><a href="#cb320-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb320-2"><a href="#cb320-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
+<span id="cb320-3"><a href="#cb320-3" aria-hidden="true"></a></span>
+<span id="cb320-4"><a href="#cb320-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb320-5"><a href="#cb320-5" aria-hidden="true"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span>
+<span id="cb320-6"><a href="#cb320-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb320-7"><a href="#cb320-7" aria-hidden="true"></a></span>
+<span id="cb320-8"><a href="#cb320-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionUnderscores</span>{false}</span>
+<span id="cb320-9"><a href="#cb320-9" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb320-10"><a href="#cb320-10" aria-hidden="true"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span>
+<span id="cb320-11"><a href="#cb320-11" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb320-12"><a href="#cb320-12" aria-hidden="true"></a></span>
+<span id="cb320-13"><a href="#cb320-13" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb318"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb318-1"><a href="#cb318-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb321"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb321-1"><a href="#cb321-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <em>emphasized text</em> and this is a math subscript: <em>mₙ</em>.</p>
<p>This is <em>emphasized text</em> and this is a math subscript: <em>mₙ</em>.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-31"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-32"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb319"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb319-1"><a href="#cb319-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb319-2"><a href="#cb319-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[hybrid]{<span class="ex">markdown</span>}</span>
-<span id="cb319-3"><a href="#cb319-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb319-4"><a href="#cb319-4" aria-hidden="true"></a></span>
-<span id="cb319-5"><a href="#cb319-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb319-6"><a href="#cb319-6" aria-hidden="true"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span>
-<span id="cb319-7"><a href="#cb319-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb319-8"><a href="#cb319-8" aria-hidden="true"></a></span>
-<span id="cb319-9"><a href="#cb319-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{underscores=false}</span>
-<span id="cb319-10"><a href="#cb319-10" aria-hidden="true"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span>
-<span id="cb319-11"><a href="#cb319-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb319-12"><a href="#cb319-12" aria-hidden="true"></a></span>
-<span id="cb319-13"><a href="#cb319-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb322"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb322-1"><a href="#cb322-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb322-2"><a href="#cb322-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[hybrid]{<span class="ex">markdown</span>}</span>
+<span id="cb322-3"><a href="#cb322-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb322-4"><a href="#cb322-4" aria-hidden="true"></a></span>
+<span id="cb322-5"><a href="#cb322-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb322-6"><a href="#cb322-6" aria-hidden="true"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span>
+<span id="cb322-7"><a href="#cb322-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb322-8"><a href="#cb322-8" aria-hidden="true"></a></span>
+<span id="cb322-9"><a href="#cb322-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{underscores=false}</span>
+<span id="cb322-10"><a href="#cb322-10" aria-hidden="true"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span>
+<span id="cb322-11"><a href="#cb322-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb322-12"><a href="#cb322-12" aria-hidden="true"></a></span>
+<span id="cb322-13"><a href="#cb322-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb320"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb320-1"><a href="#cb320-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb323"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb323-1"><a href="#cb323-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <em>emphasized text</em> and this is a math subscript: <em>mₙ</em>.</p>
@@ -3802,22 +3851,22 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-27">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb321"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb321-1"><a href="#cb321-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb321-2"><a href="#cb321-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
-<span id="cb321-3"><a href="#cb321-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb321-4"><a href="#cb321-4" aria-hidden="true"></a></span>
-<span id="cb321-5"><a href="#cb321-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb321-6"><a href="#cb321-6" aria-hidden="true"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span>
-<span id="cb321-7"><a href="#cb321-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb321-8"><a href="#cb321-8" aria-hidden="true"></a></span>
-<span id="cb321-9"><a href="#cb321-9" aria-hidden="true"></a><span class="fu">\def\markdownOptionUnderscores</span>{false}</span>
-<span id="cb321-10"><a href="#cb321-10" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb321-11"><a href="#cb321-11" aria-hidden="true"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span>
-<span id="cb321-12"><a href="#cb321-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb321-13"><a href="#cb321-13" aria-hidden="true"></a></span>
-<span id="cb321-14"><a href="#cb321-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb324"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb324-1"><a href="#cb324-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb324-2"><a href="#cb324-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
+<span id="cb324-3"><a href="#cb324-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb324-4"><a href="#cb324-4" aria-hidden="true"></a></span>
+<span id="cb324-5"><a href="#cb324-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb324-6"><a href="#cb324-6" aria-hidden="true"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span>
+<span id="cb324-7"><a href="#cb324-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb324-8"><a href="#cb324-8" aria-hidden="true"></a></span>
+<span id="cb324-9"><a href="#cb324-9" aria-hidden="true"></a><span class="fu">\def\markdownOptionUnderscores</span>{false}</span>
+<span id="cb324-10"><a href="#cb324-10" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb324-11"><a href="#cb324-11" aria-hidden="true"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span>
+<span id="cb324-12"><a href="#cb324-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb324-13"><a href="#cb324-13" aria-hidden="true"></a></span>
+<span id="cb324-14"><a href="#cb324-14" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb322"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb322-1"><a href="#cb322-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb325"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb325-1"><a href="#cb325-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <em>emphasized text</em> and this is a math subscript: <em>mₙ</em>.</p>
@@ -3827,7 +3876,7 @@ Thomas,Edison,1847</code></pre>
<p>Plain <span class="tex">T<sub>e</sub>X</span> options control the communication between the <span class="tex">T<sub>e</sub>X</span> interface and the <code>markdown</code> Lua module. They are supported by all higher-level interfaces of the Markdown package, i.e. the plain <span class="tex">T<sub>e</sub>X</span>, <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> and Con<span class="tex">T<sub>e</sub>X</span>t interfaces.</p>
<h4 data-number="2.2.2.1" id="setting-lua-options-from-plain-tex"><span class="header-section-number">2.2.2.1</span> Setting Lua options from plain <span class="tex">T<sub>e</sub>X</span></h4>
<p>As a rule of thumb, you can set all Lua options directly from plain <span class="tex">T<sub>e</sub>X</span>. For example, to set the <strong><code>taskLists</code></strong> Lua option to <code>true</code>, you would include the following code in your plain <span class="tex">T<sub>e</sub>X</span> document:</p>
-<div class="sourceCode" id="cb323"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb323-1"><a href="#cb323-1" aria-hidden="true"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span></code></pre></div>
+<div class="sourceCode" id="cb326"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb326-1"><a href="#cb326-1" aria-hidden="true"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span></code></pre></div>
<h4 data-number="2.2.2.2" id="finalizing-and-freezing-the-cache"><span class="header-section-number">2.2.2.2</span> Finalizing and Freezing the Cache</h4>
<p>The <code>\markdownOptionFrozenCache</code> option uses the mapping previously created by the Lua interface <strong><code>finalizeCache</code></strong> option, and uses it to typeset the plain <span class="tex">T<sub>e</sub>X</span> document without invoking Lua. As a result, the plain <span class="tex">T<sub>e</sub>X</span> document becomes more portable, but further changes in the order and the content of markdown documents will not be reflected. It defaults to <code>false</code>.</p>
<p>The standard usage of the <strong><code>finalizeCache</code></strong> and <strong><code>frozenCache</code></strong> options is as follows:</p>
@@ -3852,68 +3901,68 @@ Thomas,Edison,1847</code></pre>
</ul>
<p>The <code>\markdownOptionCacheDir</code> and <code>\markdownOptionFrozenCacheFileName</code> commands correspond to the <code>cacheDir</code> and <code>frozenCacheFileName</code> Lua options.</p>
<p>Using a text editor, create a folder named <code>output-directory</code> and a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb324"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb324-1"><a href="#cb324-1" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
-<span id="cb324-2"><a href="#cb324-2" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb324-3"><a href="#cb324-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionHelperScriptFileName</span>{helper-script.lua}</span>
-<span id="cb324-4"><a href="#cb324-4" aria-hidden="true"></a><span class="fu">\def\markdownOptionInputTempFileName</span>{temporary-input.md}</span>
-<span id="cb324-5"><a href="#cb324-5" aria-hidden="true"></a><span class="fu">\def\markdownOptionOutputTempFileName</span>{temporary-output.tex}</span>
-<span id="cb324-6"><a href="#cb324-6" aria-hidden="true"></a><span class="fu">\def\markdownOptionErrorTempFileName</span>{error-output.txt}</span>
-<span id="cb324-7"><a href="#cb324-7" aria-hidden="true"></a><span class="fu">\def\markdownOptionOutputDir</span>{output-directory}</span>
-<span id="cb324-8"><a href="#cb324-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionCacheDir</span>{output-directory/cache-directory}</span>
-<span id="cb324-9"><a href="#cb324-9" aria-hidden="true"></a><span class="fu">\markdownOptionFinalizeCachetrue</span></span>
-<span id="cb324-10"><a href="#cb324-10" aria-hidden="true"></a><span class="fu">\def\markdownOptionFrozenCacheFileName</span>{output-directory/cache-directory/frozen-cache.tex}</span>
-<span id="cb324-11"><a href="#cb324-11" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb324-12"><a href="#cb324-12" aria-hidden="true"></a>Hello *world*!</span>
-<span id="cb324-13"><a href="#cb324-13" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb324-14"><a href="#cb324-14" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb325"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb325-1"><a href="#cb325-1" aria-hidden="true"></a><span class="ex">luatex</span> --output-directory output-directory document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb327"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb327-1"><a href="#cb327-1" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
+<span id="cb327-2"><a href="#cb327-2" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb327-3"><a href="#cb327-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionHelperScriptFileName</span>{helper-script.lua}</span>
+<span id="cb327-4"><a href="#cb327-4" aria-hidden="true"></a><span class="fu">\def\markdownOptionInputTempFileName</span>{temporary-input.md}</span>
+<span id="cb327-5"><a href="#cb327-5" aria-hidden="true"></a><span class="fu">\def\markdownOptionOutputTempFileName</span>{temporary-output.tex}</span>
+<span id="cb327-6"><a href="#cb327-6" aria-hidden="true"></a><span class="fu">\def\markdownOptionErrorTempFileName</span>{error-output.txt}</span>
+<span id="cb327-7"><a href="#cb327-7" aria-hidden="true"></a><span class="fu">\def\markdownOptionOutputDir</span>{output-directory}</span>
+<span id="cb327-8"><a href="#cb327-8" aria-hidden="true"></a><span class="fu">\def\markdownOptionCacheDir</span>{output-directory/cache-directory}</span>
+<span id="cb327-9"><a href="#cb327-9" aria-hidden="true"></a><span class="fu">\markdownOptionFinalizeCachetrue</span></span>
+<span id="cb327-10"><a href="#cb327-10" aria-hidden="true"></a><span class="fu">\def\markdownOptionFrozenCacheFileName</span>{output-directory/cache-directory/frozen-cache.tex}</span>
+<span id="cb327-11"><a href="#cb327-11" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb327-12"><a href="#cb327-12" aria-hidden="true"></a>Hello *world*!</span>
+<span id="cb327-13"><a href="#cb327-13" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb327-14"><a href="#cb327-14" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb328"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb328-1"><a href="#cb328-1" aria-hidden="true"></a><span class="ex">luatex</span> --output-directory output-directory document.tex</span></code></pre></div>
<p>A text document named <code>temporary-input.md</code> should be produced in the folder named <code>output-directory</code> and contain the following text:</p>
<blockquote>
<p>Hello *world*!</p>
</blockquote>
<p>A folder named <code>output-directory/cache-directory</code> should also be produced and contain fragments of the converted markdown document. LuaTeX does not need other temporary files to perform the conversion from markdown to <span class="tex">T<sub>e</sub>X</span>. To produce the remaining temporary files, invoke pdfTeX from the terminal:</p>
-<div class="sourceCode" id="cb326"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb326-1"><a href="#cb326-1" aria-hidden="true"></a><span class="ex">pdftex</span> --output-directory output-directory --shell-escape document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb329"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb329-1"><a href="#cb329-1" aria-hidden="true"></a><span class="ex">pdftex</span> --output-directory output-directory --shell-escape document.tex</span></code></pre></div>
<p>Text documents named <code>helper-script.lua</code>, and <code>temporary-output.md</code> should be produced in the folder named <code>output-directory</code>. The document named <code>helper-script.lua</code> will contain Lua code that was executed to convert markdown to plain <span class="tex">T<sub>e</sub>X</span>. The document named <code>temporary-output.tex</code> will contain the input markdown document converted to <span class="tex">T<sub>e</sub>X</span>.</p>
<p>No document named <code>error-output.txt</code> should be produced in the folder named <code>output-directory</code>. This document would only be produced if an error had occured while executing the Lua code. If this happens, please <a href="https://github.com/witiko/markdown/issues">file a bug</a>.</p>
<h4 data-number="2.2.2.4" id="package-documentation"><span class="header-section-number">2.2.2.4</span> Package Documentation</h4>
<p>The <code>\markdownOptionStripPercentSigns</code> macro controls whether a percent sign (<code>%</code>) at the beginning of a line will be discarded when reading Markdown input from a <span class="tex">T<sub>e</sub>X</span> document. This enables the use of markdown when writing <span class="tex">T<sub>e</sub>X</span> package documentation using the <a href="https://ctan.org/pkg/doc" title="doc – Format LaTeX documentation">Doc <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> package</a> by Frank Mittelbach. The recognized values of the macro are <code>true</code> (discard) and <code>false</code> (retain). It defaults to <code>false</code>.</p>
<p>Using a text editor, create a text document named <code>document.dtx</code> with the following content:</p>
-<div class="sourceCode" id="cb327"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb327-1"><a href="#cb327-1" aria-hidden="true"></a><span class="co">% \iffalse</span></span>
-<span id="cb327-2"><a href="#cb327-2" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">ltxdoc</span>}</span>
-<span id="cb327-3"><a href="#cb327-3" aria-hidden="true"></a><span class="bu">\usepackage</span>[stripPercentSigns]{<span class="ex">markdown</span>}</span>
-<span id="cb327-4"><a href="#cb327-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb327-5"><a href="#cb327-5" aria-hidden="true"></a><span class="fu">\DocInput</span>{document.dtx}</span>
-<span id="cb327-6"><a href="#cb327-6" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span>
-<span id="cb327-7"><a href="#cb327-7" aria-hidden="true"></a><span class="co">% \fi</span></span>
-<span id="cb327-8"><a href="#cb327-8" aria-hidden="true"></a><span class="co">%</span></span>
-<span id="cb327-9"><a href="#cb327-9" aria-hidden="true"></a><span class="co">% \begin{markdown}</span></span>
-<span id="cb327-10"><a href="#cb327-10" aria-hidden="true"></a><span class="co">% Hello *world*!</span></span>
-<span id="cb327-11"><a href="#cb327-11" aria-hidden="true"></a><span class="co">% \end{markdown}</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb328"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb328-1"><a href="#cb328-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.dtx</span></code></pre></div>
+<div class="sourceCode" id="cb330"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb330-1"><a href="#cb330-1" aria-hidden="true"></a><span class="co">% \iffalse</span></span>
+<span id="cb330-2"><a href="#cb330-2" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">ltxdoc</span>}</span>
+<span id="cb330-3"><a href="#cb330-3" aria-hidden="true"></a><span class="bu">\usepackage</span>[stripPercentSigns]{<span class="ex">markdown</span>}</span>
+<span id="cb330-4"><a href="#cb330-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb330-5"><a href="#cb330-5" aria-hidden="true"></a><span class="fu">\DocInput</span>{document.dtx}</span>
+<span id="cb330-6"><a href="#cb330-6" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span>
+<span id="cb330-7"><a href="#cb330-7" aria-hidden="true"></a><span class="co">% \fi</span></span>
+<span id="cb330-8"><a href="#cb330-8" aria-hidden="true"></a><span class="co">%</span></span>
+<span id="cb330-9"><a href="#cb330-9" aria-hidden="true"></a><span class="co">% \begin{markdown}</span></span>
+<span id="cb330-10"><a href="#cb330-10" aria-hidden="true"></a><span class="co">% Hello *world*!</span></span>
+<span id="cb330-11"><a href="#cb330-11" aria-hidden="true"></a><span class="co">% \end{markdown}</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb331"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb331-1"><a href="#cb331-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.dtx</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p>
<h3 data-number="2.2.3" id="latex-1"><span class="header-section-number">2.2.3</span> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span></h3>
<p><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> options allow us to disable the redefinition of the default renderer prototypes from plain <span class="tex">T<sub>e</sub>X</span>, load user-contributed themes, and invoke user-defined setup snippets.</p>
<h4 data-number="2.2.3.1" id="setting-lua-and-plain-tex-options-from-latex"><span class="header-section-number">2.2.3.1</span> Setting Lua and plain <span class="tex">T<sub>e</sub>X</span> options from <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span></h4>
<p>As a rule of thumb, we can set all Lua options directly from <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>. For example, to set the <strong><code>taskLists</code></strong> Lua option to <code>true</code>, we would include the following code in our <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document:</p>
-<div class="sourceCode" id="cb329"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb329-1"><a href="#cb329-1" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb329-2"><a href="#cb329-2" aria-hidden="true"></a> taskLists = true,</span>
-<span id="cb329-3"><a href="#cb329-3" aria-hidden="true"></a>}</span></code></pre></div>
+<div class="sourceCode" id="cb332"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb332-1"><a href="#cb332-1" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb332-2"><a href="#cb332-2" aria-hidden="true"></a> taskLists = true,</span>
+<span id="cb332-3"><a href="#cb332-3" aria-hidden="true"></a>}</span></code></pre></div>
<p>We can also set all plain <span class="tex">T<sub>e</sub>X</span> options directly from <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>. For example, to set the <code>\markdownOptionHelperScriptFileName</code> plain <span class="tex">T<sub>e</sub>X</span> option to <code>helper-script.lua</code>, we would inclde the following code in our <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document:</p>
-<div class="sourceCode" id="cb330"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb330-1"><a href="#cb330-1" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb330-2"><a href="#cb330-2" aria-hidden="true"></a> helperScriptFileName = helper-script.lua,</span>
-<span id="cb330-3"><a href="#cb330-3" aria-hidden="true"></a>}</span></code></pre></div>
-<h4 data-number="2.2.3.2" id="no-default-token-renderer-prototypes"><span class="header-section-number">2.2.3.2</span> No default token renderer prototypes</h4>
+<div class="sourceCode" id="cb333"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb333-1"><a href="#cb333-1" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb333-2"><a href="#cb333-2" aria-hidden="true"></a> helperScriptFileName = helper-script.lua,</span>
+<span id="cb333-3"><a href="#cb333-3" aria-hidden="true"></a>}</span></code></pre></div>
+<h4 data-number="2.2.3.2" id="latexplain"><span class="header-section-number">2.2.3.2</span> No default token renderer prototypes</h4>
<p>Default token renderer prototypes require <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> packages that may clash with 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 <code>plain</code> package option, we can keep the default definitions from the plain <span class="tex">T<sub>e</sub>X</span> implementation and prevent the soft <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> prerequisites from being loaded:</p>
-<div class="sourceCode" id="cb331"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb331-1"><a href="#cb331-1" aria-hidden="true"></a><span class="bu">\usepackage</span>[plain]{<span class="ex">markdown</span>}</span></code></pre></div>
-<h4 data-number="2.2.3.3" id="latex-themes"><span class="header-section-number">2.2.3.3</span> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> themes</h4>
+<div class="sourceCode" id="cb334"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb334-1"><a href="#cb334-1" aria-hidden="true"></a><span class="bu">\usepackage</span>[plain]{<span class="ex">markdown</span>}</span></code></pre></div>
+<h4 data-number="2.2.3.3" id="latexthemes"><span class="header-section-number">2.2.3.3</span> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> themes</h4>
<p>User-contributed <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> themes for the Markdown package provide a domain-specific interpretation of some Markdown tokens. Similarly to <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> packages, themes allow the authors to achieve a specific look and other high-level goals without low-level programming.</p>
<p>For example, to load themes named <code>witiko/beamer/MU</code> and <code>witiko/dot</code>, you would use the following code in the preamble of your document:</p>
-<div class="sourceCode" id="cb332"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb332-1"><a href="#cb332-1" aria-hidden="true"></a><span class="bu">\usepackage</span>[</span>
-<span id="cb332-2"><a href="#cb332-2" aria-hidden="true"></a> theme = witiko/beamer/MU,</span>
-<span id="cb332-3"><a href="#cb332-3" aria-hidden="true"></a> theme = witiko/dot,</span>
-<span id="cb332-4"><a href="#cb332-4" aria-hidden="true"></a>]{<span class="ex">markdown</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb335"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb335-1"><a href="#cb335-1" aria-hidden="true"></a><span class="bu">\usepackage</span>[</span>
+<span id="cb335-2"><a href="#cb335-2" aria-hidden="true"></a> theme = witiko/beamer/MU,</span>
+<span id="cb335-3"><a href="#cb335-3" aria-hidden="true"></a> theme = witiko/dot,</span>
+<span id="cb335-4"><a href="#cb335-4" aria-hidden="true"></a>]{<span class="ex">markdown</span>}</span></code></pre></div>
<p>Due to limitations of <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>, themes may not be loaded after the beginning of a <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document.</p>
<p>Example themes provided with the Markdown package include:</p>
<dl>
@@ -3921,44 +3970,44 @@ Thomas,Edison,1847</code></pre>
<dd><p>A theme that typesets fenced code blocks with the <code>dot …</code> infostring as images of directed graphs rendered by the Graphviz tools. The right tail of the infostring is used as the image title. The theme requires a Unix-like operating system with GNU Diffutils and Graphviz installed. The theme also requires shell access unless the plain <span class="tex">T<sub>e</sub>X</span> option is enabled.</p>
</dd>
</dl>
-<h5 class="unnumbered" data-number="" id="latex-example-32"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-33"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb333"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb333-1"><a href="#cb333-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb333-2"><a href="#cb333-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[theme=witiko/dot]{<span class="ex">markdown</span>}</span>
-<span id="cb333-3"><a href="#cb333-3" aria-hidden="true"></a><span class="fu">\setkeys</span>{Gin}{</span>
-<span id="cb333-4"><a href="#cb333-4" aria-hidden="true"></a> width=<span class="fu">\columnwidth</span>,</span>
-<span id="cb333-5"><a href="#cb333-5" aria-hidden="true"></a> height=0.65<span class="fu">\paperheight</span>,</span>
-<span id="cb333-6"><a href="#cb333-6" aria-hidden="true"></a> keepaspectratio}</span>
-<span id="cb333-7"><a href="#cb333-7" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb333-8"><a href="#cb333-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb333-9"><a href="#cb333-9" aria-hidden="true"></a>``` dot Various formats of mathemathical formulae</span>
-<span id="cb333-10"><a href="#cb333-10" aria-hidden="true"></a>digraph tree {</span>
-<span id="cb333-11"><a href="#cb333-11" aria-hidden="true"></a> margin = 0;</span>
-<span id="cb333-12"><a href="#cb333-12" aria-hidden="true"></a> rankdir = &quot;LR&quot;;</span>
-<span id="cb333-13"><a href="#cb333-13" aria-hidden="true"></a></span>
-<span id="cb333-14"><a href="#cb333-14" aria-hidden="true"></a> latex -&gt; pmml;</span>
-<span id="cb333-15"><a href="#cb333-15" aria-hidden="true"></a> latex -&gt; cmml;</span>
-<span id="cb333-16"><a href="#cb333-16" aria-hidden="true"></a> pmml -&gt; slt;</span>
-<span id="cb333-17"><a href="#cb333-17" aria-hidden="true"></a> cmml -&gt; opt;</span>
-<span id="cb333-18"><a href="#cb333-18" aria-hidden="true"></a> cmml -&gt; prefix;</span>
-<span id="cb333-19"><a href="#cb333-19" aria-hidden="true"></a> cmml -&gt; infix;</span>
-<span id="cb333-20"><a href="#cb333-20" aria-hidden="true"></a> pmml -&gt; mterms [style=dashed];</span>
-<span id="cb333-21"><a href="#cb333-21" aria-hidden="true"></a> cmml -&gt; mterms;</span>
-<span id="cb333-22"><a href="#cb333-22" aria-hidden="true"></a></span>
-<span id="cb333-23"><a href="#cb333-23" aria-hidden="true"></a> latex [label = &quot;LaTeX&quot;];</span>
-<span id="cb333-24"><a href="#cb333-24" aria-hidden="true"></a> pmml [label = &quot;Presentation MathML&quot;];</span>
-<span id="cb333-25"><a href="#cb333-25" aria-hidden="true"></a> cmml [label = &quot;Content MathML&quot;];</span>
-<span id="cb333-26"><a href="#cb333-26" aria-hidden="true"></a> slt [label = &quot;Symbol Layout Tree&quot;];</span>
-<span id="cb333-27"><a href="#cb333-27" aria-hidden="true"></a> opt [label = &quot;Operator Tree&quot;];</span>
-<span id="cb333-28"><a href="#cb333-28" aria-hidden="true"></a> prefix [label = &quot;Prefix&quot;];</span>
-<span id="cb333-29"><a href="#cb333-29" aria-hidden="true"></a> infix [label = &quot;Infix&quot;];</span>
-<span id="cb333-30"><a href="#cb333-30" aria-hidden="true"></a> mterms [label = &quot;M-Terms&quot;];</span>
-<span id="cb333-31"><a href="#cb333-31" aria-hidden="true"></a>}</span>
-<span id="cb333-32"><a href="#cb333-32" aria-hidden="true"></a>```</span>
-<span id="cb333-33"><a href="#cb333-33" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb333-34"><a href="#cb333-34" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb334"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb334-1"><a href="#cb334-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb336"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb336-1"><a href="#cb336-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb336-2"><a href="#cb336-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[theme=witiko/dot]{<span class="ex">markdown</span>}</span>
+<span id="cb336-3"><a href="#cb336-3" aria-hidden="true"></a><span class="fu">\setkeys</span>{Gin}{</span>
+<span id="cb336-4"><a href="#cb336-4" aria-hidden="true"></a> width=<span class="fu">\columnwidth</span>,</span>
+<span id="cb336-5"><a href="#cb336-5" aria-hidden="true"></a> height=0.65<span class="fu">\paperheight</span>,</span>
+<span id="cb336-6"><a href="#cb336-6" aria-hidden="true"></a> keepaspectratio}</span>
+<span id="cb336-7"><a href="#cb336-7" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb336-8"><a href="#cb336-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb336-9"><a href="#cb336-9" aria-hidden="true"></a>``` dot Various formats of mathemathical formulae</span>
+<span id="cb336-10"><a href="#cb336-10" aria-hidden="true"></a>digraph tree {</span>
+<span id="cb336-11"><a href="#cb336-11" aria-hidden="true"></a> margin = 0;</span>
+<span id="cb336-12"><a href="#cb336-12" aria-hidden="true"></a> rankdir = &quot;LR&quot;;</span>
+<span id="cb336-13"><a href="#cb336-13" aria-hidden="true"></a></span>
+<span id="cb336-14"><a href="#cb336-14" aria-hidden="true"></a> latex -&gt; pmml;</span>
+<span id="cb336-15"><a href="#cb336-15" aria-hidden="true"></a> latex -&gt; cmml;</span>
+<span id="cb336-16"><a href="#cb336-16" aria-hidden="true"></a> pmml -&gt; slt;</span>
+<span id="cb336-17"><a href="#cb336-17" aria-hidden="true"></a> cmml -&gt; opt;</span>
+<span id="cb336-18"><a href="#cb336-18" aria-hidden="true"></a> cmml -&gt; prefix;</span>
+<span id="cb336-19"><a href="#cb336-19" aria-hidden="true"></a> cmml -&gt; infix;</span>
+<span id="cb336-20"><a href="#cb336-20" aria-hidden="true"></a> pmml -&gt; mterms [style=dashed];</span>
+<span id="cb336-21"><a href="#cb336-21" aria-hidden="true"></a> cmml -&gt; mterms;</span>
+<span id="cb336-22"><a href="#cb336-22" aria-hidden="true"></a></span>
+<span id="cb336-23"><a href="#cb336-23" aria-hidden="true"></a> latex [label = &quot;LaTeX&quot;];</span>
+<span id="cb336-24"><a href="#cb336-24" aria-hidden="true"></a> pmml [label = &quot;Presentation MathML&quot;];</span>
+<span id="cb336-25"><a href="#cb336-25" aria-hidden="true"></a> cmml [label = &quot;Content MathML&quot;];</span>
+<span id="cb336-26"><a href="#cb336-26" aria-hidden="true"></a> slt [label = &quot;Symbol Layout Tree&quot;];</span>
+<span id="cb336-27"><a href="#cb336-27" aria-hidden="true"></a> opt [label = &quot;Operator Tree&quot;];</span>
+<span id="cb336-28"><a href="#cb336-28" aria-hidden="true"></a> prefix [label = &quot;Prefix&quot;];</span>
+<span id="cb336-29"><a href="#cb336-29" aria-hidden="true"></a> infix [label = &quot;Infix&quot;];</span>
+<span id="cb336-30"><a href="#cb336-30" aria-hidden="true"></a> mterms [label = &quot;M-Terms&quot;];</span>
+<span id="cb336-31"><a href="#cb336-31" aria-hidden="true"></a>}</span>
+<span id="cb336-32"><a href="#cb336-32" aria-hidden="true"></a>```</span>
+<span id="cb336-33"><a href="#cb336-33" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb336-34"><a href="#cb336-34" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb337"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb337-1"><a href="#cb337-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain a drawing of a directed graph similar to Figure 1 from the following conference article:</p>
<blockquote>
<p>NOVOTNÝ, Vít, Petr SOJKA, Michal ŠTEFÁNIK and Dávid LUPTÁK. Three is Better than One: Ensembling Math Information Retrieval Systems. <em>CEUR Workshop Proceedings</em>. Thessaloniki, Greece: M. Jeusfeld c/o Redaktion Sun SITE, Informatik V, RWTH Aachen., 2020, vol. 2020, No 2696, p. 1-30. ISSN 1613-0073. <a href="http://ceur-ws.org/Vol-2696/paper_235.pdf" class="uri">http://ceur-ws.org/Vol-2696/paper_235.pdf</a></p>
@@ -3968,18 +4017,18 @@ Thomas,Edison,1847</code></pre>
<dd><p>A theme that adds support for downloading images whose URL has the http or https protocol. The theme requires the <strong><code>catchfile</code></strong> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> package and a Unix-like operating system with GNU Coreutils <code>md5sum</code> and either GNU Wget or cURL installed. The theme also requires shell access unless the plain <span class="tex">T<sub>e</sub>X</span> option is enabled.</p>
</dd>
</dl>
-<h5 class="unnumbered" data-number="" id="latex-example-33"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-34"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb335"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb335-1"><a href="#cb335-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb335-2"><a href="#cb335-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[theme=witiko/graphicx/http]{<span class="ex">markdown</span>}</span>
-<span id="cb335-3"><a href="#cb335-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb335-4"><a href="#cb335-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb335-5"><a href="#cb335-5" aria-hidden="true"></a>![img](https://github.com/witiko/markdown/raw/main/markdown.png</span>
-<span id="cb335-6"><a href="#cb335-6" aria-hidden="true"></a> &quot;The banner of the Markdown package&quot;)</span>
-<span id="cb335-7"><a href="#cb335-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb335-8"><a href="#cb335-8" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb338"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb338-1"><a href="#cb338-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb338-2"><a href="#cb338-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[theme=witiko/graphicx/http]{<span class="ex">markdown</span>}</span>
+<span id="cb338-3"><a href="#cb338-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb338-4"><a href="#cb338-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb338-5"><a href="#cb338-5" aria-hidden="true"></a>![img](https://github.com/witiko/markdown/raw/main/markdown.png</span>
+<span id="cb338-6"><a href="#cb338-6" aria-hidden="true"></a> &quot;The banner of the Markdown package&quot;)</span>
+<span id="cb338-7"><a href="#cb338-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb338-8"><a href="#cb338-8" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb336"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb336-1"><a href="#cb336-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb339"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb339-1"><a href="#cb339-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following image:</p>
<blockquote>
<figure>
@@ -3991,71 +4040,71 @@ Thomas,Edison,1847</code></pre>
<dd><p>A theme that makes tilde (<code>~</code>) always typeset the non-breaking space even when the <strong><code>hybrid</code></strong> Lua option is <code>false</code>.</p>
</dd>
</dl>
-<h5 class="unnumbered" data-number="" id="latex-example-34"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-35"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb337"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb337-1"><a href="#cb337-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb337-2"><a href="#cb337-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[theme=witiko/tilde]{<span class="ex">markdown</span>}</span>
-<span id="cb337-3"><a href="#cb337-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb337-4"><a href="#cb337-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb337-5"><a href="#cb337-5" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
-<span id="cb337-6"><a href="#cb337-6" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb337-7"><a href="#cb337-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb340"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb340-1"><a href="#cb340-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb340-2"><a href="#cb340-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[theme=witiko/tilde]{<span class="ex">markdown</span>}</span>
+<span id="cb340-3"><a href="#cb340-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb340-4"><a href="#cb340-4" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb340-5"><a href="#cb340-5" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
+<span id="cb340-6"><a href="#cb340-6" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb340-7"><a href="#cb340-7" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb338"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb338-1"><a href="#cb338-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb341"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb341-1"><a href="#cb341-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p>
<blockquote>
<p>Bartel·Leendert van·der·Waerden</p>
</blockquote>
-<h4 data-number="2.2.3.4" id="latex-setup-snippets"><span class="header-section-number">2.2.3.4</span> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> setup snippets</h4>
+<h4 data-number="2.2.3.4" id="latexsetupsnippets"><span class="header-section-number">2.2.3.4</span> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> setup snippets</h4>
<p>User-contributed <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> themes provide global control over high-level goals. However, it is often desirable to change only some local aspects of a document. <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> setup snippets provide syntactic sugar for defining and invoking various options locally.</p>
<p>Here is how we can use setup snippets to store options and invoke them later:</p>
-<div class="sourceCode" id="cb339"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb339-1"><a href="#cb339-1" aria-hidden="true"></a><span class="fu">\markdownSetupSnippet</span>{romanNumerals}{</span>
-<span id="cb339-2"><a href="#cb339-2" aria-hidden="true"></a> renderers = {</span>
-<span id="cb339-3"><a href="#cb339-3" aria-hidden="true"></a> olItemWithNumber = {<span class="co">%</span></span>
-<span id="cb339-4"><a href="#cb339-4" aria-hidden="true"></a> <span class="fu">\item</span>[<span class="fu">\romannumeral</span>#1<span class="fu">\relax</span>.]<span class="co">%</span></span>
-<span id="cb339-5"><a href="#cb339-5" aria-hidden="true"></a> },</span>
-<span id="cb339-6"><a href="#cb339-6" aria-hidden="true"></a> },</span>
-<span id="cb339-7"><a href="#cb339-7" aria-hidden="true"></a>}</span>
-<span id="cb339-8"><a href="#cb339-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb339-9"><a href="#cb339-9" aria-hidden="true"></a></span>
-<span id="cb339-10"><a href="#cb339-10" aria-hidden="true"></a>The following ordered list will be preceded by arabic numerals:</span>
-<span id="cb339-11"><a href="#cb339-11" aria-hidden="true"></a></span>
-<span id="cb339-12"><a href="#cb339-12" aria-hidden="true"></a>1. wahid</span>
-<span id="cb339-13"><a href="#cb339-13" aria-hidden="true"></a>2. aithnayn</span>
-<span id="cb339-14"><a href="#cb339-14" aria-hidden="true"></a></span>
-<span id="cb339-15"><a href="#cb339-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb339-16"><a href="#cb339-16" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{snippet=romanNumerals}</span>
-<span id="cb339-17"><a href="#cb339-17" aria-hidden="true"></a></span>
-<span id="cb339-18"><a href="#cb339-18" aria-hidden="true"></a>The following ordered list will be preceded by roman numerals:</span>
-<span id="cb339-19"><a href="#cb339-19" aria-hidden="true"></a></span>
-<span id="cb339-20"><a href="#cb339-20" aria-hidden="true"></a>3. tres</span>
-<span id="cb339-21"><a href="#cb339-21" aria-hidden="true"></a>4. quattuor</span>
-<span id="cb339-22"><a href="#cb339-22" aria-hidden="true"></a></span>
-<span id="cb339-23"><a href="#cb339-23" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb342"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb342-1"><a href="#cb342-1" aria-hidden="true"></a><span class="fu">\markdownSetupSnippet</span>{romanNumerals}{</span>
+<span id="cb342-2"><a href="#cb342-2" aria-hidden="true"></a> renderers = {</span>
+<span id="cb342-3"><a href="#cb342-3" aria-hidden="true"></a> olItemWithNumber = {<span class="co">%</span></span>
+<span id="cb342-4"><a href="#cb342-4" aria-hidden="true"></a> <span class="fu">\item</span>[<span class="fu">\romannumeral</span>#1<span class="fu">\relax</span>.]<span class="co">%</span></span>
+<span id="cb342-5"><a href="#cb342-5" aria-hidden="true"></a> },</span>
+<span id="cb342-6"><a href="#cb342-6" aria-hidden="true"></a> },</span>
+<span id="cb342-7"><a href="#cb342-7" aria-hidden="true"></a>}</span>
+<span id="cb342-8"><a href="#cb342-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb342-9"><a href="#cb342-9" aria-hidden="true"></a></span>
+<span id="cb342-10"><a href="#cb342-10" aria-hidden="true"></a>The following ordered list will be preceded by arabic numerals:</span>
+<span id="cb342-11"><a href="#cb342-11" aria-hidden="true"></a></span>
+<span id="cb342-12"><a href="#cb342-12" aria-hidden="true"></a>1. wahid</span>
+<span id="cb342-13"><a href="#cb342-13" aria-hidden="true"></a>2. aithnayn</span>
+<span id="cb342-14"><a href="#cb342-14" aria-hidden="true"></a></span>
+<span id="cb342-15"><a href="#cb342-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb342-16"><a href="#cb342-16" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{snippet=romanNumerals}</span>
+<span id="cb342-17"><a href="#cb342-17" aria-hidden="true"></a></span>
+<span id="cb342-18"><a href="#cb342-18" aria-hidden="true"></a>The following ordered list will be preceded by roman numerals:</span>
+<span id="cb342-19"><a href="#cb342-19" aria-hidden="true"></a></span>
+<span id="cb342-20"><a href="#cb342-20" aria-hidden="true"></a>3. tres</span>
+<span id="cb342-21"><a href="#cb342-21" aria-hidden="true"></a>4. quattuor</span>
+<span id="cb342-22"><a href="#cb342-22" aria-hidden="true"></a></span>
+<span id="cb342-23"><a href="#cb342-23" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span></code></pre></div>
<h2 data-number="2.3" id="markdown-tokens"><span class="header-section-number">2.3</span> Markdown Tokens</h2>
<p>A key feature of the Markdown package is the support for manipulating markdown tokens, such as headings, emphasized text, links, and lists, in <span class="tex">T<sub>e</sub>X</span>. Instead of reducing <span class="tex">T<sub>e</sub>X</span> to a PDF document producer, the Markdown package allows the user to specify how every markdown token should be processed and rendered.</p>
-<h3 data-number="2.3.1" id="token-renderers"><span class="header-section-number">2.3.1</span> Token Renderers</h3>
+<h3 data-number="2.3.1" id="texrenderersuser"><span class="header-section-number">2.3.1</span> Token Renderers</h3>
<p>Token renderers are user-defined <span class="tex">T<sub>e</sub>X</span> macros, which render markdown tokens. In this section, I will describe the individual token renderers.</p>
<h4 data-number="2.3.1.1" id="tickbox-renderers"><span class="header-section-number">2.3.1.1</span> Tickbox Renderers</h4>
<p>The macros named <code>\markdownRendererTickedBox</code>, <code>\markdownRendererHalfTickedBox</code>, and <code>\markdownRendererUntickedBox</code> represent ticked and unticked boxes, respectively. These macros will either be produced, when the <strong><code>taskLists</code></strong> 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.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-35"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-36"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb340"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb340-1"><a href="#cb340-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb340-2"><a href="#cb340-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span>
-<span id="cb340-3"><a href="#cb340-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb340-4"><a href="#cb340-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb340-5"><a href="#cb340-5" aria-hidden="true"></a> untickedBox = No,</span>
-<span id="cb340-6"><a href="#cb340-6" aria-hidden="true"></a> tickedBox = Yes,</span>
-<span id="cb340-7"><a href="#cb340-7" aria-hidden="true"></a> },</span>
-<span id="cb340-8"><a href="#cb340-8" aria-hidden="true"></a>}</span>
-<span id="cb340-9"><a href="#cb340-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb340-10"><a href="#cb340-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb340-11"><a href="#cb340-11" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
-<span id="cb340-12"><a href="#cb340-12" aria-hidden="true"></a>- [x] I can!</span>
-<span id="cb340-13"><a href="#cb340-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb340-14"><a href="#cb340-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb343"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb343-1"><a href="#cb343-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb343-2"><a href="#cb343-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span>
+<span id="cb343-3"><a href="#cb343-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb343-4"><a href="#cb343-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb343-5"><a href="#cb343-5" aria-hidden="true"></a> untickedBox = No,</span>
+<span id="cb343-6"><a href="#cb343-6" aria-hidden="true"></a> tickedBox = Yes,</span>
+<span id="cb343-7"><a href="#cb343-7" aria-hidden="true"></a> },</span>
+<span id="cb343-8"><a href="#cb343-8" aria-hidden="true"></a>}</span>
+<span id="cb343-9"><a href="#cb343-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb343-10"><a href="#cb343-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb343-11"><a href="#cb343-11" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
+<span id="cb343-12"><a href="#cb343-12" aria-hidden="true"></a>- [x] I can!</span>
+<span id="cb343-13"><a href="#cb343-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb343-14"><a href="#cb343-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb341"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb341-1"><a href="#cb341-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb344"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb344-1"><a href="#cb344-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<ul>
@@ -4065,18 +4114,18 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-28">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb342"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb342-1"><a href="#cb342-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb342-2"><a href="#cb342-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span>
-<span id="cb342-3"><a href="#cb342-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span>
-<span id="cb342-4"><a href="#cb342-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span>
-<span id="cb342-5"><a href="#cb342-5" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb342-6"><a href="#cb342-6" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb342-7"><a href="#cb342-7" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
-<span id="cb342-8"><a href="#cb342-8" aria-hidden="true"></a>- [x] I can!</span>
-<span id="cb342-9"><a href="#cb342-9" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb342-10"><a href="#cb342-10" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb345"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb345-1"><a href="#cb345-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb345-2"><a href="#cb345-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span>
+<span id="cb345-3"><a href="#cb345-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span>
+<span id="cb345-4"><a href="#cb345-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span>
+<span id="cb345-5"><a href="#cb345-5" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb345-6"><a href="#cb345-6" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb345-7"><a href="#cb345-7" aria-hidden="true"></a>- [ ] you can&#39;t.</span>
+<span id="cb345-8"><a href="#cb345-8" aria-hidden="true"></a>- [x] I can!</span>
+<span id="cb345-9"><a href="#cb345-9" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb345-10"><a href="#cb345-10" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb343"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb343-1"><a href="#cb343-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb346"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb346-1"><a href="#cb346-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<ul>
@@ -4087,75 +4136,75 @@ Thomas,Edison,1847</code></pre>
<h4 data-number="2.3.1.2" id="markdown-document-renderers"><span class="header-section-number">2.3.1.2</span> Markdown Document Renderers</h4>
<p>The <code>\markdownRendererDocumentBegin</code> and <code>\markdownRendererDocumentEnd</code> macros represent the beginning and the end of a <em>markdown</em> document. The macros receive no arguments.</p>
<p>A <span class="tex">T<sub>e</sub>X</span> document may contain any number of markdown documents. Additionally, markdown documents may appear not only in a sequence, but several markdown documents may also be <em>nested</em>. Redefinitions of the macros should take this into account.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-36"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-37"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>nested.md</code> with the following content:</p>
-<div class="sourceCode" id="cb344"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb344-1"><a href="#cb344-1" aria-hidden="true"></a>This is a *nested* markdown document.</span></code></pre></div>
-<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb345"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb345-1"><a href="#cb345-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb345-2"><a href="#cb345-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span>
-<span id="cb345-3"><a href="#cb345-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb345-4"><a href="#cb345-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb345-5"><a href="#cb345-5" aria-hidden="true"></a> contentBlock = {<span class="co">%</span></span>
-<span id="cb345-6"><a href="#cb345-6" aria-hidden="true"></a> <span class="fu">\markdownInput</span>{#3}<span class="co">%</span></span>
-<span id="cb345-7"><a href="#cb345-7" aria-hidden="true"></a> },</span>
-<span id="cb345-8"><a href="#cb345-8" aria-hidden="true"></a> documentBegin = {<span class="co">%</span></span>
-<span id="cb345-9"><a href="#cb345-9" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-10"><a href="#cb345-10" aria-hidden="true"></a> <span class="fu">\emph</span>{(The beginning of a document)}</span>
-<span id="cb345-11"><a href="#cb345-11" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-12"><a href="#cb345-12" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
-<span id="cb345-13"><a href="#cb345-13" aria-hidden="true"></a> <span class="fu">\markdownSetup</span>{snippet=first-nesting-level}<span class="co">%</span></span>
-<span id="cb345-14"><a href="#cb345-14" aria-hidden="true"></a> },</span>
-<span id="cb345-15"><a href="#cb345-15" aria-hidden="true"></a> documentEnd = {<span class="co">%</span></span>
-<span id="cb345-16"><a href="#cb345-16" aria-hidden="true"></a> <span class="fu">\endgroup</span></span>
-<span id="cb345-17"><a href="#cb345-17" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-18"><a href="#cb345-18" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a document)}</span>
-<span id="cb345-19"><a href="#cb345-19" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-20"><a href="#cb345-20" aria-hidden="true"></a> },</span>
-<span id="cb345-21"><a href="#cb345-21" aria-hidden="true"></a> },</span>
-<span id="cb345-22"><a href="#cb345-22" aria-hidden="true"></a>}</span>
-<span id="cb345-23"><a href="#cb345-23" aria-hidden="true"></a><span class="fu">\markdownSetupSnippet</span>{first-nesting-level}{</span>
-<span id="cb345-24"><a href="#cb345-24" aria-hidden="true"></a> renderers = {</span>
-<span id="cb345-25"><a href="#cb345-25" aria-hidden="true"></a> documentBegin = {</span>
-<span id="cb345-26"><a href="#cb345-26" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-27"><a href="#cb345-27" aria-hidden="true"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span>
-<span id="cb345-28"><a href="#cb345-28" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-29"><a href="#cb345-29" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
-<span id="cb345-30"><a href="#cb345-30" aria-hidden="true"></a> <span class="fu">\markdownSetup</span>{snippet=second-nesting-level-and-below}</span>
-<span id="cb345-31"><a href="#cb345-31" aria-hidden="true"></a> },</span>
-<span id="cb345-32"><a href="#cb345-32" aria-hidden="true"></a> },</span>
-<span id="cb345-33"><a href="#cb345-33" aria-hidden="true"></a>}</span>
-<span id="cb345-34"><a href="#cb345-34" aria-hidden="true"></a><span class="fu">\markdownSetupSnippet</span>{second-nesting-level-and-below}{</span>
-<span id="cb345-35"><a href="#cb345-35" aria-hidden="true"></a> renderers = {</span>
-<span id="cb345-36"><a href="#cb345-36" aria-hidden="true"></a> documentBegin = {</span>
-<span id="cb345-37"><a href="#cb345-37" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-38"><a href="#cb345-38" aria-hidden="true"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span>
-<span id="cb345-39"><a href="#cb345-39" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-40"><a href="#cb345-40" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
-<span id="cb345-41"><a href="#cb345-41" aria-hidden="true"></a> },</span>
-<span id="cb345-42"><a href="#cb345-42" aria-hidden="true"></a> documentEnd = {</span>
-<span id="cb345-43"><a href="#cb345-43" aria-hidden="true"></a> <span class="fu">\endgroup</span></span>
-<span id="cb345-44"><a href="#cb345-44" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-45"><a href="#cb345-45" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a nested document)}</span>
-<span id="cb345-46"><a href="#cb345-46" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb345-47"><a href="#cb345-47" aria-hidden="true"></a> },</span>
-<span id="cb345-48"><a href="#cb345-48" aria-hidden="true"></a> },</span>
-<span id="cb345-49"><a href="#cb345-49" aria-hidden="true"></a>}</span>
-<span id="cb345-50"><a href="#cb345-50" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb345-51"><a href="#cb345-51" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb345-52"><a href="#cb345-52" aria-hidden="true"></a>Hello *world*!</span>
-<span id="cb345-53"><a href="#cb345-53" aria-hidden="true"></a></span>
-<span id="cb345-54"><a href="#cb345-54" aria-hidden="true"></a>/nested.md</span>
-<span id="cb345-55"><a href="#cb345-55" aria-hidden="true"></a></span>
-<span id="cb345-56"><a href="#cb345-56" aria-hidden="true"></a>_Foo_ bar!</span>
-<span id="cb345-57"><a href="#cb345-57" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb345-58"><a href="#cb345-58" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb345-59"><a href="#cb345-59" aria-hidden="true"></a></span>
-<span id="cb345-60"><a href="#cb345-60" aria-hidden="true"></a>Bar baz!</span>
-<span id="cb345-61"><a href="#cb345-61" aria-hidden="true"></a></span>
-<span id="cb345-62"><a href="#cb345-62" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb345-63"><a href="#cb345-63" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb346"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb346-1"><a href="#cb346-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb347"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb347-1"><a href="#cb347-1" aria-hidden="true"></a>This is a *nested* markdown document.</span></code></pre></div>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb348"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb348-1"><a href="#cb348-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb348-2"><a href="#cb348-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span>
+<span id="cb348-3"><a href="#cb348-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb348-4"><a href="#cb348-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb348-5"><a href="#cb348-5" aria-hidden="true"></a> contentBlock = {<span class="co">%</span></span>
+<span id="cb348-6"><a href="#cb348-6" aria-hidden="true"></a> <span class="fu">\markdownInput</span>{#3}<span class="co">%</span></span>
+<span id="cb348-7"><a href="#cb348-7" aria-hidden="true"></a> },</span>
+<span id="cb348-8"><a href="#cb348-8" aria-hidden="true"></a> documentBegin = {<span class="co">%</span></span>
+<span id="cb348-9"><a href="#cb348-9" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-10"><a href="#cb348-10" aria-hidden="true"></a> <span class="fu">\emph</span>{(The beginning of a document)}</span>
+<span id="cb348-11"><a href="#cb348-11" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-12"><a href="#cb348-12" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
+<span id="cb348-13"><a href="#cb348-13" aria-hidden="true"></a> <span class="fu">\markdownSetup</span>{snippet=first-nesting-level}<span class="co">%</span></span>
+<span id="cb348-14"><a href="#cb348-14" aria-hidden="true"></a> },</span>
+<span id="cb348-15"><a href="#cb348-15" aria-hidden="true"></a> documentEnd = {<span class="co">%</span></span>
+<span id="cb348-16"><a href="#cb348-16" aria-hidden="true"></a> <span class="fu">\endgroup</span></span>
+<span id="cb348-17"><a href="#cb348-17" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-18"><a href="#cb348-18" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a document)}</span>
+<span id="cb348-19"><a href="#cb348-19" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-20"><a href="#cb348-20" aria-hidden="true"></a> },</span>
+<span id="cb348-21"><a href="#cb348-21" aria-hidden="true"></a> },</span>
+<span id="cb348-22"><a href="#cb348-22" aria-hidden="true"></a>}</span>
+<span id="cb348-23"><a href="#cb348-23" aria-hidden="true"></a><span class="fu">\markdownSetupSnippet</span>{first-nesting-level}{</span>
+<span id="cb348-24"><a href="#cb348-24" aria-hidden="true"></a> renderers = {</span>
+<span id="cb348-25"><a href="#cb348-25" aria-hidden="true"></a> documentBegin = {</span>
+<span id="cb348-26"><a href="#cb348-26" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-27"><a href="#cb348-27" aria-hidden="true"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span>
+<span id="cb348-28"><a href="#cb348-28" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-29"><a href="#cb348-29" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
+<span id="cb348-30"><a href="#cb348-30" aria-hidden="true"></a> <span class="fu">\markdownSetup</span>{snippet=second-nesting-level-and-below}</span>
+<span id="cb348-31"><a href="#cb348-31" aria-hidden="true"></a> },</span>
+<span id="cb348-32"><a href="#cb348-32" aria-hidden="true"></a> },</span>
+<span id="cb348-33"><a href="#cb348-33" aria-hidden="true"></a>}</span>
+<span id="cb348-34"><a href="#cb348-34" aria-hidden="true"></a><span class="fu">\markdownSetupSnippet</span>{second-nesting-level-and-below}{</span>
+<span id="cb348-35"><a href="#cb348-35" aria-hidden="true"></a> renderers = {</span>
+<span id="cb348-36"><a href="#cb348-36" aria-hidden="true"></a> documentBegin = {</span>
+<span id="cb348-37"><a href="#cb348-37" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-38"><a href="#cb348-38" aria-hidden="true"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span>
+<span id="cb348-39"><a href="#cb348-39" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-40"><a href="#cb348-40" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
+<span id="cb348-41"><a href="#cb348-41" aria-hidden="true"></a> },</span>
+<span id="cb348-42"><a href="#cb348-42" aria-hidden="true"></a> documentEnd = {</span>
+<span id="cb348-43"><a href="#cb348-43" aria-hidden="true"></a> <span class="fu">\endgroup</span></span>
+<span id="cb348-44"><a href="#cb348-44" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-45"><a href="#cb348-45" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a nested document)}</span>
+<span id="cb348-46"><a href="#cb348-46" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb348-47"><a href="#cb348-47" aria-hidden="true"></a> },</span>
+<span id="cb348-48"><a href="#cb348-48" aria-hidden="true"></a> },</span>
+<span id="cb348-49"><a href="#cb348-49" aria-hidden="true"></a>}</span>
+<span id="cb348-50"><a href="#cb348-50" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb348-51"><a href="#cb348-51" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb348-52"><a href="#cb348-52" aria-hidden="true"></a>Hello *world*!</span>
+<span id="cb348-53"><a href="#cb348-53" aria-hidden="true"></a></span>
+<span id="cb348-54"><a href="#cb348-54" aria-hidden="true"></a>/nested.md</span>
+<span id="cb348-55"><a href="#cb348-55" aria-hidden="true"></a></span>
+<span id="cb348-56"><a href="#cb348-56" aria-hidden="true"></a>_Foo_ bar!</span>
+<span id="cb348-57"><a href="#cb348-57" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb348-58"><a href="#cb348-58" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb348-59"><a href="#cb348-59" aria-hidden="true"></a></span>
+<span id="cb348-60"><a href="#cb348-60" aria-hidden="true"></a>Bar baz!</span>
+<span id="cb348-61"><a href="#cb348-61" aria-hidden="true"></a></span>
+<span id="cb348-62"><a href="#cb348-62" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb348-63"><a href="#cb348-63" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb349"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb349-1"><a href="#cb349-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p><em>(The beginning of a document)</em></p>
@@ -4173,48 +4222,48 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererInterblockSeparator</code> macro represents a separator between two markdown block elements. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-17">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb347"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb347-1"><a href="#cb347-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb347-2"><a href="#cb347-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb347-3"><a href="#cb347-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb347-4"><a href="#cb347-4" aria-hidden="true"></a> {<span class="fu">\it</span>(The end of a block)}<span class="co">%</span></span>
-<span id="cb347-5"><a href="#cb347-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb347-6"><a href="#cb347-6" aria-hidden="true"></a>}</span>
-<span id="cb347-7"><a href="#cb347-7" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb347-8"><a href="#cb347-8" aria-hidden="true"></a>Hello *world*!</span>
-<span id="cb347-9"><a href="#cb347-9" aria-hidden="true"></a></span>
-<span id="cb347-10"><a href="#cb347-10" aria-hidden="true"></a>_Foo_ bar!</span>
-<span id="cb347-11"><a href="#cb347-11" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb347-12"><a href="#cb347-12" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb350"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb350-1"><a href="#cb350-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb350-2"><a href="#cb350-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb350-3"><a href="#cb350-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb350-4"><a href="#cb350-4" aria-hidden="true"></a> {<span class="fu">\it</span>(The end of a block)}<span class="co">%</span></span>
+<span id="cb350-5"><a href="#cb350-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb350-6"><a href="#cb350-6" aria-hidden="true"></a>}</span>
+<span id="cb350-7"><a href="#cb350-7" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb350-8"><a href="#cb350-8" aria-hidden="true"></a>Hello *world*!</span>
+<span id="cb350-9"><a href="#cb350-9" aria-hidden="true"></a></span>
+<span id="cb350-10"><a href="#cb350-10" aria-hidden="true"></a>_Foo_ bar!</span>
+<span id="cb350-11"><a href="#cb350-11" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb350-12"><a href="#cb350-12" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb348"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb348-1"><a href="#cb348-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb351"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb351-1"><a href="#cb351-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Hello <em>world</em>!</p>
<p><em>(The end of a block)</em></p>
<p><em>Foo</em> bar!</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-37"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-38"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb349"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb349-1"><a href="#cb349-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb349-2"><a href="#cb349-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb349-3"><a href="#cb349-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb349-4"><a href="#cb349-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb349-5"><a href="#cb349-5" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
-<span id="cb349-6"><a href="#cb349-6" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb349-7"><a href="#cb349-7" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span>
-<span id="cb349-8"><a href="#cb349-8" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb349-9"><a href="#cb349-9" aria-hidden="true"></a> },</span>
-<span id="cb349-10"><a href="#cb349-10" aria-hidden="true"></a> },</span>
-<span id="cb349-11"><a href="#cb349-11" aria-hidden="true"></a>}</span>
-<span id="cb349-12"><a href="#cb349-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb349-13"><a href="#cb349-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb349-14"><a href="#cb349-14" aria-hidden="true"></a>Hello *world*!</span>
-<span id="cb349-15"><a href="#cb349-15" aria-hidden="true"></a></span>
-<span id="cb349-16"><a href="#cb349-16" aria-hidden="true"></a>_Foo_ bar!</span>
-<span id="cb349-17"><a href="#cb349-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb349-18"><a href="#cb349-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb350"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb350-1"><a href="#cb350-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb352"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb352-1"><a href="#cb352-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb352-2"><a href="#cb352-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb352-3"><a href="#cb352-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb352-4"><a href="#cb352-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb352-5"><a href="#cb352-5" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
+<span id="cb352-6"><a href="#cb352-6" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb352-7"><a href="#cb352-7" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span>
+<span id="cb352-8"><a href="#cb352-8" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb352-9"><a href="#cb352-9" aria-hidden="true"></a> },</span>
+<span id="cb352-10"><a href="#cb352-10" aria-hidden="true"></a> },</span>
+<span id="cb352-11"><a href="#cb352-11" aria-hidden="true"></a>}</span>
+<span id="cb352-12"><a href="#cb352-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb352-13"><a href="#cb352-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb352-14"><a href="#cb352-14" aria-hidden="true"></a>Hello *world*!</span>
+<span id="cb352-15"><a href="#cb352-15" aria-hidden="true"></a></span>
+<span id="cb352-16"><a href="#cb352-16" aria-hidden="true"></a>_Foo_ bar!</span>
+<span id="cb352-17"><a href="#cb352-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb352-18"><a href="#cb352-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb353"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb353-1"><a href="#cb353-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Hello <em>world</em>!</p>
@@ -4223,21 +4272,21 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-29">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb351"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb351-1"><a href="#cb351-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb351-2"><a href="#cb351-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb351-3"><a href="#cb351-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb351-4"><a href="#cb351-4" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span>
-<span id="cb351-5"><a href="#cb351-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb351-6"><a href="#cb351-6" aria-hidden="true"></a>}</span>
-<span id="cb351-7"><a href="#cb351-7" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb351-8"><a href="#cb351-8" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb351-9"><a href="#cb351-9" aria-hidden="true"></a>Hello *world*!</span>
-<span id="cb351-10"><a href="#cb351-10" aria-hidden="true"></a></span>
-<span id="cb351-11"><a href="#cb351-11" aria-hidden="true"></a>_Foo_ bar!</span>
-<span id="cb351-12"><a href="#cb351-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb351-13"><a href="#cb351-13" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb354"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb354-1"><a href="#cb354-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb354-2"><a href="#cb354-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb354-3"><a href="#cb354-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb354-4"><a href="#cb354-4" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span>
+<span id="cb354-5"><a href="#cb354-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb354-6"><a href="#cb354-6" aria-hidden="true"></a>}</span>
+<span id="cb354-7"><a href="#cb354-7" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb354-8"><a href="#cb354-8" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb354-9"><a href="#cb354-9" aria-hidden="true"></a>Hello *world*!</span>
+<span id="cb354-10"><a href="#cb354-10" aria-hidden="true"></a></span>
+<span id="cb354-11"><a href="#cb354-11" aria-hidden="true"></a>_Foo_ bar!</span>
+<span id="cb354-12"><a href="#cb354-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb354-13"><a href="#cb354-13" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb352"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb352-1"><a href="#cb352-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb355"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb355-1"><a href="#cb355-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Hello <em>world</em>!</p>
@@ -4248,44 +4297,44 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererLineBreak</code> macro represents a forced line break. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-18">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb353"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb353-1"><a href="#cb353-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb353-2"><a href="#cb353-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLineBreak</span>{<span class="co">%</span></span>
-<span id="cb353-3"><a href="#cb353-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb353-4"><a href="#cb353-4" aria-hidden="true"></a> {<span class="fu">\it</span>(A forced linebreak)}<span class="co">%</span></span>
-<span id="cb353-5"><a href="#cb353-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb353-6"><a href="#cb353-6" aria-hidden="true"></a>}</span>
-<span id="cb353-7"><a href="#cb353-7" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb353-8"><a href="#cb353-8" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb356"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb356-1"><a href="#cb356-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb356-2"><a href="#cb356-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLineBreak</span>{<span class="co">%</span></span>
+<span id="cb356-3"><a href="#cb356-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb356-4"><a href="#cb356-4" aria-hidden="true"></a> {<span class="fu">\it</span>(A forced linebreak)}<span class="co">%</span></span>
+<span id="cb356-5"><a href="#cb356-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb356-6"><a href="#cb356-6" aria-hidden="true"></a>}</span>
+<span id="cb356-7"><a href="#cb356-7" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb356-8"><a href="#cb356-8" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Using a text editor, create a text document named <code>example.md</code> with the following content. Note the two spaces at the end of the first line, which specify a hard linebreak. Due to the limitations of the <span class="tex">T<sub>e</sub>X</span> input processor, hard linebreaks would be ignored if we typed them directly into the <code>document.tex</code> document.</p>
<pre><code>Hello world! <br/>_Foo_ bar!</code></pre>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb354"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb354-1"><a href="#cb354-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb357"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb357-1"><a href="#cb357-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Hello <em>world</em>!</p>
<p><em>(A forced linebreak)</em></p>
<p><em>Foo</em> bar!</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-38"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-39"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb355"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb355-1"><a href="#cb355-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb355-2"><a href="#cb355-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb355-3"><a href="#cb355-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb355-4"><a href="#cb355-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb355-5"><a href="#cb355-5" aria-hidden="true"></a> lineBreak = {<span class="co">%</span></span>
-<span id="cb355-6"><a href="#cb355-6" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb355-7"><a href="#cb355-7" aria-hidden="true"></a> <span class="fu">\emph</span>{(A forced linebreak)}<span class="co">%</span></span>
-<span id="cb355-8"><a href="#cb355-8" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb355-9"><a href="#cb355-9" aria-hidden="true"></a> },</span>
-<span id="cb355-10"><a href="#cb355-10" aria-hidden="true"></a> },</span>
-<span id="cb355-11"><a href="#cb355-11" aria-hidden="true"></a>}</span>
-<span id="cb355-12"><a href="#cb355-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb355-13"><a href="#cb355-13" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb355-14"><a href="#cb355-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb358"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb358-1"><a href="#cb358-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb358-2"><a href="#cb358-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb358-3"><a href="#cb358-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb358-4"><a href="#cb358-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb358-5"><a href="#cb358-5" aria-hidden="true"></a> lineBreak = {<span class="co">%</span></span>
+<span id="cb358-6"><a href="#cb358-6" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb358-7"><a href="#cb358-7" aria-hidden="true"></a> <span class="fu">\emph</span>{(A forced linebreak)}<span class="co">%</span></span>
+<span id="cb358-8"><a href="#cb358-8" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb358-9"><a href="#cb358-9" aria-hidden="true"></a> },</span>
+<span id="cb358-10"><a href="#cb358-10" aria-hidden="true"></a> },</span>
+<span id="cb358-11"><a href="#cb358-11" aria-hidden="true"></a>}</span>
+<span id="cb358-12"><a href="#cb358-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb358-13"><a href="#cb358-13" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb358-14"><a href="#cb358-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Using a text editor, create a text document named <code>example.md</code> with the following content. Note the two spaces at the end of the first line, which specify a hard linebreak. Due to the limitations of the <span class="tex">T<sub>e</sub>X</span> input processor, hard linebreaks would be ignored if we typed them directly into the <code>document.tex</code> document.</p>
<pre><code>Hello world! <br/>_Foo_ bar!</code></pre>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb356"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb356-1"><a href="#cb356-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb359"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb359-1"><a href="#cb359-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Hello <em>world</em>!</p>
@@ -4294,19 +4343,19 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-30">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb357"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb357-1"><a href="#cb357-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb357-2"><a href="#cb357-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLineBreak</span>{<span class="co">%</span></span>
-<span id="cb357-3"><a href="#cb357-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb357-4"><a href="#cb357-4" aria-hidden="true"></a> <span class="fu">\emph</span>{(A forced linebreak)}<span class="co">%</span></span>
-<span id="cb357-5"><a href="#cb357-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb357-6"><a href="#cb357-6" aria-hidden="true"></a>}</span>
-<span id="cb357-7"><a href="#cb357-7" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb357-8"><a href="#cb357-8" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
-<span id="cb357-9"><a href="#cb357-9" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb360"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb360-2"><a href="#cb360-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLineBreak</span>{<span class="co">%</span></span>
+<span id="cb360-3"><a href="#cb360-3" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb360-4"><a href="#cb360-4" aria-hidden="true"></a> <span class="fu">\emph</span>{(A forced linebreak)}<span class="co">%</span></span>
+<span id="cb360-5"><a href="#cb360-5" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb360-6"><a href="#cb360-6" aria-hidden="true"></a>}</span>
+<span id="cb360-7"><a href="#cb360-7" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb360-8"><a href="#cb360-8" aria-hidden="true"></a><span class="fu">\markdownInput</span>{example.md}</span>
+<span id="cb360-9"><a href="#cb360-9" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Using a text editor, create a text document named <code>example.md</code> with the following content. Note the two spaces at the end of the first line, which specify a hard linebreak. Due to the limitations of the <span class="tex">T<sub>e</sub>X</span> input processor, hard linebreaks would be ignored if we typed them directly into the <code>document.tex</code> document.</p>
<pre><code>Hello world! <br/>_Foo_ bar!</code></pre>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb358"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb358-1"><a href="#cb358-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb361"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb361-1"><a href="#cb361-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Hello <em>world</em>!</p>
@@ -4317,51 +4366,51 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererEllipsis</code> macro replaces any occurance of ASCII ellipses in the input text. This macro will only be produced, when the <strong><code>smartEllipses</code></strong> option is enabled. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-19">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb359"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb359-1"><a href="#cb359-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb359-2"><a href="#cb359-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
-<span id="cb359-3"><a href="#cb359-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{{<span class="fu">\it</span> SHAZAM}!}</span>
-<span id="cb359-4"><a href="#cb359-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb359-5"><a href="#cb359-5" aria-hidden="true"></a>The secret word is ...</span>
-<span id="cb359-6"><a href="#cb359-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb359-7"><a href="#cb359-7" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb362"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb362-1"><a href="#cb362-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb362-2"><a href="#cb362-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
+<span id="cb362-3"><a href="#cb362-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{{<span class="fu">\it</span> SHAZAM}!}</span>
+<span id="cb362-4"><a href="#cb362-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb362-5"><a href="#cb362-5" aria-hidden="true"></a>The secret word is ...</span>
+<span id="cb362-6"><a href="#cb362-6" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb362-7"><a href="#cb362-7" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb360"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb363"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb363-1"><a href="#cb363-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>The secret word is <em>SHAZAM</em>!</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-39"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-40"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb361"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb361-1"><a href="#cb361-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb361-2"><a href="#cb361-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span>
-<span id="cb361-3"><a href="#cb361-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb361-4"><a href="#cb361-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb361-5"><a href="#cb361-5" aria-hidden="true"></a> ellipsis = <span class="fu">\emph</span>{SHAZAM}!,</span>
-<span id="cb361-6"><a href="#cb361-6" aria-hidden="true"></a> },</span>
-<span id="cb361-7"><a href="#cb361-7" aria-hidden="true"></a>}</span>
-<span id="cb361-8"><a href="#cb361-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb361-9"><a href="#cb361-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb361-10"><a href="#cb361-10" aria-hidden="true"></a>The secret word is ...</span>
-<span id="cb361-11"><a href="#cb361-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb361-12"><a href="#cb361-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb364"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb364-1"><a href="#cb364-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb364-2"><a href="#cb364-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span>
+<span id="cb364-3"><a href="#cb364-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb364-4"><a href="#cb364-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb364-5"><a href="#cb364-5" aria-hidden="true"></a> ellipsis = <span class="fu">\emph</span>{SHAZAM}!,</span>
+<span id="cb364-6"><a href="#cb364-6" aria-hidden="true"></a> },</span>
+<span id="cb364-7"><a href="#cb364-7" aria-hidden="true"></a>}</span>
+<span id="cb364-8"><a href="#cb364-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb364-9"><a href="#cb364-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb364-10"><a href="#cb364-10" aria-hidden="true"></a>The secret word is ...</span>
+<span id="cb364-11"><a href="#cb364-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb364-12"><a href="#cb364-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb362"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb362-1"><a href="#cb362-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb365"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb365-1"><a href="#cb365-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>The secret word is <em>SHAZAM</em>!</p>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-31">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb363"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb363-1"><a href="#cb363-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb363-2"><a href="#cb363-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
-<span id="cb363-3"><a href="#cb363-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{<span class="fu">\emph</span>{SHAZAM}!}</span>
-<span id="cb363-4"><a href="#cb363-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb363-5"><a href="#cb363-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb363-6"><a href="#cb363-6" aria-hidden="true"></a>The secret word is ...</span>
-<span id="cb363-7"><a href="#cb363-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb363-8"><a href="#cb363-8" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb366"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb366-1"><a href="#cb366-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb366-2"><a href="#cb366-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span>
+<span id="cb366-3"><a href="#cb366-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererEllipsis</span>{<span class="fu">\emph</span>{SHAZAM}!}</span>
+<span id="cb366-4"><a href="#cb366-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb366-5"><a href="#cb366-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb366-6"><a href="#cb366-6" aria-hidden="true"></a>The secret word is ...</span>
+<span id="cb366-7"><a href="#cb366-7" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb366-8"><a href="#cb366-8" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb364"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb364-1"><a href="#cb364-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb367"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb367-1"><a href="#cb367-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Hello <em>world</em>!</p>
@@ -4370,45 +4419,45 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h4 data-number="2.3.1.6" id="non-breaking-space-renderer"><span class="header-section-number">2.3.1.6</span> Non-Breaking Space Renderer</h4>
<p>The <code>\markdownRendererNbsp</code> macro represents a non-breaking space.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-40"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-41"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.bib</code> with the following content:</p>
-<div class="sourceCode" id="cb365"><pre class="sourceCode bib"><code class="sourceCode bibtex"><span id="cb365-1"><a href="#cb365-1" aria-hidden="true"></a><span class="va">@book</span>{<span class="ot">knuth:tex</span>,</span>
-<span id="cb365-2"><a href="#cb365-2" aria-hidden="true"></a> <span class="dt">author</span> = &quot;<span class="st">Knuth, Donald Ervin</span>&quot;,</span>
-<span id="cb365-3"><a href="#cb365-3" aria-hidden="true"></a> <span class="dt">title</span> = &quot;<span class="st">The </span><span class="ch">\TeX</span><span class="st"> book, volume A of Computers and typesetting</span>&quot;,</span>
-<span id="cb365-4"><a href="#cb365-4" aria-hidden="true"></a> <span class="dt">publisher</span> = &quot;<span class="st">Addison-Wesley</span>&quot;,</span>
-<span id="cb365-5"><a href="#cb365-5" aria-hidden="true"></a> <span class="dt">year</span> = &quot;<span class="st">1984</span>&quot;</span>
-<span id="cb365-6"><a href="#cb365-6" aria-hidden="true"></a>}</span></code></pre></div>
-<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb366"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb366-1"><a href="#cb366-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb366-2"><a href="#cb366-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[</span>
-<span id="cb366-3"><a href="#cb366-3" aria-hidden="true"></a> citations,</span>
-<span id="cb366-4"><a href="#cb366-4" aria-hidden="true"></a> citationNbsps,</span>
-<span id="cb366-5"><a href="#cb366-5" aria-hidden="true"></a>]{<span class="ex">markdown</span>}</span>
-<span id="cb366-6"><a href="#cb366-6" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb366-7"><a href="#cb366-7" aria-hidden="true"></a> renderers = {</span>
-<span id="cb366-8"><a href="#cb366-8" aria-hidden="true"></a> nbsp = {<span class="ss">$</span><span class="sc">\cdot</span><span class="ss">$</span>},</span>
-<span id="cb366-9"><a href="#cb366-9" aria-hidden="true"></a> },</span>
-<span id="cb366-10"><a href="#cb366-10" aria-hidden="true"></a>}</span>
-<span id="cb366-11"><a href="#cb366-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb366-12"><a href="#cb366-12" aria-hidden="true"></a></span>
-<span id="cb366-13"><a href="#cb366-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb366-14"><a href="#cb366-14" aria-hidden="true"></a>The TeXbook [@knuth:tex, p. 123 and 130] is good.</span>
-<span id="cb366-15"><a href="#cb366-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb366-16"><a href="#cb366-16" aria-hidden="true"></a></span>
-<span id="cb366-17"><a href="#cb366-17" aria-hidden="true"></a><span class="bu">\bibliographystyle</span>{<span class="ex">plain</span>}</span>
-<span id="cb366-18"><a href="#cb366-18" aria-hidden="true"></a><span class="bu">\bibliography</span>{<span class="ex">document.bib</span>}</span>
-<span id="cb366-19"><a href="#cb366-19" aria-hidden="true"></a></span>
-<span id="cb366-20"><a href="#cb366-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<div class="sourceCode" id="cb368"><pre class="sourceCode bib"><code class="sourceCode bibtex"><span id="cb368-1"><a href="#cb368-1" aria-hidden="true"></a><span class="va">@book</span>{<span class="ot">knuth:tex</span>,</span>
+<span id="cb368-2"><a href="#cb368-2" aria-hidden="true"></a> <span class="dt">author</span> = &quot;<span class="st">Knuth, Donald Ervin</span>&quot;,</span>
+<span id="cb368-3"><a href="#cb368-3" aria-hidden="true"></a> <span class="dt">title</span> = &quot;<span class="st">The </span><span class="ch">\TeX</span><span class="st"> book, volume A of Computers and typesetting</span>&quot;,</span>
+<span id="cb368-4"><a href="#cb368-4" aria-hidden="true"></a> <span class="dt">publisher</span> = &quot;<span class="st">Addison-Wesley</span>&quot;,</span>
+<span id="cb368-5"><a href="#cb368-5" aria-hidden="true"></a> <span class="dt">year</span> = &quot;<span class="st">1984</span>&quot;</span>
+<span id="cb368-6"><a href="#cb368-6" aria-hidden="true"></a>}</span></code></pre></div>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb369"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb369-1"><a href="#cb369-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb369-2"><a href="#cb369-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[</span>
+<span id="cb369-3"><a href="#cb369-3" aria-hidden="true"></a> citations,</span>
+<span id="cb369-4"><a href="#cb369-4" aria-hidden="true"></a> citationNbsps,</span>
+<span id="cb369-5"><a href="#cb369-5" aria-hidden="true"></a>]{<span class="ex">markdown</span>}</span>
+<span id="cb369-6"><a href="#cb369-6" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb369-7"><a href="#cb369-7" aria-hidden="true"></a> renderers = {</span>
+<span id="cb369-8"><a href="#cb369-8" aria-hidden="true"></a> nbsp = {<span class="ss">$</span><span class="sc">\cdot</span><span class="ss">$</span>},</span>
+<span id="cb369-9"><a href="#cb369-9" aria-hidden="true"></a> },</span>
+<span id="cb369-10"><a href="#cb369-10" aria-hidden="true"></a>}</span>
+<span id="cb369-11"><a href="#cb369-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb369-12"><a href="#cb369-12" aria-hidden="true"></a></span>
+<span id="cb369-13"><a href="#cb369-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb369-14"><a href="#cb369-14" aria-hidden="true"></a>The TeXbook [@knuth:tex, p. 123 and 130] is good.</span>
+<span id="cb369-15"><a href="#cb369-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb369-16"><a href="#cb369-16" aria-hidden="true"></a></span>
+<span id="cb369-17"><a href="#cb369-17" aria-hidden="true"></a><span class="bu">\bibliographystyle</span>{<span class="ex">plain</span>}</span>
+<span id="cb369-18"><a href="#cb369-18" aria-hidden="true"></a><span class="bu">\bibliography</span>{<span class="ex">document.bib</span>}</span>
+<span id="cb369-19"><a href="#cb369-19" aria-hidden="true"></a></span>
+<span id="cb369-20"><a href="#cb369-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX and BibTeX from the terminal:</p>
-<div class="sourceCode" id="cb367"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb367-1"><a href="#cb367-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
-<span id="cb367-2"><a href="#cb367-2" aria-hidden="true"></a><span class="ex">bibtex</span> document.aux</span>
-<span id="cb367-3"><a href="#cb367-3" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
-<span id="cb367-4"><a href="#cb367-4" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb370"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb370-1"><a href="#cb370-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
+<span id="cb370-2"><a href="#cb370-2" aria-hidden="true"></a><span class="ex">bibtex</span> document.aux</span>
+<span id="cb370-3"><a href="#cb370-3" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
+<span id="cb370-4"><a href="#cb370-4" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>The TeXbook [1, p.·123·and·130] is good.</p>
<h3 id="references-2">References</h3>
-<p>[1] Donald Ervin Knuth. <em>The TeXbook, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p>
+<p><a href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">1</a> Donald Ervin Knuth. <em>The TeXbook, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p>
</blockquote>
<h4 data-number="2.3.1.7" id="special-character-renderers"><span class="header-section-number">2.3.1.7</span> Special Character Renderers</h4>
<p>The following macros replace any special plain <span class="tex">T<sub>e</sub>X</span> characters, including the active pipe character (<code>|</code>) of Con<span class="tex">T<sub>e</sub>X</span>t, in the input text:</p>
@@ -4427,49 +4476,49 @@ Thomas,Edison,1847</code></pre>
</ul>
<h5 class="unnumbered" data-number="" id="plain-tex-example-20">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content. We will make the tilde behave as if it were written in <span class="tex">T<sub>e</sub>X</span>, where it represents a non-breaking space.</p>
-<div class="sourceCode" id="cb368"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb368-1"><a href="#cb368-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb368-2"><a href="#cb368-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span>
-<span id="cb368-3"><a href="#cb368-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb368-4"><a href="#cb368-4" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
-<span id="cb368-5"><a href="#cb368-5" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb368-6"><a href="#cb368-6" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb369"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb369-1"><a href="#cb369-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb371"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb371-1"><a href="#cb371-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb371-2"><a href="#cb371-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span>
+<span id="cb371-3"><a href="#cb371-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb371-4"><a href="#cb371-4" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
+<span id="cb371-5"><a href="#cb371-5" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb371-6"><a href="#cb371-6" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb372"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb372-1"><a href="#cb372-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p>
<blockquote>
<p>Bartel·Leendert van·der·Waerden</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-41"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-42"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content. We will make the tilde behave as if it were written in <span class="tex">T<sub>e</sub>X</span>, where it represents a non-breaking space.</p>
-<div class="sourceCode" id="cb370"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb370-1"><a href="#cb370-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb370-2"><a href="#cb370-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb370-3"><a href="#cb370-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb370-4"><a href="#cb370-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb370-5"><a href="#cb370-5" aria-hidden="true"></a> tilde = ~,</span>
-<span id="cb370-6"><a href="#cb370-6" aria-hidden="true"></a> },</span>
-<span id="cb370-7"><a href="#cb370-7" aria-hidden="true"></a>}</span>
-<span id="cb370-8"><a href="#cb370-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb370-9"><a href="#cb370-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb370-10"><a href="#cb370-10" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
-<span id="cb370-11"><a href="#cb370-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb370-12"><a href="#cb370-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb371"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb371-1"><a href="#cb371-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb373"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb373-1"><a href="#cb373-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb373-2"><a href="#cb373-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb373-3"><a href="#cb373-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb373-4"><a href="#cb373-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb373-5"><a href="#cb373-5" aria-hidden="true"></a> tilde = ~,</span>
+<span id="cb373-6"><a href="#cb373-6" aria-hidden="true"></a> },</span>
+<span id="cb373-7"><a href="#cb373-7" aria-hidden="true"></a>}</span>
+<span id="cb373-8"><a href="#cb373-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb373-9"><a href="#cb373-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb373-10"><a href="#cb373-10" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
+<span id="cb373-11"><a href="#cb373-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb373-12"><a href="#cb373-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb374"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb374-1"><a href="#cb374-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p>
<blockquote>
<p>Bartel·Leendert van·der·Waerden</p>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-32">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content. We will make the tilde behave as if it were written in <span class="tex">T<sub>e</sub>X</span>, where it represents a non-breaking space.</p>
-<div class="sourceCode" id="cb372"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb372-1"><a href="#cb372-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb372-2"><a href="#cb372-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span>
-<span id="cb372-3"><a href="#cb372-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb372-4"><a href="#cb372-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb372-5"><a href="#cb372-5" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
-<span id="cb372-6"><a href="#cb372-6" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb372-7"><a href="#cb372-7" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb373"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb373-1"><a href="#cb373-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb375"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb375-1"><a href="#cb375-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb375-2"><a href="#cb375-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span>
+<span id="cb375-3"><a href="#cb375-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb375-4"><a href="#cb375-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb375-5"><a href="#cb375-5" aria-hidden="true"></a>Bartel~Leendert van~der~Waerden</span>
+<span id="cb375-6"><a href="#cb375-6" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb375-7"><a href="#cb375-7" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb376"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb376-1"><a href="#cb376-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p>
<blockquote>
<p>Bartel·Leendert van·der·Waerden</p>
@@ -4478,55 +4527,55 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererCodeSpan</code> macro represents inlined code span in the input text. It receives a single argument that corresponds to the inlined code span.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-21">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb374"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb374-1"><a href="#cb374-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb374-2"><a href="#cb374-2" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
-<span id="cb374-3"><a href="#cb374-3" aria-hidden="true"></a></span>
-<span id="cb374-4"><a href="#cb374-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span>
-<span id="cb374-5"><a href="#cb374-5" aria-hidden="true"></a></span>
-<span id="cb374-6"><a href="#cb374-6" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb374-7"><a href="#cb374-7" aria-hidden="true"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span>
-<span id="cb374-8"><a href="#cb374-8" aria-hidden="true"></a></span>
-<span id="cb374-9"><a href="#cb374-9" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
-<span id="cb374-10"><a href="#cb374-10" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb374-11"><a href="#cb374-11" aria-hidden="true"></a></span>
-<span id="cb374-12"><a href="#cb374-12" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
-<span id="cb374-13"><a href="#cb374-13" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb374-14"><a href="#cb374-14" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
-<span id="cb374-15"><a href="#cb374-15" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb374-16"><a href="#cb374-16" aria-hidden="true"></a></span>
-<span id="cb374-17"><a href="#cb374-17" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb375"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb375-1"><a href="#cb375-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb377"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb377-1"><a href="#cb377-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb377-2"><a href="#cb377-2" aria-hidden="true"></a><span class="fu">\input</span> lmfonts</span>
+<span id="cb377-3"><a href="#cb377-3" aria-hidden="true"></a></span>
+<span id="cb377-4"><a href="#cb377-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span>
+<span id="cb377-5"><a href="#cb377-5" aria-hidden="true"></a></span>
+<span id="cb377-6"><a href="#cb377-6" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb377-7"><a href="#cb377-7" aria-hidden="true"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span>
+<span id="cb377-8"><a href="#cb377-8" aria-hidden="true"></a></span>
+<span id="cb377-9"><a href="#cb377-9" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
+<span id="cb377-10"><a href="#cb377-10" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb377-11"><a href="#cb377-11" aria-hidden="true"></a></span>
+<span id="cb377-12"><a href="#cb377-12" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
+<span id="cb377-13"><a href="#cb377-13" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb377-14"><a href="#cb377-14" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
+<span id="cb377-15"><a href="#cb377-15" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb377-16"><a href="#cb377-16" aria-hidden="true"></a></span>
+<span id="cb377-17"><a href="#cb377-17" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb378"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb378-1"><a href="#cb378-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>$\sqrt{-1}$ *equals* $i$.</p>
<p>$\sqrt{-1}$ <em>equals</em> $i$.</p>
<p>√-̅1̅ <em>equals</em> <span class="math inline"><em>i</em></span>.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-42"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-43"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb376"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb376-1"><a href="#cb376-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb376-2"><a href="#cb376-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span>
-<span id="cb376-3"><a href="#cb376-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb376-4"><a href="#cb376-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb376-5"><a href="#cb376-5" aria-hidden="true"></a> codeSpan = {#1},</span>
-<span id="cb376-6"><a href="#cb376-6" aria-hidden="true"></a> },</span>
-<span id="cb376-7"><a href="#cb376-7" aria-hidden="true"></a>}</span>
-<span id="cb376-8"><a href="#cb376-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb376-9"><a href="#cb376-9" aria-hidden="true"></a></span>
-<span id="cb376-10"><a href="#cb376-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb376-11"><a href="#cb376-11" aria-hidden="true"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span>
-<span id="cb376-12"><a href="#cb376-12" aria-hidden="true"></a></span>
-<span id="cb376-13"><a href="#cb376-13" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
-<span id="cb376-14"><a href="#cb376-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb376-15"><a href="#cb376-15" aria-hidden="true"></a></span>
-<span id="cb376-16"><a href="#cb376-16" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{hybrid}</span>
-<span id="cb376-17"><a href="#cb376-17" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
-<span id="cb376-18"><a href="#cb376-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb376-19"><a href="#cb376-19" aria-hidden="true"></a></span>
-<span id="cb376-20"><a href="#cb376-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb377"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb377-1"><a href="#cb377-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb379"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb379-1"><a href="#cb379-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb379-2"><a href="#cb379-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span>
+<span id="cb379-3"><a href="#cb379-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb379-4"><a href="#cb379-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb379-5"><a href="#cb379-5" aria-hidden="true"></a> codeSpan = {#1},</span>
+<span id="cb379-6"><a href="#cb379-6" aria-hidden="true"></a> },</span>
+<span id="cb379-7"><a href="#cb379-7" aria-hidden="true"></a>}</span>
+<span id="cb379-8"><a href="#cb379-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb379-9"><a href="#cb379-9" aria-hidden="true"></a></span>
+<span id="cb379-10"><a href="#cb379-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb379-11"><a href="#cb379-11" aria-hidden="true"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span>
+<span id="cb379-12"><a href="#cb379-12" aria-hidden="true"></a></span>
+<span id="cb379-13"><a href="#cb379-13" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
+<span id="cb379-14"><a href="#cb379-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb379-15"><a href="#cb379-15" aria-hidden="true"></a></span>
+<span id="cb379-16"><a href="#cb379-16" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{hybrid}</span>
+<span id="cb379-17"><a href="#cb379-17" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
+<span id="cb379-18"><a href="#cb379-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb379-19"><a href="#cb379-19" aria-hidden="true"></a></span>
+<span id="cb379-20"><a href="#cb379-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb380"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb380-1"><a href="#cb380-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>$\sqrt{-1}$ *equals* $i$.</p>
@@ -4535,24 +4584,24 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-33">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb378"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb378-1"><a href="#cb378-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb378-2"><a href="#cb378-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span>
-<span id="cb378-3"><a href="#cb378-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb378-4"><a href="#cb378-4" aria-hidden="true"></a></span>
-<span id="cb378-5"><a href="#cb378-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb378-6"><a href="#cb378-6" aria-hidden="true"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span>
-<span id="cb378-7"><a href="#cb378-7" aria-hidden="true"></a></span>
-<span id="cb378-8"><a href="#cb378-8" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
-<span id="cb378-9"><a href="#cb378-9" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb378-10"><a href="#cb378-10" aria-hidden="true"></a></span>
-<span id="cb378-11"><a href="#cb378-11" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
-<span id="cb378-12"><a href="#cb378-12" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb378-13"><a href="#cb378-13" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
-<span id="cb378-14"><a href="#cb378-14" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb378-15"><a href="#cb378-15" aria-hidden="true"></a></span>
-<span id="cb378-16"><a href="#cb378-16" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb379"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb379-1"><a href="#cb379-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb381"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb381-1"><a href="#cb381-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb381-2"><a href="#cb381-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span>
+<span id="cb381-3"><a href="#cb381-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb381-4"><a href="#cb381-4" aria-hidden="true"></a></span>
+<span id="cb381-5"><a href="#cb381-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb381-6"><a href="#cb381-6" aria-hidden="true"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span>
+<span id="cb381-7"><a href="#cb381-7" aria-hidden="true"></a></span>
+<span id="cb381-8"><a href="#cb381-8" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
+<span id="cb381-9"><a href="#cb381-9" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb381-10"><a href="#cb381-10" aria-hidden="true"></a></span>
+<span id="cb381-11"><a href="#cb381-11" aria-hidden="true"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span>
+<span id="cb381-12"><a href="#cb381-12" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb381-13"><a href="#cb381-13" aria-hidden="true"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span>
+<span id="cb381-14"><a href="#cb381-14" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb381-15"><a href="#cb381-15" aria-hidden="true"></a></span>
+<span id="cb381-16"><a href="#cb381-16" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb382"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb382-1"><a href="#cb382-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>$\sqrt{-1}$ *equals* $i$.</p>
@@ -4563,175 +4612,175 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererLink</code> macro represents a hyperlink. It receives four arguments: the label, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the link.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-22">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb380"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb380-1"><a href="#cb380-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb380-2"><a href="#cb380-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb380-3"><a href="#cb380-3" aria-hidden="true"></a> #1 {<span class="fu">\tt</span>#2} titled {<span class="fu">\it</span>#4}<span class="co">%</span></span>
-<span id="cb380-4"><a href="#cb380-4" aria-hidden="true"></a>}</span>
-<span id="cb380-5"><a href="#cb380-5" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb380-6"><a href="#cb380-6" aria-hidden="true"></a>Please visit [the link][ctan].</span>
-<span id="cb380-7"><a href="#cb380-7" aria-hidden="true"></a></span>
-<span id="cb380-8"><a href="#cb380-8" aria-hidden="true"></a> [ctan]: https://ctan.org/</span>
-<span id="cb380-9"><a href="#cb380-9" aria-hidden="true"></a> (the Comprehensive TeX Archive Network)</span>
-<span id="cb380-10"><a href="#cb380-10" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb380-11"><a href="#cb380-11" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb383"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb383-1"><a href="#cb383-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb383-2"><a href="#cb383-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb383-3"><a href="#cb383-3" aria-hidden="true"></a> #1 {<span class="fu">\tt</span>#2} titled {<span class="fu">\it</span>#4}<span class="co">%</span></span>
+<span id="cb383-4"><a href="#cb383-4" aria-hidden="true"></a>}</span>
+<span id="cb383-5"><a href="#cb383-5" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb383-6"><a href="#cb383-6" aria-hidden="true"></a>Please visit [the link][ctan].</span>
+<span id="cb383-7"><a href="#cb383-7" aria-hidden="true"></a></span>
+<span id="cb383-8"><a href="#cb383-8" aria-hidden="true"></a> [ctan]: https://ctan.org/</span>
+<span id="cb383-9"><a href="#cb383-9" aria-hidden="true"></a> (the Comprehensive TeX Archive Network)</span>
+<span id="cb383-10"><a href="#cb383-10" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb383-11"><a href="#cb383-11" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb381"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb381-1"><a href="#cb381-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb384"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb384-1"><a href="#cb384-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Please visit the link <a href="https://ctan.org/" class="uri">https://ctan.org/</a> titled <em>the Comprehensive TeX Archive Network</em>.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-43"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-44"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb382"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb382-1"><a href="#cb382-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb382-2"><a href="#cb382-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb382-3"><a href="#cb382-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb382-4"><a href="#cb382-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb382-5"><a href="#cb382-5" aria-hidden="true"></a> link = {<span class="co">%</span></span>
-<span id="cb382-6"><a href="#cb382-6" aria-hidden="true"></a> #1 <span class="fu">\texttt</span>{#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span>
-<span id="cb382-7"><a href="#cb382-7" aria-hidden="true"></a> },</span>
-<span id="cb382-8"><a href="#cb382-8" aria-hidden="true"></a> },</span>
-<span id="cb382-9"><a href="#cb382-9" aria-hidden="true"></a>}</span>
-<span id="cb382-10"><a href="#cb382-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb382-11"><a href="#cb382-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb382-12"><a href="#cb382-12" aria-hidden="true"></a>Please visit [the link][ctan].</span>
-<span id="cb382-13"><a href="#cb382-13" aria-hidden="true"></a></span>
-<span id="cb382-14"><a href="#cb382-14" aria-hidden="true"></a> [ctan]: https://ctan.org/</span>
-<span id="cb382-15"><a href="#cb382-15" aria-hidden="true"></a> (the Comprehensive TeX Archive Network)</span>
-<span id="cb382-16"><a href="#cb382-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb382-17"><a href="#cb382-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb383"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb383-1"><a href="#cb383-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb385"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb385-1"><a href="#cb385-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb385-2"><a href="#cb385-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb385-3"><a href="#cb385-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb385-4"><a href="#cb385-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb385-5"><a href="#cb385-5" aria-hidden="true"></a> link = {<span class="co">%</span></span>
+<span id="cb385-6"><a href="#cb385-6" aria-hidden="true"></a> #1 <span class="fu">\texttt</span>{#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span>
+<span id="cb385-7"><a href="#cb385-7" aria-hidden="true"></a> },</span>
+<span id="cb385-8"><a href="#cb385-8" aria-hidden="true"></a> },</span>
+<span id="cb385-9"><a href="#cb385-9" aria-hidden="true"></a>}</span>
+<span id="cb385-10"><a href="#cb385-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb385-11"><a href="#cb385-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb385-12"><a href="#cb385-12" aria-hidden="true"></a>Please visit [the link][ctan].</span>
+<span id="cb385-13"><a href="#cb385-13" aria-hidden="true"></a></span>
+<span id="cb385-14"><a href="#cb385-14" aria-hidden="true"></a> [ctan]: https://ctan.org/</span>
+<span id="cb385-15"><a href="#cb385-15" aria-hidden="true"></a> (the Comprehensive TeX Archive Network)</span>
+<span id="cb385-16"><a href="#cb385-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb385-17"><a href="#cb385-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb386"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb386-1"><a href="#cb386-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Please visit the link <a href="https://ctan.org/" class="uri">https://ctan.org/</a> titled <em>the Comprehensive TeX Archive Network</em>.</p>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-34">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb384"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb384-1"><a href="#cb384-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb384-2"><a href="#cb384-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb384-3"><a href="#cb384-3" aria-hidden="true"></a> #1 {<span class="fu">\tt</span>#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span>
-<span id="cb384-4"><a href="#cb384-4" aria-hidden="true"></a>}</span>
-<span id="cb384-5"><a href="#cb384-5" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb384-6"><a href="#cb384-6" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb384-7"><a href="#cb384-7" aria-hidden="true"></a>Please visit [the link][ctan].</span>
-<span id="cb384-8"><a href="#cb384-8" aria-hidden="true"></a></span>
-<span id="cb384-9"><a href="#cb384-9" aria-hidden="true"></a> [ctan]: https://ctan.org/</span>
-<span id="cb384-10"><a href="#cb384-10" aria-hidden="true"></a> (the Comprehensive TeX Archive Network)</span>
-<span id="cb384-11"><a href="#cb384-11" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb384-12"><a href="#cb384-12" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb387"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb387-1"><a href="#cb387-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb387-2"><a href="#cb387-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb387-3"><a href="#cb387-3" aria-hidden="true"></a> #1 {<span class="fu">\tt</span>#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span>
+<span id="cb387-4"><a href="#cb387-4" aria-hidden="true"></a>}</span>
+<span id="cb387-5"><a href="#cb387-5" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb387-6"><a href="#cb387-6" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb387-7"><a href="#cb387-7" aria-hidden="true"></a>Please visit [the link][ctan].</span>
+<span id="cb387-8"><a href="#cb387-8" aria-hidden="true"></a></span>
+<span id="cb387-9"><a href="#cb387-9" aria-hidden="true"></a> [ctan]: https://ctan.org/</span>
+<span id="cb387-10"><a href="#cb387-10" aria-hidden="true"></a> (the Comprehensive TeX Archive Network)</span>
+<span id="cb387-11"><a href="#cb387-11" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb387-12"><a href="#cb387-12" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb385"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb385-1"><a href="#cb385-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb388"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb388-1"><a href="#cb388-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Please visit the link <a href="https://ctan.org/" class="uri">https://ctan.org/</a> titled <em>the Comprehensive TeX Archive Network</em>.</p>
</blockquote>
<h4 data-number="2.3.1.10" id="image-renderer"><span class="header-section-number">2.3.1.10</span> Image Renderer</h4>
<p>The <code>\markdownRendererImage</code> macro represents an image. It receives four arguments: the label, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the link.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-44"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-45"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb386"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb386-1"><a href="#cb386-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb386-2"><a href="#cb386-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb386-3"><a href="#cb386-3" aria-hidden="true"></a><span class="fu">\begingroup</span></span>
-<span id="cb386-4"><a href="#cb386-4" aria-hidden="true"></a><span class="fu">\catcode</span>`<span class="fu">\@</span>=11</span>
-<span id="cb386-5"><a href="#cb386-5" aria-hidden="true"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span>
-<span id="cb386-6"><a href="#cb386-6" aria-hidden="true"></a><span class="fu">\catcode</span>`<span class="fu">\^</span>^A=14</span>
-<span id="cb386-7"><a href="#cb386-7" aria-hidden="true"></a><span class="fu">\global\def\markdownRendererImage</span>#1#2#3#4{^^A</span>
-<span id="cb386-8"><a href="#cb386-8" aria-hidden="true"></a> <span class="fu">\immediate\write</span>18{^^A</span></code></pre></div>
-<div class="sourceCode" id="cb387"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb387-1"><a href="#cb387-1" aria-hidden="true"></a> <span class="kw">if</span> <span class="bu">printf</span> <span class="st">&#39;%s&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="kw">|</span> <span class="fu">grep</span> -q ^http<span class="kw">;</span> <span class="kw">then</span></span>
-<span id="cb387-2"><a href="#cb387-2" aria-hidden="true"></a> <span class="va">OUTPUT=</span><span class="st">&quot;</span><span class="va">$(</span><span class="bu">printf</span> <span class="st">&#39;%s&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="kw">|</span> <span class="ex">md5sum</span> <span class="kw">|</span> <span class="fu">cut</span> -d<span class="st">&#39; &#39;</span> -f1<span class="va">)</span><span class="st">.^^A</span></span>
-<span id="cb387-3"><a href="#cb387-3" aria-hidden="true"></a><span class="st"> </span><span class="va">$(</span><span class="bu">printf</span> <span class="st">&#39;%s&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="kw">|</span> <span class="fu">sed</span> <span class="st">&#39;s/.*[.]//&#39;</span><span class="va">)</span><span class="st">&quot;</span>;</span>
-<span id="cb387-4"><a href="#cb387-4" aria-hidden="true"></a> <span class="kw">if</span> !<span class="bu"> [</span> <span class="ot">-e</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span><span class="bu"> ]</span>; <span class="kw">then</span></span>
-<span id="cb387-5"><a href="#cb387-5" aria-hidden="true"></a> <span class="fu">wget</span> -O <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span> <span class="st">&#39;#3&#39;</span> <span class="kw">||</span> <span class="fu">rm</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span><span class="kw">;</span></span>
-<span id="cb387-6"><a href="#cb387-6" aria-hidden="true"></a> <span class="ex">convert</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span> png:<span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span><span class="kw">;</span></span>
-<span id="cb387-7"><a href="#cb387-7" aria-hidden="true"></a> <span class="kw">fi</span>;</span>
-<span id="cb387-8"><a href="#cb387-8" aria-hidden="true"></a> <span class="bu">printf</span> <span class="st">&#39;%s%%&#39;</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span> <span class="op">&gt;</span> \jobname.fetched<span class="kw">;</span></span>
-<span id="cb387-9"><a href="#cb387-9" aria-hidden="true"></a> <span class="kw">else</span></span>
-<span id="cb387-10"><a href="#cb387-10" aria-hidden="true"></a> <span class="bu">printf</span> <span class="st">&#39;%s%%&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="op">&gt;</span> \jobname.fetched<span class="kw">;</span></span>
-<span id="cb387-11"><a href="#cb387-11" aria-hidden="true"></a> <span class="kw">fi</span>^^<span class="ex">A</span></span></code></pre></div>
-<div class="sourceCode" id="cb388"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb388-1"><a href="#cb388-1" aria-hidden="true"></a> }^^A</span>
-<span id="cb388-2"><a href="#cb388-2" aria-hidden="true"></a> {^^A</span>
-<span id="cb388-3"><a href="#cb388-3" aria-hidden="true"></a> <span class="fu">\everyeof</span>={<span class="fu">\noexpand</span>}^^A</span>
-<span id="cb388-4"><a href="#cb388-4" aria-hidden="true"></a> <span class="fu">\edef\filename</span>{<span class="fu">\_</span>_markdowninput&quot;<span class="fu">\jobname</span>.fetched&quot; }^^A</span>
-<span id="cb388-5"><a href="#cb388-5" aria-hidden="true"></a> <span class="bu">\includegraphics</span>[width=<span class="fu">\textwidth</span>]{<span class="fu">\filename</span>}^^A</span>
-<span id="cb388-6"><a href="#cb388-6" aria-hidden="true"></a> }^^A</span>
-<span id="cb388-7"><a href="#cb388-7" aria-hidden="true"></a>}</span>
-<span id="cb388-8"><a href="#cb388-8" aria-hidden="true"></a><span class="fu">\endgroup</span></span>
-<span id="cb388-9"><a href="#cb388-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb388-10"><a href="#cb388-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb388-11"><a href="#cb388-11" aria-hidden="true"></a>![TUGboat](https://tug.org/tugboat/noword.jpg)</span>
-<span id="cb388-12"><a href="#cb388-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb388-13"><a href="#cb388-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb389"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb389-1"><a href="#cb389-1" aria-hidden="true"></a><span class="ex">lualatex</span> --shell-escape document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb389"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb389-1"><a href="#cb389-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb389-2"><a href="#cb389-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb389-3"><a href="#cb389-3" aria-hidden="true"></a><span class="fu">\begingroup</span></span>
+<span id="cb389-4"><a href="#cb389-4" aria-hidden="true"></a><span class="fu">\catcode</span>`<span class="fu">\@</span>=11</span>
+<span id="cb389-5"><a href="#cb389-5" aria-hidden="true"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span>
+<span id="cb389-6"><a href="#cb389-6" aria-hidden="true"></a><span class="fu">\catcode</span>`<span class="fu">\^</span>^A=14</span>
+<span id="cb389-7"><a href="#cb389-7" aria-hidden="true"></a><span class="fu">\global\def\markdownRendererImage</span>#1#2#3#4{^^A</span>
+<span id="cb389-8"><a href="#cb389-8" aria-hidden="true"></a> <span class="fu">\immediate\write</span>18{^^A</span></code></pre></div>
+<div class="sourceCode" id="cb390"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb390-1"><a href="#cb390-1" aria-hidden="true"></a> <span class="kw">if</span> <span class="bu">printf</span> <span class="st">&#39;%s&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="kw">|</span> <span class="fu">grep</span> -q ^http<span class="kw">;</span> <span class="kw">then</span></span>
+<span id="cb390-2"><a href="#cb390-2" aria-hidden="true"></a> <span class="va">OUTPUT=</span><span class="st">&quot;</span><span class="va">$(</span><span class="bu">printf</span> <span class="st">&#39;%s&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="kw">|</span> <span class="ex">md5sum</span> <span class="kw">|</span> <span class="fu">cut</span> -d<span class="st">&#39; &#39;</span> -f1<span class="va">)</span><span class="st">.^^A</span></span>
+<span id="cb390-3"><a href="#cb390-3" aria-hidden="true"></a><span class="st"> </span><span class="va">$(</span><span class="bu">printf</span> <span class="st">&#39;%s&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="kw">|</span> <span class="fu">sed</span> <span class="st">&#39;s/.*[.]//&#39;</span><span class="va">)</span><span class="st">&quot;</span>;</span>
+<span id="cb390-4"><a href="#cb390-4" aria-hidden="true"></a> <span class="kw">if</span> !<span class="bu"> [</span> <span class="ot">-e</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span><span class="bu"> ]</span>; <span class="kw">then</span></span>
+<span id="cb390-5"><a href="#cb390-5" aria-hidden="true"></a> <span class="fu">wget</span> -O <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span> <span class="st">&#39;#3&#39;</span> <span class="kw">||</span> <span class="fu">rm</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span><span class="kw">;</span></span>
+<span id="cb390-6"><a href="#cb390-6" aria-hidden="true"></a> <span class="ex">convert</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span> png:<span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span><span class="kw">;</span></span>
+<span id="cb390-7"><a href="#cb390-7" aria-hidden="true"></a> <span class="kw">fi</span>;</span>
+<span id="cb390-8"><a href="#cb390-8" aria-hidden="true"></a> <span class="bu">printf</span> <span class="st">&#39;%s%%&#39;</span> <span class="st">&quot;</span><span class="va">$OUTPUT</span><span class="st">&quot;</span> <span class="op">&gt;</span> \jobname.fetched<span class="kw">;</span></span>
+<span id="cb390-9"><a href="#cb390-9" aria-hidden="true"></a> <span class="kw">else</span></span>
+<span id="cb390-10"><a href="#cb390-10" aria-hidden="true"></a> <span class="bu">printf</span> <span class="st">&#39;%s%%&#39;</span> <span class="st">&quot;#3&quot;</span> <span class="op">&gt;</span> \jobname.fetched<span class="kw">;</span></span>
+<span id="cb390-11"><a href="#cb390-11" aria-hidden="true"></a> <span class="kw">fi</span>^^<span class="ex">A</span></span></code></pre></div>
+<div class="sourceCode" id="cb391"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb391-1"><a href="#cb391-1" aria-hidden="true"></a> }^^A</span>
+<span id="cb391-2"><a href="#cb391-2" aria-hidden="true"></a> {^^A</span>
+<span id="cb391-3"><a href="#cb391-3" aria-hidden="true"></a> <span class="fu">\everyeof</span>={<span class="fu">\noexpand</span>}^^A</span>
+<span id="cb391-4"><a href="#cb391-4" aria-hidden="true"></a> <span class="fu">\edef\filename</span>{<span class="fu">\_</span>_markdowninput&quot;<span class="fu">\jobname</span>.fetched&quot; }^^A</span>
+<span id="cb391-5"><a href="#cb391-5" aria-hidden="true"></a> <span class="bu">\includegraphics</span>[width=<span class="fu">\textwidth</span>]{<span class="fu">\filename</span>}^^A</span>
+<span id="cb391-6"><a href="#cb391-6" aria-hidden="true"></a> }^^A</span>
+<span id="cb391-7"><a href="#cb391-7" aria-hidden="true"></a>}</span>
+<span id="cb391-8"><a href="#cb391-8" aria-hidden="true"></a><span class="fu">\endgroup</span></span>
+<span id="cb391-9"><a href="#cb391-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb391-10"><a href="#cb391-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb391-11"><a href="#cb391-11" aria-hidden="true"></a>![TUGboat](https://tug.org/tugboat/noword.jpg)</span>
+<span id="cb391-12"><a href="#cb391-12" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb391-13"><a href="#cb391-13" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb392"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb392-1"><a href="#cb392-1" aria-hidden="true"></a><span class="ex">lualatex</span> --shell-escape document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following content. This assumes that you use a Unix-like operating system with Bourne or Bourne again shell as the default shell of the current user. It also assumes that the <code>md5sum</code>, <code>wget</code>, and <code>convert</code> binaries are installed and that the <span class="tex">T<sub>e</sub>X</span> engine has shell access.</p>
<blockquote>
<p><img src="https://tug.org/tugboat/noword.jpg" title="The Communications of the TeX Users Group" /></p>
</blockquote>
-<h4 data-number="2.3.1.11" id="content-block-renderers"><span class="header-section-number">2.3.1.11</span> Content Block Renderers</h4>
-<p> The <code>\markdownRendererContentBlock</code> macro represents an iA Writer content block. It receives four arguments: the local file or online image filename extension cast to the lower case, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the content block.</p>
+<h4 data-number="2.3.1.11" id="texcontentblockrenderers"><span class="header-section-number">2.3.1.11</span> Content Block Rendere</h4>
+<p>The <code>\markdownRendererContentBlock</code> macro represents an iA Writer content block. It receives four arguments: the local file or online image filename extension cast to the lower case, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the content block.</p>
<p>The <code>\markdownRendererContentBlockOnlineImage</code> macro represents an iA Writer online image content block. The macro receives the same arguments as .</p>
<p>The <code>\markdownRendererContentBlockCode</code> macro represents an iA Writer content block that was recognized as a file in a known programming language by its filename extension <span class="math inline"><em>s</em></span>. If any <code>markdown-languages.json</code> file found by <strong><code>kpathsea</code></strong> contains a record <span class="math inline">(<em>k</em>, <em>v</em>)</span>, then a non-online-image content block with the filename extension <span class="math inline"><em>s</em>, <em>s</em></span><code>:lower()</code><span class="math inline"> = <em>k</em></span> is considered to be in a known programming language <span class="math inline"><em>v</em></span>. The macro receives five arguments: the local file name extension <span class="math inline"><em>s</em></span> cast to the lower case, the language <span class="math inline"><em>v</em></span>, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the content block.</p>
<p>Note that you will need to place place a <code>markdown-languages.json</code> file inside your working directory or inside your local <span class="tex">T<sub>e</sub>X</span> directory structure. In this file, you will define a mapping between filename extensions and the language names recognized by your favorite syntax highlighter; there may exist other creative uses beside syntax highlighting. <a href="https://github.com/iainc/Markdown-Content-Blocks" title="File transclusion syntax for Markdown">The <code>Languages.json</code> file provided by Anton Sotkov</a> is a good starting point.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-23">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb390"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb390-1"><a href="#cb390-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb390-2"><a href="#cb390-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionContentBlocks</span>{true}</span>
-<span id="cb390-3"><a href="#cb390-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb390-4"><a href="#cb390-4" aria-hidden="true"></a> This is {<span class="fu">\tt</span> #2}, #4.</span>
-<span id="cb390-5"><a href="#cb390-5" aria-hidden="true"></a>}</span>
-<span id="cb390-6"><a href="#cb390-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb390-7"><a href="#cb390-7" aria-hidden="true"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span>
-<span id="cb390-8"><a href="#cb390-8" aria-hidden="true"></a>}</span>
-<span id="cb390-9"><a href="#cb390-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span>
-<span id="cb390-10"><a href="#cb390-10" aria-hidden="true"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span>
-<span id="cb390-11"><a href="#cb390-11" aria-hidden="true"></a>}</span>
-<span id="cb390-12"><a href="#cb390-12" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb390-13"><a href="#cb390-13" aria-hidden="true"></a>/document.tex (the document that we are currently typesetting)</span>
-<span id="cb390-14"><a href="#cb390-14" aria-hidden="true"></a>/markdown-languages.json (the mapping between filename extensions</span>
-<span id="cb390-15"><a href="#cb390-15" aria-hidden="true"></a> and programming language names)</span>
-<span id="cb390-16"><a href="#cb390-16" aria-hidden="true"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span>
-<span id="cb390-17"><a href="#cb390-17" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb390-18"><a href="#cb390-18" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb393"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb393-1"><a href="#cb393-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb393-2"><a href="#cb393-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionContentBlocks</span>{true}</span>
+<span id="cb393-3"><a href="#cb393-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb393-4"><a href="#cb393-4" aria-hidden="true"></a> This is {<span class="fu">\tt</span> #2}, #4.</span>
+<span id="cb393-5"><a href="#cb393-5" aria-hidden="true"></a>}</span>
+<span id="cb393-6"><a href="#cb393-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb393-7"><a href="#cb393-7" aria-hidden="true"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span>
+<span id="cb393-8"><a href="#cb393-8" aria-hidden="true"></a>}</span>
+<span id="cb393-9"><a href="#cb393-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span>
+<span id="cb393-10"><a href="#cb393-10" aria-hidden="true"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span>
+<span id="cb393-11"><a href="#cb393-11" aria-hidden="true"></a>}</span>
+<span id="cb393-12"><a href="#cb393-12" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb393-13"><a href="#cb393-13" aria-hidden="true"></a>/document.tex (the document that we are currently typesetting)</span>
+<span id="cb393-14"><a href="#cb393-14" aria-hidden="true"></a>/markdown-languages.json (the mapping between filename extensions</span>
+<span id="cb393-15"><a href="#cb393-15" aria-hidden="true"></a> and programming language names)</span>
+<span id="cb393-16"><a href="#cb393-16" aria-hidden="true"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span>
+<span id="cb393-17"><a href="#cb393-17" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb393-18"><a href="#cb393-18" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Create also a text document named <code>markdown-languages.json</code> with the following content:</p>
-<div class="sourceCode" id="cb391"><pre class="sourceCode js"><code class="sourceCode javascript"><span id="cb391-1"><a href="#cb391-1" aria-hidden="true"></a>{</span>
-<span id="cb391-2"><a href="#cb391-2" aria-hidden="true"></a> <span class="st">&quot;json&quot;</span><span class="op">:</span> <span class="st">&quot;JavaScript Object Notation&quot;</span><span class="op">,</span></span>
-<span id="cb391-3"><a href="#cb391-3" aria-hidden="true"></a>}</span></code></pre></div>
+<div class="sourceCode" id="cb394"><pre class="sourceCode js"><code class="sourceCode javascript"><span id="cb394-1"><a href="#cb394-1" aria-hidden="true"></a>{</span>
+<span id="cb394-2"><a href="#cb394-2" aria-hidden="true"></a> <span class="st">&quot;json&quot;</span><span class="op">:</span> <span class="st">&quot;JavaScript Object Notation&quot;</span><span class="op">,</span></span>
+<span id="cb394-3"><a href="#cb394-3" aria-hidden="true"></a>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb392"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb392-1"><a href="#cb392-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb395"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb395-1"><a href="#cb395-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <code>document.tex</code>, the document that we are currently typesetting.</p>
<p>This is the JavaScript Object Notation (JSON) document <code>markdown-languages.json</code>, the mapping between filename extensions and programming language names.</p>
<p>This is the image <code>https://tug.org/tugboat/noword.jpg</code>, the logotype of TUGboat.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-45"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-46"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb393"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb393-1"><a href="#cb393-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb393-2"><a href="#cb393-2" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{markdown-languages.json}</span>
-<span id="cb393-3"><a href="#cb393-3" aria-hidden="true"></a>{</span>
-<span id="cb393-4"><a href="#cb393-4" aria-hidden="true"></a> &quot;json&quot;: &quot;JavaScript Object Notation&quot;,</span>
-<span id="cb393-5"><a href="#cb393-5" aria-hidden="true"></a>}</span>
-<span id="cb393-6"><a href="#cb393-6" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span>
-<span id="cb393-7"><a href="#cb393-7" aria-hidden="true"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span>
-<span id="cb393-8"><a href="#cb393-8" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb393-9"><a href="#cb393-9" aria-hidden="true"></a> renderers = {</span>
-<span id="cb393-10"><a href="#cb393-10" aria-hidden="true"></a> contentBlock = {This is <span class="fu">\texttt</span>{#2}, #4.},</span>
-<span id="cb393-11"><a href="#cb393-11" aria-hidden="true"></a> contentBlockOnlineImage = {This is the image <span class="fu">\texttt</span>{#2}, #4.},</span>
-<span id="cb393-12"><a href="#cb393-12" aria-hidden="true"></a> contentBlockCode = {<span class="co">%</span></span>
-<span id="cb393-13"><a href="#cb393-13" aria-hidden="true"></a> This is the #2 (<span class="fu">\MakeUppercase</span>{#1}) document <span class="fu">\texttt</span>{#3}, #5.</span>
-<span id="cb393-14"><a href="#cb393-14" aria-hidden="true"></a> },</span>
-<span id="cb393-15"><a href="#cb393-15" aria-hidden="true"></a> },</span>
-<span id="cb393-16"><a href="#cb393-16" aria-hidden="true"></a>}</span>
-<span id="cb393-17"><a href="#cb393-17" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb393-18"><a href="#cb393-18" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb393-19"><a href="#cb393-19" aria-hidden="true"></a>/document.tex (the document that we are currently typesetting)</span>
-<span id="cb393-20"><a href="#cb393-20" aria-hidden="true"></a>/markdown-languages.json (the mapping between filename extensions</span>
-<span id="cb393-21"><a href="#cb393-21" aria-hidden="true"></a> and programming language names)</span>
-<span id="cb393-22"><a href="#cb393-22" aria-hidden="true"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span>
-<span id="cb393-23"><a href="#cb393-23" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb393-24"><a href="#cb393-24" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb394"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb394-1"><a href="#cb394-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb396"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb396-1"><a href="#cb396-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb396-2"><a href="#cb396-2" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{markdown-languages.json}</span>
+<span id="cb396-3"><a href="#cb396-3" aria-hidden="true"></a>{</span>
+<span id="cb396-4"><a href="#cb396-4" aria-hidden="true"></a> &quot;json&quot;: &quot;JavaScript Object Notation&quot;,</span>
+<span id="cb396-5"><a href="#cb396-5" aria-hidden="true"></a>}</span>
+<span id="cb396-6"><a href="#cb396-6" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span>
+<span id="cb396-7"><a href="#cb396-7" aria-hidden="true"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span>
+<span id="cb396-8"><a href="#cb396-8" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb396-9"><a href="#cb396-9" aria-hidden="true"></a> renderers = {</span>
+<span id="cb396-10"><a href="#cb396-10" aria-hidden="true"></a> contentBlock = {This is <span class="fu">\texttt</span>{#2}, #4.},</span>
+<span id="cb396-11"><a href="#cb396-11" aria-hidden="true"></a> contentBlockOnlineImage = {This is the image <span class="fu">\texttt</span>{#2}, #4.},</span>
+<span id="cb396-12"><a href="#cb396-12" aria-hidden="true"></a> contentBlockCode = {<span class="co">%</span></span>
+<span id="cb396-13"><a href="#cb396-13" aria-hidden="true"></a> This is the #2 (<span class="fu">\MakeUppercase</span>{#1}) document <span class="fu">\texttt</span>{#3}, #5.</span>
+<span id="cb396-14"><a href="#cb396-14" aria-hidden="true"></a> },</span>
+<span id="cb396-15"><a href="#cb396-15" aria-hidden="true"></a> },</span>
+<span id="cb396-16"><a href="#cb396-16" aria-hidden="true"></a>}</span>
+<span id="cb396-17"><a href="#cb396-17" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb396-18"><a href="#cb396-18" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb396-19"><a href="#cb396-19" aria-hidden="true"></a>/document.tex (the document that we are currently typesetting)</span>
+<span id="cb396-20"><a href="#cb396-20" aria-hidden="true"></a>/markdown-languages.json (the mapping between filename extensions</span>
+<span id="cb396-21"><a href="#cb396-21" aria-hidden="true"></a> and programming language names)</span>
+<span id="cb396-22"><a href="#cb396-22" aria-hidden="true"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span>
+<span id="cb396-23"><a href="#cb396-23" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb396-24"><a href="#cb396-24" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb397"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb397-1"><a href="#cb397-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <code>document.tex</code>, the document that we are currently typesetting.</p>
@@ -4740,31 +4789,31 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-35">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb395"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb395-1"><a href="#cb395-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb395-2"><a href="#cb395-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionContentBlocks</span>{true}</span>
-<span id="cb395-3"><a href="#cb395-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb395-4"><a href="#cb395-4" aria-hidden="true"></a> This is {<span class="fu">\tt</span> #2}, #4.</span>
-<span id="cb395-5"><a href="#cb395-5" aria-hidden="true"></a>}</span>
-<span id="cb395-6"><a href="#cb395-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb395-7"><a href="#cb395-7" aria-hidden="true"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span>
-<span id="cb395-8"><a href="#cb395-8" aria-hidden="true"></a>}</span>
-<span id="cb395-9"><a href="#cb395-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span>
-<span id="cb395-10"><a href="#cb395-10" aria-hidden="true"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span>
-<span id="cb395-11"><a href="#cb395-11" aria-hidden="true"></a>}</span>
-<span id="cb395-12"><a href="#cb395-12" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb395-13"><a href="#cb395-13" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb395-14"><a href="#cb395-14" aria-hidden="true"></a>/document.tex (the document that we are currently typesetting)</span>
-<span id="cb395-15"><a href="#cb395-15" aria-hidden="true"></a>/markdown-languages.json (the mapping between filename extensions</span>
-<span id="cb395-16"><a href="#cb395-16" aria-hidden="true"></a> and programming language names)</span>
-<span id="cb395-17"><a href="#cb395-17" aria-hidden="true"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span>
-<span id="cb395-18"><a href="#cb395-18" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb395-19"><a href="#cb395-19" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb398"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb398-1"><a href="#cb398-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb398-2"><a href="#cb398-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionContentBlocks</span>{true}</span>
+<span id="cb398-3"><a href="#cb398-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb398-4"><a href="#cb398-4" aria-hidden="true"></a> This is {<span class="fu">\tt</span> #2}, #4.</span>
+<span id="cb398-5"><a href="#cb398-5" aria-hidden="true"></a>}</span>
+<span id="cb398-6"><a href="#cb398-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb398-7"><a href="#cb398-7" aria-hidden="true"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span>
+<span id="cb398-8"><a href="#cb398-8" aria-hidden="true"></a>}</span>
+<span id="cb398-9"><a href="#cb398-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span>
+<span id="cb398-10"><a href="#cb398-10" aria-hidden="true"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span>
+<span id="cb398-11"><a href="#cb398-11" aria-hidden="true"></a>}</span>
+<span id="cb398-12"><a href="#cb398-12" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb398-13"><a href="#cb398-13" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb398-14"><a href="#cb398-14" aria-hidden="true"></a>/document.tex (the document that we are currently typesetting)</span>
+<span id="cb398-15"><a href="#cb398-15" aria-hidden="true"></a>/markdown-languages.json (the mapping between filename extensions</span>
+<span id="cb398-16"><a href="#cb398-16" aria-hidden="true"></a> and programming language names)</span>
+<span id="cb398-17"><a href="#cb398-17" aria-hidden="true"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span>
+<span id="cb398-18"><a href="#cb398-18" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb398-19"><a href="#cb398-19" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Create also a text document named <code>markdown-languages.json</code> with the following content:</p>
-<div class="sourceCode" id="cb396"><pre class="sourceCode js"><code class="sourceCode javascript"><span id="cb396-1"><a href="#cb396-1" aria-hidden="true"></a>{</span>
-<span id="cb396-2"><a href="#cb396-2" aria-hidden="true"></a> <span class="st">&quot;json&quot;</span><span class="op">:</span> <span class="st">&quot;JavaScript Object Notation&quot;</span><span class="op">,</span></span>
-<span id="cb396-3"><a href="#cb396-3" aria-hidden="true"></a>}</span></code></pre></div>
+<div class="sourceCode" id="cb399"><pre class="sourceCode js"><code class="sourceCode javascript"><span id="cb399-1"><a href="#cb399-1" aria-hidden="true"></a>{</span>
+<span id="cb399-2"><a href="#cb399-2" aria-hidden="true"></a> <span class="st">&quot;json&quot;</span><span class="op">:</span> <span class="st">&quot;JavaScript Object Notation&quot;</span><span class="op">,</span></span>
+<span id="cb399-3"><a href="#cb399-3" aria-hidden="true"></a>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb397"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb397-1"><a href="#cb397-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb400"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb400-1"><a href="#cb400-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <code>document.tex</code>, the document that we are currently typesetting.</p>
@@ -4780,50 +4829,50 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererUlEndTight</code> macro represents the end of a bulleted list that contains no item with several paragraphs of text (the list is tight). This macro will only be produced, when the <strong><code>tightLists</code></strong> option is <code>false</code>. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-24">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb398"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb398-1"><a href="#cb398-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb398-2"><a href="#cb398-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
-<span id="cb398-3"><a href="#cb398-3" aria-hidden="true"></a></span>
-<span id="cb398-4"><a href="#cb398-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
-<span id="cb398-5"><a href="#cb398-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span>
-<span id="cb398-6"><a href="#cb398-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
-<span id="cb398-7"><a href="#cb398-7" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
-<span id="cb398-8"><a href="#cb398-8" aria-hidden="true"></a> ,</span>
-<span id="cb398-9"><a href="#cb398-9" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span>
-<span id="cb398-10"><a href="#cb398-10" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb398-11"><a href="#cb398-11" aria-hidden="true"></a>}</span>
-<span id="cb398-12"><a href="#cb398-12" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span>
-<span id="cb398-13"><a href="#cb398-13" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span>
-<span id="cb398-14"><a href="#cb398-14" aria-hidden="true"></a></span>
-<span id="cb398-15"><a href="#cb398-15" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb398-16"><a href="#cb398-16" aria-hidden="true"></a>This is a tight list</span>
-<span id="cb398-17"><a href="#cb398-17" aria-hidden="true"></a></span>
-<span id="cb398-18"><a href="#cb398-18" aria-hidden="true"></a>- the first item</span>
-<span id="cb398-19"><a href="#cb398-19" aria-hidden="true"></a>- the second item</span>
-<span id="cb398-20"><a href="#cb398-20" aria-hidden="true"></a>- the third item</span>
-<span id="cb398-21"><a href="#cb398-21" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb398-22"><a href="#cb398-22" aria-hidden="true"></a></span>
-<span id="cb398-23"><a href="#cb398-23" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb398-24"><a href="#cb398-24" aria-hidden="true"></a> :<span class="fu">\par</span></span>
-<span id="cb398-25"><a href="#cb398-25" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb398-26"><a href="#cb398-26" aria-hidden="true"></a>}</span>
-<span id="cb398-27"><a href="#cb398-27" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBegin</span>{}</span>
-<span id="cb398-28"><a href="#cb398-28" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{--<span class="fu">\kern</span> 0.5em}</span>
-<span id="cb398-29"><a href="#cb398-29" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.<span class="fu">\par</span>}</span>
-<span id="cb398-30"><a href="#cb398-30" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEnd</span>{}</span>
-<span id="cb398-31"><a href="#cb398-31" aria-hidden="true"></a></span>
-<span id="cb398-32"><a href="#cb398-32" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb398-33"><a href="#cb398-33" aria-hidden="true"></a>This is a loose list</span>
-<span id="cb398-34"><a href="#cb398-34" aria-hidden="true"></a></span>
-<span id="cb398-35"><a href="#cb398-35" aria-hidden="true"></a>- This is the first item</span>
-<span id="cb398-36"><a href="#cb398-36" aria-hidden="true"></a></span>
-<span id="cb398-37"><a href="#cb398-37" aria-hidden="true"></a>- This is the second item</span>
-<span id="cb398-38"><a href="#cb398-38" aria-hidden="true"></a></span>
-<span id="cb398-39"><a href="#cb398-39" aria-hidden="true"></a>- This is the third item</span>
-<span id="cb398-40"><a href="#cb398-40" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb398-41"><a href="#cb398-41" aria-hidden="true"></a></span>
-<span id="cb398-42"><a href="#cb398-42" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb399"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb399-1"><a href="#cb399-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb401"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb401-1"><a href="#cb401-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb401-2"><a href="#cb401-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
+<span id="cb401-3"><a href="#cb401-3" aria-hidden="true"></a></span>
+<span id="cb401-4"><a href="#cb401-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
+<span id="cb401-5"><a href="#cb401-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span>
+<span id="cb401-6"><a href="#cb401-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
+<span id="cb401-7"><a href="#cb401-7" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
+<span id="cb401-8"><a href="#cb401-8" aria-hidden="true"></a> ,</span>
+<span id="cb401-9"><a href="#cb401-9" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span>
+<span id="cb401-10"><a href="#cb401-10" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb401-11"><a href="#cb401-11" aria-hidden="true"></a>}</span>
+<span id="cb401-12"><a href="#cb401-12" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span>
+<span id="cb401-13"><a href="#cb401-13" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span>
+<span id="cb401-14"><a href="#cb401-14" aria-hidden="true"></a></span>
+<span id="cb401-15"><a href="#cb401-15" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb401-16"><a href="#cb401-16" aria-hidden="true"></a>This is a tight list</span>
+<span id="cb401-17"><a href="#cb401-17" aria-hidden="true"></a></span>
+<span id="cb401-18"><a href="#cb401-18" aria-hidden="true"></a>- the first item</span>
+<span id="cb401-19"><a href="#cb401-19" aria-hidden="true"></a>- the second item</span>
+<span id="cb401-20"><a href="#cb401-20" aria-hidden="true"></a>- the third item</span>
+<span id="cb401-21"><a href="#cb401-21" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb401-22"><a href="#cb401-22" aria-hidden="true"></a></span>
+<span id="cb401-23"><a href="#cb401-23" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb401-24"><a href="#cb401-24" aria-hidden="true"></a> :<span class="fu">\par</span></span>
+<span id="cb401-25"><a href="#cb401-25" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb401-26"><a href="#cb401-26" aria-hidden="true"></a>}</span>
+<span id="cb401-27"><a href="#cb401-27" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBegin</span>{}</span>
+<span id="cb401-28"><a href="#cb401-28" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{--<span class="fu">\kern</span> 0.5em}</span>
+<span id="cb401-29"><a href="#cb401-29" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.<span class="fu">\par</span>}</span>
+<span id="cb401-30"><a href="#cb401-30" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEnd</span>{}</span>
+<span id="cb401-31"><a href="#cb401-31" aria-hidden="true"></a></span>
+<span id="cb401-32"><a href="#cb401-32" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb401-33"><a href="#cb401-33" aria-hidden="true"></a>This is a loose list</span>
+<span id="cb401-34"><a href="#cb401-34" aria-hidden="true"></a></span>
+<span id="cb401-35"><a href="#cb401-35" aria-hidden="true"></a>- This is the first item</span>
+<span id="cb401-36"><a href="#cb401-36" aria-hidden="true"></a></span>
+<span id="cb401-37"><a href="#cb401-37" aria-hidden="true"></a>- This is the second item</span>
+<span id="cb401-38"><a href="#cb401-38" aria-hidden="true"></a></span>
+<span id="cb401-39"><a href="#cb401-39" aria-hidden="true"></a>- This is the third item</span>
+<span id="cb401-40"><a href="#cb401-40" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb401-41"><a href="#cb401-41" aria-hidden="true"></a></span>
+<span id="cb401-42"><a href="#cb401-42" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb402"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb402-1"><a href="#cb402-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight list (the first item, the second item, and the third item).</p>
@@ -4834,57 +4883,57 @@ Thomas,Edison,1847</code></pre>
<li><p>This is the third item.</p></li>
</ul>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-46"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-47"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb400"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb400-1"><a href="#cb400-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb400-2"><a href="#cb400-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[tightLists]{<span class="ex">markdown</span>}</span>
-<span id="cb400-3"><a href="#cb400-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb400-4"><a href="#cb400-4" aria-hidden="true"></a></span>
-<span id="cb400-5"><a href="#cb400-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
-<span id="cb400-6"><a href="#cb400-6" aria-hidden="true"></a> renderers = {</span>
-<span id="cb400-7"><a href="#cb400-7" aria-hidden="true"></a> interblockSeparator = {},</span>
-<span id="cb400-8"><a href="#cb400-8" aria-hidden="true"></a> ulBeginTight = { (},</span>
-<span id="cb400-9"><a href="#cb400-9" aria-hidden="true"></a> ulItem = {<span class="co">%</span></span>
-<span id="cb400-10"><a href="#cb400-10" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
-<span id="cb400-11"><a href="#cb400-11" aria-hidden="true"></a> ,</span>
-<span id="cb400-12"><a href="#cb400-12" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span>
-<span id="cb400-13"><a href="#cb400-13" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb400-14"><a href="#cb400-14" aria-hidden="true"></a> },</span>
-<span id="cb400-15"><a href="#cb400-15" aria-hidden="true"></a> ulItemEnd = {},</span>
-<span id="cb400-16"><a href="#cb400-16" aria-hidden="true"></a> ulEndTight = {).},</span>
-<span id="cb400-17"><a href="#cb400-17" aria-hidden="true"></a> },</span>
-<span id="cb400-18"><a href="#cb400-18" aria-hidden="true"></a>}</span>
-<span id="cb400-19"><a href="#cb400-19" aria-hidden="true"></a>This is a tight list</span>
-<span id="cb400-20"><a href="#cb400-20" aria-hidden="true"></a></span>
-<span id="cb400-21"><a href="#cb400-21" aria-hidden="true"></a>- the first item</span>
-<span id="cb400-22"><a href="#cb400-22" aria-hidden="true"></a>- the second item</span>
-<span id="cb400-23"><a href="#cb400-23" aria-hidden="true"></a>- the third item</span>
-<span id="cb400-24"><a href="#cb400-24" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb400-25"><a href="#cb400-25" aria-hidden="true"></a></span>
-<span id="cb400-26"><a href="#cb400-26" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
-<span id="cb400-27"><a href="#cb400-27" aria-hidden="true"></a> renderers = {</span>
-<span id="cb400-28"><a href="#cb400-28" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
-<span id="cb400-29"><a href="#cb400-29" aria-hidden="true"></a> :<span class="fu">\par</span></span>
-<span id="cb400-30"><a href="#cb400-30" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb400-31"><a href="#cb400-31" aria-hidden="true"></a> },</span>
-<span id="cb400-32"><a href="#cb400-32" aria-hidden="true"></a> ulBeginTight = {<span class="kw">\begin</span>{<span class="ex">itemize</span>}},</span>
-<span id="cb400-33"><a href="#cb400-33" aria-hidden="true"></a> ulItem = {<span class="fu">\item</span>},</span>
-<span id="cb400-34"><a href="#cb400-34" aria-hidden="true"></a> ulItemEnd = {.},</span>
-<span id="cb400-35"><a href="#cb400-35" aria-hidden="true"></a> ulEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span>
-<span id="cb400-36"><a href="#cb400-36" aria-hidden="true"></a> },</span>
-<span id="cb400-37"><a href="#cb400-37" aria-hidden="true"></a>}</span>
-<span id="cb400-38"><a href="#cb400-38" aria-hidden="true"></a>This is a loose list</span>
-<span id="cb400-39"><a href="#cb400-39" aria-hidden="true"></a></span>
-<span id="cb400-40"><a href="#cb400-40" aria-hidden="true"></a>- This is the first item</span>
-<span id="cb400-41"><a href="#cb400-41" aria-hidden="true"></a></span>
-<span id="cb400-42"><a href="#cb400-42" aria-hidden="true"></a>- This is the second item</span>
-<span id="cb400-43"><a href="#cb400-43" aria-hidden="true"></a></span>
-<span id="cb400-44"><a href="#cb400-44" aria-hidden="true"></a>- This is the third item</span>
-<span id="cb400-45"><a href="#cb400-45" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb400-46"><a href="#cb400-46" aria-hidden="true"></a></span>
-<span id="cb400-47"><a href="#cb400-47" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb401"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb401-1"><a href="#cb401-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb403"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb403-1"><a href="#cb403-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb403-2"><a href="#cb403-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[tightLists]{<span class="ex">markdown</span>}</span>
+<span id="cb403-3"><a href="#cb403-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb403-4"><a href="#cb403-4" aria-hidden="true"></a></span>
+<span id="cb403-5"><a href="#cb403-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
+<span id="cb403-6"><a href="#cb403-6" aria-hidden="true"></a> renderers = {</span>
+<span id="cb403-7"><a href="#cb403-7" aria-hidden="true"></a> interblockSeparator = {},</span>
+<span id="cb403-8"><a href="#cb403-8" aria-hidden="true"></a> ulBeginTight = { (},</span>
+<span id="cb403-9"><a href="#cb403-9" aria-hidden="true"></a> ulItem = {<span class="co">%</span></span>
+<span id="cb403-10"><a href="#cb403-10" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
+<span id="cb403-11"><a href="#cb403-11" aria-hidden="true"></a> ,</span>
+<span id="cb403-12"><a href="#cb403-12" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span>
+<span id="cb403-13"><a href="#cb403-13" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb403-14"><a href="#cb403-14" aria-hidden="true"></a> },</span>
+<span id="cb403-15"><a href="#cb403-15" aria-hidden="true"></a> ulItemEnd = {},</span>
+<span id="cb403-16"><a href="#cb403-16" aria-hidden="true"></a> ulEndTight = {).},</span>
+<span id="cb403-17"><a href="#cb403-17" aria-hidden="true"></a> },</span>
+<span id="cb403-18"><a href="#cb403-18" aria-hidden="true"></a>}</span>
+<span id="cb403-19"><a href="#cb403-19" aria-hidden="true"></a>This is a tight list</span>
+<span id="cb403-20"><a href="#cb403-20" aria-hidden="true"></a></span>
+<span id="cb403-21"><a href="#cb403-21" aria-hidden="true"></a>- the first item</span>
+<span id="cb403-22"><a href="#cb403-22" aria-hidden="true"></a>- the second item</span>
+<span id="cb403-23"><a href="#cb403-23" aria-hidden="true"></a>- the third item</span>
+<span id="cb403-24"><a href="#cb403-24" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb403-25"><a href="#cb403-25" aria-hidden="true"></a></span>
+<span id="cb403-26"><a href="#cb403-26" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
+<span id="cb403-27"><a href="#cb403-27" aria-hidden="true"></a> renderers = {</span>
+<span id="cb403-28"><a href="#cb403-28" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
+<span id="cb403-29"><a href="#cb403-29" aria-hidden="true"></a> :<span class="fu">\par</span></span>
+<span id="cb403-30"><a href="#cb403-30" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb403-31"><a href="#cb403-31" aria-hidden="true"></a> },</span>
+<span id="cb403-32"><a href="#cb403-32" aria-hidden="true"></a> ulBeginTight = {<span class="kw">\begin</span>{<span class="ex">itemize</span>}},</span>
+<span id="cb403-33"><a href="#cb403-33" aria-hidden="true"></a> ulItem = {<span class="fu">\item</span>},</span>
+<span id="cb403-34"><a href="#cb403-34" aria-hidden="true"></a> ulItemEnd = {.},</span>
+<span id="cb403-35"><a href="#cb403-35" aria-hidden="true"></a> ulEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span>
+<span id="cb403-36"><a href="#cb403-36" aria-hidden="true"></a> },</span>
+<span id="cb403-37"><a href="#cb403-37" aria-hidden="true"></a>}</span>
+<span id="cb403-38"><a href="#cb403-38" aria-hidden="true"></a>This is a loose list</span>
+<span id="cb403-39"><a href="#cb403-39" aria-hidden="true"></a></span>
+<span id="cb403-40"><a href="#cb403-40" aria-hidden="true"></a>- This is the first item</span>
+<span id="cb403-41"><a href="#cb403-41" aria-hidden="true"></a></span>
+<span id="cb403-42"><a href="#cb403-42" aria-hidden="true"></a>- This is the second item</span>
+<span id="cb403-43"><a href="#cb403-43" aria-hidden="true"></a></span>
+<span id="cb403-44"><a href="#cb403-44" aria-hidden="true"></a>- This is the third item</span>
+<span id="cb403-45"><a href="#cb403-45" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb403-46"><a href="#cb403-46" aria-hidden="true"></a></span>
+<span id="cb403-47"><a href="#cb403-47" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb404"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb404-1"><a href="#cb404-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight list (the first item, the second item, and the third item).</p>
@@ -4897,51 +4946,51 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-36">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb402"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb402-1"><a href="#cb402-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb402-2"><a href="#cb402-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
-<span id="cb402-3"><a href="#cb402-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb402-4"><a href="#cb402-4" aria-hidden="true"></a></span>
-<span id="cb402-5"><a href="#cb402-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
-<span id="cb402-6"><a href="#cb402-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span>
-<span id="cb402-7"><a href="#cb402-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
-<span id="cb402-8"><a href="#cb402-8" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
-<span id="cb402-9"><a href="#cb402-9" aria-hidden="true"></a> ,</span>
-<span id="cb402-10"><a href="#cb402-10" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span>
-<span id="cb402-11"><a href="#cb402-11" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb402-12"><a href="#cb402-12" aria-hidden="true"></a>}</span>
-<span id="cb402-13"><a href="#cb402-13" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span>
-<span id="cb402-14"><a href="#cb402-14" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span>
-<span id="cb402-15"><a href="#cb402-15" aria-hidden="true"></a></span>
-<span id="cb402-16"><a href="#cb402-16" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb402-17"><a href="#cb402-17" aria-hidden="true"></a>This is a tight list</span>
-<span id="cb402-18"><a href="#cb402-18" aria-hidden="true"></a></span>
-<span id="cb402-19"><a href="#cb402-19" aria-hidden="true"></a>- the first item</span>
-<span id="cb402-20"><a href="#cb402-20" aria-hidden="true"></a>- the second item</span>
-<span id="cb402-21"><a href="#cb402-21" aria-hidden="true"></a>- the third item</span>
-<span id="cb402-22"><a href="#cb402-22" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb402-23"><a href="#cb402-23" aria-hidden="true"></a></span>
-<span id="cb402-24"><a href="#cb402-24" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb402-25"><a href="#cb402-25" aria-hidden="true"></a> :<span class="fu">\par</span></span>
-<span id="cb402-26"><a href="#cb402-26" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb402-27"><a href="#cb402-27" aria-hidden="true"></a>}</span>
-<span id="cb402-28"><a href="#cb402-28" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBegin</span>{<span class="fu">\startitemize</span>}</span>
-<span id="cb402-29"><a href="#cb402-29" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="fu">\item</span>}</span>
-<span id="cb402-30"><a href="#cb402-30" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.}</span>
-<span id="cb402-31"><a href="#cb402-31" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEnd</span>{<span class="fu">\stopitemize</span>}</span>
-<span id="cb402-32"><a href="#cb402-32" aria-hidden="true"></a></span>
-<span id="cb402-33"><a href="#cb402-33" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb402-34"><a href="#cb402-34" aria-hidden="true"></a>This is a loose list</span>
-<span id="cb402-35"><a href="#cb402-35" aria-hidden="true"></a></span>
-<span id="cb402-36"><a href="#cb402-36" aria-hidden="true"></a>- This is the first item</span>
-<span id="cb402-37"><a href="#cb402-37" aria-hidden="true"></a></span>
-<span id="cb402-38"><a href="#cb402-38" aria-hidden="true"></a>- This is the second item</span>
-<span id="cb402-39"><a href="#cb402-39" aria-hidden="true"></a></span>
-<span id="cb402-40"><a href="#cb402-40" aria-hidden="true"></a>- This is the third item</span>
-<span id="cb402-41"><a href="#cb402-41" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb402-42"><a href="#cb402-42" aria-hidden="true"></a></span>
-<span id="cb402-43"><a href="#cb402-43" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb403"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb403-1"><a href="#cb403-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb405"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb405-1"><a href="#cb405-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb405-2"><a href="#cb405-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
+<span id="cb405-3"><a href="#cb405-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb405-4"><a href="#cb405-4" aria-hidden="true"></a></span>
+<span id="cb405-5"><a href="#cb405-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
+<span id="cb405-6"><a href="#cb405-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span>
+<span id="cb405-7"><a href="#cb405-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
+<span id="cb405-8"><a href="#cb405-8" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span>
+<span id="cb405-9"><a href="#cb405-9" aria-hidden="true"></a> ,</span>
+<span id="cb405-10"><a href="#cb405-10" aria-hidden="true"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span>
+<span id="cb405-11"><a href="#cb405-11" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb405-12"><a href="#cb405-12" aria-hidden="true"></a>}</span>
+<span id="cb405-13"><a href="#cb405-13" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span>
+<span id="cb405-14"><a href="#cb405-14" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span>
+<span id="cb405-15"><a href="#cb405-15" aria-hidden="true"></a></span>
+<span id="cb405-16"><a href="#cb405-16" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb405-17"><a href="#cb405-17" aria-hidden="true"></a>This is a tight list</span>
+<span id="cb405-18"><a href="#cb405-18" aria-hidden="true"></a></span>
+<span id="cb405-19"><a href="#cb405-19" aria-hidden="true"></a>- the first item</span>
+<span id="cb405-20"><a href="#cb405-20" aria-hidden="true"></a>- the second item</span>
+<span id="cb405-21"><a href="#cb405-21" aria-hidden="true"></a>- the third item</span>
+<span id="cb405-22"><a href="#cb405-22" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb405-23"><a href="#cb405-23" aria-hidden="true"></a></span>
+<span id="cb405-24"><a href="#cb405-24" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb405-25"><a href="#cb405-25" aria-hidden="true"></a> :<span class="fu">\par</span></span>
+<span id="cb405-26"><a href="#cb405-26" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb405-27"><a href="#cb405-27" aria-hidden="true"></a>}</span>
+<span id="cb405-28"><a href="#cb405-28" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlBegin</span>{<span class="fu">\startitemize</span>}</span>
+<span id="cb405-29"><a href="#cb405-29" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="fu">\item</span>}</span>
+<span id="cb405-30"><a href="#cb405-30" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.}</span>
+<span id="cb405-31"><a href="#cb405-31" aria-hidden="true"></a><span class="fu">\def\markdownRendererUlEnd</span>{<span class="fu">\stopitemize</span>}</span>
+<span id="cb405-32"><a href="#cb405-32" aria-hidden="true"></a></span>
+<span id="cb405-33"><a href="#cb405-33" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb405-34"><a href="#cb405-34" aria-hidden="true"></a>This is a loose list</span>
+<span id="cb405-35"><a href="#cb405-35" aria-hidden="true"></a></span>
+<span id="cb405-36"><a href="#cb405-36" aria-hidden="true"></a>- This is the first item</span>
+<span id="cb405-37"><a href="#cb405-37" aria-hidden="true"></a></span>
+<span id="cb405-38"><a href="#cb405-38" aria-hidden="true"></a>- This is the second item</span>
+<span id="cb405-39"><a href="#cb405-39" aria-hidden="true"></a></span>
+<span id="cb405-40"><a href="#cb405-40" aria-hidden="true"></a>- This is the third item</span>
+<span id="cb405-41"><a href="#cb405-41" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb405-42"><a href="#cb405-42" aria-hidden="true"></a></span>
+<span id="cb405-43"><a href="#cb405-43" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb406"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb406-1"><a href="#cb406-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight list (the first item, the second item, and the third item).</p>
@@ -4962,68 +5011,68 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererOlEndTight</code> macro represents the end of an ordered list that contains no item with several paragraphs of text (the list is tight). This macro will only be produced, when the <strong><code>tightLists</code></strong> option is <code>false</code>. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-25">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb404"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb404-1"><a href="#cb404-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb404-2"><a href="#cb404-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
-<span id="cb404-3"><a href="#cb404-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionStartNumber</span>{true}</span>
-<span id="cb404-4"><a href="#cb404-4" aria-hidden="true"></a></span>
-<span id="cb404-5"><a href="#cb404-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
-<span id="cb404-6"><a href="#cb404-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span>
-<span id="cb404-7"><a href="#cb404-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
-<span id="cb404-8"><a href="#cb404-8" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
-<span id="cb404-9"><a href="#cb404-9" aria-hidden="true"></a> the first</span>
-<span id="cb404-10"><a href="#cb404-10" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb404-11"><a href="#cb404-11" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
-<span id="cb404-12"><a href="#cb404-12" aria-hidden="true"></a> , the second</span>
-<span id="cb404-13"><a href="#cb404-13" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb404-14"><a href="#cb404-14" aria-hidden="true"></a> , and the third</span>
-<span id="cb404-15"><a href="#cb404-15" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb404-16"><a href="#cb404-16" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb404-17"><a href="#cb404-17" aria-hidden="true"></a>}</span>
-<span id="cb404-18"><a href="#cb404-18" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span>
-<span id="cb404-19"><a href="#cb404-19" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span>
-<span id="cb404-20"><a href="#cb404-20" aria-hidden="true"></a></span>
-<span id="cb404-21"><a href="#cb404-21" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb404-22"><a href="#cb404-22" aria-hidden="true"></a>This is a tight list</span>
-<span id="cb404-23"><a href="#cb404-23" aria-hidden="true"></a></span>
-<span id="cb404-24"><a href="#cb404-24" aria-hidden="true"></a>1. item</span>
-<span id="cb404-25"><a href="#cb404-25" aria-hidden="true"></a>2. item</span>
-<span id="cb404-26"><a href="#cb404-26" aria-hidden="true"></a>3. item</span>
-<span id="cb404-27"><a href="#cb404-27" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb404-28"><a href="#cb404-28" aria-hidden="true"></a></span>
-<span id="cb404-29"><a href="#cb404-29" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb404-30"><a href="#cb404-30" aria-hidden="true"></a> :<span class="fu">\par</span></span>
-<span id="cb404-31"><a href="#cb404-31" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb404-32"><a href="#cb404-32" aria-hidden="true"></a>}</span>
-<span id="cb404-33"><a href="#cb404-33" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBegin</span>{}</span>
-<span id="cb404-34"><a href="#cb404-34" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
-<span id="cb404-35"><a href="#cb404-35" aria-hidden="true"></a> #1.<span class="fu">\kern</span> 0.5em<span class="co">%</span></span>
-<span id="cb404-36"><a href="#cb404-36" aria-hidden="true"></a> This is the</span>
-<span id="cb404-37"><a href="#cb404-37" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
-<span id="cb404-38"><a href="#cb404-38" aria-hidden="true"></a> first</span>
-<span id="cb404-39"><a href="#cb404-39" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb404-40"><a href="#cb404-40" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
-<span id="cb404-41"><a href="#cb404-41" aria-hidden="true"></a> second</span>
-<span id="cb404-42"><a href="#cb404-42" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb404-43"><a href="#cb404-43" aria-hidden="true"></a> third</span>
-<span id="cb404-44"><a href="#cb404-44" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb404-45"><a href="#cb404-45" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb404-46"><a href="#cb404-46" aria-hidden="true"></a>}</span>
-<span id="cb404-47"><a href="#cb404-47" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span>
-<span id="cb404-48"><a href="#cb404-48" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEnd</span>{}</span>
-<span id="cb404-49"><a href="#cb404-49" aria-hidden="true"></a></span>
-<span id="cb404-50"><a href="#cb404-50" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb404-51"><a href="#cb404-51" aria-hidden="true"></a>This is a loose list</span>
-<span id="cb404-52"><a href="#cb404-52" aria-hidden="true"></a></span>
-<span id="cb404-53"><a href="#cb404-53" aria-hidden="true"></a>1. item</span>
-<span id="cb404-54"><a href="#cb404-54" aria-hidden="true"></a></span>
-<span id="cb404-55"><a href="#cb404-55" aria-hidden="true"></a>2. item</span>
-<span id="cb404-56"><a href="#cb404-56" aria-hidden="true"></a></span>
-<span id="cb404-57"><a href="#cb404-57" aria-hidden="true"></a>3. item</span>
-<span id="cb404-58"><a href="#cb404-58" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb404-59"><a href="#cb404-59" aria-hidden="true"></a></span>
-<span id="cb404-60"><a href="#cb404-60" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb405"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb405-1"><a href="#cb405-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb407"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb407-1"><a href="#cb407-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb407-2"><a href="#cb407-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
+<span id="cb407-3"><a href="#cb407-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionStartNumber</span>{true}</span>
+<span id="cb407-4"><a href="#cb407-4" aria-hidden="true"></a></span>
+<span id="cb407-5"><a href="#cb407-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
+<span id="cb407-6"><a href="#cb407-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span>
+<span id="cb407-7"><a href="#cb407-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
+<span id="cb407-8"><a href="#cb407-8" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
+<span id="cb407-9"><a href="#cb407-9" aria-hidden="true"></a> the first</span>
+<span id="cb407-10"><a href="#cb407-10" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb407-11"><a href="#cb407-11" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
+<span id="cb407-12"><a href="#cb407-12" aria-hidden="true"></a> , the second</span>
+<span id="cb407-13"><a href="#cb407-13" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb407-14"><a href="#cb407-14" aria-hidden="true"></a> , and the third</span>
+<span id="cb407-15"><a href="#cb407-15" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb407-16"><a href="#cb407-16" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb407-17"><a href="#cb407-17" aria-hidden="true"></a>}</span>
+<span id="cb407-18"><a href="#cb407-18" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span>
+<span id="cb407-19"><a href="#cb407-19" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span>
+<span id="cb407-20"><a href="#cb407-20" aria-hidden="true"></a></span>
+<span id="cb407-21"><a href="#cb407-21" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb407-22"><a href="#cb407-22" aria-hidden="true"></a>This is a tight list</span>
+<span id="cb407-23"><a href="#cb407-23" aria-hidden="true"></a></span>
+<span id="cb407-24"><a href="#cb407-24" aria-hidden="true"></a>1. item</span>
+<span id="cb407-25"><a href="#cb407-25" aria-hidden="true"></a>2. item</span>
+<span id="cb407-26"><a href="#cb407-26" aria-hidden="true"></a>3. item</span>
+<span id="cb407-27"><a href="#cb407-27" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb407-28"><a href="#cb407-28" aria-hidden="true"></a></span>
+<span id="cb407-29"><a href="#cb407-29" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb407-30"><a href="#cb407-30" aria-hidden="true"></a> :<span class="fu">\par</span></span>
+<span id="cb407-31"><a href="#cb407-31" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb407-32"><a href="#cb407-32" aria-hidden="true"></a>}</span>
+<span id="cb407-33"><a href="#cb407-33" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBegin</span>{}</span>
+<span id="cb407-34"><a href="#cb407-34" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
+<span id="cb407-35"><a href="#cb407-35" aria-hidden="true"></a> #1.<span class="fu">\kern</span> 0.5em<span class="co">%</span></span>
+<span id="cb407-36"><a href="#cb407-36" aria-hidden="true"></a> This is the</span>
+<span id="cb407-37"><a href="#cb407-37" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
+<span id="cb407-38"><a href="#cb407-38" aria-hidden="true"></a> first</span>
+<span id="cb407-39"><a href="#cb407-39" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb407-40"><a href="#cb407-40" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
+<span id="cb407-41"><a href="#cb407-41" aria-hidden="true"></a> second</span>
+<span id="cb407-42"><a href="#cb407-42" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb407-43"><a href="#cb407-43" aria-hidden="true"></a> third</span>
+<span id="cb407-44"><a href="#cb407-44" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb407-45"><a href="#cb407-45" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb407-46"><a href="#cb407-46" aria-hidden="true"></a>}</span>
+<span id="cb407-47"><a href="#cb407-47" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span>
+<span id="cb407-48"><a href="#cb407-48" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEnd</span>{}</span>
+<span id="cb407-49"><a href="#cb407-49" aria-hidden="true"></a></span>
+<span id="cb407-50"><a href="#cb407-50" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb407-51"><a href="#cb407-51" aria-hidden="true"></a>This is a loose list</span>
+<span id="cb407-52"><a href="#cb407-52" aria-hidden="true"></a></span>
+<span id="cb407-53"><a href="#cb407-53" aria-hidden="true"></a>1. item</span>
+<span id="cb407-54"><a href="#cb407-54" aria-hidden="true"></a></span>
+<span id="cb407-55"><a href="#cb407-55" aria-hidden="true"></a>2. item</span>
+<span id="cb407-56"><a href="#cb407-56" aria-hidden="true"></a></span>
+<span id="cb407-57"><a href="#cb407-57" aria-hidden="true"></a>3. item</span>
+<span id="cb407-58"><a href="#cb407-58" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb407-59"><a href="#cb407-59" aria-hidden="true"></a></span>
+<span id="cb407-60"><a href="#cb407-60" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb408"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb408-1"><a href="#cb408-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight list (the first item, the second item, and the third item).</p>
@@ -5034,73 +5083,73 @@ Thomas,Edison,1847</code></pre>
<li><p>This is the third item.</p></li>
</ol>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-47"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-48"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb406"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb406-1"><a href="#cb406-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb406-2"><a href="#cb406-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[tightLists, startNumber]{<span class="ex">markdown</span>}</span>
-<span id="cb406-3"><a href="#cb406-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb406-4"><a href="#cb406-4" aria-hidden="true"></a></span>
-<span id="cb406-5"><a href="#cb406-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
-<span id="cb406-6"><a href="#cb406-6" aria-hidden="true"></a> renderers = {</span>
-<span id="cb406-7"><a href="#cb406-7" aria-hidden="true"></a> interblockSeparator = {},</span>
-<span id="cb406-8"><a href="#cb406-8" aria-hidden="true"></a> olBeginTight = { (},</span>
-<span id="cb406-9"><a href="#cb406-9" aria-hidden="true"></a> olItemWithNumber = {<span class="co">%</span></span>
-<span id="cb406-10"><a href="#cb406-10" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
-<span id="cb406-11"><a href="#cb406-11" aria-hidden="true"></a> the first</span>
-<span id="cb406-12"><a href="#cb406-12" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb406-13"><a href="#cb406-13" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
-<span id="cb406-14"><a href="#cb406-14" aria-hidden="true"></a> , the second</span>
-<span id="cb406-15"><a href="#cb406-15" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb406-16"><a href="#cb406-16" aria-hidden="true"></a> , and the third</span>
-<span id="cb406-17"><a href="#cb406-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb406-18"><a href="#cb406-18" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb406-19"><a href="#cb406-19" aria-hidden="true"></a> },</span>
-<span id="cb406-20"><a href="#cb406-20" aria-hidden="true"></a> olItemEnd = {},</span>
-<span id="cb406-21"><a href="#cb406-21" aria-hidden="true"></a> olEndTight = {).},</span>
-<span id="cb406-22"><a href="#cb406-22" aria-hidden="true"></a> },</span>
-<span id="cb406-23"><a href="#cb406-23" aria-hidden="true"></a>}</span>
-<span id="cb406-24"><a href="#cb406-24" aria-hidden="true"></a>This is a tight list</span>
-<span id="cb406-25"><a href="#cb406-25" aria-hidden="true"></a></span>
-<span id="cb406-26"><a href="#cb406-26" aria-hidden="true"></a>1. item</span>
-<span id="cb406-27"><a href="#cb406-27" aria-hidden="true"></a>2. item</span>
-<span id="cb406-28"><a href="#cb406-28" aria-hidden="true"></a>3. item</span>
-<span id="cb406-29"><a href="#cb406-29" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb406-30"><a href="#cb406-30" aria-hidden="true"></a></span>
-<span id="cb406-31"><a href="#cb406-31" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
-<span id="cb406-32"><a href="#cb406-32" aria-hidden="true"></a> renderers = {</span>
-<span id="cb406-33"><a href="#cb406-33" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
-<span id="cb406-34"><a href="#cb406-34" aria-hidden="true"></a> :<span class="fu">\par</span></span>
-<span id="cb406-35"><a href="#cb406-35" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb406-36"><a href="#cb406-36" aria-hidden="true"></a> },</span>
-<span id="cb406-37"><a href="#cb406-37" aria-hidden="true"></a> olBeginTight = {<span class="kw">\begin</span>{<span class="ex">enumerate</span>}},</span>
-<span id="cb406-38"><a href="#cb406-38" aria-hidden="true"></a> olItemWithNumber = {<span class="co">%</span></span>
-<span id="cb406-39"><a href="#cb406-39" aria-hidden="true"></a> <span class="fu">\item</span> This is the</span>
-<span id="cb406-40"><a href="#cb406-40" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
-<span id="cb406-41"><a href="#cb406-41" aria-hidden="true"></a> first</span>
-<span id="cb406-42"><a href="#cb406-42" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb406-43"><a href="#cb406-43" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
-<span id="cb406-44"><a href="#cb406-44" aria-hidden="true"></a> second</span>
-<span id="cb406-45"><a href="#cb406-45" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb406-46"><a href="#cb406-46" aria-hidden="true"></a> third</span>
-<span id="cb406-47"><a href="#cb406-47" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb406-48"><a href="#cb406-48" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb406-49"><a href="#cb406-49" aria-hidden="true"></a> },</span>
-<span id="cb406-50"><a href="#cb406-50" aria-hidden="true"></a> olItemEnd = {.},</span>
-<span id="cb406-51"><a href="#cb406-51" aria-hidden="true"></a> olEnd = {<span class="kw">\end</span>{<span class="ex">enumerate</span>}},</span>
-<span id="cb406-52"><a href="#cb406-52" aria-hidden="true"></a> },</span>
-<span id="cb406-53"><a href="#cb406-53" aria-hidden="true"></a>}</span>
-<span id="cb406-54"><a href="#cb406-54" aria-hidden="true"></a>This is a loose list</span>
-<span id="cb406-55"><a href="#cb406-55" aria-hidden="true"></a></span>
-<span id="cb406-56"><a href="#cb406-56" aria-hidden="true"></a>1. item</span>
-<span id="cb406-57"><a href="#cb406-57" aria-hidden="true"></a></span>
-<span id="cb406-58"><a href="#cb406-58" aria-hidden="true"></a>2. item</span>
-<span id="cb406-59"><a href="#cb406-59" aria-hidden="true"></a></span>
-<span id="cb406-60"><a href="#cb406-60" aria-hidden="true"></a>3. item</span>
-<span id="cb406-61"><a href="#cb406-61" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb406-62"><a href="#cb406-62" aria-hidden="true"></a></span>
-<span id="cb406-63"><a href="#cb406-63" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb407"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb407-1"><a href="#cb407-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb409"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb409-1"><a href="#cb409-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb409-2"><a href="#cb409-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[tightLists, startNumber]{<span class="ex">markdown</span>}</span>
+<span id="cb409-3"><a href="#cb409-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb409-4"><a href="#cb409-4" aria-hidden="true"></a></span>
+<span id="cb409-5"><a href="#cb409-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
+<span id="cb409-6"><a href="#cb409-6" aria-hidden="true"></a> renderers = {</span>
+<span id="cb409-7"><a href="#cb409-7" aria-hidden="true"></a> interblockSeparator = {},</span>
+<span id="cb409-8"><a href="#cb409-8" aria-hidden="true"></a> olBeginTight = { (},</span>
+<span id="cb409-9"><a href="#cb409-9" aria-hidden="true"></a> olItemWithNumber = {<span class="co">%</span></span>
+<span id="cb409-10"><a href="#cb409-10" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
+<span id="cb409-11"><a href="#cb409-11" aria-hidden="true"></a> the first</span>
+<span id="cb409-12"><a href="#cb409-12" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb409-13"><a href="#cb409-13" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
+<span id="cb409-14"><a href="#cb409-14" aria-hidden="true"></a> , the second</span>
+<span id="cb409-15"><a href="#cb409-15" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb409-16"><a href="#cb409-16" aria-hidden="true"></a> , and the third</span>
+<span id="cb409-17"><a href="#cb409-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb409-18"><a href="#cb409-18" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb409-19"><a href="#cb409-19" aria-hidden="true"></a> },</span>
+<span id="cb409-20"><a href="#cb409-20" aria-hidden="true"></a> olItemEnd = {},</span>
+<span id="cb409-21"><a href="#cb409-21" aria-hidden="true"></a> olEndTight = {).},</span>
+<span id="cb409-22"><a href="#cb409-22" aria-hidden="true"></a> },</span>
+<span id="cb409-23"><a href="#cb409-23" aria-hidden="true"></a>}</span>
+<span id="cb409-24"><a href="#cb409-24" aria-hidden="true"></a>This is a tight list</span>
+<span id="cb409-25"><a href="#cb409-25" aria-hidden="true"></a></span>
+<span id="cb409-26"><a href="#cb409-26" aria-hidden="true"></a>1. item</span>
+<span id="cb409-27"><a href="#cb409-27" aria-hidden="true"></a>2. item</span>
+<span id="cb409-28"><a href="#cb409-28" aria-hidden="true"></a>3. item</span>
+<span id="cb409-29"><a href="#cb409-29" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb409-30"><a href="#cb409-30" aria-hidden="true"></a></span>
+<span id="cb409-31"><a href="#cb409-31" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
+<span id="cb409-32"><a href="#cb409-32" aria-hidden="true"></a> renderers = {</span>
+<span id="cb409-33"><a href="#cb409-33" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
+<span id="cb409-34"><a href="#cb409-34" aria-hidden="true"></a> :<span class="fu">\par</span></span>
+<span id="cb409-35"><a href="#cb409-35" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb409-36"><a href="#cb409-36" aria-hidden="true"></a> },</span>
+<span id="cb409-37"><a href="#cb409-37" aria-hidden="true"></a> olBeginTight = {<span class="kw">\begin</span>{<span class="ex">enumerate</span>}},</span>
+<span id="cb409-38"><a href="#cb409-38" aria-hidden="true"></a> olItemWithNumber = {<span class="co">%</span></span>
+<span id="cb409-39"><a href="#cb409-39" aria-hidden="true"></a> <span class="fu">\item</span> This is the</span>
+<span id="cb409-40"><a href="#cb409-40" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
+<span id="cb409-41"><a href="#cb409-41" aria-hidden="true"></a> first</span>
+<span id="cb409-42"><a href="#cb409-42" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb409-43"><a href="#cb409-43" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
+<span id="cb409-44"><a href="#cb409-44" aria-hidden="true"></a> second</span>
+<span id="cb409-45"><a href="#cb409-45" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb409-46"><a href="#cb409-46" aria-hidden="true"></a> third</span>
+<span id="cb409-47"><a href="#cb409-47" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb409-48"><a href="#cb409-48" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb409-49"><a href="#cb409-49" aria-hidden="true"></a> },</span>
+<span id="cb409-50"><a href="#cb409-50" aria-hidden="true"></a> olItemEnd = {.},</span>
+<span id="cb409-51"><a href="#cb409-51" aria-hidden="true"></a> olEnd = {<span class="kw">\end</span>{<span class="ex">enumerate</span>}},</span>
+<span id="cb409-52"><a href="#cb409-52" aria-hidden="true"></a> },</span>
+<span id="cb409-53"><a href="#cb409-53" aria-hidden="true"></a>}</span>
+<span id="cb409-54"><a href="#cb409-54" aria-hidden="true"></a>This is a loose list</span>
+<span id="cb409-55"><a href="#cb409-55" aria-hidden="true"></a></span>
+<span id="cb409-56"><a href="#cb409-56" aria-hidden="true"></a>1. item</span>
+<span id="cb409-57"><a href="#cb409-57" aria-hidden="true"></a></span>
+<span id="cb409-58"><a href="#cb409-58" aria-hidden="true"></a>2. item</span>
+<span id="cb409-59"><a href="#cb409-59" aria-hidden="true"></a></span>
+<span id="cb409-60"><a href="#cb409-60" aria-hidden="true"></a>3. item</span>
+<span id="cb409-61"><a href="#cb409-61" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb409-62"><a href="#cb409-62" aria-hidden="true"></a></span>
+<span id="cb409-63"><a href="#cb409-63" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb410"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb410-1"><a href="#cb410-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight list (the first item, the second item, and the third item).</p>
@@ -5113,69 +5162,69 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-37">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb408"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb408-1"><a href="#cb408-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb408-2"><a href="#cb408-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
-<span id="cb408-3"><a href="#cb408-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionStartNumber</span>{true}</span>
-<span id="cb408-4"><a href="#cb408-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb408-5"><a href="#cb408-5" aria-hidden="true"></a></span>
-<span id="cb408-6"><a href="#cb408-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
-<span id="cb408-7"><a href="#cb408-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span>
-<span id="cb408-8"><a href="#cb408-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
-<span id="cb408-9"><a href="#cb408-9" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
-<span id="cb408-10"><a href="#cb408-10" aria-hidden="true"></a> the first</span>
-<span id="cb408-11"><a href="#cb408-11" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb408-12"><a href="#cb408-12" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
-<span id="cb408-13"><a href="#cb408-13" aria-hidden="true"></a> , the second</span>
-<span id="cb408-14"><a href="#cb408-14" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb408-15"><a href="#cb408-15" aria-hidden="true"></a> , and the third</span>
-<span id="cb408-16"><a href="#cb408-16" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb408-17"><a href="#cb408-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb408-18"><a href="#cb408-18" aria-hidden="true"></a>}</span>
-<span id="cb408-19"><a href="#cb408-19" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span>
-<span id="cb408-20"><a href="#cb408-20" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span>
-<span id="cb408-21"><a href="#cb408-21" aria-hidden="true"></a></span>
-<span id="cb408-22"><a href="#cb408-22" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb408-23"><a href="#cb408-23" aria-hidden="true"></a>This is a tight list</span>
-<span id="cb408-24"><a href="#cb408-24" aria-hidden="true"></a></span>
-<span id="cb408-25"><a href="#cb408-25" aria-hidden="true"></a>1. item</span>
-<span id="cb408-26"><a href="#cb408-26" aria-hidden="true"></a>2. item</span>
-<span id="cb408-27"><a href="#cb408-27" aria-hidden="true"></a>3. item</span>
-<span id="cb408-28"><a href="#cb408-28" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb408-29"><a href="#cb408-29" aria-hidden="true"></a></span>
-<span id="cb408-30"><a href="#cb408-30" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb408-31"><a href="#cb408-31" aria-hidden="true"></a> :<span class="fu">\par</span></span>
-<span id="cb408-32"><a href="#cb408-32" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb408-33"><a href="#cb408-33" aria-hidden="true"></a>}</span>
-<span id="cb408-34"><a href="#cb408-34" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBegin</span>{<span class="fu">\startitemize</span>}</span>
-<span id="cb408-35"><a href="#cb408-35" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
-<span id="cb408-36"><a href="#cb408-36" aria-hidden="true"></a> <span class="fu">\sym</span>{#1.}</span>
-<span id="cb408-37"><a href="#cb408-37" aria-hidden="true"></a> This is the</span>
-<span id="cb408-38"><a href="#cb408-38" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
-<span id="cb408-39"><a href="#cb408-39" aria-hidden="true"></a> first</span>
-<span id="cb408-40"><a href="#cb408-40" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb408-41"><a href="#cb408-41" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
-<span id="cb408-42"><a href="#cb408-42" aria-hidden="true"></a> second</span>
-<span id="cb408-43"><a href="#cb408-43" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb408-44"><a href="#cb408-44" aria-hidden="true"></a> third</span>
-<span id="cb408-45"><a href="#cb408-45" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb408-46"><a href="#cb408-46" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb408-47"><a href="#cb408-47" aria-hidden="true"></a>}</span>
-<span id="cb408-48"><a href="#cb408-48" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span>
-<span id="cb408-49"><a href="#cb408-49" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEnd</span>{<span class="fu">\stopitemize</span>}</span>
-<span id="cb408-50"><a href="#cb408-50" aria-hidden="true"></a></span>
-<span id="cb408-51"><a href="#cb408-51" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb408-52"><a href="#cb408-52" aria-hidden="true"></a>This is a loose list</span>
-<span id="cb408-53"><a href="#cb408-53" aria-hidden="true"></a></span>
-<span id="cb408-54"><a href="#cb408-54" aria-hidden="true"></a>1. item</span>
-<span id="cb408-55"><a href="#cb408-55" aria-hidden="true"></a></span>
-<span id="cb408-56"><a href="#cb408-56" aria-hidden="true"></a>2. item</span>
-<span id="cb408-57"><a href="#cb408-57" aria-hidden="true"></a></span>
-<span id="cb408-58"><a href="#cb408-58" aria-hidden="true"></a>3. item</span>
-<span id="cb408-59"><a href="#cb408-59" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb408-60"><a href="#cb408-60" aria-hidden="true"></a></span>
-<span id="cb408-61"><a href="#cb408-61" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb409"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb409-1"><a href="#cb409-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb411"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb411-1"><a href="#cb411-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb411-2"><a href="#cb411-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
+<span id="cb411-3"><a href="#cb411-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionStartNumber</span>{true}</span>
+<span id="cb411-4"><a href="#cb411-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb411-5"><a href="#cb411-5" aria-hidden="true"></a></span>
+<span id="cb411-6"><a href="#cb411-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
+<span id="cb411-7"><a href="#cb411-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span>
+<span id="cb411-8"><a href="#cb411-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
+<span id="cb411-9"><a href="#cb411-9" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
+<span id="cb411-10"><a href="#cb411-10" aria-hidden="true"></a> the first</span>
+<span id="cb411-11"><a href="#cb411-11" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb411-12"><a href="#cb411-12" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
+<span id="cb411-13"><a href="#cb411-13" aria-hidden="true"></a> , the second</span>
+<span id="cb411-14"><a href="#cb411-14" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb411-15"><a href="#cb411-15" aria-hidden="true"></a> , and the third</span>
+<span id="cb411-16"><a href="#cb411-16" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb411-17"><a href="#cb411-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb411-18"><a href="#cb411-18" aria-hidden="true"></a>}</span>
+<span id="cb411-19"><a href="#cb411-19" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span>
+<span id="cb411-20"><a href="#cb411-20" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span>
+<span id="cb411-21"><a href="#cb411-21" aria-hidden="true"></a></span>
+<span id="cb411-22"><a href="#cb411-22" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb411-23"><a href="#cb411-23" aria-hidden="true"></a>This is a tight list</span>
+<span id="cb411-24"><a href="#cb411-24" aria-hidden="true"></a></span>
+<span id="cb411-25"><a href="#cb411-25" aria-hidden="true"></a>1. item</span>
+<span id="cb411-26"><a href="#cb411-26" aria-hidden="true"></a>2. item</span>
+<span id="cb411-27"><a href="#cb411-27" aria-hidden="true"></a>3. item</span>
+<span id="cb411-28"><a href="#cb411-28" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb411-29"><a href="#cb411-29" aria-hidden="true"></a></span>
+<span id="cb411-30"><a href="#cb411-30" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb411-31"><a href="#cb411-31" aria-hidden="true"></a> :<span class="fu">\par</span></span>
+<span id="cb411-32"><a href="#cb411-32" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb411-33"><a href="#cb411-33" aria-hidden="true"></a>}</span>
+<span id="cb411-34"><a href="#cb411-34" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlBegin</span>{<span class="fu">\startitemize</span>}</span>
+<span id="cb411-35"><a href="#cb411-35" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span>
+<span id="cb411-36"><a href="#cb411-36" aria-hidden="true"></a> <span class="fu">\sym</span>{#1.}</span>
+<span id="cb411-37"><a href="#cb411-37" aria-hidden="true"></a> This is the</span>
+<span id="cb411-38"><a href="#cb411-38" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span>
+<span id="cb411-39"><a href="#cb411-39" aria-hidden="true"></a> first</span>
+<span id="cb411-40"><a href="#cb411-40" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb411-41"><a href="#cb411-41" aria-hidden="true"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span>
+<span id="cb411-42"><a href="#cb411-42" aria-hidden="true"></a> second</span>
+<span id="cb411-43"><a href="#cb411-43" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb411-44"><a href="#cb411-44" aria-hidden="true"></a> third</span>
+<span id="cb411-45"><a href="#cb411-45" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb411-46"><a href="#cb411-46" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb411-47"><a href="#cb411-47" aria-hidden="true"></a>}</span>
+<span id="cb411-48"><a href="#cb411-48" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span>
+<span id="cb411-49"><a href="#cb411-49" aria-hidden="true"></a><span class="fu">\def\markdownRendererOlEnd</span>{<span class="fu">\stopitemize</span>}</span>
+<span id="cb411-50"><a href="#cb411-50" aria-hidden="true"></a></span>
+<span id="cb411-51"><a href="#cb411-51" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb411-52"><a href="#cb411-52" aria-hidden="true"></a>This is a loose list</span>
+<span id="cb411-53"><a href="#cb411-53" aria-hidden="true"></a></span>
+<span id="cb411-54"><a href="#cb411-54" aria-hidden="true"></a>1. item</span>
+<span id="cb411-55"><a href="#cb411-55" aria-hidden="true"></a></span>
+<span id="cb411-56"><a href="#cb411-56" aria-hidden="true"></a>2. item</span>
+<span id="cb411-57"><a href="#cb411-57" aria-hidden="true"></a></span>
+<span id="cb411-58"><a href="#cb411-58" aria-hidden="true"></a>3. item</span>
+<span id="cb411-59"><a href="#cb411-59" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb411-60"><a href="#cb411-60" aria-hidden="true"></a></span>
+<span id="cb411-61"><a href="#cb411-61" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb412"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb412-1"><a href="#cb412-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight list (the first item, the second item, and the third item).</p>
@@ -5198,86 +5247,86 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererDlEndTight</code> macro represents the end of a definition list that contains no item with several paragraphs of text (the list is tight). This macro will only be produced, when the <strong><code>tightLists</code></strong> option is <code>false</code>. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-26">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb410"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb410-1"><a href="#cb410-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb410-2"><a href="#cb410-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionDefinitionLists</span>{true}</span>
-<span id="cb410-3"><a href="#cb410-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
-<span id="cb410-4"><a href="#cb410-4" aria-hidden="true"></a></span>
-<span id="cb410-5"><a href="#cb410-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb410-6"><a href="#cb410-6" aria-hidden="true"></a> :<span class="co">%</span></span>
-<span id="cb410-7"><a href="#cb410-7" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb410-8"><a href="#cb410-8" aria-hidden="true"></a>}</span>
-<span id="cb410-9"><a href="#cb410-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{<span class="co">%</span></span>
-<span id="cb410-10"><a href="#cb410-10" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
-<span id="cb410-11"><a href="#cb410-11" aria-hidden="true"></a> <span class="fu">\parindent</span>=0pt</span>
-<span id="cb410-12"><a href="#cb410-12" aria-hidden="true"></a>}</span>
-<span id="cb410-13"><a href="#cb410-13" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
-<span id="cb410-14"><a href="#cb410-14" aria-hidden="true"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span>
-<span id="cb410-15"><a href="#cb410-15" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
-<span id="cb410-16"><a href="#cb410-16" aria-hidden="true"></a> ,</span>
-<span id="cb410-17"><a href="#cb410-17" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
-<span id="cb410-18"><a href="#cb410-18" aria-hidden="true"></a> , and</span>
-<span id="cb410-19"><a href="#cb410-19" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span>
-<span id="cb410-20"><a href="#cb410-20" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb410-21"><a href="#cb410-21" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb410-22"><a href="#cb410-22" aria-hidden="true"></a>}</span>
-<span id="cb410-23"><a href="#cb410-23" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span>
-<span id="cb410-24"><a href="#cb410-24" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\par</span>--<span class="fu">\kern</span> 0.5em}</span>
-<span id="cb410-25"><a href="#cb410-25" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEndTight</span>{<span class="fu">\endgroup</span>}</span>
-<span id="cb410-26"><a href="#cb410-26" aria-hidden="true"></a></span>
-<span id="cb410-27"><a href="#cb410-27" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb410-28"><a href="#cb410-28" aria-hidden="true"></a>This is a tight definition list</span>
-<span id="cb410-29"><a href="#cb410-29" aria-hidden="true"></a></span>
-<span id="cb410-30"><a href="#cb410-30" aria-hidden="true"></a>Coffee</span>
-<span id="cb410-31"><a href="#cb410-31" aria-hidden="true"></a>: black hot drink</span>
-<span id="cb410-32"><a href="#cb410-32" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
-<span id="cb410-33"><a href="#cb410-33" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
-<span id="cb410-34"><a href="#cb410-34" aria-hidden="true"></a></span>
-<span id="cb410-35"><a href="#cb410-35" aria-hidden="true"></a>Milk</span>
-<span id="cb410-36"><a href="#cb410-36" aria-hidden="true"></a>: white cold drink</span>
-<span id="cb410-37"><a href="#cb410-37" aria-hidden="true"></a>: nutrient-rich</span>
-<span id="cb410-38"><a href="#cb410-38" aria-hidden="true"></a>: produced on an industrial scale</span>
-<span id="cb410-39"><a href="#cb410-39" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb410-40"><a href="#cb410-40" aria-hidden="true"></a></span>
-<span id="cb410-41"><a href="#cb410-41" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb410-42"><a href="#cb410-42" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb410-43"><a href="#cb410-43" aria-hidden="true"></a>}</span>
-<span id="cb410-44"><a href="#cb410-44" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span>
-<span id="cb410-45"><a href="#cb410-45" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
-<span id="cb410-46"><a href="#cb410-46" aria-hidden="true"></a> . #1 is a</span>
-<span id="cb410-47"><a href="#cb410-47" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
-<span id="cb410-48"><a href="#cb410-48" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
-<span id="cb410-49"><a href="#cb410-49" aria-hidden="true"></a> ,</span>
-<span id="cb410-50"><a href="#cb410-50" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span>
-<span id="cb410-51"><a href="#cb410-51" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb410-52"><a href="#cb410-52" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb410-53"><a href="#cb410-53" aria-hidden="true"></a>}</span>
-<span id="cb410-54"><a href="#cb410-54" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span>
-<span id="cb410-55"><a href="#cb410-55" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span>
-<span id="cb410-56"><a href="#cb410-56" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span>
-<span id="cb410-57"><a href="#cb410-57" aria-hidden="true"></a></span>
-<span id="cb410-58"><a href="#cb410-58" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb410-59"><a href="#cb410-59" aria-hidden="true"></a>This is a loose definition list</span>
-<span id="cb410-60"><a href="#cb410-60" aria-hidden="true"></a></span>
-<span id="cb410-61"><a href="#cb410-61" aria-hidden="true"></a>Coffee</span>
-<span id="cb410-62"><a href="#cb410-62" aria-hidden="true"></a></span>
-<span id="cb410-63"><a href="#cb410-63" aria-hidden="true"></a>: black hot drink</span>
-<span id="cb410-64"><a href="#cb410-64" aria-hidden="true"></a></span>
-<span id="cb410-65"><a href="#cb410-65" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
-<span id="cb410-66"><a href="#cb410-66" aria-hidden="true"></a></span>
-<span id="cb410-67"><a href="#cb410-67" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
-<span id="cb410-68"><a href="#cb410-68" aria-hidden="true"></a></span>
-<span id="cb410-69"><a href="#cb410-69" aria-hidden="true"></a>Milk</span>
-<span id="cb410-70"><a href="#cb410-70" aria-hidden="true"></a></span>
-<span id="cb410-71"><a href="#cb410-71" aria-hidden="true"></a>: white cold drink</span>
-<span id="cb410-72"><a href="#cb410-72" aria-hidden="true"></a></span>
-<span id="cb410-73"><a href="#cb410-73" aria-hidden="true"></a>: nutrient-rich</span>
-<span id="cb410-74"><a href="#cb410-74" aria-hidden="true"></a></span>
-<span id="cb410-75"><a href="#cb410-75" aria-hidden="true"></a>: produced on an industrial scale</span>
-<span id="cb410-76"><a href="#cb410-76" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb410-77"><a href="#cb410-77" aria-hidden="true"></a></span>
-<span id="cb410-78"><a href="#cb410-78" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb411"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb411-1"><a href="#cb411-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb413"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb413-1"><a href="#cb413-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb413-2"><a href="#cb413-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionDefinitionLists</span>{true}</span>
+<span id="cb413-3"><a href="#cb413-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
+<span id="cb413-4"><a href="#cb413-4" aria-hidden="true"></a></span>
+<span id="cb413-5"><a href="#cb413-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb413-6"><a href="#cb413-6" aria-hidden="true"></a> :<span class="co">%</span></span>
+<span id="cb413-7"><a href="#cb413-7" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb413-8"><a href="#cb413-8" aria-hidden="true"></a>}</span>
+<span id="cb413-9"><a href="#cb413-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{<span class="co">%</span></span>
+<span id="cb413-10"><a href="#cb413-10" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
+<span id="cb413-11"><a href="#cb413-11" aria-hidden="true"></a> <span class="fu">\parindent</span>=0pt</span>
+<span id="cb413-12"><a href="#cb413-12" aria-hidden="true"></a>}</span>
+<span id="cb413-13"><a href="#cb413-13" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
+<span id="cb413-14"><a href="#cb413-14" aria-hidden="true"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span>
+<span id="cb413-15"><a href="#cb413-15" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
+<span id="cb413-16"><a href="#cb413-16" aria-hidden="true"></a> ,</span>
+<span id="cb413-17"><a href="#cb413-17" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
+<span id="cb413-18"><a href="#cb413-18" aria-hidden="true"></a> , and</span>
+<span id="cb413-19"><a href="#cb413-19" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span>
+<span id="cb413-20"><a href="#cb413-20" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb413-21"><a href="#cb413-21" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb413-22"><a href="#cb413-22" aria-hidden="true"></a>}</span>
+<span id="cb413-23"><a href="#cb413-23" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span>
+<span id="cb413-24"><a href="#cb413-24" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\par</span>--<span class="fu">\kern</span> 0.5em}</span>
+<span id="cb413-25"><a href="#cb413-25" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEndTight</span>{<span class="fu">\endgroup</span>}</span>
+<span id="cb413-26"><a href="#cb413-26" aria-hidden="true"></a></span>
+<span id="cb413-27"><a href="#cb413-27" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb413-28"><a href="#cb413-28" aria-hidden="true"></a>This is a tight definition list</span>
+<span id="cb413-29"><a href="#cb413-29" aria-hidden="true"></a></span>
+<span id="cb413-30"><a href="#cb413-30" aria-hidden="true"></a>Coffee</span>
+<span id="cb413-31"><a href="#cb413-31" aria-hidden="true"></a>: black hot drink</span>
+<span id="cb413-32"><a href="#cb413-32" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
+<span id="cb413-33"><a href="#cb413-33" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
+<span id="cb413-34"><a href="#cb413-34" aria-hidden="true"></a></span>
+<span id="cb413-35"><a href="#cb413-35" aria-hidden="true"></a>Milk</span>
+<span id="cb413-36"><a href="#cb413-36" aria-hidden="true"></a>: white cold drink</span>
+<span id="cb413-37"><a href="#cb413-37" aria-hidden="true"></a>: nutrient-rich</span>
+<span id="cb413-38"><a href="#cb413-38" aria-hidden="true"></a>: produced on an industrial scale</span>
+<span id="cb413-39"><a href="#cb413-39" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb413-40"><a href="#cb413-40" aria-hidden="true"></a></span>
+<span id="cb413-41"><a href="#cb413-41" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb413-42"><a href="#cb413-42" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb413-43"><a href="#cb413-43" aria-hidden="true"></a>}</span>
+<span id="cb413-44"><a href="#cb413-44" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span>
+<span id="cb413-45"><a href="#cb413-45" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
+<span id="cb413-46"><a href="#cb413-46" aria-hidden="true"></a> . #1 is a</span>
+<span id="cb413-47"><a href="#cb413-47" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
+<span id="cb413-48"><a href="#cb413-48" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
+<span id="cb413-49"><a href="#cb413-49" aria-hidden="true"></a> ,</span>
+<span id="cb413-50"><a href="#cb413-50" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span>
+<span id="cb413-51"><a href="#cb413-51" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb413-52"><a href="#cb413-52" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb413-53"><a href="#cb413-53" aria-hidden="true"></a>}</span>
+<span id="cb413-54"><a href="#cb413-54" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span>
+<span id="cb413-55"><a href="#cb413-55" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span>
+<span id="cb413-56"><a href="#cb413-56" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span>
+<span id="cb413-57"><a href="#cb413-57" aria-hidden="true"></a></span>
+<span id="cb413-58"><a href="#cb413-58" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb413-59"><a href="#cb413-59" aria-hidden="true"></a>This is a loose definition list</span>
+<span id="cb413-60"><a href="#cb413-60" aria-hidden="true"></a></span>
+<span id="cb413-61"><a href="#cb413-61" aria-hidden="true"></a>Coffee</span>
+<span id="cb413-62"><a href="#cb413-62" aria-hidden="true"></a></span>
+<span id="cb413-63"><a href="#cb413-63" aria-hidden="true"></a>: black hot drink</span>
+<span id="cb413-64"><a href="#cb413-64" aria-hidden="true"></a></span>
+<span id="cb413-65"><a href="#cb413-65" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
+<span id="cb413-66"><a href="#cb413-66" aria-hidden="true"></a></span>
+<span id="cb413-67"><a href="#cb413-67" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
+<span id="cb413-68"><a href="#cb413-68" aria-hidden="true"></a></span>
+<span id="cb413-69"><a href="#cb413-69" aria-hidden="true"></a>Milk</span>
+<span id="cb413-70"><a href="#cb413-70" aria-hidden="true"></a></span>
+<span id="cb413-71"><a href="#cb413-71" aria-hidden="true"></a>: white cold drink</span>
+<span id="cb413-72"><a href="#cb413-72" aria-hidden="true"></a></span>
+<span id="cb413-73"><a href="#cb413-73" aria-hidden="true"></a>: nutrient-rich</span>
+<span id="cb413-74"><a href="#cb413-74" aria-hidden="true"></a></span>
+<span id="cb413-75"><a href="#cb413-75" aria-hidden="true"></a>: produced on an industrial scale</span>
+<span id="cb413-76"><a href="#cb413-76" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb413-77"><a href="#cb413-77" aria-hidden="true"></a></span>
+<span id="cb413-78"><a href="#cb413-78" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb414"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb414-1"><a href="#cb414-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight definition list:</p>
@@ -5295,90 +5344,90 @@ Thomas,Edison,1847</code></pre>
</ul>
<p>This is a loose definition list. Coffee is a black hot drink, prepared from roasted coffee beans, and one of the most traded agricultural commodities in the world. Milk is a white cold drink, nutrient-rich, and produced on an industrial scale.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-48"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-49"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb412"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb412-1"><a href="#cb412-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb412-2"><a href="#cb412-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[definitionLists, tightLists]{<span class="ex">markdown</span>}</span>
-<span id="cb412-3"><a href="#cb412-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb412-4"><a href="#cb412-4" aria-hidden="true"></a></span>
-<span id="cb412-5"><a href="#cb412-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
-<span id="cb412-6"><a href="#cb412-6" aria-hidden="true"></a> renderers = {</span>
-<span id="cb412-7"><a href="#cb412-7" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
-<span id="cb412-8"><a href="#cb412-8" aria-hidden="true"></a> :<span class="co">%</span></span>
-<span id="cb412-9"><a href="#cb412-9" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb412-10"><a href="#cb412-10" aria-hidden="true"></a> },</span>
-<span id="cb412-11"><a href="#cb412-11" aria-hidden="true"></a> dlBeginTight = {<span class="kw">\begin</span>{<span class="ex">description</span>}},</span>
-<span id="cb412-12"><a href="#cb412-12" aria-hidden="true"></a> dlItem = {<span class="co">%</span></span>
-<span id="cb412-13"><a href="#cb412-13" aria-hidden="true"></a> <span class="fu">\item</span>[#1]</span>
-<span id="cb412-14"><a href="#cb412-14" aria-hidden="true"></a> <span class="kw">\begin</span>{<span class="ex">itemize</span>}</span>
-<span id="cb412-15"><a href="#cb412-15" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
-<span id="cb412-16"><a href="#cb412-16" aria-hidden="true"></a> ,</span>
-<span id="cb412-17"><a href="#cb412-17" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
-<span id="cb412-18"><a href="#cb412-18" aria-hidden="true"></a> , and</span>
-<span id="cb412-19"><a href="#cb412-19" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span>
-<span id="cb412-20"><a href="#cb412-20" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb412-21"><a href="#cb412-21" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb412-22"><a href="#cb412-22" aria-hidden="true"></a> },</span>
-<span id="cb412-23"><a href="#cb412-23" aria-hidden="true"></a> dlItemEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span>
-<span id="cb412-24"><a href="#cb412-24" aria-hidden="true"></a> dlDefinitionBegin = <span class="fu">\item</span>,</span>
-<span id="cb412-25"><a href="#cb412-25" aria-hidden="true"></a> dlEndTight = {<span class="kw">\end</span>{<span class="ex">description</span>}},</span>
-<span id="cb412-26"><a href="#cb412-26" aria-hidden="true"></a> },</span>
-<span id="cb412-27"><a href="#cb412-27" aria-hidden="true"></a>}</span>
-<span id="cb412-28"><a href="#cb412-28" aria-hidden="true"></a>This is a tight definition list</span>
-<span id="cb412-29"><a href="#cb412-29" aria-hidden="true"></a></span>
-<span id="cb412-30"><a href="#cb412-30" aria-hidden="true"></a>Coffee</span>
-<span id="cb412-31"><a href="#cb412-31" aria-hidden="true"></a>: black hot drink</span>
-<span id="cb412-32"><a href="#cb412-32" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
-<span id="cb412-33"><a href="#cb412-33" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
-<span id="cb412-34"><a href="#cb412-34" aria-hidden="true"></a></span>
-<span id="cb412-35"><a href="#cb412-35" aria-hidden="true"></a>Milk</span>
-<span id="cb412-36"><a href="#cb412-36" aria-hidden="true"></a>: white cold drink</span>
-<span id="cb412-37"><a href="#cb412-37" aria-hidden="true"></a>: nutrient-rich</span>
-<span id="cb412-38"><a href="#cb412-38" aria-hidden="true"></a>: produced on an industrial scale</span>
-<span id="cb412-39"><a href="#cb412-39" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb412-40"><a href="#cb412-40" aria-hidden="true"></a></span>
-<span id="cb412-41"><a href="#cb412-41" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
-<span id="cb412-42"><a href="#cb412-42" aria-hidden="true"></a> renderers = {</span>
-<span id="cb412-43"><a href="#cb412-43" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
-<span id="cb412-44"><a href="#cb412-44" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb412-45"><a href="#cb412-45" aria-hidden="true"></a> },</span>
-<span id="cb412-46"><a href="#cb412-46" aria-hidden="true"></a> dlBegin = {},</span>
-<span id="cb412-47"><a href="#cb412-47" aria-hidden="true"></a> dlItem = {<span class="co">%</span></span>
-<span id="cb412-48"><a href="#cb412-48" aria-hidden="true"></a> . #1 is a</span>
-<span id="cb412-49"><a href="#cb412-49" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
-<span id="cb412-50"><a href="#cb412-50" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
-<span id="cb412-51"><a href="#cb412-51" aria-hidden="true"></a> ,</span>
-<span id="cb412-52"><a href="#cb412-52" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span>
-<span id="cb412-53"><a href="#cb412-53" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb412-54"><a href="#cb412-54" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb412-55"><a href="#cb412-55" aria-hidden="true"></a> },</span>
-<span id="cb412-56"><a href="#cb412-56" aria-hidden="true"></a> dlItemEnd = {},</span>
-<span id="cb412-57"><a href="#cb412-57" aria-hidden="true"></a> dlDefinitionEnd = {},</span>
-<span id="cb412-58"><a href="#cb412-58" aria-hidden="true"></a> dlEnd = {.},</span>
-<span id="cb412-59"><a href="#cb412-59" aria-hidden="true"></a> },</span>
-<span id="cb412-60"><a href="#cb412-60" aria-hidden="true"></a>}</span>
-<span id="cb412-61"><a href="#cb412-61" aria-hidden="true"></a>This is a loose definition list</span>
-<span id="cb412-62"><a href="#cb412-62" aria-hidden="true"></a></span>
-<span id="cb412-63"><a href="#cb412-63" aria-hidden="true"></a>Coffee</span>
-<span id="cb412-64"><a href="#cb412-64" aria-hidden="true"></a></span>
-<span id="cb412-65"><a href="#cb412-65" aria-hidden="true"></a>: black hot drink</span>
-<span id="cb412-66"><a href="#cb412-66" aria-hidden="true"></a></span>
-<span id="cb412-67"><a href="#cb412-67" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
-<span id="cb412-68"><a href="#cb412-68" aria-hidden="true"></a></span>
-<span id="cb412-69"><a href="#cb412-69" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
-<span id="cb412-70"><a href="#cb412-70" aria-hidden="true"></a></span>
-<span id="cb412-71"><a href="#cb412-71" aria-hidden="true"></a>Milk</span>
-<span id="cb412-72"><a href="#cb412-72" aria-hidden="true"></a></span>
-<span id="cb412-73"><a href="#cb412-73" aria-hidden="true"></a>: white cold drink</span>
-<span id="cb412-74"><a href="#cb412-74" aria-hidden="true"></a></span>
-<span id="cb412-75"><a href="#cb412-75" aria-hidden="true"></a>: nutrient-rich</span>
-<span id="cb412-76"><a href="#cb412-76" aria-hidden="true"></a></span>
-<span id="cb412-77"><a href="#cb412-77" aria-hidden="true"></a>: produced on an industrial scale</span>
-<span id="cb412-78"><a href="#cb412-78" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb412-79"><a href="#cb412-79" aria-hidden="true"></a></span>
-<span id="cb412-80"><a href="#cb412-80" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb413"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb413-1"><a href="#cb413-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb415"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb415-1"><a href="#cb415-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb415-2"><a href="#cb415-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[definitionLists, tightLists]{<span class="ex">markdown</span>}</span>
+<span id="cb415-3"><a href="#cb415-3" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb415-4"><a href="#cb415-4" aria-hidden="true"></a></span>
+<span id="cb415-5"><a href="#cb415-5" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
+<span id="cb415-6"><a href="#cb415-6" aria-hidden="true"></a> renderers = {</span>
+<span id="cb415-7"><a href="#cb415-7" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
+<span id="cb415-8"><a href="#cb415-8" aria-hidden="true"></a> :<span class="co">%</span></span>
+<span id="cb415-9"><a href="#cb415-9" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb415-10"><a href="#cb415-10" aria-hidden="true"></a> },</span>
+<span id="cb415-11"><a href="#cb415-11" aria-hidden="true"></a> dlBeginTight = {<span class="kw">\begin</span>{<span class="ex">description</span>}},</span>
+<span id="cb415-12"><a href="#cb415-12" aria-hidden="true"></a> dlItem = {<span class="co">%</span></span>
+<span id="cb415-13"><a href="#cb415-13" aria-hidden="true"></a> <span class="fu">\item</span>[#1]</span>
+<span id="cb415-14"><a href="#cb415-14" aria-hidden="true"></a> <span class="kw">\begin</span>{<span class="ex">itemize</span>}</span>
+<span id="cb415-15"><a href="#cb415-15" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
+<span id="cb415-16"><a href="#cb415-16" aria-hidden="true"></a> ,</span>
+<span id="cb415-17"><a href="#cb415-17" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
+<span id="cb415-18"><a href="#cb415-18" aria-hidden="true"></a> , and</span>
+<span id="cb415-19"><a href="#cb415-19" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span>
+<span id="cb415-20"><a href="#cb415-20" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb415-21"><a href="#cb415-21" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb415-22"><a href="#cb415-22" aria-hidden="true"></a> },</span>
+<span id="cb415-23"><a href="#cb415-23" aria-hidden="true"></a> dlItemEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span>
+<span id="cb415-24"><a href="#cb415-24" aria-hidden="true"></a> dlDefinitionBegin = <span class="fu">\item</span>,</span>
+<span id="cb415-25"><a href="#cb415-25" aria-hidden="true"></a> dlEndTight = {<span class="kw">\end</span>{<span class="ex">description</span>}},</span>
+<span id="cb415-26"><a href="#cb415-26" aria-hidden="true"></a> },</span>
+<span id="cb415-27"><a href="#cb415-27" aria-hidden="true"></a>}</span>
+<span id="cb415-28"><a href="#cb415-28" aria-hidden="true"></a>This is a tight definition list</span>
+<span id="cb415-29"><a href="#cb415-29" aria-hidden="true"></a></span>
+<span id="cb415-30"><a href="#cb415-30" aria-hidden="true"></a>Coffee</span>
+<span id="cb415-31"><a href="#cb415-31" aria-hidden="true"></a>: black hot drink</span>
+<span id="cb415-32"><a href="#cb415-32" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
+<span id="cb415-33"><a href="#cb415-33" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
+<span id="cb415-34"><a href="#cb415-34" aria-hidden="true"></a></span>
+<span id="cb415-35"><a href="#cb415-35" aria-hidden="true"></a>Milk</span>
+<span id="cb415-36"><a href="#cb415-36" aria-hidden="true"></a>: white cold drink</span>
+<span id="cb415-37"><a href="#cb415-37" aria-hidden="true"></a>: nutrient-rich</span>
+<span id="cb415-38"><a href="#cb415-38" aria-hidden="true"></a>: produced on an industrial scale</span>
+<span id="cb415-39"><a href="#cb415-39" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb415-40"><a href="#cb415-40" aria-hidden="true"></a></span>
+<span id="cb415-41"><a href="#cb415-41" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
+<span id="cb415-42"><a href="#cb415-42" aria-hidden="true"></a> renderers = {</span>
+<span id="cb415-43"><a href="#cb415-43" aria-hidden="true"></a> interblockSeparator = {<span class="co">%</span></span>
+<span id="cb415-44"><a href="#cb415-44" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb415-45"><a href="#cb415-45" aria-hidden="true"></a> },</span>
+<span id="cb415-46"><a href="#cb415-46" aria-hidden="true"></a> dlBegin = {},</span>
+<span id="cb415-47"><a href="#cb415-47" aria-hidden="true"></a> dlItem = {<span class="co">%</span></span>
+<span id="cb415-48"><a href="#cb415-48" aria-hidden="true"></a> . #1 is a</span>
+<span id="cb415-49"><a href="#cb415-49" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
+<span id="cb415-50"><a href="#cb415-50" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
+<span id="cb415-51"><a href="#cb415-51" aria-hidden="true"></a> ,</span>
+<span id="cb415-52"><a href="#cb415-52" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span>
+<span id="cb415-53"><a href="#cb415-53" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb415-54"><a href="#cb415-54" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb415-55"><a href="#cb415-55" aria-hidden="true"></a> },</span>
+<span id="cb415-56"><a href="#cb415-56" aria-hidden="true"></a> dlItemEnd = {},</span>
+<span id="cb415-57"><a href="#cb415-57" aria-hidden="true"></a> dlDefinitionEnd = {},</span>
+<span id="cb415-58"><a href="#cb415-58" aria-hidden="true"></a> dlEnd = {.},</span>
+<span id="cb415-59"><a href="#cb415-59" aria-hidden="true"></a> },</span>
+<span id="cb415-60"><a href="#cb415-60" aria-hidden="true"></a>}</span>
+<span id="cb415-61"><a href="#cb415-61" aria-hidden="true"></a>This is a loose definition list</span>
+<span id="cb415-62"><a href="#cb415-62" aria-hidden="true"></a></span>
+<span id="cb415-63"><a href="#cb415-63" aria-hidden="true"></a>Coffee</span>
+<span id="cb415-64"><a href="#cb415-64" aria-hidden="true"></a></span>
+<span id="cb415-65"><a href="#cb415-65" aria-hidden="true"></a>: black hot drink</span>
+<span id="cb415-66"><a href="#cb415-66" aria-hidden="true"></a></span>
+<span id="cb415-67"><a href="#cb415-67" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
+<span id="cb415-68"><a href="#cb415-68" aria-hidden="true"></a></span>
+<span id="cb415-69"><a href="#cb415-69" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
+<span id="cb415-70"><a href="#cb415-70" aria-hidden="true"></a></span>
+<span id="cb415-71"><a href="#cb415-71" aria-hidden="true"></a>Milk</span>
+<span id="cb415-72"><a href="#cb415-72" aria-hidden="true"></a></span>
+<span id="cb415-73"><a href="#cb415-73" aria-hidden="true"></a>: white cold drink</span>
+<span id="cb415-74"><a href="#cb415-74" aria-hidden="true"></a></span>
+<span id="cb415-75"><a href="#cb415-75" aria-hidden="true"></a>: nutrient-rich</span>
+<span id="cb415-76"><a href="#cb415-76" aria-hidden="true"></a></span>
+<span id="cb415-77"><a href="#cb415-77" aria-hidden="true"></a>: produced on an industrial scale</span>
+<span id="cb415-78"><a href="#cb415-78" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb415-79"><a href="#cb415-79" aria-hidden="true"></a></span>
+<span id="cb415-80"><a href="#cb415-80" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb416"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb416-1"><a href="#cb416-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight definition list:</p>
@@ -5398,85 +5447,85 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-38">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb414"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb414-1"><a href="#cb414-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb414-2"><a href="#cb414-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionDefinitionLists</span>{true}</span>
-<span id="cb414-3"><a href="#cb414-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
-<span id="cb414-4"><a href="#cb414-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb414-5"><a href="#cb414-5" aria-hidden="true"></a></span>
-<span id="cb414-6"><a href="#cb414-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb414-7"><a href="#cb414-7" aria-hidden="true"></a> :<span class="co">%</span></span>
-<span id="cb414-8"><a href="#cb414-8" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb414-9"><a href="#cb414-9" aria-hidden="true"></a>}</span>
-<span id="cb414-10"><a href="#cb414-10" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{}</span>
-<span id="cb414-11"><a href="#cb414-11" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
-<span id="cb414-12"><a href="#cb414-12" aria-hidden="true"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span>
-<span id="cb414-13"><a href="#cb414-13" aria-hidden="true"></a> <span class="fu">\startitemize</span></span>
-<span id="cb414-14"><a href="#cb414-14" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
-<span id="cb414-15"><a href="#cb414-15" aria-hidden="true"></a> ,</span>
-<span id="cb414-16"><a href="#cb414-16" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
-<span id="cb414-17"><a href="#cb414-17" aria-hidden="true"></a> , and</span>
-<span id="cb414-18"><a href="#cb414-18" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span>
-<span id="cb414-19"><a href="#cb414-19" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb414-20"><a href="#cb414-20" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb414-21"><a href="#cb414-21" aria-hidden="true"></a>}</span>
-<span id="cb414-22"><a href="#cb414-22" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{<span class="fu">\stopitemize</span>}</span>
-<span id="cb414-23"><a href="#cb414-23" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\item</span>}</span>
-<span id="cb414-24"><a href="#cb414-24" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEndTight</span>{}</span>
-<span id="cb414-25"><a href="#cb414-25" aria-hidden="true"></a></span>
-<span id="cb414-26"><a href="#cb414-26" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb414-27"><a href="#cb414-27" aria-hidden="true"></a>This is a tight definition list</span>
-<span id="cb414-28"><a href="#cb414-28" aria-hidden="true"></a></span>
-<span id="cb414-29"><a href="#cb414-29" aria-hidden="true"></a>Coffee</span>
-<span id="cb414-30"><a href="#cb414-30" aria-hidden="true"></a>: black hot drink</span>
-<span id="cb414-31"><a href="#cb414-31" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
-<span id="cb414-32"><a href="#cb414-32" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
-<span id="cb414-33"><a href="#cb414-33" aria-hidden="true"></a></span>
-<span id="cb414-34"><a href="#cb414-34" aria-hidden="true"></a>Milk</span>
-<span id="cb414-35"><a href="#cb414-35" aria-hidden="true"></a>: white cold drink</span>
-<span id="cb414-36"><a href="#cb414-36" aria-hidden="true"></a>: nutrient-rich</span>
-<span id="cb414-37"><a href="#cb414-37" aria-hidden="true"></a>: produced on an industrial scale</span>
-<span id="cb414-38"><a href="#cb414-38" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb414-39"><a href="#cb414-39" aria-hidden="true"></a></span>
-<span id="cb414-40"><a href="#cb414-40" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb414-41"><a href="#cb414-41" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
-<span id="cb414-42"><a href="#cb414-42" aria-hidden="true"></a>}</span>
-<span id="cb414-43"><a href="#cb414-43" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span>
-<span id="cb414-44"><a href="#cb414-44" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
-<span id="cb414-45"><a href="#cb414-45" aria-hidden="true"></a> . #1 is a</span>
-<span id="cb414-46"><a href="#cb414-46" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
-<span id="cb414-47"><a href="#cb414-47" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
-<span id="cb414-48"><a href="#cb414-48" aria-hidden="true"></a> ,</span>
-<span id="cb414-49"><a href="#cb414-49" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span>
-<span id="cb414-50"><a href="#cb414-50" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb414-51"><a href="#cb414-51" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb414-52"><a href="#cb414-52" aria-hidden="true"></a>}</span>
-<span id="cb414-53"><a href="#cb414-53" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span>
-<span id="cb414-54"><a href="#cb414-54" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span>
-<span id="cb414-55"><a href="#cb414-55" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span>
-<span id="cb414-56"><a href="#cb414-56" aria-hidden="true"></a></span>
-<span id="cb414-57"><a href="#cb414-57" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb414-58"><a href="#cb414-58" aria-hidden="true"></a>This is a loose definition list</span>
-<span id="cb414-59"><a href="#cb414-59" aria-hidden="true"></a></span>
-<span id="cb414-60"><a href="#cb414-60" aria-hidden="true"></a>Coffee</span>
-<span id="cb414-61"><a href="#cb414-61" aria-hidden="true"></a></span>
-<span id="cb414-62"><a href="#cb414-62" aria-hidden="true"></a>: black hot drink</span>
-<span id="cb414-63"><a href="#cb414-63" aria-hidden="true"></a></span>
-<span id="cb414-64"><a href="#cb414-64" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
-<span id="cb414-65"><a href="#cb414-65" aria-hidden="true"></a></span>
-<span id="cb414-66"><a href="#cb414-66" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
-<span id="cb414-67"><a href="#cb414-67" aria-hidden="true"></a></span>
-<span id="cb414-68"><a href="#cb414-68" aria-hidden="true"></a>Milk</span>
-<span id="cb414-69"><a href="#cb414-69" aria-hidden="true"></a></span>
-<span id="cb414-70"><a href="#cb414-70" aria-hidden="true"></a>: white cold drink</span>
-<span id="cb414-71"><a href="#cb414-71" aria-hidden="true"></a></span>
-<span id="cb414-72"><a href="#cb414-72" aria-hidden="true"></a>: nutrient-rich</span>
-<span id="cb414-73"><a href="#cb414-73" aria-hidden="true"></a></span>
-<span id="cb414-74"><a href="#cb414-74" aria-hidden="true"></a>: produced on an industrial scale</span>
-<span id="cb414-75"><a href="#cb414-75" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb414-76"><a href="#cb414-76" aria-hidden="true"></a></span>
-<span id="cb414-77"><a href="#cb414-77" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb415"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb415-1"><a href="#cb415-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb417"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb417-1"><a href="#cb417-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb417-2"><a href="#cb417-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionDefinitionLists</span>{true}</span>
+<span id="cb417-3"><a href="#cb417-3" aria-hidden="true"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span>
+<span id="cb417-4"><a href="#cb417-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb417-5"><a href="#cb417-5" aria-hidden="true"></a></span>
+<span id="cb417-6"><a href="#cb417-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb417-7"><a href="#cb417-7" aria-hidden="true"></a> :<span class="co">%</span></span>
+<span id="cb417-8"><a href="#cb417-8" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb417-9"><a href="#cb417-9" aria-hidden="true"></a>}</span>
+<span id="cb417-10"><a href="#cb417-10" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{}</span>
+<span id="cb417-11"><a href="#cb417-11" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
+<span id="cb417-12"><a href="#cb417-12" aria-hidden="true"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span>
+<span id="cb417-13"><a href="#cb417-13" aria-hidden="true"></a> <span class="fu">\startitemize</span></span>
+<span id="cb417-14"><a href="#cb417-14" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
+<span id="cb417-15"><a href="#cb417-15" aria-hidden="true"></a> ,</span>
+<span id="cb417-16"><a href="#cb417-16" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span>
+<span id="cb417-17"><a href="#cb417-17" aria-hidden="true"></a> , and</span>
+<span id="cb417-18"><a href="#cb417-18" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span>
+<span id="cb417-19"><a href="#cb417-19" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb417-20"><a href="#cb417-20" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb417-21"><a href="#cb417-21" aria-hidden="true"></a>}</span>
+<span id="cb417-22"><a href="#cb417-22" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{<span class="fu">\stopitemize</span>}</span>
+<span id="cb417-23"><a href="#cb417-23" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\item</span>}</span>
+<span id="cb417-24"><a href="#cb417-24" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEndTight</span>{}</span>
+<span id="cb417-25"><a href="#cb417-25" aria-hidden="true"></a></span>
+<span id="cb417-26"><a href="#cb417-26" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb417-27"><a href="#cb417-27" aria-hidden="true"></a>This is a tight definition list</span>
+<span id="cb417-28"><a href="#cb417-28" aria-hidden="true"></a></span>
+<span id="cb417-29"><a href="#cb417-29" aria-hidden="true"></a>Coffee</span>
+<span id="cb417-30"><a href="#cb417-30" aria-hidden="true"></a>: black hot drink</span>
+<span id="cb417-31"><a href="#cb417-31" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
+<span id="cb417-32"><a href="#cb417-32" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
+<span id="cb417-33"><a href="#cb417-33" aria-hidden="true"></a></span>
+<span id="cb417-34"><a href="#cb417-34" aria-hidden="true"></a>Milk</span>
+<span id="cb417-35"><a href="#cb417-35" aria-hidden="true"></a>: white cold drink</span>
+<span id="cb417-36"><a href="#cb417-36" aria-hidden="true"></a>: nutrient-rich</span>
+<span id="cb417-37"><a href="#cb417-37" aria-hidden="true"></a>: produced on an industrial scale</span>
+<span id="cb417-38"><a href="#cb417-38" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb417-39"><a href="#cb417-39" aria-hidden="true"></a></span>
+<span id="cb417-40"><a href="#cb417-40" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb417-41"><a href="#cb417-41" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span>
+<span id="cb417-42"><a href="#cb417-42" aria-hidden="true"></a>}</span>
+<span id="cb417-43"><a href="#cb417-43" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span>
+<span id="cb417-44"><a href="#cb417-44" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span>
+<span id="cb417-45"><a href="#cb417-45" aria-hidden="true"></a> . #1 is a</span>
+<span id="cb417-46"><a href="#cb417-46" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
+<span id="cb417-47"><a href="#cb417-47" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span>
+<span id="cb417-48"><a href="#cb417-48" aria-hidden="true"></a> ,</span>
+<span id="cb417-49"><a href="#cb417-49" aria-hidden="true"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span>
+<span id="cb417-50"><a href="#cb417-50" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb417-51"><a href="#cb417-51" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb417-52"><a href="#cb417-52" aria-hidden="true"></a>}</span>
+<span id="cb417-53"><a href="#cb417-53" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span>
+<span id="cb417-54"><a href="#cb417-54" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span>
+<span id="cb417-55"><a href="#cb417-55" aria-hidden="true"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span>
+<span id="cb417-56"><a href="#cb417-56" aria-hidden="true"></a></span>
+<span id="cb417-57"><a href="#cb417-57" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb417-58"><a href="#cb417-58" aria-hidden="true"></a>This is a loose definition list</span>
+<span id="cb417-59"><a href="#cb417-59" aria-hidden="true"></a></span>
+<span id="cb417-60"><a href="#cb417-60" aria-hidden="true"></a>Coffee</span>
+<span id="cb417-61"><a href="#cb417-61" aria-hidden="true"></a></span>
+<span id="cb417-62"><a href="#cb417-62" aria-hidden="true"></a>: black hot drink</span>
+<span id="cb417-63"><a href="#cb417-63" aria-hidden="true"></a></span>
+<span id="cb417-64"><a href="#cb417-64" aria-hidden="true"></a>: prepared from roasted coffee beans</span>
+<span id="cb417-65"><a href="#cb417-65" aria-hidden="true"></a></span>
+<span id="cb417-66"><a href="#cb417-66" aria-hidden="true"></a>: one of the most traded agricultural commodities in the world</span>
+<span id="cb417-67"><a href="#cb417-67" aria-hidden="true"></a></span>
+<span id="cb417-68"><a href="#cb417-68" aria-hidden="true"></a>Milk</span>
+<span id="cb417-69"><a href="#cb417-69" aria-hidden="true"></a></span>
+<span id="cb417-70"><a href="#cb417-70" aria-hidden="true"></a>: white cold drink</span>
+<span id="cb417-71"><a href="#cb417-71" aria-hidden="true"></a></span>
+<span id="cb417-72"><a href="#cb417-72" aria-hidden="true"></a>: nutrient-rich</span>
+<span id="cb417-73"><a href="#cb417-73" aria-hidden="true"></a></span>
+<span id="cb417-74"><a href="#cb417-74" aria-hidden="true"></a>: produced on an industrial scale</span>
+<span id="cb417-75"><a href="#cb417-75" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb417-76"><a href="#cb417-76" aria-hidden="true"></a></span>
+<span id="cb417-77"><a href="#cb417-77" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb418"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb418-1"><a href="#cb418-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a tight definition list:</p>
@@ -5498,41 +5547,41 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererEmphasis</code> macro represents an emphasized span of text. The macro receives a single argument that corresponds to the emphasized span of text.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-27">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb416"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb416-1"><a href="#cb416-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb416-2"><a href="#cb416-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{{<span class="fu">\it</span>#1}}</span>
-<span id="cb416-3"><a href="#cb416-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{{<span class="fu">\bf</span>#1}}</span>
-<span id="cb416-4"><a href="#cb416-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb416-5"><a href="#cb416-5" aria-hidden="true"></a>This is *emphasis*.</span>
-<span id="cb416-6"><a href="#cb416-6" aria-hidden="true"></a></span>
-<span id="cb416-7"><a href="#cb416-7" aria-hidden="true"></a>This is **strong emphasis**.</span>
-<span id="cb416-8"><a href="#cb416-8" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb416-9"><a href="#cb416-9" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb419"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb419-1"><a href="#cb419-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb419-2"><a href="#cb419-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{{<span class="fu">\it</span>#1}}</span>
+<span id="cb419-3"><a href="#cb419-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{{<span class="fu">\bf</span>#1}}</span>
+<span id="cb419-4"><a href="#cb419-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb419-5"><a href="#cb419-5" aria-hidden="true"></a>This is *emphasis*.</span>
+<span id="cb419-6"><a href="#cb419-6" aria-hidden="true"></a></span>
+<span id="cb419-7"><a href="#cb419-7" aria-hidden="true"></a>This is **strong emphasis**.</span>
+<span id="cb419-8"><a href="#cb419-8" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb419-9"><a href="#cb419-9" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb417"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb417-1"><a href="#cb417-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb420"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <em>emphasis</em>.</p>
<p>This is <strong>strong emphasis</strong>.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-49"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-50"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb418"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb418-1"><a href="#cb418-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb418-2"><a href="#cb418-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb418-3"><a href="#cb418-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb418-4"><a href="#cb418-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb418-5"><a href="#cb418-5" aria-hidden="true"></a> emphasis = {<span class="fu">\emph</span>{#1}},</span>
-<span id="cb418-6"><a href="#cb418-6" aria-hidden="true"></a> strongEmphasis = {<span class="fu">\textbf</span>{#1}},</span>
-<span id="cb418-7"><a href="#cb418-7" aria-hidden="true"></a> },</span>
-<span id="cb418-8"><a href="#cb418-8" aria-hidden="true"></a>}</span>
-<span id="cb418-9"><a href="#cb418-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb418-10"><a href="#cb418-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb418-11"><a href="#cb418-11" aria-hidden="true"></a>This is *emphasis*.</span>
-<span id="cb418-12"><a href="#cb418-12" aria-hidden="true"></a></span>
-<span id="cb418-13"><a href="#cb418-13" aria-hidden="true"></a>This is **strong emphasis**.</span>
-<span id="cb418-14"><a href="#cb418-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb418-15"><a href="#cb418-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb419"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb419-1"><a href="#cb419-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb421"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb421-1"><a href="#cb421-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb421-2"><a href="#cb421-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb421-3"><a href="#cb421-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb421-4"><a href="#cb421-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb421-5"><a href="#cb421-5" aria-hidden="true"></a> emphasis = {<span class="fu">\emph</span>{#1}},</span>
+<span id="cb421-6"><a href="#cb421-6" aria-hidden="true"></a> strongEmphasis = {<span class="fu">\textbf</span>{#1}},</span>
+<span id="cb421-7"><a href="#cb421-7" aria-hidden="true"></a> },</span>
+<span id="cb421-8"><a href="#cb421-8" aria-hidden="true"></a>}</span>
+<span id="cb421-9"><a href="#cb421-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb421-10"><a href="#cb421-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb421-11"><a href="#cb421-11" aria-hidden="true"></a>This is *emphasis*.</span>
+<span id="cb421-12"><a href="#cb421-12" aria-hidden="true"></a></span>
+<span id="cb421-13"><a href="#cb421-13" aria-hidden="true"></a>This is **strong emphasis**.</span>
+<span id="cb421-14"><a href="#cb421-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb421-15"><a href="#cb421-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb422"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb422-1"><a href="#cb422-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <em>emphasis</em>.</p>
@@ -5540,18 +5589,18 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-39">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb420"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb420-2"><a href="#cb420-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{<span class="fu">\emph</span>{#1}}</span>
-<span id="cb420-3"><a href="#cb420-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{<span class="fu">\bold</span>{#1}}</span>
-<span id="cb420-4"><a href="#cb420-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb420-5"><a href="#cb420-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb420-6"><a href="#cb420-6" aria-hidden="true"></a>This is *emphasis*.</span>
-<span id="cb420-7"><a href="#cb420-7" aria-hidden="true"></a></span>
-<span id="cb420-8"><a href="#cb420-8" aria-hidden="true"></a>This is **strong emphasis**.</span>
-<span id="cb420-9"><a href="#cb420-9" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb420-10"><a href="#cb420-10" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb423"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb423-1"><a href="#cb423-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb423-2"><a href="#cb423-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{<span class="fu">\emph</span>{#1}}</span>
+<span id="cb423-3"><a href="#cb423-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{<span class="fu">\bold</span>{#1}}</span>
+<span id="cb423-4"><a href="#cb423-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb423-5"><a href="#cb423-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb423-6"><a href="#cb423-6" aria-hidden="true"></a>This is *emphasis*.</span>
+<span id="cb423-7"><a href="#cb423-7" aria-hidden="true"></a></span>
+<span id="cb423-8"><a href="#cb423-8" aria-hidden="true"></a>This is **strong emphasis**.</span>
+<span id="cb423-9"><a href="#cb423-9" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb423-10"><a href="#cb423-10" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb421"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb421-1"><a href="#cb421-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb424"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb424-1"><a href="#cb424-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is <em>emphasis</em>.</p>
@@ -5563,29 +5612,29 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererBlockQuoteEnd</code> macro represents the end of a block quote. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-28">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb422"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb422-1"><a href="#cb422-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb422-2"><a href="#cb422-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="co">%</span></span>
-<span id="cb422-3"><a href="#cb422-3" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
-<span id="cb422-4"><a href="#cb422-4" aria-hidden="true"></a> <span class="fu">\vskip\parindent</span></span>
-<span id="cb422-5"><a href="#cb422-5" aria-hidden="true"></a> <span class="fu">\leftskip</span>=2<span class="fu">\parindent</span></span>
-<span id="cb422-6"><a href="#cb422-6" aria-hidden="true"></a> <span class="fu">\parindent</span>=0pt</span>
-<span id="cb422-7"><a href="#cb422-7" aria-hidden="true"></a>}</span>
-<span id="cb422-8"><a href="#cb422-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="co">%</span></span>
-<span id="cb422-9"><a href="#cb422-9" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb422-10"><a href="#cb422-10" aria-hidden="true"></a> <span class="fu">\vskip\parindent</span></span>
-<span id="cb422-11"><a href="#cb422-11" aria-hidden="true"></a> <span class="fu">\endgroup</span></span>
-<span id="cb422-12"><a href="#cb422-12" aria-hidden="true"></a>}</span>
-<span id="cb422-13"><a href="#cb422-13" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb422-14"><a href="#cb422-14" aria-hidden="true"></a>A quote from William Shakespeare&#39;s King Lear:</span>
-<span id="cb422-15"><a href="#cb422-15" aria-hidden="true"></a></span>
-<span id="cb422-16"><a href="#cb422-16" aria-hidden="true"></a>&gt; This is the excellent foppery of the world that when we are</span>
-<span id="cb422-17"><a href="#cb422-17" aria-hidden="true"></a>&gt; sick in fortune---often the surfeit of our own behavior---we</span>
-<span id="cb422-18"><a href="#cb422-18" aria-hidden="true"></a>&gt; make guilty of our disasters the sun, the moon, and the</span>
-<span id="cb422-19"><a href="#cb422-19" aria-hidden="true"></a>&gt; stars [...]</span>
-<span id="cb422-20"><a href="#cb422-20" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb422-21"><a href="#cb422-21" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb423"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb423-1"><a href="#cb423-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb425"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb425-1"><a href="#cb425-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb425-2"><a href="#cb425-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="co">%</span></span>
+<span id="cb425-3"><a href="#cb425-3" aria-hidden="true"></a> <span class="fu">\begingroup</span></span>
+<span id="cb425-4"><a href="#cb425-4" aria-hidden="true"></a> <span class="fu">\vskip\parindent</span></span>
+<span id="cb425-5"><a href="#cb425-5" aria-hidden="true"></a> <span class="fu">\leftskip</span>=2<span class="fu">\parindent</span></span>
+<span id="cb425-6"><a href="#cb425-6" aria-hidden="true"></a> <span class="fu">\parindent</span>=0pt</span>
+<span id="cb425-7"><a href="#cb425-7" aria-hidden="true"></a>}</span>
+<span id="cb425-8"><a href="#cb425-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="co">%</span></span>
+<span id="cb425-9"><a href="#cb425-9" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb425-10"><a href="#cb425-10" aria-hidden="true"></a> <span class="fu">\vskip\parindent</span></span>
+<span id="cb425-11"><a href="#cb425-11" aria-hidden="true"></a> <span class="fu">\endgroup</span></span>
+<span id="cb425-12"><a href="#cb425-12" aria-hidden="true"></a>}</span>
+<span id="cb425-13"><a href="#cb425-13" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb425-14"><a href="#cb425-14" aria-hidden="true"></a>A quote from William Shakespeare&#39;s King Lear:</span>
+<span id="cb425-15"><a href="#cb425-15" aria-hidden="true"></a></span>
+<span id="cb425-16"><a href="#cb425-16" aria-hidden="true"></a>&gt; This is the excellent foppery of the world that when we are</span>
+<span id="cb425-17"><a href="#cb425-17" aria-hidden="true"></a>&gt; sick in fortune---often the surfeit of our own behavior---we</span>
+<span id="cb425-18"><a href="#cb425-18" aria-hidden="true"></a>&gt; make guilty of our disasters the sun, the moon, and the</span>
+<span id="cb425-19"><a href="#cb425-19" aria-hidden="true"></a>&gt; stars [...]</span>
+<span id="cb425-20"><a href="#cb425-20" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb425-21"><a href="#cb425-21" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb426"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb426-1"><a href="#cb426-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>A quote from William Shakespeare’s King Lear:</p>
@@ -5593,28 +5642,28 @@ Thomas,Edison,1847</code></pre>
<p>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 […]</p>
</blockquote>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-50"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-51"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb424"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb424-1"><a href="#cb424-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb424-2"><a href="#cb424-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb424-3"><a href="#cb424-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb424-4"><a href="#cb424-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb424-5"><a href="#cb424-5" aria-hidden="true"></a> blockQuoteBegin = {<span class="kw">\begin</span>{<span class="ex">quote</span>}},</span>
-<span id="cb424-6"><a href="#cb424-6" aria-hidden="true"></a> blockQuoteEnd = {<span class="kw">\end</span>{<span class="ex">quote</span>}},</span>
-<span id="cb424-7"><a href="#cb424-7" aria-hidden="true"></a> },</span>
-<span id="cb424-8"><a href="#cb424-8" aria-hidden="true"></a>}</span>
-<span id="cb424-9"><a href="#cb424-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb424-10"><a href="#cb424-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb424-11"><a href="#cb424-11" aria-hidden="true"></a>A quote from William Shakespeare&#39;s King Lear:</span>
-<span id="cb424-12"><a href="#cb424-12" aria-hidden="true"></a></span>
-<span id="cb424-13"><a href="#cb424-13" aria-hidden="true"></a>&gt; This is the excellent foppery of the world that when we are</span>
-<span id="cb424-14"><a href="#cb424-14" aria-hidden="true"></a>&gt; sick in fortune---often the surfeit of our own behavior---we</span>
-<span id="cb424-15"><a href="#cb424-15" aria-hidden="true"></a>&gt; make guilty of our disasters the sun, the moon, and the</span>
-<span id="cb424-16"><a href="#cb424-16" aria-hidden="true"></a>&gt; stars [...]</span>
-<span id="cb424-17"><a href="#cb424-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb424-18"><a href="#cb424-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb425"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb425-1"><a href="#cb425-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb427"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb427-1"><a href="#cb427-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb427-2"><a href="#cb427-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb427-3"><a href="#cb427-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb427-4"><a href="#cb427-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb427-5"><a href="#cb427-5" aria-hidden="true"></a> blockQuoteBegin = {<span class="kw">\begin</span>{<span class="ex">quote</span>}},</span>
+<span id="cb427-6"><a href="#cb427-6" aria-hidden="true"></a> blockQuoteEnd = {<span class="kw">\end</span>{<span class="ex">quote</span>}},</span>
+<span id="cb427-7"><a href="#cb427-7" aria-hidden="true"></a> },</span>
+<span id="cb427-8"><a href="#cb427-8" aria-hidden="true"></a>}</span>
+<span id="cb427-9"><a href="#cb427-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb427-10"><a href="#cb427-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb427-11"><a href="#cb427-11" aria-hidden="true"></a>A quote from William Shakespeare&#39;s King Lear:</span>
+<span id="cb427-12"><a href="#cb427-12" aria-hidden="true"></a></span>
+<span id="cb427-13"><a href="#cb427-13" aria-hidden="true"></a>&gt; This is the excellent foppery of the world that when we are</span>
+<span id="cb427-14"><a href="#cb427-14" aria-hidden="true"></a>&gt; sick in fortune---often the surfeit of our own behavior---we</span>
+<span id="cb427-15"><a href="#cb427-15" aria-hidden="true"></a>&gt; make guilty of our disasters the sun, the moon, and the</span>
+<span id="cb427-16"><a href="#cb427-16" aria-hidden="true"></a>&gt; stars [...]</span>
+<span id="cb427-17"><a href="#cb427-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb427-18"><a href="#cb427-18" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb428"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb428-1"><a href="#cb428-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>A quote from William Shakespeare’s King Lear:</p>
@@ -5624,21 +5673,21 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-40">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb426"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb426-1"><a href="#cb426-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb426-2"><a href="#cb426-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="fu">\startquotation</span>}</span>
-<span id="cb426-3"><a href="#cb426-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="fu">\stopquotation</span>}</span>
-<span id="cb426-4"><a href="#cb426-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb426-5"><a href="#cb426-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb426-6"><a href="#cb426-6" aria-hidden="true"></a>A quote from William Shakespeare&#39;s King Lear:</span>
-<span id="cb426-7"><a href="#cb426-7" aria-hidden="true"></a></span>
-<span id="cb426-8"><a href="#cb426-8" aria-hidden="true"></a>&gt; This is the excellent foppery of the world that when we are</span>
-<span id="cb426-9"><a href="#cb426-9" aria-hidden="true"></a>&gt; sick in fortune---often the surfeit of our own behavior---we</span>
-<span id="cb426-10"><a href="#cb426-10" aria-hidden="true"></a>&gt; make guilty of our disasters the sun, the moon, and the</span>
-<span id="cb426-11"><a href="#cb426-11" aria-hidden="true"></a>&gt; stars [...]</span>
-<span id="cb426-12"><a href="#cb426-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb426-13"><a href="#cb426-13" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb429"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb429-1"><a href="#cb429-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb429-2"><a href="#cb429-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="fu">\startquotation</span>}</span>
+<span id="cb429-3"><a href="#cb429-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="fu">\stopquotation</span>}</span>
+<span id="cb429-4"><a href="#cb429-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb429-5"><a href="#cb429-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb429-6"><a href="#cb429-6" aria-hidden="true"></a>A quote from William Shakespeare&#39;s King Lear:</span>
+<span id="cb429-7"><a href="#cb429-7" aria-hidden="true"></a></span>
+<span id="cb429-8"><a href="#cb429-8" aria-hidden="true"></a>&gt; This is the excellent foppery of the world that when we are</span>
+<span id="cb429-9"><a href="#cb429-9" aria-hidden="true"></a>&gt; sick in fortune---often the surfeit of our own behavior---we</span>
+<span id="cb429-10"><a href="#cb429-10" aria-hidden="true"></a>&gt; make guilty of our disasters the sun, the moon, and the</span>
+<span id="cb429-11"><a href="#cb429-11" aria-hidden="true"></a>&gt; stars [...]</span>
+<span id="cb429-12"><a href="#cb429-12" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb429-13"><a href="#cb429-13" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb427"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb427-1"><a href="#cb427-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb430"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb430-1"><a href="#cb430-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>A quote from William Shakespeare’s King Lear:</p>
@@ -5649,73 +5698,73 @@ Thomas,Edison,1847</code></pre>
<h4 data-number="2.3.1.17" id="code-block-renderers"><span class="header-section-number">2.3.1.17</span> Code Block Renderers</h4>
<p>The <code>\markdownRendererInputVerbatim</code> macro represents a code block. The macro receives a single argument that corresponds to the filename of a file contaning the code block contents.</p>
<p>The <code>\markdownRendererInputFencedCode</code> macro represents a fenced code block. This macro will only be produced, when the <strong><code>fencedCode</code></strong> option is enabled. The macro receives two arguments that correspond to the filename of a file contaning the code block contents and to the code fence infostring.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-51"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-52"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb428"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb428-1"><a href="#cb428-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb428-2"><a href="#cb428-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">verbatim</span>}</span>
-<span id="cb428-3"><a href="#cb428-3" aria-hidden="true"></a><span class="bu">\usepackage</span>[hyphens]{<span class="ex">url</span>}</span>
-<span id="cb428-4"><a href="#cb428-4" aria-hidden="true"></a><span class="bu">\usepackage</span>[fencedCode]{<span class="ex">markdown</span>}</span>
-<span id="cb428-5"><a href="#cb428-5" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb428-6"><a href="#cb428-6" aria-hidden="true"></a> renderers = {</span>
-<span id="cb428-7"><a href="#cb428-7" aria-hidden="true"></a> interblockSeparator = {</span>
-<span id="cb428-8"><a href="#cb428-8" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb428-9"><a href="#cb428-9" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb428-10"><a href="#cb428-10" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb428-11"><a href="#cb428-11" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
-<span id="cb428-12"><a href="#cb428-12" aria-hidden="true"></a> <span class="fu">\par</span></span>
-<span id="cb428-13"><a href="#cb428-13" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb428-14"><a href="#cb428-14" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb428-15"><a href="#cb428-15" aria-hidden="true"></a> }<span class="co">%</span></span>
-<span id="cb428-16"><a href="#cb428-16" aria-hidden="true"></a> },</span>
-<span id="cb428-17"><a href="#cb428-17" aria-hidden="true"></a> inputVerbatim = {</span>
-<span id="cb428-18"><a href="#cb428-18" aria-hidden="true"></a> is contained in file <span class="fu">\url</span>{#1}:<span class="co">%</span></span>
-<span id="cb428-19"><a href="#cb428-19" aria-hidden="true"></a> <span class="fu">\verbatiminput</span>{#1}<span class="co">%</span></span>
-<span id="cb428-20"><a href="#cb428-20" aria-hidden="true"></a> },</span>
-<span id="cb428-21"><a href="#cb428-21" aria-hidden="true"></a> inputFencedCode = {</span>
-<span id="cb428-22"><a href="#cb428-22" aria-hidden="true"></a> in #2 <span class="fu">\markdownRendererInputVerbatim</span>{#1}<span class="co">%</span></span>
-<span id="cb428-23"><a href="#cb428-23" aria-hidden="true"></a> },</span>
-<span id="cb428-24"><a href="#cb428-24" aria-hidden="true"></a> },</span>
-<span id="cb428-25"><a href="#cb428-25" aria-hidden="true"></a>}</span>
-<span id="cb428-26"><a href="#cb428-26" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb428-27"><a href="#cb428-27" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb428-28"><a href="#cb428-28" aria-hidden="true"></a>The following code</span>
-<span id="cb428-29"><a href="#cb428-29" aria-hidden="true"></a></span>
-<span id="cb428-30"><a href="#cb428-30" aria-hidden="true"></a> def foo(bar):</span>
-<span id="cb428-31"><a href="#cb428-31" aria-hidden="true"></a> if len(bar) &lt;= 1:</span>
-<span id="cb428-32"><a href="#cb428-32" aria-hidden="true"></a> return bar[0]</span>
-<span id="cb428-33"><a href="#cb428-33" aria-hidden="true"></a> elif len(bar) == 2:</span>
-<span id="cb428-34"><a href="#cb428-34" aria-hidden="true"></a> return sorted(bar)</span>
-<span id="cb428-35"><a href="#cb428-35" aria-hidden="true"></a> else:</span>
-<span id="cb428-36"><a href="#cb428-36" aria-hidden="true"></a> baz = len(bar) // 2</span>
-<span id="cb428-37"><a href="#cb428-37" aria-hidden="true"></a> return foo(bar[baz:], bar[:baz])</span>
-<span id="cb428-38"><a href="#cb428-38" aria-hidden="true"></a></span>
-<span id="cb428-39"><a href="#cb428-39" aria-hidden="true"></a>The following code</span>
-<span id="cb428-40"><a href="#cb428-40" aria-hidden="true"></a></span>
-<span id="cb428-41"><a href="#cb428-41" aria-hidden="true"></a>~~~ Python</span>
-<span id="cb428-42"><a href="#cb428-42" aria-hidden="true"></a>&gt;&gt;&gt; foo([4, 2, 1, 3])</span>
-<span id="cb428-43"><a href="#cb428-43" aria-hidden="true"></a>[1, 2, 3, 4]</span>
-<span id="cb428-44"><a href="#cb428-44" aria-hidden="true"></a>~~~~~~~~~~</span>
-<span id="cb428-45"><a href="#cb428-45" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb428-46"><a href="#cb428-46" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb429"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb429-1"><a href="#cb429-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb431"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb431-1"><a href="#cb431-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb431-2"><a href="#cb431-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">verbatim</span>}</span>
+<span id="cb431-3"><a href="#cb431-3" aria-hidden="true"></a><span class="bu">\usepackage</span>[hyphens]{<span class="ex">url</span>}</span>
+<span id="cb431-4"><a href="#cb431-4" aria-hidden="true"></a><span class="bu">\usepackage</span>[fencedCode]{<span class="ex">markdown</span>}</span>
+<span id="cb431-5"><a href="#cb431-5" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb431-6"><a href="#cb431-6" aria-hidden="true"></a> renderers = {</span>
+<span id="cb431-7"><a href="#cb431-7" aria-hidden="true"></a> interblockSeparator = {</span>
+<span id="cb431-8"><a href="#cb431-8" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb431-9"><a href="#cb431-9" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb431-10"><a href="#cb431-10" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb431-11"><a href="#cb431-11" aria-hidden="true"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span>
+<span id="cb431-12"><a href="#cb431-12" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb431-13"><a href="#cb431-13" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb431-14"><a href="#cb431-14" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb431-15"><a href="#cb431-15" aria-hidden="true"></a> }<span class="co">%</span></span>
+<span id="cb431-16"><a href="#cb431-16" aria-hidden="true"></a> },</span>
+<span id="cb431-17"><a href="#cb431-17" aria-hidden="true"></a> inputVerbatim = {</span>
+<span id="cb431-18"><a href="#cb431-18" aria-hidden="true"></a> is contained in file <span class="fu">\url</span>{#1}:<span class="co">%</span></span>
+<span id="cb431-19"><a href="#cb431-19" aria-hidden="true"></a> <span class="fu">\verbatiminput</span>{#1}<span class="co">%</span></span>
+<span id="cb431-20"><a href="#cb431-20" aria-hidden="true"></a> },</span>
+<span id="cb431-21"><a href="#cb431-21" aria-hidden="true"></a> inputFencedCode = {</span>
+<span id="cb431-22"><a href="#cb431-22" aria-hidden="true"></a> in #2 <span class="fu">\markdownRendererInputVerbatim</span>{#1}<span class="co">%</span></span>
+<span id="cb431-23"><a href="#cb431-23" aria-hidden="true"></a> },</span>
+<span id="cb431-24"><a href="#cb431-24" aria-hidden="true"></a> },</span>
+<span id="cb431-25"><a href="#cb431-25" aria-hidden="true"></a>}</span>
+<span id="cb431-26"><a href="#cb431-26" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb431-27"><a href="#cb431-27" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb431-28"><a href="#cb431-28" aria-hidden="true"></a>The following code</span>
+<span id="cb431-29"><a href="#cb431-29" aria-hidden="true"></a></span>
+<span id="cb431-30"><a href="#cb431-30" aria-hidden="true"></a> def foo(bar):</span>
+<span id="cb431-31"><a href="#cb431-31" aria-hidden="true"></a> if len(bar) &lt;= 1:</span>
+<span id="cb431-32"><a href="#cb431-32" aria-hidden="true"></a> return bar[0]</span>
+<span id="cb431-33"><a href="#cb431-33" aria-hidden="true"></a> elif len(bar) == 2:</span>
+<span id="cb431-34"><a href="#cb431-34" aria-hidden="true"></a> return sorted(bar)</span>
+<span id="cb431-35"><a href="#cb431-35" aria-hidden="true"></a> else:</span>
+<span id="cb431-36"><a href="#cb431-36" aria-hidden="true"></a> baz = len(bar) // 2</span>
+<span id="cb431-37"><a href="#cb431-37" aria-hidden="true"></a> return foo(bar[baz:], bar[:baz])</span>
+<span id="cb431-38"><a href="#cb431-38" aria-hidden="true"></a></span>
+<span id="cb431-39"><a href="#cb431-39" aria-hidden="true"></a>The following code</span>
+<span id="cb431-40"><a href="#cb431-40" aria-hidden="true"></a></span>
+<span id="cb431-41"><a href="#cb431-41" aria-hidden="true"></a>~~~ Python</span>
+<span id="cb431-42"><a href="#cb431-42" aria-hidden="true"></a>&gt;&gt;&gt; foo([4, 2, 1, 3])</span>
+<span id="cb431-43"><a href="#cb431-43" aria-hidden="true"></a>[1, 2, 3, 4]</span>
+<span id="cb431-44"><a href="#cb431-44" aria-hidden="true"></a>~~~~~~~~~~</span>
+<span id="cb431-45"><a href="#cb431-45" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb431-46"><a href="#cb431-46" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb432"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text except for the filename, which may differ:</p>
<blockquote>
<p>The following code is contained in file <code>./_markdown_document/882453149edcf288976647f6fe147ada.verbatim</code>:</p>
-<div class="sourceCode" id="cb430"><pre class="sourceCode py"><code class="sourceCode python"><span id="cb430-1"><a href="#cb430-1" aria-hidden="true"></a><span class="kw">def</span> foo(bar):</span>
-<span id="cb430-2"><a href="#cb430-2" aria-hidden="true"></a> <span class="cf">if</span> <span class="bu">len</span>(bar) <span class="op">&lt;=</span> <span class="dv">1</span>:</span>
-<span id="cb430-3"><a href="#cb430-3" aria-hidden="true"></a> <span class="cf">return</span> bar[:<span class="dv">1</span>]</span>
-<span id="cb430-4"><a href="#cb430-4" aria-hidden="true"></a> <span class="cf">elif</span> <span class="bu">len</span>(bar) <span class="op">==</span> <span class="dv">2</span>:</span>
-<span id="cb430-5"><a href="#cb430-5" aria-hidden="true"></a> <span class="cf">return</span> <span class="bu">sorted</span>(bar)</span>
-<span id="cb430-6"><a href="#cb430-6" aria-hidden="true"></a> <span class="cf">else</span>:</span>
-<span id="cb430-7"><a href="#cb430-7" aria-hidden="true"></a> baz <span class="op">=</span> bar[<span class="bu">len</span>(bar) <span class="op">//</span> <span class="dv">2</span>]</span>
-<span id="cb430-8"><a href="#cb430-8" aria-hidden="true"></a> <span class="cf">return</span> (</span>
-<span id="cb430-9"><a href="#cb430-9" aria-hidden="true"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op">&lt;</span> baz]) <span class="op">+</span> [baz] <span class="op">+</span></span>
-<span id="cb430-10"><a href="#cb430-10" aria-hidden="true"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op">&gt;</span> baz])</span>
-<span id="cb430-11"><a href="#cb430-11" aria-hidden="true"></a> )</span></code></pre></div>
+<div class="sourceCode" id="cb433"><pre class="sourceCode py"><code class="sourceCode python"><span id="cb433-1"><a href="#cb433-1" aria-hidden="true"></a><span class="kw">def</span> foo(bar):</span>
+<span id="cb433-2"><a href="#cb433-2" aria-hidden="true"></a> <span class="cf">if</span> <span class="bu">len</span>(bar) <span class="op">&lt;=</span> <span class="dv">1</span>:</span>
+<span id="cb433-3"><a href="#cb433-3" aria-hidden="true"></a> <span class="cf">return</span> bar[:<span class="dv">1</span>]</span>
+<span id="cb433-4"><a href="#cb433-4" aria-hidden="true"></a> <span class="cf">elif</span> <span class="bu">len</span>(bar) <span class="op">==</span> <span class="dv">2</span>:</span>
+<span id="cb433-5"><a href="#cb433-5" aria-hidden="true"></a> <span class="cf">return</span> <span class="bu">sorted</span>(bar)</span>
+<span id="cb433-6"><a href="#cb433-6" aria-hidden="true"></a> <span class="cf">else</span>:</span>
+<span id="cb433-7"><a href="#cb433-7" aria-hidden="true"></a> baz <span class="op">=</span> bar[<span class="bu">len</span>(bar) <span class="op">//</span> <span class="dv">2</span>]</span>
+<span id="cb433-8"><a href="#cb433-8" aria-hidden="true"></a> <span class="cf">return</span> (</span>
+<span id="cb433-9"><a href="#cb433-9" aria-hidden="true"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op">&lt;</span> baz]) <span class="op">+</span> [baz] <span class="op">+</span></span>
+<span id="cb433-10"><a href="#cb433-10" aria-hidden="true"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op">&gt;</span> baz])</span>
+<span id="cb433-11"><a href="#cb433-11" aria-hidden="true"></a> )</span></code></pre></div>
<p>The following code in Python contained in file <code>./_markdown_document/cf2a96e2120cef5b1fae5fea36fcc27b.verbatim</code>:</p>
-<div class="sourceCode" id="cb431"><pre class="sourceCode py"><code class="sourceCode python"><span id="cb431-1"><a href="#cb431-1" aria-hidden="true"></a><span class="op">&gt;&gt;&gt;</span> foo([<span class="dv">4</span>, <span class="dv">2</span>, <span class="dv">1</span>, <span class="dv">3</span>])</span>
-<span id="cb431-2"><a href="#cb431-2" aria-hidden="true"></a>[<span class="dv">1</span>, <span class="dv">2</span>, <span class="dv">3</span>, <span class="dv">4</span>]</span></code></pre></div>
+<div class="sourceCode" id="cb434"><pre class="sourceCode py"><code class="sourceCode python"><span id="cb434-1"><a href="#cb434-1" aria-hidden="true"></a><span class="op">&gt;&gt;&gt;</span> foo([<span class="dv">4</span>, <span class="dv">2</span>, <span class="dv">1</span>, <span class="dv">3</span>])</span>
+<span id="cb434-2"><a href="#cb434-2" aria-hidden="true"></a>[<span class="dv">1</span>, <span class="dv">2</span>, <span class="dv">3</span>, <span class="dv">4</span>]</span></code></pre></div>
</blockquote>
<h4 data-number="2.3.1.18" id="yaml-metadata-renderers"><span class="header-section-number">2.3.1.18</span> YAML Metadata Renderers</h4>
<p>The <code>\markdownRendererJekyllDataBegin</code> macro represents the beginning of a <abbr>yaml</abbr> document. This macro will only be produced when the <strong><code>jekyllData</code></strong> option is enabled. The macro receives no arguments.</p>
@@ -5730,72 +5779,72 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererJekyllDataEmpty</code> macro represents an empty scalar value in a <abbr>yaml</abbr> document. This macro will only be produced when the <strong><code>jekyllData</code></strong> option is enabled. The macro receives one argument: the scalar key in the parent structure, cast to a string following <abbr>yaml</abbr> serialization rules.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-29">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb432"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb432-2"><a href="#cb432-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span>
-<span id="cb432-3"><a href="#cb432-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span>
-<span id="cb432-4"><a href="#cb432-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span>
-<span id="cb432-5"><a href="#cb432-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span>
-<span id="cb432-6"><a href="#cb432-6" aria-hidden="true"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span>
-<span id="cb432-7"><a href="#cb432-7" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb432-8"><a href="#cb432-8" aria-hidden="true"></a>---</span>
-<span id="cb432-9"><a href="#cb432-9" aria-hidden="true"></a>name: Jane Doe</span>
-<span id="cb432-10"><a href="#cb432-10" aria-hidden="true"></a>age: 99</span>
-<span id="cb432-11"><a href="#cb432-11" aria-hidden="true"></a>---</span>
-<span id="cb432-12"><a href="#cb432-12" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb432-13"><a href="#cb432-13" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb435"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb435-1"><a href="#cb435-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb435-2"><a href="#cb435-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span>
+<span id="cb435-3"><a href="#cb435-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span>
+<span id="cb435-4"><a href="#cb435-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span>
+<span id="cb435-5"><a href="#cb435-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span>
+<span id="cb435-6"><a href="#cb435-6" aria-hidden="true"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span>
+<span id="cb435-7"><a href="#cb435-7" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb435-8"><a href="#cb435-8" aria-hidden="true"></a>---</span>
+<span id="cb435-9"><a href="#cb435-9" aria-hidden="true"></a>name: Jane Doe</span>
+<span id="cb435-10"><a href="#cb435-10" aria-hidden="true"></a>age: 99</span>
+<span id="cb435-11"><a href="#cb435-11" aria-hidden="true"></a>---</span>
+<span id="cb435-12"><a href="#cb435-12" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb435-13"><a href="#cb435-13" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb433"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb433-1"><a href="#cb433-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb436"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb436-1"><a href="#cb436-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Jane Doe is 99 years old.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-52"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-53"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb434"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb434-1"><a href="#cb434-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb434-2"><a href="#cb434-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span>
-<span id="cb434-3"><a href="#cb434-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb434-4"><a href="#cb434-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb434-5"><a href="#cb434-5" aria-hidden="true"></a> jekyllDataString = {<span class="fu">\gdef\name</span>{#2}},</span>
-<span id="cb434-6"><a href="#cb434-6" aria-hidden="true"></a> jekyllDataNumber = {<span class="fu">\gdef\age</span>{#2}},</span>
-<span id="cb434-7"><a href="#cb434-7" aria-hidden="true"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span>
-<span id="cb434-8"><a href="#cb434-8" aria-hidden="true"></a> }</span>
-<span id="cb434-9"><a href="#cb434-9" aria-hidden="true"></a>}</span>
-<span id="cb434-10"><a href="#cb434-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb434-11"><a href="#cb434-11" aria-hidden="true"></a></span>
-<span id="cb434-12"><a href="#cb434-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb434-13"><a href="#cb434-13" aria-hidden="true"></a>---</span>
-<span id="cb434-14"><a href="#cb434-14" aria-hidden="true"></a>name: Jane Doe</span>
-<span id="cb434-15"><a href="#cb434-15" aria-hidden="true"></a>age: 99</span>
-<span id="cb434-16"><a href="#cb434-16" aria-hidden="true"></a>---</span>
-<span id="cb434-17"><a href="#cb434-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb434-18"><a href="#cb434-18" aria-hidden="true"></a></span>
-<span id="cb434-19"><a href="#cb434-19" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb435"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb435-1"><a href="#cb435-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb437"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb437-1"><a href="#cb437-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb437-2"><a href="#cb437-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span>
+<span id="cb437-3"><a href="#cb437-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb437-4"><a href="#cb437-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb437-5"><a href="#cb437-5" aria-hidden="true"></a> jekyllDataString = {<span class="fu">\gdef\name</span>{#2}},</span>
+<span id="cb437-6"><a href="#cb437-6" aria-hidden="true"></a> jekyllDataNumber = {<span class="fu">\gdef\age</span>{#2}},</span>
+<span id="cb437-7"><a href="#cb437-7" aria-hidden="true"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span>
+<span id="cb437-8"><a href="#cb437-8" aria-hidden="true"></a> }</span>
+<span id="cb437-9"><a href="#cb437-9" aria-hidden="true"></a>}</span>
+<span id="cb437-10"><a href="#cb437-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb437-11"><a href="#cb437-11" aria-hidden="true"></a></span>
+<span id="cb437-12"><a href="#cb437-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb437-13"><a href="#cb437-13" aria-hidden="true"></a>---</span>
+<span id="cb437-14"><a href="#cb437-14" aria-hidden="true"></a>name: Jane Doe</span>
+<span id="cb437-15"><a href="#cb437-15" aria-hidden="true"></a>age: 99</span>
+<span id="cb437-16"><a href="#cb437-16" aria-hidden="true"></a>---</span>
+<span id="cb437-17"><a href="#cb437-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb437-18"><a href="#cb437-18" aria-hidden="true"></a></span>
+<span id="cb437-19"><a href="#cb437-19" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb438"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb438-1"><a href="#cb438-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Jane Doe is 99 years old.</p>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-41">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb436"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb436-1"><a href="#cb436-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb436-2"><a href="#cb436-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span>
-<span id="cb436-3"><a href="#cb436-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span>
-<span id="cb436-4"><a href="#cb436-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span>
-<span id="cb436-5"><a href="#cb436-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span>
-<span id="cb436-6"><a href="#cb436-6" aria-hidden="true"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span>
-<span id="cb436-7"><a href="#cb436-7" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb436-8"><a href="#cb436-8" aria-hidden="true"></a></span>
-<span id="cb436-9"><a href="#cb436-9" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb436-10"><a href="#cb436-10" aria-hidden="true"></a>---</span>
-<span id="cb436-11"><a href="#cb436-11" aria-hidden="true"></a>name: Jane Doe</span>
-<span id="cb436-12"><a href="#cb436-12" aria-hidden="true"></a>age: 99</span>
-<span id="cb436-13"><a href="#cb436-13" aria-hidden="true"></a>---</span>
-<span id="cb436-14"><a href="#cb436-14" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb436-15"><a href="#cb436-15" aria-hidden="true"></a></span>
-<span id="cb436-16"><a href="#cb436-16" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb437"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb437-1"><a href="#cb437-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb439"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb439-1"><a href="#cb439-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb439-2"><a href="#cb439-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span>
+<span id="cb439-3"><a href="#cb439-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span>
+<span id="cb439-4"><a href="#cb439-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span>
+<span id="cb439-5"><a href="#cb439-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span>
+<span id="cb439-6"><a href="#cb439-6" aria-hidden="true"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span>
+<span id="cb439-7"><a href="#cb439-7" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb439-8"><a href="#cb439-8" aria-hidden="true"></a></span>
+<span id="cb439-9"><a href="#cb439-9" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb439-10"><a href="#cb439-10" aria-hidden="true"></a>---</span>
+<span id="cb439-11"><a href="#cb439-11" aria-hidden="true"></a>name: Jane Doe</span>
+<span id="cb439-12"><a href="#cb439-12" aria-hidden="true"></a>age: 99</span>
+<span id="cb439-13"><a href="#cb439-13" aria-hidden="true"></a>---</span>
+<span id="cb439-14"><a href="#cb439-14" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb439-15"><a href="#cb439-15" aria-hidden="true"></a></span>
+<span id="cb439-16"><a href="#cb439-16" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb440"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb440-1"><a href="#cb440-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Jane Doe is 99 years old.</p>
@@ -5809,79 +5858,79 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererHeadingSix</code> macro represents a sixth level heading. The macro receives a single argument that corresponds to the heading text.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-30">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb438"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb438-1"><a href="#cb438-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb438-2"><a href="#cb438-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
-<span id="cb438-3"><a href="#cb438-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span>
-<span id="cb438-4"><a href="#cb438-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span>
-<span id="cb438-5"><a href="#cb438-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span>
-<span id="cb438-6"><a href="#cb438-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span>
-<span id="cb438-7"><a href="#cb438-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span>
-<span id="cb438-8"><a href="#cb438-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span>
-<span id="cb438-9"><a href="#cb438-9" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb438-10"><a href="#cb438-10" aria-hidden="true"></a>######</span>
-<span id="cb438-11"><a href="#cb438-11" aria-hidden="true"></a>#####</span>
-<span id="cb438-12"><a href="#cb438-12" aria-hidden="true"></a>#####</span>
-<span id="cb438-13"><a href="#cb438-13" aria-hidden="true"></a>###</span>
-<span id="cb438-14"><a href="#cb438-14" aria-hidden="true"></a>######</span>
-<span id="cb438-15"><a href="#cb438-15" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb438-16"><a href="#cb438-16" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb439"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb439-1"><a href="#cb439-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb441"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb441-1"><a href="#cb441-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb441-2"><a href="#cb441-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
+<span id="cb441-3"><a href="#cb441-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span>
+<span id="cb441-4"><a href="#cb441-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span>
+<span id="cb441-5"><a href="#cb441-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span>
+<span id="cb441-6"><a href="#cb441-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span>
+<span id="cb441-7"><a href="#cb441-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span>
+<span id="cb441-8"><a href="#cb441-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span>
+<span id="cb441-9"><a href="#cb441-9" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb441-10"><a href="#cb441-10" aria-hidden="true"></a>######</span>
+<span id="cb441-11"><a href="#cb441-11" aria-hidden="true"></a>#####</span>
+<span id="cb441-12"><a href="#cb441-12" aria-hidden="true"></a>#####</span>
+<span id="cb441-13"><a href="#cb441-13" aria-hidden="true"></a>###</span>
+<span id="cb441-14"><a href="#cb441-14" aria-hidden="true"></a>######</span>
+<span id="cb441-15"><a href="#cb441-15" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb441-16"><a href="#cb441-16" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb442"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb442-1"><a href="#cb442-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>65536</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-53"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-54"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb440"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb440-1"><a href="#cb440-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb440-2"><a href="#cb440-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb440-3"><a href="#cb440-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb440-4"><a href="#cb440-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb440-5"><a href="#cb440-5" aria-hidden="true"></a> interblockSeparator = {},</span>
-<span id="cb440-6"><a href="#cb440-6" aria-hidden="true"></a> headingOne = 1,</span>
-<span id="cb440-7"><a href="#cb440-7" aria-hidden="true"></a> headingTwo = 2,</span>
-<span id="cb440-8"><a href="#cb440-8" aria-hidden="true"></a> headingThree = 3,</span>
-<span id="cb440-9"><a href="#cb440-9" aria-hidden="true"></a> headingFour = 4,</span>
-<span id="cb440-10"><a href="#cb440-10" aria-hidden="true"></a> headingFive = 5,</span>
-<span id="cb440-11"><a href="#cb440-11" aria-hidden="true"></a> headingSix = 6,</span>
-<span id="cb440-12"><a href="#cb440-12" aria-hidden="true"></a> },</span>
-<span id="cb440-13"><a href="#cb440-13" aria-hidden="true"></a>}</span>
-<span id="cb440-14"><a href="#cb440-14" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb440-15"><a href="#cb440-15" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb440-16"><a href="#cb440-16" aria-hidden="true"></a>######</span>
-<span id="cb440-17"><a href="#cb440-17" aria-hidden="true"></a>#####</span>
-<span id="cb440-18"><a href="#cb440-18" aria-hidden="true"></a>#####</span>
-<span id="cb440-19"><a href="#cb440-19" aria-hidden="true"></a>###</span>
-<span id="cb440-20"><a href="#cb440-20" aria-hidden="true"></a>######</span>
-<span id="cb440-21"><a href="#cb440-21" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb440-22"><a href="#cb440-22" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb441"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb441-1"><a href="#cb441-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb443"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb443-1"><a href="#cb443-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb443-2"><a href="#cb443-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb443-3"><a href="#cb443-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb443-4"><a href="#cb443-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb443-5"><a href="#cb443-5" aria-hidden="true"></a> interblockSeparator = {},</span>
+<span id="cb443-6"><a href="#cb443-6" aria-hidden="true"></a> headingOne = 1,</span>
+<span id="cb443-7"><a href="#cb443-7" aria-hidden="true"></a> headingTwo = 2,</span>
+<span id="cb443-8"><a href="#cb443-8" aria-hidden="true"></a> headingThree = 3,</span>
+<span id="cb443-9"><a href="#cb443-9" aria-hidden="true"></a> headingFour = 4,</span>
+<span id="cb443-10"><a href="#cb443-10" aria-hidden="true"></a> headingFive = 5,</span>
+<span id="cb443-11"><a href="#cb443-11" aria-hidden="true"></a> headingSix = 6,</span>
+<span id="cb443-12"><a href="#cb443-12" aria-hidden="true"></a> },</span>
+<span id="cb443-13"><a href="#cb443-13" aria-hidden="true"></a>}</span>
+<span id="cb443-14"><a href="#cb443-14" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb443-15"><a href="#cb443-15" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb443-16"><a href="#cb443-16" aria-hidden="true"></a>######</span>
+<span id="cb443-17"><a href="#cb443-17" aria-hidden="true"></a>#####</span>
+<span id="cb443-18"><a href="#cb443-18" aria-hidden="true"></a>#####</span>
+<span id="cb443-19"><a href="#cb443-19" aria-hidden="true"></a>###</span>
+<span id="cb443-20"><a href="#cb443-20" aria-hidden="true"></a>######</span>
+<span id="cb443-21"><a href="#cb443-21" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb443-22"><a href="#cb443-22" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb444"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>65536</p>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-42">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb442"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb442-1"><a href="#cb442-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb442-2"><a href="#cb442-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
-<span id="cb442-3"><a href="#cb442-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span>
-<span id="cb442-4"><a href="#cb442-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span>
-<span id="cb442-5"><a href="#cb442-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span>
-<span id="cb442-6"><a href="#cb442-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span>
-<span id="cb442-7"><a href="#cb442-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span>
-<span id="cb442-8"><a href="#cb442-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span>
-<span id="cb442-9"><a href="#cb442-9" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb442-10"><a href="#cb442-10" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb442-11"><a href="#cb442-11" aria-hidden="true"></a>######</span>
-<span id="cb442-12"><a href="#cb442-12" aria-hidden="true"></a>#####</span>
-<span id="cb442-13"><a href="#cb442-13" aria-hidden="true"></a>#####</span>
-<span id="cb442-14"><a href="#cb442-14" aria-hidden="true"></a>###</span>
-<span id="cb442-15"><a href="#cb442-15" aria-hidden="true"></a>######</span>
-<span id="cb442-16"><a href="#cb442-16" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb442-17"><a href="#cb442-17" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb443"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb443-1"><a href="#cb443-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb445"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb445-1"><a href="#cb445-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb445-2"><a href="#cb445-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span>
+<span id="cb445-3"><a href="#cb445-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span>
+<span id="cb445-4"><a href="#cb445-4" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span>
+<span id="cb445-5"><a href="#cb445-5" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span>
+<span id="cb445-6"><a href="#cb445-6" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span>
+<span id="cb445-7"><a href="#cb445-7" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span>
+<span id="cb445-8"><a href="#cb445-8" aria-hidden="true"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span>
+<span id="cb445-9"><a href="#cb445-9" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb445-10"><a href="#cb445-10" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb445-11"><a href="#cb445-11" aria-hidden="true"></a>######</span>
+<span id="cb445-12"><a href="#cb445-12" aria-hidden="true"></a>#####</span>
+<span id="cb445-13"><a href="#cb445-13" aria-hidden="true"></a>#####</span>
+<span id="cb445-14"><a href="#cb445-14" aria-hidden="true"></a>###</span>
+<span id="cb445-15"><a href="#cb445-15" aria-hidden="true"></a>######</span>
+<span id="cb445-16"><a href="#cb445-16" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb445-17"><a href="#cb445-17" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb446"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb446-1"><a href="#cb446-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>65536</p>
@@ -5890,44 +5939,44 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererHorizontalRule</code> macro represents a horizontal rule. The macro receives no arguments.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-31">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb444"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb444-2"><a href="#cb444-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererHorizontalRule</span>{<span class="fu">\vfil\break</span>}</span>
-<span id="cb444-3"><a href="#cb444-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb444-4"><a href="#cb444-4" aria-hidden="true"></a>This is the first page.</span>
-<span id="cb444-5"><a href="#cb444-5" aria-hidden="true"></a></span>
-<span id="cb444-6"><a href="#cb444-6" aria-hidden="true"></a>***</span>
-<span id="cb444-7"><a href="#cb444-7" aria-hidden="true"></a></span>
-<span id="cb444-8"><a href="#cb444-8" aria-hidden="true"></a>This is the second page.</span>
-<span id="cb444-9"><a href="#cb444-9" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb444-10"><a href="#cb444-10" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb447"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb447-1"><a href="#cb447-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb447-2"><a href="#cb447-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererHorizontalRule</span>{<span class="fu">\vfil\break</span>}</span>
+<span id="cb447-3"><a href="#cb447-3" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb447-4"><a href="#cb447-4" aria-hidden="true"></a>This is the first page.</span>
+<span id="cb447-5"><a href="#cb447-5" aria-hidden="true"></a></span>
+<span id="cb447-6"><a href="#cb447-6" aria-hidden="true"></a>***</span>
+<span id="cb447-7"><a href="#cb447-7" aria-hidden="true"></a></span>
+<span id="cb447-8"><a href="#cb447-8" aria-hidden="true"></a>This is the second page.</span>
+<span id="cb447-9"><a href="#cb447-9" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb447-10"><a href="#cb447-10" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb445"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb445-1"><a href="#cb445-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb448"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb448-1"><a href="#cb448-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is the first page.</p>
<hr />
<p>This is the second page.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-54"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-55"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb446"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb446-1"><a href="#cb446-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb446-2"><a href="#cb446-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb446-3"><a href="#cb446-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb446-4"><a href="#cb446-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb446-5"><a href="#cb446-5" aria-hidden="true"></a> horizontalRule = <span class="fu">\newpage</span>,</span>
-<span id="cb446-6"><a href="#cb446-6" aria-hidden="true"></a> },</span>
-<span id="cb446-7"><a href="#cb446-7" aria-hidden="true"></a>}</span>
-<span id="cb446-8"><a href="#cb446-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb446-9"><a href="#cb446-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb446-10"><a href="#cb446-10" aria-hidden="true"></a>This is the first page.</span>
-<span id="cb446-11"><a href="#cb446-11" aria-hidden="true"></a></span>
-<span id="cb446-12"><a href="#cb446-12" aria-hidden="true"></a>***</span>
-<span id="cb446-13"><a href="#cb446-13" aria-hidden="true"></a></span>
-<span id="cb446-14"><a href="#cb446-14" aria-hidden="true"></a>This is the second page.</span>
-<span id="cb446-15"><a href="#cb446-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb446-16"><a href="#cb446-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb447"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb447-1"><a href="#cb447-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb449"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb449-1"><a href="#cb449-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb449-2"><a href="#cb449-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb449-3"><a href="#cb449-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb449-4"><a href="#cb449-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb449-5"><a href="#cb449-5" aria-hidden="true"></a> horizontalRule = <span class="fu">\newpage</span>,</span>
+<span id="cb449-6"><a href="#cb449-6" aria-hidden="true"></a> },</span>
+<span id="cb449-7"><a href="#cb449-7" aria-hidden="true"></a>}</span>
+<span id="cb449-8"><a href="#cb449-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb449-9"><a href="#cb449-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb449-10"><a href="#cb449-10" aria-hidden="true"></a>This is the first page.</span>
+<span id="cb449-11"><a href="#cb449-11" aria-hidden="true"></a></span>
+<span id="cb449-12"><a href="#cb449-12" aria-hidden="true"></a>***</span>
+<span id="cb449-13"><a href="#cb449-13" aria-hidden="true"></a></span>
+<span id="cb449-14"><a href="#cb449-14" aria-hidden="true"></a>This is the second page.</span>
+<span id="cb449-15"><a href="#cb449-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb449-16"><a href="#cb449-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb450"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb450-1"><a href="#cb450-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is the first page.</p>
@@ -5936,19 +5985,19 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-43">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb448"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb448-1"><a href="#cb448-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb448-2"><a href="#cb448-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererHorizontalRule</span>{<span class="fu">\page</span>[yes]}</span>
-<span id="cb448-3"><a href="#cb448-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb448-4"><a href="#cb448-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb448-5"><a href="#cb448-5" aria-hidden="true"></a>This is the first page.</span>
-<span id="cb448-6"><a href="#cb448-6" aria-hidden="true"></a></span>
-<span id="cb448-7"><a href="#cb448-7" aria-hidden="true"></a>***</span>
-<span id="cb448-8"><a href="#cb448-8" aria-hidden="true"></a></span>
-<span id="cb448-9"><a href="#cb448-9" aria-hidden="true"></a>This is the second page.</span>
-<span id="cb448-10"><a href="#cb448-10" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb448-11"><a href="#cb448-11" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb451"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb451-1"><a href="#cb451-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb451-2"><a href="#cb451-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererHorizontalRule</span>{<span class="fu">\page</span>[yes]}</span>
+<span id="cb451-3"><a href="#cb451-3" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb451-4"><a href="#cb451-4" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb451-5"><a href="#cb451-5" aria-hidden="true"></a>This is the first page.</span>
+<span id="cb451-6"><a href="#cb451-6" aria-hidden="true"></a></span>
+<span id="cb451-7"><a href="#cb451-7" aria-hidden="true"></a>***</span>
+<span id="cb451-8"><a href="#cb451-8" aria-hidden="true"></a></span>
+<span id="cb451-9"><a href="#cb451-9" aria-hidden="true"></a>This is the second page.</span>
+<span id="cb451-10"><a href="#cb451-10" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb451-11"><a href="#cb451-11" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb449"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb449-1"><a href="#cb449-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb452"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb452-1"><a href="#cb452-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is the first page.</p>
@@ -5959,163 +6008,163 @@ Thomas,Edison,1847</code></pre>
<p>The <code>\markdownRendererFootnote</code> macro represents a footnote. This macro will only be produced, when the <strong><code>footnotes</code></strong> option is enabled. The macro receives a single argument that corresponds to the footnote text.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-32">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb450"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb450-1"><a href="#cb450-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb450-2"><a href="#cb450-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionFootnotes</span>{true}</span>
-<span id="cb450-3"><a href="#cb450-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererFootnote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span>
-<span id="cb450-4"><a href="#cb450-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb450-5"><a href="#cb450-5" aria-hidden="true"></a>This is some text[^1] and this is some other text[^2].</span>
-<span id="cb450-6"><a href="#cb450-6" aria-hidden="true"></a></span>
-<span id="cb450-7"><a href="#cb450-7" aria-hidden="true"></a> [^1]: this is a footnote</span>
-<span id="cb450-8"><a href="#cb450-8" aria-hidden="true"></a></span>
-<span id="cb450-9"><a href="#cb450-9" aria-hidden="true"></a> [^2]: this is some other footnote</span>
-<span id="cb450-10"><a href="#cb450-10" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb450-11"><a href="#cb450-11" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<div class="sourceCode" id="cb453"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb453-1"><a href="#cb453-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb453-2"><a href="#cb453-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionFootnotes</span>{true}</span>
+<span id="cb453-3"><a href="#cb453-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererFootnote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span>
+<span id="cb453-4"><a href="#cb453-4" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb453-5"><a href="#cb453-5" aria-hidden="true"></a>This is some text[^1] and this is some other text[^2].</span>
+<span id="cb453-6"><a href="#cb453-6" aria-hidden="true"></a></span>
+<span id="cb453-7"><a href="#cb453-7" aria-hidden="true"></a> [^1]: this is a footnote</span>
+<span id="cb453-8"><a href="#cb453-8" aria-hidden="true"></a></span>
+<span id="cb453-9"><a href="#cb453-9" aria-hidden="true"></a> [^2]: this is some other footnote</span>
+<span id="cb453-10"><a href="#cb453-10" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb453-11"><a href="#cb453-11" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb451"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb451-1"><a href="#cb451-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb454"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb454-1"><a href="#cb454-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is some text (and this is a footnote) and this is some other text (and this is some other footnote).</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-55"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-56"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb452"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb452-1"><a href="#cb452-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb452-2"><a href="#cb452-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[footnotes]{<span class="ex">markdown</span>}</span>
-<span id="cb452-3"><a href="#cb452-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb452-4"><a href="#cb452-4" aria-hidden="true"></a> renderers = {</span>
-<span id="cb452-5"><a href="#cb452-5" aria-hidden="true"></a> footnote = { (and <span class="fu">\MakeLowercase</span>{#1})},</span>
-<span id="cb452-6"><a href="#cb452-6" aria-hidden="true"></a> },</span>
-<span id="cb452-7"><a href="#cb452-7" aria-hidden="true"></a>}</span>
-<span id="cb452-8"><a href="#cb452-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb452-9"><a href="#cb452-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb452-10"><a href="#cb452-10" aria-hidden="true"></a>This is some text[^1] and this is some other text[^2].</span>
-<span id="cb452-11"><a href="#cb452-11" aria-hidden="true"></a></span>
-<span id="cb452-12"><a href="#cb452-12" aria-hidden="true"></a> [^1]: this is a footnote</span>
-<span id="cb452-13"><a href="#cb452-13" aria-hidden="true"></a></span>
-<span id="cb452-14"><a href="#cb452-14" aria-hidden="true"></a> [^2]: this is some other footnote</span>
-<span id="cb452-15"><a href="#cb452-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb452-16"><a href="#cb452-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb453"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb453-1"><a href="#cb453-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb455"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb455-1"><a href="#cb455-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb455-2"><a href="#cb455-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[footnotes]{<span class="ex">markdown</span>}</span>
+<span id="cb455-3"><a href="#cb455-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb455-4"><a href="#cb455-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb455-5"><a href="#cb455-5" aria-hidden="true"></a> footnote = { (and <span class="fu">\MakeLowercase</span>{#1})},</span>
+<span id="cb455-6"><a href="#cb455-6" aria-hidden="true"></a> },</span>
+<span id="cb455-7"><a href="#cb455-7" aria-hidden="true"></a>}</span>
+<span id="cb455-8"><a href="#cb455-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb455-9"><a href="#cb455-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb455-10"><a href="#cb455-10" aria-hidden="true"></a>This is some text[^1] and this is some other text[^2].</span>
+<span id="cb455-11"><a href="#cb455-11" aria-hidden="true"></a></span>
+<span id="cb455-12"><a href="#cb455-12" aria-hidden="true"></a> [^1]: this is a footnote</span>
+<span id="cb455-13"><a href="#cb455-13" aria-hidden="true"></a></span>
+<span id="cb455-14"><a href="#cb455-14" aria-hidden="true"></a> [^2]: this is some other footnote</span>
+<span id="cb455-15"><a href="#cb455-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb455-16"><a href="#cb455-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb456"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb456-1"><a href="#cb456-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is some text (and this is a footnote) and this is some other text (and this is some other footnote).</p>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-44">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb454"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb454-1"><a href="#cb454-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb454-2"><a href="#cb454-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionFootnotes</span>{true}</span>
-<span id="cb454-3"><a href="#cb454-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererFootnote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span>
-<span id="cb454-4"><a href="#cb454-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb454-5"><a href="#cb454-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb454-6"><a href="#cb454-6" aria-hidden="true"></a>This is some text[^1] and this is some other text[^2].</span>
-<span id="cb454-7"><a href="#cb454-7" aria-hidden="true"></a></span>
-<span id="cb454-8"><a href="#cb454-8" aria-hidden="true"></a> [^1]: this is a footnote</span>
-<span id="cb454-9"><a href="#cb454-9" aria-hidden="true"></a></span>
-<span id="cb454-10"><a href="#cb454-10" aria-hidden="true"></a> [^2]: this is some other footnote</span>
-<span id="cb454-11"><a href="#cb454-11" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb454-12"><a href="#cb454-12" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<div class="sourceCode" id="cb457"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb457-1"><a href="#cb457-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb457-2"><a href="#cb457-2" aria-hidden="true"></a><span class="fu">\def\markdownOptionFootnotes</span>{true}</span>
+<span id="cb457-3"><a href="#cb457-3" aria-hidden="true"></a><span class="fu">\def\markdownRendererFootnote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span>
+<span id="cb457-4"><a href="#cb457-4" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb457-5"><a href="#cb457-5" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb457-6"><a href="#cb457-6" aria-hidden="true"></a>This is some text[^1] and this is some other text[^2].</span>
+<span id="cb457-7"><a href="#cb457-7" aria-hidden="true"></a></span>
+<span id="cb457-8"><a href="#cb457-8" aria-hidden="true"></a> [^1]: this is a footnote</span>
+<span id="cb457-9"><a href="#cb457-9" aria-hidden="true"></a></span>
+<span id="cb457-10"><a href="#cb457-10" aria-hidden="true"></a> [^2]: this is some other footnote</span>
+<span id="cb457-11"><a href="#cb457-11" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb457-12"><a href="#cb457-12" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb455"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb455-1"><a href="#cb455-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb458"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb458-1"><a href="#cb458-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is some text (and this is a footnote) and this is some other text (and this is some other footnote).</p>
</blockquote>
<h4 data-number="2.3.1.22" id="parenthesized-citations-renderer"><span class="header-section-number">2.3.1.22</span> Parenthesized Citations Renderer</h4>
<p>The <code>\markdownRendererCite</code> macro represents a string of one or more parenthetical citations. This macro will only be produced, when the <strong><code>citations</code></strong> option is enabled. The macro receives the parameter <code>{</code>⟨<em>number of citations</em>⟩<code>}</code> followed by ⟨<em>suppress author</em>⟩ <code>{</code>⟨<em>prenote</em>⟩<code>}{</code>⟨<em>postnote</em>⟩<code>}{</code>⟨<em>name</em>⟩<code>}</code> repeated ⟨<em>number of citations</em>⟩ times. The ⟨<em>suppress author</em>⟩ parameter is either the token <code>-</code>, when the author’s name is to be suppressed, or <code>+</code> otherwise.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-56"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-57"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb456"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb456-1"><a href="#cb456-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb456-2"><a href="#cb456-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span>
-<span id="cb456-3"><a href="#cb456-3" aria-hidden="true"></a><span class="fu">\newcount\citationsCounter</span></span>
-<span id="cb456-4"><a href="#cb456-4" aria-hidden="true"></a><span class="fu">\newcount\citationsTotal</span></span>
-<span id="cb456-5"><a href="#cb456-5" aria-hidden="true"></a><span class="fu">\makeatletter</span></span>
-<span id="cb456-6"><a href="#cb456-6" aria-hidden="true"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb456-7"><a href="#cb456-7" aria-hidden="true"></a> a parenthesized citation <span class="fu">\emph</span>{#4}</span>
-<span id="cb456-8"><a href="#cb456-8" aria-hidden="true"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span>
-<span id="cb456-9"><a href="#cb456-9" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span>
-<span id="cb456-10"><a href="#cb456-10" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
-<span id="cb456-11"><a href="#cb456-11" aria-hidden="true"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
-<span id="cb456-12"><a href="#cb456-12" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb456-13"><a href="#cb456-13" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb456-14"><a href="#cb456-14" aria-hidden="true"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span>
-<span id="cb456-15"><a href="#cb456-15" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
-<span id="cb456-16"><a href="#cb456-16" aria-hidden="true"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
-<span id="cb456-17"><a href="#cb456-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb456-18"><a href="#cb456-18" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb456-19"><a href="#cb456-19" aria-hidden="true"></a> <span class="fu">\ifnum\citationsCounter</span>&gt;<span class="fu">\citationsTotal\relax</span></span>
-<span id="cb456-20"><a href="#cb456-20" aria-hidden="true"></a> .<span class="co">%</span></span>
-<span id="cb456-21"><a href="#cb456-21" aria-hidden="true"></a> <span class="fu">\expandafter\@gobble</span></span>
-<span id="cb456-22"><a href="#cb456-22" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb456-23"><a href="#cb456-23" aria-hidden="true"></a> , and</span>
-<span id="cb456-24"><a href="#cb456-24" aria-hidden="true"></a> <span class="fu">\fi\citations</span>}</span>
-<span id="cb456-25"><a href="#cb456-25" aria-hidden="true"></a><span class="fu">\makeatother</span></span>
-<span id="cb456-26"><a href="#cb456-26" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb456-27"><a href="#cb456-27" aria-hidden="true"></a> renderers = {</span>
-<span id="cb456-28"><a href="#cb456-28" aria-hidden="true"></a> cite = {<span class="co">%</span></span>
-<span id="cb456-29"><a href="#cb456-29" aria-hidden="true"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span>
-<span id="cb456-30"><a href="#cb456-30" aria-hidden="true"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span>
-<span id="cb456-31"><a href="#cb456-31" aria-hidden="true"></a> This is</span>
-<span id="cb456-32"><a href="#cb456-32" aria-hidden="true"></a> <span class="fu">\expandafter\citations</span></span>
-<span id="cb456-33"><a href="#cb456-33" aria-hidden="true"></a> },</span>
-<span id="cb456-34"><a href="#cb456-34" aria-hidden="true"></a> },</span>
-<span id="cb456-35"><a href="#cb456-35" aria-hidden="true"></a>}</span>
-<span id="cb456-36"><a href="#cb456-36" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb456-37"><a href="#cb456-37" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb456-38"><a href="#cb456-38" aria-hidden="true"></a>[see @abrahams90, pp. 12; @eijkhout91, pp. 34]</span>
-<span id="cb456-39"><a href="#cb456-39" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb456-40"><a href="#cb456-40" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb457"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb457-1"><a href="#cb457-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb459"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb459-1"><a href="#cb459-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb459-2"><a href="#cb459-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span>
+<span id="cb459-3"><a href="#cb459-3" aria-hidden="true"></a><span class="fu">\newcount\citationsCounter</span></span>
+<span id="cb459-4"><a href="#cb459-4" aria-hidden="true"></a><span class="fu">\newcount\citationsTotal</span></span>
+<span id="cb459-5"><a href="#cb459-5" aria-hidden="true"></a><span class="fu">\makeatletter</span></span>
+<span id="cb459-6"><a href="#cb459-6" aria-hidden="true"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb459-7"><a href="#cb459-7" aria-hidden="true"></a> a parenthesized citation <span class="fu">\emph</span>{#4}</span>
+<span id="cb459-8"><a href="#cb459-8" aria-hidden="true"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span>
+<span id="cb459-9"><a href="#cb459-9" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span>
+<span id="cb459-10"><a href="#cb459-10" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
+<span id="cb459-11"><a href="#cb459-11" aria-hidden="true"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
+<span id="cb459-12"><a href="#cb459-12" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb459-13"><a href="#cb459-13" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb459-14"><a href="#cb459-14" aria-hidden="true"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span>
+<span id="cb459-15"><a href="#cb459-15" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
+<span id="cb459-16"><a href="#cb459-16" aria-hidden="true"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
+<span id="cb459-17"><a href="#cb459-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb459-18"><a href="#cb459-18" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb459-19"><a href="#cb459-19" aria-hidden="true"></a> <span class="fu">\ifnum\citationsCounter</span>&gt;<span class="fu">\citationsTotal\relax</span></span>
+<span id="cb459-20"><a href="#cb459-20" aria-hidden="true"></a> .<span class="co">%</span></span>
+<span id="cb459-21"><a href="#cb459-21" aria-hidden="true"></a> <span class="fu">\expandafter\@gobble</span></span>
+<span id="cb459-22"><a href="#cb459-22" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb459-23"><a href="#cb459-23" aria-hidden="true"></a> , and</span>
+<span id="cb459-24"><a href="#cb459-24" aria-hidden="true"></a> <span class="fu">\fi\citations</span>}</span>
+<span id="cb459-25"><a href="#cb459-25" aria-hidden="true"></a><span class="fu">\makeatother</span></span>
+<span id="cb459-26"><a href="#cb459-26" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb459-27"><a href="#cb459-27" aria-hidden="true"></a> renderers = {</span>
+<span id="cb459-28"><a href="#cb459-28" aria-hidden="true"></a> cite = {<span class="co">%</span></span>
+<span id="cb459-29"><a href="#cb459-29" aria-hidden="true"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span>
+<span id="cb459-30"><a href="#cb459-30" aria-hidden="true"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span>
+<span id="cb459-31"><a href="#cb459-31" aria-hidden="true"></a> This is</span>
+<span id="cb459-32"><a href="#cb459-32" aria-hidden="true"></a> <span class="fu">\expandafter\citations</span></span>
+<span id="cb459-33"><a href="#cb459-33" aria-hidden="true"></a> },</span>
+<span id="cb459-34"><a href="#cb459-34" aria-hidden="true"></a> },</span>
+<span id="cb459-35"><a href="#cb459-35" aria-hidden="true"></a>}</span>
+<span id="cb459-36"><a href="#cb459-36" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb459-37"><a href="#cb459-37" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb459-38"><a href="#cb459-38" aria-hidden="true"></a>[see @abrahams90, pp. 12; @eijkhout91, pp. 34]</span>
+<span id="cb459-39"><a href="#cb459-39" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb459-40"><a href="#cb459-40" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb460"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb460-1"><a href="#cb460-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a parenthesized citation <em>abrahams90</em> with a prefix see and a postfix <em>pp. 12</em>, and a citation <em>eijkhout91</em> with a postfix <em>pp. 34</em>.</p>
</blockquote>
<h4 data-number="2.3.1.23" id="text-citations-renderer"><span class="header-section-number">2.3.1.23</span> Text Citations Renderer</h4>
<p>The <code>\markdownRendererTextCite</code> macro represents a string of one or more text citations. This macro will only be produced, when the <strong><code>citations</code></strong> option is enabled. The macro receives parameters in the same format as the macro.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-57"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-58"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb458"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb458-1"><a href="#cb458-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb458-2"><a href="#cb458-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span>
-<span id="cb458-3"><a href="#cb458-3" aria-hidden="true"></a><span class="fu">\newcount\citationsCounter</span></span>
-<span id="cb458-4"><a href="#cb458-4" aria-hidden="true"></a><span class="fu">\newcount\citationsTotal</span></span>
-<span id="cb458-5"><a href="#cb458-5" aria-hidden="true"></a><span class="fu">\makeatletter</span></span>
-<span id="cb458-6"><a href="#cb458-6" aria-hidden="true"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span>
-<span id="cb458-7"><a href="#cb458-7" aria-hidden="true"></a> a text citation <span class="fu">\emph</span>{#4}</span>
-<span id="cb458-8"><a href="#cb458-8" aria-hidden="true"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span>
-<span id="cb458-9"><a href="#cb458-9" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span>
-<span id="cb458-10"><a href="#cb458-10" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
-<span id="cb458-11"><a href="#cb458-11" aria-hidden="true"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
-<span id="cb458-12"><a href="#cb458-12" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb458-13"><a href="#cb458-13" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb458-14"><a href="#cb458-14" aria-hidden="true"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span>
-<span id="cb458-15"><a href="#cb458-15" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
-<span id="cb458-16"><a href="#cb458-16" aria-hidden="true"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
-<span id="cb458-17"><a href="#cb458-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb458-18"><a href="#cb458-18" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb458-19"><a href="#cb458-19" aria-hidden="true"></a> <span class="fu">\ifnum\citationsCounter</span>&gt;<span class="fu">\citationsTotal\relax</span></span>
-<span id="cb458-20"><a href="#cb458-20" aria-hidden="true"></a> .<span class="co">%</span></span>
-<span id="cb458-21"><a href="#cb458-21" aria-hidden="true"></a> <span class="fu">\expandafter\@gobble</span></span>
-<span id="cb458-22"><a href="#cb458-22" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb458-23"><a href="#cb458-23" aria-hidden="true"></a> , and</span>
-<span id="cb458-24"><a href="#cb458-24" aria-hidden="true"></a> <span class="fu">\fi\citations</span>}</span>
-<span id="cb458-25"><a href="#cb458-25" aria-hidden="true"></a><span class="fu">\makeatother</span></span>
-<span id="cb458-26"><a href="#cb458-26" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb458-27"><a href="#cb458-27" aria-hidden="true"></a> renderers = {</span>
-<span id="cb458-28"><a href="#cb458-28" aria-hidden="true"></a> textCite = {<span class="co">%</span></span>
-<span id="cb458-29"><a href="#cb458-29" aria-hidden="true"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span>
-<span id="cb458-30"><a href="#cb458-30" aria-hidden="true"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span>
-<span id="cb458-31"><a href="#cb458-31" aria-hidden="true"></a> This is</span>
-<span id="cb458-32"><a href="#cb458-32" aria-hidden="true"></a> <span class="fu">\expandafter\citations</span></span>
-<span id="cb458-33"><a href="#cb458-33" aria-hidden="true"></a> },</span>
-<span id="cb458-34"><a href="#cb458-34" aria-hidden="true"></a> },</span>
-<span id="cb458-35"><a href="#cb458-35" aria-hidden="true"></a>}</span>
-<span id="cb458-36"><a href="#cb458-36" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb458-37"><a href="#cb458-37" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb458-38"><a href="#cb458-38" aria-hidden="true"></a>@abrahams90 [pp. 12; also @eijkhout91]</span>
-<span id="cb458-39"><a href="#cb458-39" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb458-40"><a href="#cb458-40" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb459"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb459-1"><a href="#cb459-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb461"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb461-1"><a href="#cb461-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb461-2"><a href="#cb461-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span>
+<span id="cb461-3"><a href="#cb461-3" aria-hidden="true"></a><span class="fu">\newcount\citationsCounter</span></span>
+<span id="cb461-4"><a href="#cb461-4" aria-hidden="true"></a><span class="fu">\newcount\citationsTotal</span></span>
+<span id="cb461-5"><a href="#cb461-5" aria-hidden="true"></a><span class="fu">\makeatletter</span></span>
+<span id="cb461-6"><a href="#cb461-6" aria-hidden="true"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span>
+<span id="cb461-7"><a href="#cb461-7" aria-hidden="true"></a> a text citation <span class="fu">\emph</span>{#4}</span>
+<span id="cb461-8"><a href="#cb461-8" aria-hidden="true"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span>
+<span id="cb461-9"><a href="#cb461-9" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span>
+<span id="cb461-10"><a href="#cb461-10" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
+<span id="cb461-11"><a href="#cb461-11" aria-hidden="true"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
+<span id="cb461-12"><a href="#cb461-12" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb461-13"><a href="#cb461-13" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb461-14"><a href="#cb461-14" aria-hidden="true"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span>
+<span id="cb461-15"><a href="#cb461-15" aria-hidden="true"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span>
+<span id="cb461-16"><a href="#cb461-16" aria-hidden="true"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span>
+<span id="cb461-17"><a href="#cb461-17" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb461-18"><a href="#cb461-18" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb461-19"><a href="#cb461-19" aria-hidden="true"></a> <span class="fu">\ifnum\citationsCounter</span>&gt;<span class="fu">\citationsTotal\relax</span></span>
+<span id="cb461-20"><a href="#cb461-20" aria-hidden="true"></a> .<span class="co">%</span></span>
+<span id="cb461-21"><a href="#cb461-21" aria-hidden="true"></a> <span class="fu">\expandafter\@gobble</span></span>
+<span id="cb461-22"><a href="#cb461-22" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb461-23"><a href="#cb461-23" aria-hidden="true"></a> , and</span>
+<span id="cb461-24"><a href="#cb461-24" aria-hidden="true"></a> <span class="fu">\fi\citations</span>}</span>
+<span id="cb461-25"><a href="#cb461-25" aria-hidden="true"></a><span class="fu">\makeatother</span></span>
+<span id="cb461-26"><a href="#cb461-26" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb461-27"><a href="#cb461-27" aria-hidden="true"></a> renderers = {</span>
+<span id="cb461-28"><a href="#cb461-28" aria-hidden="true"></a> textCite = {<span class="co">%</span></span>
+<span id="cb461-29"><a href="#cb461-29" aria-hidden="true"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span>
+<span id="cb461-30"><a href="#cb461-30" aria-hidden="true"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span>
+<span id="cb461-31"><a href="#cb461-31" aria-hidden="true"></a> This is</span>
+<span id="cb461-32"><a href="#cb461-32" aria-hidden="true"></a> <span class="fu">\expandafter\citations</span></span>
+<span id="cb461-33"><a href="#cb461-33" aria-hidden="true"></a> },</span>
+<span id="cb461-34"><a href="#cb461-34" aria-hidden="true"></a> },</span>
+<span id="cb461-35"><a href="#cb461-35" aria-hidden="true"></a>}</span>
+<span id="cb461-36"><a href="#cb461-36" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb461-37"><a href="#cb461-37" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb461-38"><a href="#cb461-38" aria-hidden="true"></a>@abrahams90 [pp. 12; also @eijkhout91]</span>
+<span id="cb461-39"><a href="#cb461-39" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb461-40"><a href="#cb461-40" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb462"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb462-1"><a href="#cb462-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a text citation <em>abrahams90</em> with a postfix <em>pp. 12</em>, and a citation <em>eijkhout91</em> with a prefix <em>also</em>.</p>
@@ -6128,151 +6177,291 @@ Thomas,Edison,1847</code></pre>
<li><code>c</code> – The corresponding column is centered.</li>
<li><code>r</code> – The corresponding column is right-aligned.</li>
</ul>
-<h5 class="unnumbered" data-number="" id="latex-example-58"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<h5 class="unnumbered" data-number="" id="latex-example-59"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb460"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb460-1"><a href="#cb460-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb460-2"><a href="#cb460-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span>
-<span id="cb460-3"><a href="#cb460-3" aria-hidden="true"></a><span class="fu">\newcount\rowCounter</span></span>
-<span id="cb460-4"><a href="#cb460-4" aria-hidden="true"></a><span class="fu">\newcount\columnCounter</span></span>
-<span id="cb460-5"><a href="#cb460-5" aria-hidden="true"></a><span class="fu">\makeatletter</span></span>
-<span id="cb460-6"><a href="#cb460-6" aria-hidden="true"></a><span class="fu">\def\processRow</span>#1{<span class="co">%</span></span>
-<span id="cb460-7"><a href="#cb460-7" aria-hidden="true"></a> <span class="fu">\columnCounter</span>=1<span class="co">%</span></span>
-<span id="cb460-8"><a href="#cb460-8" aria-hidden="true"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span>
-<span id="cb460-9"><a href="#cb460-9" aria-hidden="true"></a> As for the alignment,</span>
-<span id="cb460-10"><a href="#cb460-10" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb460-11"><a href="#cb460-11" aria-hidden="true"></a> In row <span class="fu">\the\rowCounter</span>,</span>
-<span id="cb460-12"><a href="#cb460-12" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb460-13"><a href="#cb460-13" aria-hidden="true"></a> <span class="fu">\processColumn</span>#1</span>
-<span id="cb460-14"><a href="#cb460-14" aria-hidden="true"></a> <span class="fu">\advance\rowCounter</span> by 1<span class="fu">\relax</span></span>
-<span id="cb460-15"><a href="#cb460-15" aria-hidden="true"></a> <span class="fu">\ifnum\rowCounter</span>&gt;<span class="fu">\rowTotal\relax</span></span>
-<span id="cb460-16"><a href="#cb460-16" aria-hidden="true"></a> <span class="fu">\expandafter\@gobble</span></span>
-<span id="cb460-17"><a href="#cb460-17" aria-hidden="true"></a> <span class="fu">\fi\processRow</span>}<span class="co">%</span></span>
-<span id="cb460-18"><a href="#cb460-18" aria-hidden="true"></a><span class="fu">\def\processColumn</span>#1{<span class="co">%</span></span>
-<span id="cb460-19"><a href="#cb460-19" aria-hidden="true"></a> column number <span class="fu">\the\columnCounter</span>{}</span>
-<span id="cb460-20"><a href="#cb460-20" aria-hidden="true"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span>
-<span id="cb460-21"><a href="#cb460-21" aria-hidden="true"></a> <span class="fu">\if</span>#1d{}has default alignment<span class="fu">\fi</span></span>
-<span id="cb460-22"><a href="#cb460-22" aria-hidden="true"></a> <span class="fu">\if</span>#1l{}is left-aligned<span class="fu">\fi</span></span>
-<span id="cb460-23"><a href="#cb460-23" aria-hidden="true"></a> <span class="fu">\if</span>#1c{}is centered<span class="fu">\fi</span></span>
-<span id="cb460-24"><a href="#cb460-24" aria-hidden="true"></a> <span class="fu">\if</span>#1r{}is right-aligned<span class="fu">\fi</span></span>
-<span id="cb460-25"><a href="#cb460-25" aria-hidden="true"></a> <span class="fu">\else</span></span>
-<span id="cb460-26"><a href="#cb460-26" aria-hidden="true"></a> says <span class="fu">\emph</span>{#1}<span class="co">%</span></span>
-<span id="cb460-27"><a href="#cb460-27" aria-hidden="true"></a> <span class="fu">\fi</span></span>
-<span id="cb460-28"><a href="#cb460-28" aria-hidden="true"></a> <span class="fu">\advance\columnCounter</span> by 1<span class="fu">\relax</span></span>
-<span id="cb460-29"><a href="#cb460-29" aria-hidden="true"></a> <span class="fu">\ifnum\columnCounter</span>&lt;<span class="fu">\columnTotal\relax</span>, <span class="fu">\fi</span></span>
-<span id="cb460-30"><a href="#cb460-30" aria-hidden="true"></a> <span class="fu">\ifnum\columnCounter</span>=<span class="fu">\columnTotal\relax</span>, and <span class="fu">\fi</span></span>
-<span id="cb460-31"><a href="#cb460-31" aria-hidden="true"></a> <span class="fu">\ifnum\columnCounter</span>&gt;<span class="fu">\columnTotal\relax</span></span>
-<span id="cb460-32"><a href="#cb460-32" aria-hidden="true"></a> .<span class="fu">\expandafter\@gobble</span></span>
-<span id="cb460-33"><a href="#cb460-33" aria-hidden="true"></a> <span class="fu">\fi\processColumn</span>}<span class="co">%</span></span>
-<span id="cb460-34"><a href="#cb460-34" aria-hidden="true"></a><span class="fu">\makeatother</span></span>
-<span id="cb460-35"><a href="#cb460-35" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb460-36"><a href="#cb460-36" aria-hidden="true"></a> renderers = {</span>
-<span id="cb460-37"><a href="#cb460-37" aria-hidden="true"></a> table = {<span class="co">%</span></span>
-<span id="cb460-38"><a href="#cb460-38" aria-hidden="true"></a> This is a table with caption <span class="fu">\emph</span>{#1} that is #3 colums wide</span>
-<span id="cb460-39"><a href="#cb460-39" aria-hidden="true"></a> and #2 rows long.</span>
-<span id="cb460-40"><a href="#cb460-40" aria-hidden="true"></a> <span class="fu">\rowCounter</span>=0<span class="co">%</span></span>
-<span id="cb460-41"><a href="#cb460-41" aria-hidden="true"></a> <span class="fu">\def\rowTotal</span>{#2}<span class="co">%</span></span>
-<span id="cb460-42"><a href="#cb460-42" aria-hidden="true"></a> <span class="fu">\def\columnTotal</span>{#3}<span class="co">%</span></span>
-<span id="cb460-43"><a href="#cb460-43" aria-hidden="true"></a> <span class="fu">\processRow</span></span>
-<span id="cb460-44"><a href="#cb460-44" aria-hidden="true"></a> },</span>
-<span id="cb460-45"><a href="#cb460-45" aria-hidden="true"></a> },</span>
-<span id="cb460-46"><a href="#cb460-46" aria-hidden="true"></a>}</span>
-<span id="cb460-47"><a href="#cb460-47" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb460-48"><a href="#cb460-48" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb460-49"><a href="#cb460-49" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
-<span id="cb460-50"><a href="#cb460-50" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
-<span id="cb460-51"><a href="#cb460-51" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
-<span id="cb460-52"><a href="#cb460-52" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
-<span id="cb460-53"><a href="#cb460-53" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
-<span id="cb460-54"><a href="#cb460-54" aria-hidden="true"></a></span>
-<span id="cb460-55"><a href="#cb460-55" aria-hidden="true"></a> : Demonstration of pipe table syntax</span>
-<span id="cb460-56"><a href="#cb460-56" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb460-57"><a href="#cb460-57" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb461"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb461-1"><a href="#cb461-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb463"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb463-1"><a href="#cb463-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb463-2"><a href="#cb463-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span>
+<span id="cb463-3"><a href="#cb463-3" aria-hidden="true"></a><span class="fu">\newcount\rowCounter</span></span>
+<span id="cb463-4"><a href="#cb463-4" aria-hidden="true"></a><span class="fu">\newcount\columnCounter</span></span>
+<span id="cb463-5"><a href="#cb463-5" aria-hidden="true"></a><span class="fu">\makeatletter</span></span>
+<span id="cb463-6"><a href="#cb463-6" aria-hidden="true"></a><span class="fu">\def\processRow</span>#1{<span class="co">%</span></span>
+<span id="cb463-7"><a href="#cb463-7" aria-hidden="true"></a> <span class="fu">\columnCounter</span>=1<span class="co">%</span></span>
+<span id="cb463-8"><a href="#cb463-8" aria-hidden="true"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span>
+<span id="cb463-9"><a href="#cb463-9" aria-hidden="true"></a> As for the alignment,</span>
+<span id="cb463-10"><a href="#cb463-10" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb463-11"><a href="#cb463-11" aria-hidden="true"></a> In row <span class="fu">\the\rowCounter</span>,</span>
+<span id="cb463-12"><a href="#cb463-12" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb463-13"><a href="#cb463-13" aria-hidden="true"></a> <span class="fu">\processColumn</span>#1</span>
+<span id="cb463-14"><a href="#cb463-14" aria-hidden="true"></a> <span class="fu">\advance\rowCounter</span> by 1<span class="fu">\relax</span></span>
+<span id="cb463-15"><a href="#cb463-15" aria-hidden="true"></a> <span class="fu">\ifnum\rowCounter</span>&gt;<span class="fu">\rowTotal\relax</span></span>
+<span id="cb463-16"><a href="#cb463-16" aria-hidden="true"></a> <span class="fu">\expandafter\@gobble</span></span>
+<span id="cb463-17"><a href="#cb463-17" aria-hidden="true"></a> <span class="fu">\fi\processRow</span>}<span class="co">%</span></span>
+<span id="cb463-18"><a href="#cb463-18" aria-hidden="true"></a><span class="fu">\def\processColumn</span>#1{<span class="co">%</span></span>
+<span id="cb463-19"><a href="#cb463-19" aria-hidden="true"></a> column number <span class="fu">\the\columnCounter</span>{}</span>
+<span id="cb463-20"><a href="#cb463-20" aria-hidden="true"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span>
+<span id="cb463-21"><a href="#cb463-21" aria-hidden="true"></a> <span class="fu">\if</span>#1d{}has default alignment<span class="fu">\fi</span></span>
+<span id="cb463-22"><a href="#cb463-22" aria-hidden="true"></a> <span class="fu">\if</span>#1l{}is left-aligned<span class="fu">\fi</span></span>
+<span id="cb463-23"><a href="#cb463-23" aria-hidden="true"></a> <span class="fu">\if</span>#1c{}is centered<span class="fu">\fi</span></span>
+<span id="cb463-24"><a href="#cb463-24" aria-hidden="true"></a> <span class="fu">\if</span>#1r{}is right-aligned<span class="fu">\fi</span></span>
+<span id="cb463-25"><a href="#cb463-25" aria-hidden="true"></a> <span class="fu">\else</span></span>
+<span id="cb463-26"><a href="#cb463-26" aria-hidden="true"></a> says <span class="fu">\emph</span>{#1}<span class="co">%</span></span>
+<span id="cb463-27"><a href="#cb463-27" aria-hidden="true"></a> <span class="fu">\fi</span></span>
+<span id="cb463-28"><a href="#cb463-28" aria-hidden="true"></a> <span class="fu">\advance\columnCounter</span> by 1<span class="fu">\relax</span></span>
+<span id="cb463-29"><a href="#cb463-29" aria-hidden="true"></a> <span class="fu">\ifnum\columnCounter</span>&lt;<span class="fu">\columnTotal\relax</span>, <span class="fu">\fi</span></span>
+<span id="cb463-30"><a href="#cb463-30" aria-hidden="true"></a> <span class="fu">\ifnum\columnCounter</span>=<span class="fu">\columnTotal\relax</span>, and <span class="fu">\fi</span></span>
+<span id="cb463-31"><a href="#cb463-31" aria-hidden="true"></a> <span class="fu">\ifnum\columnCounter</span>&gt;<span class="fu">\columnTotal\relax</span></span>
+<span id="cb463-32"><a href="#cb463-32" aria-hidden="true"></a> .<span class="fu">\expandafter\@gobble</span></span>
+<span id="cb463-33"><a href="#cb463-33" aria-hidden="true"></a> <span class="fu">\fi\processColumn</span>}<span class="co">%</span></span>
+<span id="cb463-34"><a href="#cb463-34" aria-hidden="true"></a><span class="fu">\makeatother</span></span>
+<span id="cb463-35"><a href="#cb463-35" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb463-36"><a href="#cb463-36" aria-hidden="true"></a> renderers = {</span>
+<span id="cb463-37"><a href="#cb463-37" aria-hidden="true"></a> table = {<span class="co">%</span></span>
+<span id="cb463-38"><a href="#cb463-38" aria-hidden="true"></a> This is a table with caption <span class="fu">\emph</span>{#1} that is #3 colums wide</span>
+<span id="cb463-39"><a href="#cb463-39" aria-hidden="true"></a> and #2 rows long.</span>
+<span id="cb463-40"><a href="#cb463-40" aria-hidden="true"></a> <span class="fu">\rowCounter</span>=0<span class="co">%</span></span>
+<span id="cb463-41"><a href="#cb463-41" aria-hidden="true"></a> <span class="fu">\def\rowTotal</span>{#2}<span class="co">%</span></span>
+<span id="cb463-42"><a href="#cb463-42" aria-hidden="true"></a> <span class="fu">\def\columnTotal</span>{#3}<span class="co">%</span></span>
+<span id="cb463-43"><a href="#cb463-43" aria-hidden="true"></a> <span class="fu">\processRow</span></span>
+<span id="cb463-44"><a href="#cb463-44" aria-hidden="true"></a> },</span>
+<span id="cb463-45"><a href="#cb463-45" aria-hidden="true"></a> },</span>
+<span id="cb463-46"><a href="#cb463-46" aria-hidden="true"></a>}</span>
+<span id="cb463-47"><a href="#cb463-47" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb463-48"><a href="#cb463-48" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb463-49"><a href="#cb463-49" aria-hidden="true"></a>| Right | Left | Default | Center |</span>
+<span id="cb463-50"><a href="#cb463-50" aria-hidden="true"></a>|------:|:-----|---------|:------:|</span>
+<span id="cb463-51"><a href="#cb463-51" aria-hidden="true"></a>| 12 | 12 | 12 | 12 |</span>
+<span id="cb463-52"><a href="#cb463-52" aria-hidden="true"></a>| 123 | 123 | 123 | 123 |</span>
+<span id="cb463-53"><a href="#cb463-53" aria-hidden="true"></a>| 1 | 1 | 1 | 1 |</span>
+<span id="cb463-54"><a href="#cb463-54" aria-hidden="true"></a></span>
+<span id="cb463-55"><a href="#cb463-55" aria-hidden="true"></a> : Demonstration of pipe table syntax</span>
+<span id="cb463-56"><a href="#cb463-56" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb463-57"><a href="#cb463-57" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb464"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb464-1"><a href="#cb464-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>This is a table with caption <em>Demonstration of pipe table syntax</em> that is 4 colums wide and 4 rows long. As for the alignment, column number 1 is right-aligned, column number 2 is left-aligned, column number 3 has default alignment, and column number 4 is centered. In row 1, column number 1 says <em>Right</em>, column number 2 says <em>Left</em>, column number 3 says <em>Default</em>, and column number 4 says <em>Center</em>. In row 2, column number 1 says <em>12</em>, column number 2 says <em>12</em>, column number 3 says <em>12</em>, and column number 4 says <em>12</em>. In row 3, column number 1 says <em>123</em>, column number 2 says <em>123</em>, column number 3 says <em>123</em>, and column number 4 says <em>123</em>. In row 4, column number 1 says <em>1</em>, column number 2 says <em>1</em>, column number 3 says <em>1</em>, and column number 4 says <em>1</em>.</p>
</blockquote>
-<h4 data-number="2.3.1.25" id="inline-html-comment-renderer"><span class="header-section-number">2.3.1.25</span> Inline HTML Comment Renderer</h4>
+<h4 data-number="2.3.1.25" id="html-comment-renderers"><span class="header-section-number">2.3.1.25</span> HTML Comment Renderers</h4>
<p>The <code>\markdownRendererInlineHtmlComment</code> macro represents the contents of an inline <abbr>HTML</abbr> comment. This macro will only be produced, when the <strong><code>html</code></strong> option is enabled. The macro receives a single argument that corresponds to the contents of the <abbr>HTML</abbr> comment.</p>
-<h5 class="unnumbered" data-number="" id="latex-example-59"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<p>The <code>\markdownRendererBlockHtmlCommentBegin</code> and <code>\markdownRendererBlockHtmlCommentEnd</code> macros represent the beginning and the end of a block <abbr>HTML</abbr> comment. The macros receive no arguments.</p>
+<h5 class="unnumbered" data-number="" id="latex-example-60"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb462"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb462-1"><a href="#cb462-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb462-2"><a href="#cb462-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[html]{<span class="ex">markdown</span>}</span>
-<span id="cb462-3"><a href="#cb462-3" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">marginnote</span>}</span>
-<span id="cb462-4"><a href="#cb462-4" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb462-5"><a href="#cb462-5" aria-hidden="true"></a> renderers = {</span>
-<span id="cb462-6"><a href="#cb462-6" aria-hidden="true"></a> inlineHtmlComment = {<span class="fu">\marginnote</span>{#1}},</span>
-<span id="cb462-7"><a href="#cb462-7" aria-hidden="true"></a> },</span>
-<span id="cb462-8"><a href="#cb462-8" aria-hidden="true"></a>}</span>
-<span id="cb462-9"><a href="#cb462-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb462-10"><a href="#cb462-10" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb462-11"><a href="#cb462-11" aria-hidden="true"></a>A useful use of HTML comments are side notes.</span>
-<span id="cb462-12"><a href="#cb462-12" aria-hidden="true"></a>&lt;!-- Side notes are displayed in the horizontal margins next to the relevant</span>
-<span id="cb462-13"><a href="#cb462-13" aria-hidden="true"></a>passages, which makes them easier for the reader to find than footnotes. --&gt;</span>
-<span id="cb462-14"><a href="#cb462-14" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb462-15"><a href="#cb462-15" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb463"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb463-1"><a href="#cb463-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
-<span id="cb463-2"><a href="#cb463-2" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb465"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb465-1"><a href="#cb465-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb465-2"><a href="#cb465-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[html]{<span class="ex">markdown</span>}</span>
+<span id="cb465-3"><a href="#cb465-3" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">marginnote</span>}</span>
+<span id="cb465-4"><a href="#cb465-4" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb465-5"><a href="#cb465-5" aria-hidden="true"></a> renderers = {</span>
+<span id="cb465-6"><a href="#cb465-6" aria-hidden="true"></a> inlineHtmlComment = {<span class="fu">\marginnote</span>{#1}},</span>
+<span id="cb465-7"><a href="#cb465-7" aria-hidden="true"></a> blockHtmlCommentBegin = {<span class="kw">\begin</span>{<span class="ex">quote</span>}},</span>
+<span id="cb465-8"><a href="#cb465-8" aria-hidden="true"></a> blockHtmlCommentEnd = {<span class="kw">\end</span>{<span class="ex">quote</span>}},</span>
+<span id="cb465-9"><a href="#cb465-9" aria-hidden="true"></a> },</span>
+<span id="cb465-10"><a href="#cb465-10" aria-hidden="true"></a>}</span>
+<span id="cb465-11"><a href="#cb465-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb465-12"><a href="#cb465-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb465-13"><a href="#cb465-13" aria-hidden="true"></a>A useful use of inline HTML comments are side notes.</span>
+<span id="cb465-14"><a href="#cb465-14" aria-hidden="true"></a>&lt;!-- Side notes are displayed in the horizontal margins next to the relevant</span>
+<span id="cb465-15"><a href="#cb465-15" aria-hidden="true"></a>passages, which makes them *easier for the reader to find* than footnotes. --&gt;</span>
+<span id="cb465-16"><a href="#cb465-16" aria-hidden="true"></a></span>
+<span id="cb465-17"><a href="#cb465-17" aria-hidden="true"></a>We can render block HTML comments as blockquotes:</span>
+<span id="cb465-18"><a href="#cb465-18" aria-hidden="true"></a></span>
+<span id="cb465-19"><a href="#cb465-19" aria-hidden="true"></a>&lt;!--</span>
+<span id="cb465-20"><a href="#cb465-20" aria-hidden="true"></a>Here is a block HTML comment with a code example that a programmer might understand:</span>
+<span id="cb465-21"><a href="#cb465-21" aria-hidden="true"></a></span>
+<span id="cb465-22"><a href="#cb465-22" aria-hidden="true"></a> foo = bar + baz - 42</span>
+<span id="cb465-23"><a href="#cb465-23" aria-hidden="true"></a>--&gt;</span>
+<span id="cb465-24"><a href="#cb465-24" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb465-25"><a href="#cb465-25" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb466"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb466-1"><a href="#cb466-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
+<span id="cb466-2"><a href="#cb466-2" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following body text:</p>
<blockquote>
<p>A useful use of HTML comments are side notes.</p>
+<p>We can render block HTML comments as blockquotes:</p>
+<blockquote>
+<p>Here is a block HTML comment with a code example that a programmer might understand:</p>
+<pre><code>foo = bar + baz - 42</code></pre>
+</blockquote>
</blockquote>
<p>The horizontal margins should contain the following text:</p>
<blockquote>
-<p>Side notes are displayed in the horizontal margins next to the relevant passages, which makes them easier for the reader to find than footnotes.</p>
-</blockquote>
-<h3 data-number="2.3.2" id="token-renderer-prototypes"><span class="header-section-number">2.3.2</span> Token Renderer Prototypes</h3>
+<p>Side notes are displayed in the horizontal margins next to the relevant passages, which makes them <em>easier for the reader to find</em> than footnotes.</p>
+</blockquote>
+<h4 data-number="2.3.1.26" id="html-tag-and-element-renderers"><span class="header-section-number">2.3.1.26</span> HTML Tag and Element Renderers</h4>
+<p>The <code>\markdownRendererInlineHtmlTag</code> macro represents an opening, closing, or empty inline <abbr>HTML</abbr> tag. This macro will only be produced, when the <strong><code>html</code></strong> option is enabled. The macro receives a single argument that corresponds to the contents of the <abbr>HTML</abbr> tag.</p>
+<p>The <code>\markdownRendererInputBlockHtmlElement</code> macro represents a block <abbr>HTML</abbr> element. This macro will only be produced, when the <strong><code>html</code></strong> option is enabled. The macro receives a single argument that filename of a file containing the contents of the <abbr>HTML</abbr> element.</p>
+<h5 class="unnumbered" data-number="" id="latex-example-61"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb468"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb468-1"><a href="#cb468-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb468-2"><a href="#cb468-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[html]{<span class="ex">markdown</span>}</span>
+<span id="cb468-3"><a href="#cb468-3" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">marginnote</span>}</span>
+<span id="cb468-4"><a href="#cb468-4" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">verbatim</span>}</span>
+<span id="cb468-5"><a href="#cb468-5" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb468-6"><a href="#cb468-6" aria-hidden="true"></a> renderers = {</span>
+<span id="cb468-7"><a href="#cb468-7" aria-hidden="true"></a> inlineHtmlTag = {<span class="fu">\textbf</span>{#1}},</span>
+<span id="cb468-8"><a href="#cb468-8" aria-hidden="true"></a> inputBlockHtmlElement = {<span class="fu">\verbatiminput</span>{#1}},</span>
+<span id="cb468-9"><a href="#cb468-9" aria-hidden="true"></a> },</span>
+<span id="cb468-10"><a href="#cb468-10" aria-hidden="true"></a>}</span>
+<span id="cb468-11"><a href="#cb468-11" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb468-12"><a href="#cb468-12" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb468-13"><a href="#cb468-13" aria-hidden="true"></a>&lt;b&gt;_Hello,_ world!&lt;/b&gt;&lt;br/&gt;</span>
+<span id="cb468-14"><a href="#cb468-14" aria-hidden="true"></a></span>
+<span id="cb468-15"><a href="#cb468-15" aria-hidden="true"></a>&lt;div&gt;_Hello,_ world!&lt;/div&gt;</span>
+<span id="cb468-16"><a href="#cb468-16" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb468-17"><a href="#cb468-17" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb469"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb469-1"><a href="#cb469-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span>
+<span id="cb469-2"><a href="#cb469-2" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<p>A PDF document named <code>document.pdf</code> should be produced and contain the following body text:</p>
+<blockquote>
+<p><strong><b></strong>_Hello,_ world!<strong></b><br/></strong></p>
+<pre><code>&lt;div&gt;_Hello,_ world!&lt;/div&gt;</code></pre>
+</blockquote>
+<h4 data-number="2.3.1.27" id="attribute-renderers"><span class="header-section-number">2.3.1.27</span> Attribute Renderers</h4>
+<p>The following macros are only produced, when the <strong><code>headerAttributes</code></strong> option is enabled.</p>
+<p><code>\markdownRendererAttributeIdentifier</code> represents the ⟨<em>identifier</em>⟩ of a markdown element (<code>id="</code>⟨<em>identifier</em>⟩<code>"</code> in HTML and <code>#</code>⟨<em>identifier</em>⟩ in Markdown’s <strong><code>headerAttributes</code></strong> syntax extension). The macro receives a single attribute that corresponds to the ⟨<em>identifier</em>⟩.</p>
+<p><code>\markdownRendererAttributeClassName</code> represents the ⟨<em>class name</em>⟩ of a markdown element (<code>class="</code>⟨<em>class name</em>⟩ …<code>"</code> in HTML and <code>.</code>⟨<em>class name</em>⟩ in Markdown’s <strong><code>headerAttributes</code></strong> syntax extension). The macro receives a single attribute that corresponds to the .</p>
+<p><code>\markdownRendererAttributeKeyValue</code> represents a HTML attribute in the form ⟨<em>key</em>⟩<code>=</code>⟨<em>value</em>⟩ that is neither an identifier nor a class name. The macro receives two attributes that correspond to the ⟨<em>key</em>⟩ and the ⟨<em>value</em>⟩, respectively.</p>
+<h5 class="unnumbered" data-number="" id="latex-example-62"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb471"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb471-1"><a href="#cb471-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb471-2"><a href="#cb471-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[headerAttributes, underscores=false]{<span class="ex">markdown</span>}</span>
+<span id="cb471-3"><a href="#cb471-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb471-4"><a href="#cb471-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb471-5"><a href="#cb471-5" aria-hidden="true"></a> attributeIdentifier = {<span class="co">%</span></span>
+<span id="cb471-6"><a href="#cb471-6" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb471-7"><a href="#cb471-7" aria-hidden="true"></a> <span class="fu">\emph</span>{(Identifier: #1)}</span>
+<span id="cb471-8"><a href="#cb471-8" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb471-9"><a href="#cb471-9" aria-hidden="true"></a> },</span>
+<span id="cb471-10"><a href="#cb471-10" aria-hidden="true"></a> attributeClassName = {<span class="co">%</span></span>
+<span id="cb471-11"><a href="#cb471-11" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb471-12"><a href="#cb471-12" aria-hidden="true"></a> <span class="fu">\emph</span>{(Class name: #1)}</span>
+<span id="cb471-13"><a href="#cb471-13" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb471-14"><a href="#cb471-14" aria-hidden="true"></a> },</span>
+<span id="cb471-15"><a href="#cb471-15" aria-hidden="true"></a> attributeKeyValue = {<span class="co">%</span></span>
+<span id="cb471-16"><a href="#cb471-16" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb471-17"><a href="#cb471-17" aria-hidden="true"></a> <span class="fu">\emph</span>{(Key: #1, Value: #2)}</span>
+<span id="cb471-18"><a href="#cb471-18" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb471-19"><a href="#cb471-19" aria-hidden="true"></a> },</span>
+<span id="cb471-20"><a href="#cb471-20" aria-hidden="true"></a> },</span>
+<span id="cb471-21"><a href="#cb471-21" aria-hidden="true"></a>}</span>
+<span id="cb471-22"><a href="#cb471-22" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb471-23"><a href="#cb471-23" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb471-24"><a href="#cb471-24" aria-hidden="true"></a></span>
+<span id="cb471-25"><a href="#cb471-25" aria-hidden="true"></a># First top-level heading {jane=doe}</span>
+<span id="cb471-26"><a href="#cb471-26" aria-hidden="true"></a></span>
+<span id="cb471-27"><a href="#cb471-27" aria-hidden="true"></a>## A subheading {#identifier}</span>
+<span id="cb471-28"><a href="#cb471-28" aria-hidden="true"></a></span>
+<span id="cb471-29"><a href="#cb471-29" aria-hidden="true"></a># Second top-level heading {.class_name}</span>
+<span id="cb471-30"><a href="#cb471-30" aria-hidden="true"></a></span>
+<span id="cb471-31"><a href="#cb471-31" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb471-32"><a href="#cb471-32" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb472"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb472-1"><a href="#cb472-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
+<blockquote>
+<h1 id="first-top-level-heading">First top-level heading</h1>
+<p><em>(Key: Jane, Value: Doe)</em></p>
+<h2 id="a-subheading">A subheading</h2>
+<p><em>(Identifier: identifier)</em></p>
+<h1 id="second-top-level-heading">Second top-level heading</h1>
+<p><em>(Class name: class_name)</em></p>
+</blockquote>
+<h4 data-number="2.3.1.28" id="header-attribute-context-renderers"><span class="header-section-number">2.3.1.28</span> Header Attribute Context Renderers</h4>
+<p>The following macros are only produced, when the <strong><code>headerAttributes</code></strong> option is enabled.</p>
+<p>The <code>\markdownRendererHeaderAttributeContextBegin</code> and <code>\markdownRendererHeaderAttributeContextEnd</code> macros represent the beginning and the end of a section in which the attributes of a heading apply. The macros receive no arguments.</p>
+<h5 class="unnumbered" data-number="" id="latex-example-63"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb473"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb473-1"><a href="#cb473-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb473-2"><a href="#cb473-2" aria-hidden="true"></a><span class="bu">\usepackage</span>[headerAttributes]{<span class="ex">markdown</span>}</span>
+<span id="cb473-3"><a href="#cb473-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb473-4"><a href="#cb473-4" aria-hidden="true"></a> renderers = {</span>
+<span id="cb473-5"><a href="#cb473-5" aria-hidden="true"></a> headerAttributeContextBegin = {<span class="co">%</span></span>
+<span id="cb473-6"><a href="#cb473-6" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb473-7"><a href="#cb473-7" aria-hidden="true"></a> <span class="fu">\emph</span>{(The beginning of a header attribute context)}</span>
+<span id="cb473-8"><a href="#cb473-8" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb473-9"><a href="#cb473-9" aria-hidden="true"></a> },</span>
+<span id="cb473-10"><a href="#cb473-10" aria-hidden="true"></a> headerAttributeContextBegin = {<span class="co">%</span></span>
+<span id="cb473-11"><a href="#cb473-11" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb473-12"><a href="#cb473-12" aria-hidden="true"></a> <span class="fu">\emph</span>{(The end of a header attribute context)}</span>
+<span id="cb473-13"><a href="#cb473-13" aria-hidden="true"></a> <span class="fu">\par</span></span>
+<span id="cb473-14"><a href="#cb473-14" aria-hidden="true"></a> },</span>
+<span id="cb473-15"><a href="#cb473-15" aria-hidden="true"></a> },</span>
+<span id="cb473-16"><a href="#cb473-16" aria-hidden="true"></a>}</span>
+<span id="cb473-17"><a href="#cb473-17" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb473-18"><a href="#cb473-18" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb473-19"><a href="#cb473-19" aria-hidden="true"></a></span>
+<span id="cb473-20"><a href="#cb473-20" aria-hidden="true"></a># First top-level heading</span>
+<span id="cb473-21"><a href="#cb473-21" aria-hidden="true"></a></span>
+<span id="cb473-22"><a href="#cb473-22" aria-hidden="true"></a>## A subheading {#identifier}</span>
+<span id="cb473-23"><a href="#cb473-23" aria-hidden="true"></a></span>
+<span id="cb473-24"><a href="#cb473-24" aria-hidden="true"></a># Second top-level heading {.class_name}</span>
+<span id="cb473-25"><a href="#cb473-25" aria-hidden="true"></a></span>
+<span id="cb473-26"><a href="#cb473-26" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb473-27"><a href="#cb473-27" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb474"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb474-1"><a href="#cb474-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
+<blockquote>
+<h1 id="first-top-level-heading-1">First top-level heading</h1>
+<p><em>(The beginning of a header attribute context)</em></p>
+<h2 id="a-subheading-1">A subheading</h2>
+<p><em>(The end of a header attribute context)</em></p>
+<p><em>(The beginning of a header attribute context)</em></p>
+<h1 id="second-top-level-heading-1">Second top-level heading</h1>
+<p><em>(The end of a header attribute context)</em></p>
+</blockquote>
+<h3 data-number="2.3.2" id="texrendererprototypes"><span class="header-section-number">2.3.2</span> Token Renderer Prototypes</h3>
<p>By default, token renderers point to package-defined <span class="tex">T<sub>e</sub>X</span> macros, further referred to as <em>prototypes</em>, which provide useful default definitions.</p>
<h5 class="unnumbered" data-number="" id="plain-tex-example-33">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb464"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb464-1"><a href="#cb464-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
-<span id="cb464-2"><a href="#cb464-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span>
-<span id="cb464-3"><a href="#cb464-3" aria-hidden="true"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span>
-<span id="cb464-4"><a href="#cb464-4" aria-hidden="true"></a>}</span>
-<span id="cb464-5"><a href="#cb464-5" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb464-6"><a href="#cb464-6" aria-hidden="true"></a>~</span>
-<span id="cb464-7"><a href="#cb464-7" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb464-8"><a href="#cb464-8" aria-hidden="true"></a></span>
-<span id="cb464-9"><a href="#cb464-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span>
-<span id="cb464-10"><a href="#cb464-10" aria-hidden="true"></a> User-defined token renderers take precedence.<span class="co">%</span></span>
-<span id="cb464-11"><a href="#cb464-11" aria-hidden="true"></a>}</span>
-<span id="cb464-12"><a href="#cb464-12" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
-<span id="cb464-13"><a href="#cb464-13" aria-hidden="true"></a>~</span>
-<span id="cb464-14"><a href="#cb464-14" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
-<span id="cb464-15"><a href="#cb464-15" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb465"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb465-1"><a href="#cb465-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb475"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb475-1"><a href="#cb475-1" aria-hidden="true"></a><span class="fu">\input</span> markdown</span>
+<span id="cb475-2"><a href="#cb475-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span>
+<span id="cb475-3"><a href="#cb475-3" aria-hidden="true"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span>
+<span id="cb475-4"><a href="#cb475-4" aria-hidden="true"></a>}</span>
+<span id="cb475-5"><a href="#cb475-5" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb475-6"><a href="#cb475-6" aria-hidden="true"></a>~</span>
+<span id="cb475-7"><a href="#cb475-7" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb475-8"><a href="#cb475-8" aria-hidden="true"></a></span>
+<span id="cb475-9"><a href="#cb475-9" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span>
+<span id="cb475-10"><a href="#cb475-10" aria-hidden="true"></a> User-defined token renderers take precedence.<span class="co">%</span></span>
+<span id="cb475-11"><a href="#cb475-11" aria-hidden="true"></a>}</span>
+<span id="cb475-12"><a href="#cb475-12" aria-hidden="true"></a><span class="fu">\markdownBegin</span></span>
+<span id="cb475-13"><a href="#cb475-13" aria-hidden="true"></a>~</span>
+<span id="cb475-14"><a href="#cb475-14" aria-hidden="true"></a><span class="fu">\markdownEnd</span></span>
+<span id="cb475-15"><a href="#cb475-15" aria-hidden="true"></a><span class="fu">\bye</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb476"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb476-1"><a href="#cb476-1" aria-hidden="true"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Packages can specify token renderer prototypes.</p>
<p>User-defined token renderers take precedence.</p>
</blockquote>
-<h5 class="unnumbered" data-number="" id="latex-example-60"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
-<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb466"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb466-1"><a href="#cb466-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb466-2"><a href="#cb466-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
-<span id="cb466-3"><a href="#cb466-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
-<span id="cb466-4"><a href="#cb466-4" aria-hidden="true"></a> rendererPrototypes = {</span>
-<span id="cb466-5"><a href="#cb466-5" aria-hidden="true"></a> tilde = {Packages can specify token renderer prototypes.},</span>
-<span id="cb466-6"><a href="#cb466-6" aria-hidden="true"></a> },</span>
-<span id="cb466-7"><a href="#cb466-7" aria-hidden="true"></a>}</span>
-<span id="cb466-8"><a href="#cb466-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb466-9"><a href="#cb466-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb466-10"><a href="#cb466-10" aria-hidden="true"></a>~</span>
-<span id="cb466-11"><a href="#cb466-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb466-12"><a href="#cb466-12" aria-hidden="true"></a></span>
-<span id="cb466-13"><a href="#cb466-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
-<span id="cb466-14"><a href="#cb466-14" aria-hidden="true"></a> renderers = {</span>
-<span id="cb466-15"><a href="#cb466-15" aria-hidden="true"></a> tilde = {User-defined token renderers take precedence.},</span>
-<span id="cb466-16"><a href="#cb466-16" aria-hidden="true"></a> },</span>
-<span id="cb466-17"><a href="#cb466-17" aria-hidden="true"></a>}</span>
-<span id="cb466-18"><a href="#cb466-18" aria-hidden="true"></a>~</span>
-<span id="cb466-19"><a href="#cb466-19" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
-<span id="cb466-20"><a href="#cb466-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb467"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb467-1"><a href="#cb467-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<h5 class="unnumbered" data-number="" id="latex-example-64"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb477"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb477-1"><a href="#cb477-1" aria-hidden="true"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb477-2"><a href="#cb477-2" aria-hidden="true"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb477-3"><a href="#cb477-3" aria-hidden="true"></a><span class="fu">\markdownSetup</span>{</span>
+<span id="cb477-4"><a href="#cb477-4" aria-hidden="true"></a> rendererPrototypes = {</span>
+<span id="cb477-5"><a href="#cb477-5" aria-hidden="true"></a> tilde = {Packages can specify token renderer prototypes.},</span>
+<span id="cb477-6"><a href="#cb477-6" aria-hidden="true"></a> },</span>
+<span id="cb477-7"><a href="#cb477-7" aria-hidden="true"></a>}</span>
+<span id="cb477-8"><a href="#cb477-8" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb477-9"><a href="#cb477-9" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb477-10"><a href="#cb477-10" aria-hidden="true"></a>~</span>
+<span id="cb477-11"><a href="#cb477-11" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb477-12"><a href="#cb477-12" aria-hidden="true"></a></span>
+<span id="cb477-13"><a href="#cb477-13" aria-hidden="true"></a><span class="kw">\begin</span>{<span class="ex">markdown*</span>}{</span>
+<span id="cb477-14"><a href="#cb477-14" aria-hidden="true"></a> renderers = {</span>
+<span id="cb477-15"><a href="#cb477-15" aria-hidden="true"></a> tilde = {User-defined token renderers take precedence.},</span>
+<span id="cb477-16"><a href="#cb477-16" aria-hidden="true"></a> },</span>
+<span id="cb477-17"><a href="#cb477-17" aria-hidden="true"></a>}</span>
+<span id="cb477-18"><a href="#cb477-18" aria-hidden="true"></a>~</span>
+<span id="cb477-19"><a href="#cb477-19" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">markdown*</span>}</span>
+<span id="cb477-20"><a href="#cb477-20" aria-hidden="true"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb478"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb478-1"><a href="#cb478-1" aria-hidden="true"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Packages can specify token renderer prototypes.</p>
@@ -6280,24 +6469,24 @@ Thomas,Edison,1847</code></pre>
</blockquote>
<h5 class="unnumbered" data-number="" id="context-example-45">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5>
<p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p>
-<div class="sourceCode" id="cb468"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb468-1"><a href="#cb468-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
-<span id="cb468-2"><a href="#cb468-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span>
-<span id="cb468-3"><a href="#cb468-3" aria-hidden="true"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span>
-<span id="cb468-4"><a href="#cb468-4" aria-hidden="true"></a>}</span>
-<span id="cb468-5"><a href="#cb468-5" aria-hidden="true"></a><span class="fu">\starttext</span></span>
-<span id="cb468-6"><a href="#cb468-6" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb468-7"><a href="#cb468-7" aria-hidden="true"></a>~</span>
-<span id="cb468-8"><a href="#cb468-8" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb468-9"><a href="#cb468-9" aria-hidden="true"></a></span>
-<span id="cb468-10"><a href="#cb468-10" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span>
-<span id="cb468-11"><a href="#cb468-11" aria-hidden="true"></a> User-defined token renderers take precedence.<span class="co">%</span></span>
-<span id="cb468-12"><a href="#cb468-12" aria-hidden="true"></a>}</span>
-<span id="cb468-13"><a href="#cb468-13" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
-<span id="cb468-14"><a href="#cb468-14" aria-hidden="true"></a>~</span>
-<span id="cb468-15"><a href="#cb468-15" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
-<span id="cb468-16"><a href="#cb468-16" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
-<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb469"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb469-1"><a href="#cb469-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
+<div class="sourceCode" id="cb479"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb479-1"><a href="#cb479-1" aria-hidden="true"></a><span class="fu">\usemodule</span>[t][markdown]</span>
+<span id="cb479-2"><a href="#cb479-2" aria-hidden="true"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span>
+<span id="cb479-3"><a href="#cb479-3" aria-hidden="true"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span>
+<span id="cb479-4"><a href="#cb479-4" aria-hidden="true"></a>}</span>
+<span id="cb479-5"><a href="#cb479-5" aria-hidden="true"></a><span class="fu">\starttext</span></span>
+<span id="cb479-6"><a href="#cb479-6" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb479-7"><a href="#cb479-7" aria-hidden="true"></a>~</span>
+<span id="cb479-8"><a href="#cb479-8" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb479-9"><a href="#cb479-9" aria-hidden="true"></a></span>
+<span id="cb479-10"><a href="#cb479-10" aria-hidden="true"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span>
+<span id="cb479-11"><a href="#cb479-11" aria-hidden="true"></a> User-defined token renderers take precedence.<span class="co">%</span></span>
+<span id="cb479-12"><a href="#cb479-12" aria-hidden="true"></a>}</span>
+<span id="cb479-13"><a href="#cb479-13" aria-hidden="true"></a><span class="fu">\startmarkdown</span></span>
+<span id="cb479-14"><a href="#cb479-14" aria-hidden="true"></a>~</span>
+<span id="cb479-15"><a href="#cb479-15" aria-hidden="true"></a><span class="fu">\stopmarkdown</span></span>
+<span id="cb479-16"><a href="#cb479-16" aria-hidden="true"></a><span class="fu">\stoptext</span></span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb480"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb480-1"><a href="#cb480-1" aria-hidden="true"></a><span class="ex">context</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p>
<blockquote>
<p>Packages can specify token renderer prototypes.</p>
diff --git a/macros/generic/markdown/markdown.pdf b/macros/generic/markdown/markdown.pdf
index b49a172384..ef7f39daaf 100644
--- a/macros/generic/markdown/markdown.pdf
+++ b/macros/generic/markdown/markdown.pdf
Binary files differ
diff --git a/macros/latex/contrib/caption/README b/macros/latex/contrib/caption/README
index 832f0f160d..e29c6134aa 100644
--- a/macros/latex/contrib/caption/README
+++ b/macros/latex/contrib/caption/README
@@ -1,7 +1,7 @@
==========================================================================
The `caption' package bundle
-Release 2022-02-20
+Release 2022-02-28
Copyright (C) 1994-2022 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
License: LPPL = LaTeX Project Public Licence
diff --git a/macros/latex/contrib/caption/bicaption.dtx b/macros/latex/contrib/caption/bicaption.dtx
index fba7724ff3..f999ec9455 100644
--- a/macros/latex/contrib/caption/bicaption.dtx
+++ b/macros/latex/contrib/caption/bicaption.dtx
@@ -1027,7 +1027,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
% \DoNotIndex{\@removeelement,\@restorepar,\@secondoftwo,\@setpar}
diff --git a/macros/latex/contrib/caption/caption-ams-smf.dtx b/macros/latex/contrib/caption/caption-ams-smf.dtx
index f0f8cebe43..6b3b19ced6 100644
--- a/macros/latex/contrib/caption/caption-ams-smf.dtx
+++ b/macros/latex/contrib/caption/caption-ams-smf.dtx
@@ -126,7 +126,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/caption-beamer.dtx b/macros/latex/contrib/caption/caption-beamer.dtx
index 64d215bb03..fdbfb57402 100644
--- a/macros/latex/contrib/caption/caption-beamer.dtx
+++ b/macros/latex/contrib/caption/caption-beamer.dtx
@@ -121,7 +121,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/caption-elsarticle.dtx b/macros/latex/contrib/caption/caption-elsarticle.dtx
index 6fb731cf97..cb7733c9d7 100644
--- a/macros/latex/contrib/caption/caption-elsarticle.dtx
+++ b/macros/latex/contrib/caption/caption-elsarticle.dtx
@@ -121,7 +121,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/caption-koma.dtx b/macros/latex/contrib/caption/caption-koma.dtx
index 84f2f61d3f..c4daad26fa 100644
--- a/macros/latex/contrib/caption/caption-koma.dtx
+++ b/macros/latex/contrib/caption/caption-koma.dtx
@@ -125,7 +125,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/caption-light.dtx b/macros/latex/contrib/caption/caption-light.dtx
index 697f8233ab..985c4ee95e 100644
--- a/macros/latex/contrib/caption/caption-light.dtx
+++ b/macros/latex/contrib/caption/caption-light.dtx
@@ -204,7 +204,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
% \DoNotIndex{\@removeelement,\@restorepar,\@secondoftwo,\@setpar}
diff --git a/macros/latex/contrib/caption/caption-memoir.dtx b/macros/latex/contrib/caption/caption-memoir.dtx
index 918669964e..6905415fb1 100644
--- a/macros/latex/contrib/caption/caption-memoir.dtx
+++ b/macros/latex/contrib/caption/caption-memoir.dtx
@@ -31,7 +31,7 @@
%
% \fi
%
-% \CheckSum{66}
+% \CheckSum{69}
%
% \iffalse
%<*driver>
@@ -121,7 +121,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
@@ -183,7 +183,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-memoir.sto}[2021/06/30 v2.2 Adaption of the caption package to the memoir document class (AR)]
+\ProvidesFile{caption-memoir.sto}[2022/02/28 v2.2a Adaption of the caption package to the memoir document class (AR)]
% \end{macrocode}
%
% \section{Adaptions already included in the caption package}
@@ -300,7 +300,12 @@
%
% \begin{macrocode}
\@ifundefined{DeclareCaptionAutoPosition}{}{%
- \DeclareCaptionAutoPosition{\ifdim\prevdepth>-99\p@#2\else#1\fi}}%
+ \DeclareCaptionAutoPosition{%
+ \ifvmode
+ \ifdim\prevdepth>-99\p@#2\else#1\fi
+ \else
+ #2%
+ \fi}}%
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/macros/latex/contrib/caption/caption-ntg.dtx b/macros/latex/contrib/caption/caption-ntg.dtx
index 1285bbab92..782d576a8f 100644
--- a/macros/latex/contrib/caption/caption-ntg.dtx
+++ b/macros/latex/contrib/caption/caption-ntg.dtx
@@ -123,7 +123,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/caption-thesis.dtx b/macros/latex/contrib/caption/caption-thesis.dtx
index aa0694668b..e91145a307 100644
--- a/macros/latex/contrib/caption/caption-thesis.dtx
+++ b/macros/latex/contrib/caption/caption-thesis.dtx
@@ -121,7 +121,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/caption.dtx b/macros/latex/contrib/caption/caption.dtx
index 4b59565b22..e56e11633a 100644
--- a/macros/latex/contrib/caption/caption.dtx
+++ b/macros/latex/contrib/caption/caption.dtx
@@ -31,7 +31,7 @@
%
% \fi
%
-% \CheckSum{2869}
+% \CheckSum{2840}
%
% \iffalse
%<*driver>
@@ -4481,7 +4481,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
@@ -4593,7 +4593,7 @@
%
% Identify the current version of the package.
% \begin{macrocode}
-\ProvidesPackage{caption}[2022/02/20 v3.6 Customizing captions (AR)]
+\ProvidesPackage{caption}[2022/02/28 v3.6a Customizing captions (AR)]
% \end{macrocode}
%
% \subsection{Loading the kernel}
@@ -4664,65 +4664,6 @@
#2%
\fi}}
% \end{macrocode}
-% \begin{macrocode}
-\def\caption@position@a{\caption@position@auto} % needed by floatrow package, \flrow@cappos
-% \end{macrocode}
-%
-% \begin{macrocode}
-\SetCaptionDefault{position}{auto}
-% \end{macrocode}
-%
-% \begin{macro}{\caption@setautoposition}
-% \changes{v3.1}{2007/06/10}{This macro added}
-% \changes{v3.5}{2020/07/27}{Adapted to current implementation of `auto'}
-% \changes{v3.6}{2021/01/03}{Adapted to current implementation of `auto'}
-% |\caption@setautoposition|\marg{position}\\
-% replaces the above algorithm by a different one (or a fixed position setting).
-% \begin{macrocode}
-\newcommand*\caption@setautoposition[1]{%
- \renewcommand*\caption@position@auto{%
- \@nameuse{caption@position@#1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@autoposition}
-% \changes{v3.0a}{2004/01/23}{\cs{ifvmode} added}
-% \changes{v3.0b}{2004/05/16}{Split into \cs{caption@fixposition} & \cs{caption@autoposition}}
-% \changes{v3.5}{2020/07/27}{Adapted to current implementation of `auto'}
-% \changes{v3.6}{2021/01/05}{Adapted to current implementation of `auto'; \cs{ifvmode} moved into definition of `auto'}
-% We try to guess the current position of the caption by checking |\prev|\-|depth|.
-%
-% A different solution would be setting the |\space|\-|factor| to something
-% not much less than 1000 (for example 994) in |\caption@start| and
-% checking this value here by |\ifnum\space|\-|factor=994|.
-% (It's implemented in the \package{threeparttable} package\cite{threeparttable} this way.)
-%
-% Another idea would be checking |\@if|\-|mini|\-|page|, but since some packages
-% typeset the caption within a simple |\vbox| this does not seem to be a good one.
-% \begin{macrocode}
-\newcommand*\caption@autoposition[2]{%
- \edef\caption@tempa{\the\prevdepth}%
- \caption@Debug{\string\prevdepth=\caption@tempa}%
- \ifdim\prevdepth>-\p@
- #2% position=bottom
- \else
- #1% position=top
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@autoposition}
-% \changes{v3.6}{2021/01/05}{This macro added}
-% |\DeclareCaptionAutoPosition|\marg{code with \#1 and \#2}\\
-% replaces the inner algorithm of |position=auto| with a custom one.
-% If \#1 is applied the skip will be typeset below the caption
-% (like |position=t|), if \#2 is applied the skip will by typeset
-% above the caption (like |position=b|).
-% \begin{macrocode}
-\newcommand*\DeclareCaptionAutoPosition{%
- \renewcommand*\caption@autoposition[2]}%
-% \end{macrocode}
-% \end{macro}
%
% \subsection{Declaration of options}
%
diff --git a/macros/latex/contrib/caption/caption3.dtx b/macros/latex/contrib/caption/caption3.dtx
index 5c91c87aa6..2f6e4f113a 100644
--- a/macros/latex/contrib/caption/caption3.dtx
+++ b/macros/latex/contrib/caption/caption3.dtx
@@ -31,7 +31,7 @@
%
% \fi
%
-% \CheckSum{3781}
+% \CheckSum{3814}
%
% \iffalse
%<*driver>
@@ -179,7 +179,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
@@ -264,7 +264,7 @@
%
% Identify the current version of the package.
% \begin{macrocode}
-\ProvidesPackage{caption3}[2022/01/07 v2.3 caption3 kernel (AR)]
+\ProvidesPackage{caption3}[2022/02/28 v2.3a caption3 kernel (AR)]
% \end{macrocode}
%
% \section{Generic helpers}
@@ -2838,12 +2838,15 @@
\def\caption@position@b{\caption@position@bottom}
\def\caption@position@below{\caption@position@bottom}
% \end{macrocode}
+% \begin{macrocode}
+\DeclareCaptionPosition{auto}{#2}{\caption@autoposition{#1}{#2}}
+\def\caption@position@a{\caption@position@auto} % needed by floatrow package, \flrow@cappos
+% \end{macrocode}
%
% \changes{v1.1}{2007/05/08}{Default position changed from `bottom' to `auto'}
-% \changes{v1.3}{2021/01/02}{Default position changed back from `auto' to `bottom'}
-% `default' usually maps to `bottom'.
+% `default' usually maps to `auto'.
% \begin{macrocode}
-\SetCaptionDefault{position}{bottom}
+\SetCaptionDefault{position}{auto}
% \end{macrocode}
%
% \begin{macro}{\caption@initposition}
@@ -2896,6 +2899,63 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\caption@setautoposition}
+% \changes{v1.1}{2007/06/10}{This macro added}
+% \changes{v2.0}{2020/07/27}{Adapted to current implementation of `auto'}
+% \changes{v2.3}{2021/01/03}{Adapted to current implementation of `auto'}
+% |\caption@setautoposition|\marg{position}\\
+% replaces the above algorithm by a different one (or a fixed position setting).
+% \begin{macrocode}
+\newcommand*\caption@setautoposition[1]{%
+ \renewcommand*\caption@position@auto{%
+ \@nameuse{caption@position@#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@autoposition}
+% \changes{v1.0a}{2004/01/23}{\cs{ifvmode} added}
+% \changes{v1.0b}{2004/05/16}{Split into \cs{caption@fixposition} & \cs{caption@autoposition}}
+% \changes{v2.0}{2020/07/27}{Adapted to current implementation of `auto'}
+% \changes{v2.3}{2021/01/05}{Adapted to current implementation of `auto'; \cs{ifvmode} moved into definition of `auto'}
+% \changes{v2.3a}{2022/02/28}{\cs{ifvmode} moved back into this macro}
+% We try to guess the current position of the caption by checking |\prev|\-|depth|.
+%
+% A different solution would be setting the |\space|\-|factor| to something
+% not much less than 1000 (for example 994) in |\caption@start| and
+% checking this value here by |\ifnum\space|\-|factor=994|.
+% (It's implemented in the \package{threeparttable} package\cite{threeparttable} this way.)
+%
+% Another idea would be checking |\@if|\-|mini|\-|page|, but since some packages
+% typeset the caption within a simple |\vbox| this does not seem to be a good one.
+% \begin{macrocode}
+\newcommand*\caption@autoposition[2]{%
+ \ifvmode
+ \edef\caption@tempa{\the\prevdepth}%
+ \caption@Debug{\string\prevdepth=\caption@tempa}%
+ \ifdim\prevdepth>-\p@
+ #2% position=bottom
+ \else
+ #1% position=top
+ \fi
+ \else
+ #2% position=bottom
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareCaptionAutoPosition}
+% \changes{v2.3}{2021/01/05}{This macro added}
+% |\DeclareCaptionAutoPosition|\marg{code with \#1 and \#2}\\
+% replaces the inner algorithm of |position=auto| with a custom one.
+% If \#1 is applied the skip will be typeset below the caption
+% (like |position=t|), if \#2 is applied the skip will by typeset
+% above the caption (like |position=b|).
+% \begin{macrocode}
+\newcommand*\DeclareCaptionAutoPosition{%
+ \renewcommand*\caption@autoposition[2]}%
+% \end{macrocode}
+% \end{macro}
+%
% \section{Hooks}
%
% \begin{macro}{\AtBeginCaption}
diff --git a/macros/latex/contrib/caption/fallback/v3.0/caption.dtx b/macros/latex/contrib/caption/fallback/v3.0/caption.dtx
index 7f7b4a49d1..bbdedad42c 100644
--- a/macros/latex/contrib/caption/fallback/v3.0/caption.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.0/caption.dtx
@@ -56,7 +56,7 @@
%
\usepackage{caption}[2005/08/24]
\DeclareCaptionLabelSeparator{endash}{\space\textendash\space}
-\usepackage{hyperref}
+\usepackage{hypdoc}
%
\DeclareCaptionFont{red}{\color{red}}
\DeclareCaptionFont{green}{\color{green}}
diff --git a/macros/latex/contrib/caption/fallback/v3.1/caption.dtx b/macros/latex/contrib/caption/fallback/v3.1/caption.dtx
index 4bc736fdb9..17322ede2b 100644
--- a/macros/latex/contrib/caption/fallback/v3.1/caption.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.1/caption.dtx
@@ -164,7 +164,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.2/caption.dtx b/macros/latex/contrib/caption/fallback/v3.2/caption.dtx
index 7f31da44f2..0936d97306 100644
--- a/macros/latex/contrib/caption/fallback/v3.2/caption.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.2/caption.dtx
@@ -150,7 +150,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.2/caption3.dtx b/macros/latex/contrib/caption/fallback/v3.2/caption3.dtx
index f61d0be004..47e2c25afc 100644
--- a/macros/latex/contrib/caption/fallback/v3.2/caption3.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.2/caption3.dtx
@@ -136,7 +136,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.3/caption.dtx b/macros/latex/contrib/caption/fallback/v3.3/caption.dtx
index 721ca9c371..7ab24aeaac 100644
--- a/macros/latex/contrib/caption/fallback/v3.3/caption.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.3/caption.dtx
@@ -150,7 +150,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.3/caption3.dtx b/macros/latex/contrib/caption/fallback/v3.3/caption3.dtx
index bdffdcc66a..645c190d78 100644
--- a/macros/latex/contrib/caption/fallback/v3.3/caption3.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.3/caption3.dtx
@@ -134,7 +134,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.4/caption.dtx b/macros/latex/contrib/caption/fallback/v3.4/caption.dtx
index 2c9dc62be3..1e3f79d752 100644
--- a/macros/latex/contrib/caption/fallback/v3.4/caption.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.4/caption.dtx
@@ -151,7 +151,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.4/caption3.dtx b/macros/latex/contrib/caption/fallback/v3.4/caption3.dtx
index 2843145c18..5bf40979cb 100644
--- a/macros/latex/contrib/caption/fallback/v3.4/caption3.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.4/caption3.dtx
@@ -129,7 +129,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.5/caption.dtx b/macros/latex/contrib/caption/fallback/v3.5/caption.dtx
index c573255554..c1cf692b74 100644
--- a/macros/latex/contrib/caption/fallback/v3.5/caption.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.5/caption.dtx
@@ -174,7 +174,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/fallback/v3.5/caption3.dtx b/macros/latex/contrib/caption/fallback/v3.5/caption3.dtx
index 5918f4a540..993af95854 100644
--- a/macros/latex/contrib/caption/fallback/v3.5/caption3.dtx
+++ b/macros/latex/contrib/caption/fallback/v3.5/caption3.dtx
@@ -181,7 +181,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\if@minipage\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@minipagefalse,\@minipagetrue}
% \DoNotIndex{\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
diff --git a/macros/latex/contrib/caption/ltcaption.dtx b/macros/latex/contrib/caption/ltcaption.dtx
index 1b6c813a53..5d06fb0845 100644
--- a/macros/latex/contrib/caption/ltcaption.dtx
+++ b/macros/latex/contrib/caption/ltcaption.dtx
@@ -407,7 +407,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
% \DoNotIndex{\@removeelement,\@restorepar,\@secondoftwo,\@setpar}
diff --git a/macros/latex/contrib/caption/subcaption.dtx b/macros/latex/contrib/caption/subcaption.dtx
index 38104d18ce..31b76d94fd 100644
--- a/macros/latex/contrib/caption/subcaption.dtx
+++ b/macros/latex/contrib/caption/subcaption.dtx
@@ -1700,7 +1700,7 @@
% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs}
% \DoNotIndex{\@for,\@firstofone,\@firstoftwo}
% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom}
-% \DoNotIndex{\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
+% \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded}
% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@namedef,\@nameuse}
% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist}
% \DoNotIndex{\@removeelement,\@restorepar,\@secondoftwo,\@setpar}
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 682a69138b..f2b80e1c53 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/02/25}{1.632}
+\ProvidesExplClass{easybook}{2022/02/28}{1.633}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -303,7 +303,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/02/25}{1.632}
+\ProvidesExplPackage{easybase}{2022/02/28}{1.633}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -2272,7 +2272,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/02/25}{1.632}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/02/28}{1.633}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 77f9802048..de14f6c53f 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 26e858b92e..08c5a5c4fb 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -21,8 +21,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v1.632,
- date = 2022/02/25,
+ version = v1.633,
+ date = 2022/02/28,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
email = q1jx@foxmail.com,
@@ -74,17 +74,15 @@
\clist_use:Nn \l_tmpa_clist {#1}
}
% Add delimiters to parameters
-\newcommand{\newsplitarg}[4][\splitmeta]
+\newcommand{\newsplitarg}[4][\code{,}]
{
\newcommand{#2}[1]
- {\code{\textcolor{argument}{#3\textnormal{#1{##1}}#4}}}
+ {\code{\textcolor{argument}{#3\textnormal{\splitmeta[#1]{##1}}#4}}}
}
\newsplitarg{\splitoarg}{[}{]}
\newsplitarg{\splitdarg}{(}{)}
\newsplitarg{\splitmarg}{\{}{\}}
-% Separator with vertical bar as parameter
-\newcommand{\barmeta}{\splitmeta[\code{|}]}
-\newsplitarg[\barmeta]{\baroarg}{[}{]}
+\newsplitarg[\code{|}]{\baroarg}{[}{]}
\newcommand{\harg}{\textcolor{argument}{\code{-}}}
% Remove default braces of values
\RenewDocumentCommand{\key}{s}
@@ -350,7 +348,7 @@
\listoffigures[level = \bichapter,title = {图片索引,List of Figures}]
\end{ctexexam}
\keyval{multoc}{整数}\Default{2}
- 与 \module*{style} 模块的 \option{multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同类型目录的排版栏数。\meta{整数} 为目录栏数,不指定栏数值则默认为双栏。
+ 设置目录的排版栏数。\meta{整数} 代表目录栏数,不指定栏数的值则默认为双栏。
\kvsplit{title}{中文目录标题,英文目录标题}
用于更改目录的标题。标题之间用一个英文逗号分开,也可以只有一部分,表示中文目录的标题。当设置了英文目录标题时,英文目录标题将会自动加入文档主目录 \cs*{tableofcontents}\parg{} 命令。
\keychoice{bilist}{mix,new}\Default{new}
@@ -465,7 +463,7 @@
\keyval{color-every}{HTML颜色代码}
统一设置主题的各部分颜色。参数是6个十六进制数字组成的 \code{HTML} 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
\keyval{multoc}{整数}\Default{2}
- 使目录多栏排版,与\ref{sec:document command} 中目录命令的同名选项有相同效果。
+ 设置目录的排版栏数,与\ref{sec:document command} 中目录命令的同名选项有相同效果。
\keybool{withpart}\Default{false}
使章标题跟随部分计数器编号,当开启新的一部分时章编号从1开始。
\keychoice{fntnumwith}{part,chapter,page}\Default{chapter}
@@ -892,7 +890,7 @@
\keyval{tocformat}{条目格式}\dtag\smodule{tocset}%
目录中各级别条目的格式。可以设置条目字体和加入垂直间距等,垂直间距最好使用防止垂直间距重合的 \cs*{addvspace} 命令。
\keyval{tocformat+}{条目格式}\dtag
- 与 \option{tocformat} 用法一样,只是在已有的格式命令后附加代码。
+ 与选项 \option{tocformat} 用法一样,只是在已有的格式命令后附加代码。
\keyval{tocindent}{刚性长度}\dtag
目录条目左边的缩进距离,通常条目级别越低缩进越大。
\keyval{tocrule}{引导线命令}\dtag
diff --git a/macros/latex/contrib/hvfloat/Changes b/macros/latex/contrib/hvfloat/Changes
index 4084d7eb92..578c9be771 100644
--- a/macros/latex/contrib/hvfloat/Changes
+++ b/macros/latex/contrib/hvfloat/Changes
@@ -1,4 +1,6 @@
hvfloat.sty:
+2.37 2022-02-28 - fix bug for doublepage floats in twoside and twocolumn mode
+ and captions after the image
2.36 2022-02-22 - fix bug for outer captions (was wrong)
2.35 2021-10-09 - add \parskip for vertical negative space
2.34 2021-09-23 - fix for nonFloat and forceOutput
diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
index 79f4e6dfc9..10e1519bf1 100644
--- a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
+++ b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.tex b/macros/latex/contrib/hvfloat/doc/hvfloat.tex
index 44b35f8a90..70113c0a7e 100644
--- a/macros/latex/contrib/hvfloat/doc/hvfloat.tex
+++ b/macros/latex/contrib/hvfloat/doc/hvfloat.tex
@@ -2556,7 +2556,7 @@ even page and following text will be placed \emph{before} the object.
\begin{lstlisting}
\hvFloat[doubleFULLPAGE,capPos=right,capAngle=90]%
{figure}%
- {\includegraphics[angle=90,width=2\paperwidth]{images/r+j}}%
+ {\includegraphics[width=2\paperwidth]{images/r+j2}}%
[A doublepage image with a caption on the image.]%
{A caption for a double-sided image that will be placed below the right-hand
part of the illustration. The illustration begins on the left edge of the paper.
@@ -2568,7 +2568,7 @@ even page and following text will be placed \emph{before} the object.
\marginnote{Fig.~\ref{fig:doubleFULLPAGE0}}
\hvFloat[doubleFULLPAGE,capPos=right,capAngle=90]%
{figure}%
- {\includegraphics[angle=90,height=\paperheight]{images/r+j}}%
+ {\includegraphics[height=\paperheight]{images/r+j2}}%
[A doublepage image with a caption on the image.]%
{A caption for a double-sided image that will be placed on the right-hand
part of the illustration. The illustration begins on the left edge of the paper.
@@ -2590,7 +2590,7 @@ in the inner margin on both pages.
\begin{lstlisting}
\hvFloat[doubleFULLPAGE,capPos=right,bindCorr=5mm]%
{figure}%
- {\includegraphics[angle=90,width=2\paperwidth]{images/r+j}}%
+ {\includegraphics[width=2\paperwidth]{images/r+j3}}%
[A doublepage image with a caption on the image.]%
{A caption for a double-sided image that will be placed below the right-hand
part of the illustration. The illustration begins on the left edge of the paper.
@@ -2602,7 +2602,7 @@ in the inner margin on both pages.
\marginnote{Fig.~\ref{fig:doubleFULLPAGE0a}}
\hvFloat[doubleFULLPAGE,capPos=right,bindCorr=5mm]%
{figure}%
- {\includegraphics[height=2\paperwidth,angle=90]{images/r+j}}%
+ {\includegraphics[height=2\paperwidth]{images/r+j3}}%
[A doublepage image with a caption on the image.]%
{A caption for a double-sided image that will be placed on the right-hand
part of the illustration. The illustration begins on the left edge of the paper.
diff --git a/macros/latex/contrib/hvlogos/Changes b/macros/latex/contrib/hvlogos/Changes
index 0e3a6e5bb9..f206cbb406 100644
--- a/macros/latex/contrib/hvlogos/Changes
+++ b/macros/latex/contrib/hvlogos/Changes
@@ -1,4 +1,6 @@
hvlogos.sty:
+0.07 2022-02-28 - fix for \dante and \eV
+0.06 2022-01-23 - added \BibLaTeXML
0.05 2022-01-08 - added \LuaMetaTeX and \LMTX with alias in lowercase letters
0.04 2021-10-02 - added new macros to user-defined kernings
0.03 2021-09-25 - \tikz in regular font
diff --git a/macros/latex/contrib/hvlogos/README b/macros/latex/contrib/hvlogos/README
index 5533d66103..540ae523e8 100644
--- a/macros/latex/contrib/hvlogos/README
+++ b/macros/latex/contrib/hvlogos/README
@@ -1,5 +1,5 @@
-
hvlogos
+
Printing TeX related names as a logo
%% This program can be redistributed and/or modified under the terms
diff --git a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
index 7b732b272a..ffcc2d1d71 100644
--- a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
+++ b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
index 81f7731d59..aef5ba2655 100644
--- a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
+++ b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
@@ -128,6 +128,7 @@ The package \LPack{hvlogos} loads by default the packages
\Lcs{XeLaTeX} && \XeLaTeX \\
\Lcs{XeTeX} && \XeTeX \\
+\Lcs{xypic}& \Lcs{XYpic} & \xypic
\end{longtable}
diff --git a/macros/latex/contrib/hvlogos/latex/hvlogos.sty b/macros/latex/contrib/hvlogos/latex/hvlogos.sty
index d6b5e38677..78f8bf3ee0 100644
--- a/macros/latex/contrib/hvlogos/latex/hvlogos.sty
+++ b/macros/latex/contrib/hvlogos/latex/hvlogos.sty
@@ -10,7 +10,7 @@
%
%
% -------------------------------------
-\ProvidesPackage{hvlogos}[2022/01/08 v. 0.05 Logos (hv)]
+\ProvidesPackage{hvlogos}[2022/02/28 v. 0.07 Logos (hv)]
%
\newif\if@dtk@newengine \@dtk@newenginetrue
%
@@ -77,6 +77,13 @@
\def\AmSTeX{\mbox{\textsf{AMS}-\hologo{TeX}}}
\DeclareRobustCommand\Biber{\textsf{Biber}}
\let\biber\Biber
+\DeclareRobustCommand{\BibLaTeXML}{B\kern-.05em%
+ \hbox{$\m@th$% %% force math size calculations
+ \csname S@\f@size\endcsname
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ I\kern-.025emB}%
+ \kern-.08em\-\LaTeX{}ML}
\DeclareRobustCommand\BibTeX{\@ifnextchar8\@@BibTeX\@BibTeX}
\def\@BibTeX{{\hologoLogoSetup{BibTeX}{variant=sc}\hologo{BibTeX}}}
\def\BibTeXacht{{\hologoLogoSetup{BibTeX8}{variant=sc}\hologo{BibTeX8}}}
@@ -124,10 +131,19 @@
% \HOLOGO@discretionary
\hologo{TeX}%
}
+\def\LuaMetaLaTeX{%
+ \mbox{Lua}%
+% \HOLOGO@discretionary
+% \mbox{\fontfamily{logo}\fontencoding{U}\selectfont META}
+ \HoLogoFont@font{METAFONT}{logo}{\mbox{META}}%
+% \HOLOGO@discretionary
+ \hologo{LaTeX}%
+}
\def\LMTX{\textsf{LMTX}}
\let\lmtx\LMTX
\def\LyX{\hologo{LyX}}
+\def\META{\HoLogoFont@font{METAFONT}{logo}{\mbox{META}}}
\def\METAFONT{\hologo{METAFONT}}
\let\MF\METAFONT
\def\MetaFun{\textffm{METAFUN}}
@@ -161,6 +177,8 @@
\def\VTeX{\hologo{VTeX}}
\def\XeLaTeX{\hologo{XeLaTeX}}
\def\XeTeX{\hologo{XeTeX}}
+\DeclareRobustCommand\xypic{\textsf{\hbox{\kern-.1em X\kern-.1em\lower.4ex\hbox{Y\kern-.1em}-pic}}}
+\let\XYpic\xypic
%%
%
\newcommand\BibTool{\textsc{Bib\hskip-.1em
@@ -170,20 +188,27 @@
\let\TikZ\tikzlogo
\def\eV{e.\kern-0.1em V\kern-0.18em.}
+
+\def\dante{DANTE~e.\kern-0.1em V\kern-0.18em.}
+
+\iffalse
\def\d@nte{\@ifnextchar.%
{\mbox{DANTE e.\kern-0.1em V\kern-0.18em}}%
- {\mbox{DANTE e.\kern-0.1em V\kern-0.18em.}\xspace}%
-}
-\def\D@nte{\@ifnextchar.%
- {DANTE, Deutschsprachige Anwendervereinigung~\mbox{\TeX~e.\kern-0.1em V\kern-0.18em}}%
- {DANTE, Deutschsprachige Anwendervereinigung~\mbox{\TeX~e.\kern-0.1em V\kern-0.18em.}\xspace}%
+ {\mbox{DANTE e.\kern-0.1em V\kern-0.18em.}}%
}
+
\def\dante#1{%
\ifx#1\@empty
\d@nte
\else
\expandafter\d@nte#1%
\fi}
+\fi
+
+\def\D@nte{\@ifnextchar.%
+ {DANTE, Deutschsprachige Anwendervereinigung~\mbox{\TeX~e.\kern-0.1em V\kern-0.18em}}%
+ {DANTE, Deutschsprachige Anwendervereinigung~\mbox{\TeX~e.\kern-0.1em V\kern-0.18em.}\xspace}%
+}
\def\Dante#1{%
\ifx#1\@empty
diff --git a/macros/latex/contrib/lectureslides/README.md b/macros/latex/contrib/lectureslides/README.md
index e61eba13b7..81e5a14122 100644
--- a/macros/latex/contrib/lectureslides/README.md
+++ b/macros/latex/contrib/lectureslides/README.md
@@ -1,8 +1,8 @@
# The `lectureslides` Package
-#### Version 0.1
+#### Version 1.0
Taihao Zhang (t@taihao.de)
-15 March 2021
+1 March 2022
This package allows for easily combining and indexing individual PDFs into one large PDF.
@@ -13,7 +13,11 @@ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
____
Changes:
-
+
+* 2022-03-01 / 1.0
+ * Improve page range option
+ * Improve documentation
+ * Implement `ngerman` for footnote text
* 2021-03-15 / 0.1
Initial release
diff --git a/macros/latex/contrib/lectureslides/lectureslides-doc.pdf b/macros/latex/contrib/lectureslides/lectureslides-doc.pdf
index ccc7d4e35b..934c5e1b1e 100644
--- a/macros/latex/contrib/lectureslides/lectureslides-doc.pdf
+++ b/macros/latex/contrib/lectureslides/lectureslides-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/lectureslides/lectureslides-doc.tex b/macros/latex/contrib/lectureslides/lectureslides-doc.tex
index df1bc17d1d..10e11d48c2 100644
--- a/macros/latex/contrib/lectureslides/lectureslides-doc.tex
+++ b/macros/latex/contrib/lectureslides/lectureslides-doc.tex
@@ -3,18 +3,18 @@
\usepackage[british]{babel}
\usepackage[babel]{microtype}
\newcommand{\thispackage}{lectureslides}
-\title{The \texttt{\thispackage} Package\footnote{This document corresponds to \texttt{lectureslides} version 0.1 / 2021-03-15.}}
-\author{Taihao Zhang\thanks{Technische Universität Darmstadt, t@taihao.de}}
-\date{15 March 2021}
+\title{The \texttt{\thispackage} Package\footnote{This document corresponds to \texttt{lectureslides} version 1.0 / 2022-03-01.}}
+\author{Taihao Zhang\protect\\\ttfamily t@taihao.de}
+\date{1st March 2022}
\begin{document}
\maketitle
-% \section{Motivation}
+% \subsection*{Motivation}
When studying, there frequently occurs the situation where one uses \texttt{Ctrl\,+\,F} many times to search for a keyword in all the lecture slides. Throughout an entire semester, there can be a large number of PDFs that would need to be searched.
\par
This package allows for easily combining individual PDFs into a large one, indexing each with a title that PDF viewers can display. \verb+lectureslides+ also provides a table of contents.
-\section{Usage}
+\subsection*{Usage}
In general, usage of \texttt{\thispackage} works as follows:
\begin{verbatim}
\documentclass{article}
@@ -30,31 +30,40 @@ In general, usage of \texttt{\thispackage} works as follows:
\begin{macro}{\course}
Acts as the title on the cover page, used in the form \newline
- \verb+\course[]{Engineering Mechanics}+. The optional argument specifies the person compiling the document, which will be typeset as a footnote alongside the current date. For instructions on changing that footnote, see \verb+\createdby+.
+ \verb+\course[]{Engineering Mechanics}+. The optional argument specifies the footnote text, which otherwise defaults to \textbf{Compiled \textbackslash today}. This text adapts to an \verb+ngerman+ setting in babel.\footnote{This requires that this package is loaded after babel.}
\end{macro}
+ \newpage
\begin{macro}{\lecture}
Inserts one set of lecture slides. This command takes two mandatory arguments in the following form:
\begin{verbatim}
\lecture{Title of this lecture}{pdf_file_name}
\end{verbatim}
- An optional argument can specify the last slide that needs to be included. For example, to include slides 1~--10 of \verb+intro.pdf+:
+ Two optional arguments can specify the range of slides that need to be included. For example, to include slides 10~--35 of \verb+intro.pdf+:
\begin{verbatim}
- \lecture{Introduction to EM}[10]{intro}
+ \lecture{Introduction to EM}[10][35]{intro}
+ \end{verbatim}
+ Either optional argument can be left empty. To include slides up to slide number 35:
+ \begin{verbatim}
+ \lecture{Introduction to EM}[][35]{intro}
+ \end{verbatim}
+ To include slides from slide number 10 til the end:
+ \begin{verbatim}
+ \lecture{Introduction to EM}[10][]{intro}
\end{verbatim}
Internally, this command calls \verb+\lecturetitle+ and \verb+\lectureslides+.
\end{macro}
\begin{macro}{\tableofcontents}
- Prints a table of contents of all lectures. Each \verb+\lecture+ and \verb+\lecturetitle+ gets its own entry here. \verb+\tocline+ customises the appearance.
+ Prints a table of contents of all lectures. Each \verb+\lecture+ (and consequently \verb+\lecturetitle+) gets its own entry here. \verb+\tocline+ customises the appearance.
\end{macro}
-\section{Option}
+\subsection*{Option}
\DescribeMacro{landscape}
\DescribeMacro{portrait}
\verb+landscape+ is the default orientation if no option is passed, as lecture slides are most often given out in this format. \verb+portrait+ can be used instead to insert slides in portrait orientation.
-\section{Advanced}
+\subsection*{Advanced}
\begin{macro}{\lecturetitle}
Declares a new set of slides, but doesn't insert any PDF pages yet. When followed by \verb+\lectureslides+, an actual entry in the table of contents gets created.
\begin{verbatim}
@@ -63,25 +72,15 @@ In general, usage of \texttt{\thispackage} works as follows:
\end{macro}
\begin{macro}{\lectureslides}
- Inserts a set of slides from a given PDF. Optional argument specifies the last slide to be included.
- \begin{verbatim}
- \lectureslides[10]{pdf_file_name}
- \end{verbatim}
- Multiple \verb+\lectureslides+ can be stringed together to include slides from different PDFs which are all organised under the same \verb+\lecturetitle+.
- \end{macro}
-
- \begin{macro}{\createdby}
- Determines the sentence in the footnote, which is initiated by the optional argument of \verb+\course+. Putting the following in the preamble redefines the sentence, to fit the desired language for example.
+ Inserts a set of slides from a given PDF. Optional arguments specify the range of slides to be included.
\begin{verbatim}
- \renewcommand{\createdby}[1]{%
- Created by #1 on \today.%
- }
+ \lectureslides[10][35]{pdf_file_name}
\end{verbatim}
- \verb+\renewcommand{\createdby}{Created in March 2021.}+ for example gets rid of the name entirely. Note that some kind of non-empty argument is still needed in \verb+\course[]{}+ so the footnote gets printed at all.
+ Multiple \verb+\lectureslides+ can be stringed together to include slides from different PDFs. These will then all organised under the last preceding \verb+\lecturetitle+.
\end{macro}
-
+
\begin{macro}{\tocline}
- Determines how the lecture title appears in the ToC. Putting the following in the preambled redefines this, for example:
+ Determines how the lecture title appears in the table of contents (ToC). Putting the following in the preamble redefines this, for example:
\begin{verbatim}
\renewcommand{\tocline}[1]{%
Semana \arabic{section}: #1%
diff --git a/macros/latex/contrib/lectureslides/lectureslides.sty b/macros/latex/contrib/lectureslides/lectureslides.sty
index 8c9cfc4899..3bfff0dedb 100644
--- a/macros/latex/contrib/lectureslides/lectureslides.sty
+++ b/macros/latex/contrib/lectureslides/lectureslides.sty
@@ -1,10 +1,10 @@
%
% lectureslides
-% version 0.1
-% 2021/03/15
+% version 1.0
+% 2022/03/01
%
% Taihao Zhang (taihao.de)
-% 15 March, 2021
+% 1 March, 2022
%
% This work is licensed under the Creative Commons Attribution 4.0 International License.
% To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
@@ -16,14 +16,14 @@
\newcommand{\thispackage}{lectureslides}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{\thispackage}[2021/03/14 \thispackage]
+\ProvidesPackage{\thispackage}[2022/03/01 \thispackage]
\RequirePackage{xparse}
\RequirePackage{pdfpages
- % , parskip
, tocloft
- % , tikz
- , hyperref}
+ , hyperref
+ , babel
+}
\renewcommand{\cftdot}{}
\renewcommand{\cftsecfont}{\mdseries}
\renewcommand{\cftsecafterpnum}{\vspace{-3.25mm}}
@@ -37,14 +37,23 @@
\DeclareOption*{\PackageWarning{\thispackage}{Unknown option ‘\CurrentOption’}}
\ProcessOptions\relax
-\newcommand{\createdby}[1]{Zusammengestellt von #1 am \today.}
+\newcommand{\createdAt}[1]{Compiled \today.}
\NewDocumentCommand{\course}{o m}{%
{%
\noindent\LARGE\bfseries\sffamily #2%
- \IfNoValueTF{#1}%
- {}%
- {\footnote{\createdby{#1}}}%
+ \footnote{
+ \IfNoValueTF{#1}%
+ {
+ % No optional argument passed
+ \iflanguage{ngerman}{
+ Zusammengestellt am \today.
+ }{
+ Compiled \today.
+ }
+ }%
+ {#1}%
+ }%
\par%
}%
}
@@ -57,18 +66,13 @@
\addcontentsline{toc}{\toclevel}{\tocline{#1}}%
}
-\NewDocumentCommand{\lectureslides}{o m}{%
- \IfNoValueTF{#1}%
- {\includepdf[pages=- \orientation]{#2}}%
- {\includepdf[pages=-#1 \orientation]{#2}}%
-}
-
-\NewDocumentCommand{\lecture}{m o m}{%
- \lecturetitle{#1}\lectureslides[#2]{#3}%
+\NewDocumentCommand{\lectureslides}{o o m}{%
+ \includepdf[pages=#1-#2 \orientation]{#3}
+ % \IfNoValueTF{#1}%
+ % {\includepdf[pages=- \orientation]{#2}}%
+ % {\includepdf[pages=-#1 \orientation]{#2}}%
}
-\newcommand{\infotext}{%
-Diese PDF mit Inhaltsverzeichnis und PDF-Kapiteln wurde erstellt, um ein einfacheres Lernen zu ermöglichen indem alle Folien übersichtlich an einem Ort organisiert sind.%
-\par%
-In geeigneten PDF-Readern wird ein Navigationsbereich angezeigt, sodass einfach zwischen den Kapiteln gewechselt werden kann. Alternativ sind die Überschriften im Inhaltsverzeichnis auch anklickbar.%
+\NewDocumentCommand{\lecture}{m o o m}{%
+ \lecturetitle{#1}\lectureslides[#2][#3]{#4}%
}
diff --git a/systems/doc/luatex/luatex-nodes.tex b/systems/doc/luatex/luatex-nodes.tex
index 5a48b4c18a..d18006df0c 100644
--- a/systems/doc/luatex/luatex-nodes.tex
+++ b/systems/doc/luatex/luatex-nodes.tex
@@ -890,6 +890,10 @@ The difference between \type {data} and \type {string} is that on assignment, th
\type {data} field is converted to a token list, cf.\ use as \lpr {latelua}. The
\type {string} version is treated as a literal string.
+When a function is used, it gets called with as first argument the node that triggers
+the call.
+
+
\stopsection
\startsection[title={\DVI\ backend whatsits}]
diff --git a/systems/doc/luatex/luatex.pdf b/systems/doc/luatex/luatex.pdf
index 9d722397f0..773d8a9311 100644
--- a/systems/doc/luatex/luatex.pdf
+++ b/systems/doc/luatex/luatex.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index a59d939627..93ec8cd160 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -38,7 +38,6 @@ $mirrors = {
'http://ctan.yazd.ac.ir/' => 1,
'https://ctan.asis.ai/' => 1,
'https://ctan.um.ac.ir/' => 1,
- 'https://mirror.bardia.tech/ctan/' => 1,
},
'Japan' => {
'http://ring.airnet.ne.jp/archives/text/CTAN/' => 1,
@@ -50,7 +49,6 @@ $mirrors = {
'http://ftp.ktug.org/tex-archive/' => 1,
'https://ftp.harukasan.org/CTAN/' => 1,
'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
- 'https://mirror.kakao.com/CTAN/' => 1,
'https://mirror.navercorp.com/CTAN/' => 1,
'https://mirror.yongbok.net/ctan/' => 1,
},
@@ -137,6 +135,9 @@ $mirrors = {
'https://mirror.koddos.net/CTAN/' => 1,
'https://mirror.lyrahosting.com/CTAN/' => 1,
},
+ 'Norway' => {
+ 'https://ctan.uib.no/' => 1,
+ },
'Poland' => {
'https://ctan.gust.org.pl/tex-archive/' => 1,
'https://repo.skni.umcs.pl/ctan/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 7a841eccda..340fd43866 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/62213
+depend revision/62267
name 00texlive.image
category TLCore
-revision 62198
+revision 62245
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -1261,6 +1261,7 @@ runfiles size=12538
tlpkg/tlpsrc/cqubeamer.tlpsrc
tlpkg/tlpsrc/cquthesis.tlpsrc
tlpkg/tlpsrc/crbox.tlpsrc
+ tlpkg/tlpsrc/create-theorem.tlpsrc
tlpkg/tlpsrc/crefthe.tlpsrc
tlpkg/tlpsrc/crimson.tlpsrc
tlpkg/tlpsrc/crimsonpro.tlpsrc
@@ -4537,7 +4538,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 62196
+revision 62215
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -21064,7 +21065,7 @@ catalogue-version 1.0
name arara
category Package
-revision 61370
+revision 62257
shortdesc Automation of LaTeX compilation
longdesc Arara is comparable with other well-known compilation tools
longdesc like latexmk and rubber. The key difference is that arara
@@ -21072,11 +21073,11 @@ longdesc determines its actions from metadata in the source code, rather
longdesc than relying on indirect resources, such as log file analysis.
longdesc Arara requires a Java virtual machine.
depend arara.ARCH
-containersize 10603980
-containerchecksum 2d32be197013bd1280c5bd1475847e653f29549c2776b3cbd353796a0c2eb86a08dadaa80b69f7c40a68a5670b69e33ca44e4c0a468f84b336a06959f2c05a11
-doccontainersize 2055584
-doccontainerchecksum 82218fa054ba54b2e3a33f85c236970a42495d3948a89e0385110679aef541b4cdeb33f05cf1813a83d3218e83ebbec4176ad5ef006100d23b444f749c19b70c
-docfiles size=836
+containersize 10626840
+containerchecksum 906ed1e5a3e4a71dc5b159d3c8a293502cc633bbf582052a10a0da46a84653c325cd70f578964cddb37c70e2da48c0b9cb786ece25627cbbad0dd57bcb405bff
+doccontainersize 2057000
+doccontainerchecksum efa3b5a766a5df1530834485cdfa6fde112fef47bcd04c595e3d8020e03c7360ec9e6ea4980598763d2fc061849c5d82da54e3e3574eb030c7d97d43744f058b
+docfiles size=835
texmf-dist/doc/man/man1/arara.1
texmf-dist/doc/man/man1/arara.man1.pdf
texmf-dist/doc/support/arara/README.md details="Readme"
@@ -21114,11 +21115,11 @@ docfiles size=836
texmf-dist/doc/support/arara/rules/manual.yaml
texmf-dist/doc/support/arara/rules/quickstart.yaml
texmf-dist/doc/support/arara/version.tex
-srccontainersize 100240
-srccontainerchecksum 487aad824c0feabaa06c2b3a2ab3e144c0e5cc1da9fa77d069d2afa1be22c186c7b7a346574cf37d5c4fc69f8253926ff00380947d717e982aaed86d174d2400
+srccontainersize 100248
+srccontainerchecksum d931468c36111e4edc6d53dbb4bd9fd647d7e151ed8f3e7756d0c4659e39cb93575d89dc1596e78f490fd711afded589cabbf4791605d653a34464aef5a105b6
srcfiles size=33
- texmf-dist/source/support/arara/arara-6.1.5-src.zip
-runfiles size=2967
+ texmf-dist/source/support/arara/arara-6.1.6-src.zip
+runfiles size=2973
texmf-dist/scripts/arara/arara.jar
texmf-dist/scripts/arara/arara.sh
texmf-dist/scripts/arara/rules/arara-rule-animate.yaml
@@ -21197,7 +21198,7 @@ catalogue-contact-support https://matrix.to/#/!HfEWIEvFtDplCLSQvz:matrix.org?via
catalogue-ctan /support/arara
catalogue-license bsd
catalogue-topics compilation
-catalogue-version 6.1.5
+catalogue-version 6.1.6
name arara.aarch64-linux
category Package
@@ -42334,7 +42335,7 @@ catalogue-version 1.0.1
name book-of-common-prayer
category Package
-revision 59742
+revision 62241
shortdesc Typeset in the style of "Book of Common Prayer"
relocated 1
longdesc This a package for the typesetting of liturgical documents in
@@ -42343,21 +42344,21 @@ longdesc macros for common liturgical situations (e.g. versicle and
longdesc response, longer prayers, etc.). This package is designed to
longdesc work with the Sabon font, but it is not necessary to run the
longdesc macros.
-containersize 2528
-containerchecksum 0760350b49c1487d35ae04ff0ee57d552f6ffa0c7df9d02c7f74147d3c459926881a0252fd95d5b7acf3064fc63eca92f72aa088f8fca418d86f5e6f9b9febca
-doccontainersize 97136
-doccontainerchecksum ae73dba4c8bd043772ea4bf78ff9cfb0fa210d3de15b2e045356522349f11930e34dede648022be75d015893a91ecf9d57812b19475352f59a4f84de5a520055
-docfiles size=29
- RELOC/doc/xelatex/book-of-common-prayer/README.md details="Readme"
- RELOC/doc/xelatex/book-of-common-prayer/book-of-common-prayer.pdf details="Package documentation"
- RELOC/doc/xelatex/book-of-common-prayer/book-of-common-prayer.tex
+containersize 2776
+containerchecksum 7010a4a3665d760cb2a8f4559a0bf890c45c6a287ca2c0f862cd8edcf0a610671f7b44bcc8137061ef91e91b9f46148176b5cec478f8fe7c70df1b13e61438f0
+doccontainersize 129528
+doccontainerchecksum 1ae5d0a20bb86610e4f9eaad8079447f7e13e2bea0a8bba258969e8bd27157d297aa1f46f710e1e544be6171bb560f57cc507b52a019a3caf7f6d19065d37e4a
+docfiles size=38
+ RELOC/doc/latex/book-of-common-prayer/README.md details="Readme"
+ RELOC/doc/latex/book-of-common-prayer/book-of-common-prayer.pdf details="Package documentation"
+ RELOC/doc/latex/book-of-common-prayer/book-of-common-prayer.tex
runfiles size=2
- RELOC/tex/xelatex/book-of-common-prayer/book-of-common-prayer.sty
+ RELOC/tex/latex/book-of-common-prayer/book-of-common-prayer.sty
catalogue-contact-repository https://gitlab.com/cwtc/book-of-common-prayer
-catalogue-ctan /macros/xetex/latex/book-of-common-prayer
+catalogue-ctan /macros/unicodetex/latex/book-of-common-prayer
catalogue-license lppl1.3c
catalogue-topics theology
-catalogue-version 1.0.0
+catalogue-version 1.1.0
name bookcover
category Package
@@ -68672,7 +68673,7 @@ containerchecksum 0568a3251d71fb3106fbb3961427200419ae1df22d39b5e72c608e2d94fc35
name collection-latexextra
category Collection
-revision 62155
+revision 62245
shortdesc LaTeX additional packages
relocated 1
longdesc A very large collection of add-on packages for LaTeX.
@@ -68787,6 +68788,7 @@ depend blowup
depend bnumexpr
depend boites
depend bold-extra
+depend book-of-common-prayer
depend bookcover
depend bookest
depend booklet
@@ -68925,6 +68927,7 @@ depend coursepaper
depend coverpage
depend cprotect
depend crbox
+depend create-theorem
depend crefthe
depend crossreference
depend crossreftools
@@ -70099,8 +70102,8 @@ depend zref-clever
depend zref-vario
depend zwgetfdate
depend zwpagelayout
-containersize 6576
-containerchecksum 4b9e5fec8e39ca32904db213eb077232af869eda761b7bb35c05710c3b6a97e6829174a93370354e9a5f7d7a79787acdeaf67f5748f23cfbd56882a60105b057
+containersize 6596
+containerchecksum 4e0b053219a13e2de5395b4a87fca1f909e4885150cbf08120d9cc997746433dd354f38f38ea0579473a8c42d88e134266a693b6d0773957ebd84089827b8e7a
name collection-latexrecommended
category Collection
@@ -71372,7 +71375,7 @@ containerchecksum 9bf4c58094748424c1b60a3731d9cb2b1ad1d24764469072da693de26a4e4e
name collection-xetex
category Collection
-revision 61886
+revision 62241
shortdesc XeTeX and packages
relocated 1
longdesc Packages for XeTeX, the Unicode/OpenType-enabled TeX by
@@ -71384,7 +71387,6 @@ depend bidicontour
depend bidipagegrid
depend bidipresentation
depend bidishadowtext
-depend book-of-common-prayer
depend businesscard-qrcode
depend collection-basic
depend cqubeamer
@@ -71420,8 +71422,8 @@ depend xetexfontinfo
depend xetexko
depend xevlna
depend zbmath-review-template
-containersize 664
-containerchecksum f8864b942c8817838b7a058d82213ea5d94d1351707f51283d2b0140e43bb5b952efe4dff72945d8e31b71ed0bf97f37531595a0754645efbfcbaf3aa5baaa14
+containersize 652
+containerchecksum 04f7b34e5516690f11403cf139893425369de705fc2b4e4e35e202322f439fd129321f77aac0e7afafb83058c67fc4b431eb1274185d8c0c85d7537e8b8914e6
name collref
category Package
@@ -81848,9 +81850,36 @@ catalogue-license lppl
catalogue-topics boxing typesetting decoration
catalogue-version 0.1
+name create-theorem
+category Package
+revision 62245
+shortdesc Multilingual support for theorem-like environments
+relocated 1
+longdesc This package provides commands for naming and initializing
+longdesc theorem-like environments. They have a key-value based
+longdesc interface and are especially useful in multilingual documents
+longdesc to allow the easy declaration of theorem-like environments that
+longdesc automatically adapt to the language settings.
+containersize 7256
+containerchecksum c269e5c4e834200584b675e31fcc1aa032a3f4218100586ecf9d17fc1c7f8f97361ede3f4e3be566abb8b7cc101a312f114ad0b90f6b2bb5bcfa30f410b1d114
+doccontainersize 121396
+doccontainerchecksum e8d9463dbd67a19c09c3ba9c7a8d1e15afa1df97000c8760095660af5b115110fdc39b10c69601952a5b3bd2da140b2cf8fbe00328a0771e170485c9773569c5
+docfiles size=39
+ RELOC/doc/latex/create-theorem/LICENSE
+ RELOC/doc/latex/create-theorem/README.md details="Readme"
+ RELOC/doc/latex/create-theorem/create-theorem-doc.pdf details="Package documentation"
+ RELOC/doc/latex/create-theorem/create-theorem-doc.tex
+runfiles size=17
+ RELOC/tex/latex/create-theorem/create-theorem.sty
+catalogue-also multilang
+catalogue-contact-repository https://github.com/Jinwen-XU/create-theorem
+catalogue-ctan /macros/latex/contrib/create-theorem
+catalogue-license lppl1.3c
+catalogue-topics multilingual
+
name crefthe
category Package
-revision 62103
+revision 62247
shortdesc Cross referencing with proper definite articles
relocated 1
longdesc By default, when using cleveref's \cref to reference
@@ -81860,11 +81889,11 @@ longdesc Spanish, etc. this results in incorrect grammar. For this
longdesc purpose, the current package offers \crefthe, which handles the
longdesc definite articles properly (especially for the article
longdesc contractions in many European languages).
-containersize 2676
-containerchecksum 0ad605c17fe0f32c5e01888c235fa745be4b1b59a83f4b4a091923779ed0db1b9d3ddde609b5ac3bfe886cd607b3b48e93c7bd04014c09c09638f4a404339456
-doccontainersize 120692
-doccontainerchecksum 242b772be80f344dbe4d056b845e556e5c69a08b0dba9a07a2b66c32b7d11794bf6cae3ffba9a31f7b3f71b78324b76c959bbadcbe7a7093ca96acf86c3497f4
-docfiles size=37
+containersize 2912
+containerchecksum 44bacb976b980de14f91fccb49d85ca6d233b06590656589f67d28eb32db81823b485ca978e2d08b554f20e9c47a3b7df9e1700d0b1c6d93439cc96f90b5ff53
+doccontainersize 124236
+doccontainerchecksum 21b6e2165d83d8912aa88bfc8e7f4417033b8902ac9c74d1bb0b02fdbb1b80b390a62a83df0b6d95586ce648b00ac6a8ea235a06a3675cdc667745d67408863a
+docfiles size=38
RELOC/doc/latex/crefthe/LICENSE
RELOC/doc/latex/crefthe/README.md details="Readme"
RELOC/doc/latex/crefthe/crefthe-doc.pdf details="Package documentation"
@@ -122898,30 +122927,31 @@ catalogue-topics footnote
name fnpct
category Package
-revision 61866
+revision 62249
shortdesc Manage footnote marks' interaction with punctuation
relocated 1
longdesc The package moves footnote marks after following punctuation
longdesc (comma or full stop), and adjusts kerning as appropriate. As a
longdesc side effect, a change to the handling of multiple footnotes is
longdesc provided.
-containersize 9700
-containerchecksum c8a1d72d0d2978c268cba7306e780af4b68ee9d68208435616f9d6d3b3bd2364235e18e47a324a9eca9d7bdcb0dbfe8b390f98b180329968ebe78fb6deef79a2
-doccontainersize 516468
-doccontainerchecksum ddef7b9a1eb597751550bc3fb2b145c3eae4e08b6639e8a8026dbed214ea80edc3ec2973b09cbf4f17a36c201c0fdb11154ddf81f4dd0a5829bd9d9cd39786ee
-docfiles size=136
+containersize 14728
+containerchecksum d97956ba06f806d28d77a286cf12ba9d67f74f4d4c8de56d25381eade1448d352e5a7de958990155f732875605f9e57095ad94a72bc55664d16836e944ef4af8
+doccontainersize 501724
+doccontainerchecksum 1ffa5f00383a8307f26ccecd0e2f2178035365008d637560fa626173fe6239be4a2c7c5eef82dc1d5e081a5baac941c68329cb60c116f4483fe0eeb10e6c712b
+docfiles size=132
RELOC/doc/latex/fnpct/README details="Readme"
RELOC/doc/latex/fnpct/fnpct-manual.cls
RELOC/doc/latex/fnpct/fnpct-manual.pdf details="Package documentation"
RELOC/doc/latex/fnpct/fnpct-manual.tex
-runfiles size=12
+runfiles size=22
+ RELOC/tex/latex/fnpct/fnpct-2019-10-05.sty
RELOC/tex/latex/fnpct/fnpct.sty
catalogue-contact-bugs https://github.com/cgnieder/fnpct/issues
catalogue-contact-repository https://github.com/cgnieder/fnpct/
catalogue-ctan /macros/latex/contrib/fnpct
catalogue-license lppl1.3c
catalogue-topics footnote expl3
-catalogue-version 1.1
+catalogue-version 1.1a
name fnspe
category Package
@@ -188873,7 +188903,7 @@ catalogue-version 2.23.0
name luaotfload
category Package
-revision 62198
+revision 62239
shortdesc OpenType 'loader' for Plain TeX and LaTeX
longdesc The package adopts the TrueType/OpenType Font loader code
longdesc provided in ConTeXt, and adapts it to use in Plain TeX and
@@ -188883,10 +188913,10 @@ depend lua-alt-getopt
depend lua-uni-algos
depend lualibs
depend luaotfload.ARCH
-containersize 611384
-containerchecksum 9c9995859519192b0897dad406280c7ba1ff1497b189219115b281758c23c152fd6f8d353f4d3994718572ecdfaf2156abdd752b35fae350a9a6db1517f344e4
-doccontainersize 624896
-doccontainerchecksum 733746eb51f25ab211a5844f3757713de1f91545fb720c2a54af4257e3bc813300cbdd9d13dae42a9dbaedd7a2f7c2e85ba253df25b87609953a32d1d60527f5
+containersize 611056
+containerchecksum a4fa943dcf4e91a8b2d1ba9a2b4870812bc0d78da33cbda34c691241a4cb2be073b44f345ef39c018f2d40cde54351ae0a71ca9d608b8f2a2435ae7e376466e2
+doccontainersize 623992
+doccontainerchecksum cc0b05bb05485f9989bbd77c4416acdc2b40b5babff160ba351d4c9f5eeef5b606e5965176191c1f1104a61b56f96d810a601d2f558f893b188465b8099c9164
docfiles size=272
texmf-dist/doc/luatex/luaotfload/COPYING
texmf-dist/doc/luatex/luaotfload/NEWS
@@ -188911,12 +188941,12 @@ docfiles size=272
texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf
texmf-dist/doc/man/man5/luaotfload.conf.5
texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf
-srccontainersize 7292
-srccontainerchecksum 07fae8ee4c8cea19da6db79a3e0099841af5ffab28446721517be78002bccc309d7580e91644dfdfdc5d9fc5acfad5652df38888729ad2a25424745934e1b1d7
+srccontainersize 7276
+srccontainerchecksum 25f90822ead4247357d535fee38fa47c5d8a1078314a71653c644d59882778562c9911d425b0dbf8159b75f8a5d7bf1fe779e878775372637f1c4373a69c610f
srcfiles size=6
texmf-dist/source/luatex/luaotfload/fontloader-reference-load-order.lua
texmf-dist/source/luatex/luaotfload/fontloader-reference-load-order.tex
-runfiles size=1898
+runfiles size=1896
texmf-dist/scripts/luaotfload/luaotfload-tool.lua
texmf-dist/tex/luatex/luaotfload/fontloader-2022-02-24.lua
texmf-dist/tex/luatex/luaotfload/fontloader-basics-chr.lua
@@ -189006,7 +189036,6 @@ runfiles size=1898
texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua
texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua
texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua
- texmf-dist/tex/luatex/luaotfload/luaotfload-t3.lua
texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua
texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua
texmf-dist/tex/luatex/luaotfload/luaotfload.lua
@@ -189016,7 +189045,7 @@ catalogue-contact-support https://github.com/latex3/luaotfload/issues
catalogue-ctan /macros/luatex/generic/luaotfload
catalogue-license gpl2
catalogue-topics font-use luatex
-catalogue-version 3.19
+catalogue-version 3.20
name luaotfload.aarch64-linux
category Package
@@ -189996,7 +190025,7 @@ catalogue-version 0.1q
name lutabulartools
category Package
-revision 61003
+revision 62253
shortdesc lutabulartools provides some useful commands for tabular matter
relocated 1
longdesc lutabulartools provides some useful commands for tabular
@@ -190004,11 +190033,11 @@ longdesc matter. It uses LuaLaTeX and offers the ability to combine the
longdesc facilities of multirow, multicolumn, and makcell with an easy
longdesc to use syntax, and adds some enhanced rules for the booktabs
longdesc package.
-containersize 5848
-containerchecksum 5c2d1b5d712801bf4bd14802bbd9d9b1cb93f51ae9df8102cdaaab463b55ec4a6c5a167a905d210947920f9624c8d882ce4a8fa9bb2fe8631f4f7cff04ae1118
-doccontainersize 55628
-doccontainerchecksum b4721642982af15dd46e3fcc8d8bfb5576a106a833850f66a9872ff9b8bfa5a996e618d0df7b7150482cf147515f87eef424f7be0fd65182b91bb3ee5316b737
-docfiles size=19
+containersize 5720
+containerchecksum 881b31e9fb29a03d6f3668ae1ebc1bed9302866e8a102a9ad21792242618798394ba471a581c5235e4ee736406d5f99dfc0ef02e99423f8d0e02fa7d89d09f9e
+doccontainersize 77912
+doccontainerchecksum fab930fa3fd9fcc18cb9b5edc710ad9625d2525bbe1c1d98fb572b8cf049d126d6ce7437bd7bd173c3fa321023cb80e30b210837794719c17d0ada9c7cac8999
+docfiles size=25
RELOC/doc/luatex/lutabulartools/README.md details="Readme"
RELOC/doc/luatex/lutabulartools/lutabulartools.pdf details="Package documentation"
RELOC/doc/luatex/lutabulartools/lutabulartools.tex
@@ -196007,17 +196036,17 @@ catalogue-version 0.5
name mcf2graph
category Package
-revision 62101
+revision 62243
shortdesc Draw chemical structure diagrams with MetaPost
relocated 1
longdesc The Molecular Coding Format (MCF) is a linear notation for
longdesc describing chemical structure diagrams. This package converts
longdesc MCF to graphic files using MetaPost.
-containersize 448
-containerchecksum 9da3141f35f8bdb4d8439e2b5118089a4f4b7d47fe4b868d624b64d31807f0351ed869d1c58f5fdec7a14eabce2ba9d1974c79fe8a5713d84a42c1bdbb925b5a
-doccontainersize 962744
-doccontainerchecksum 5bae81cf06625315d0c9aa87f14704d6db25bd2f9c81946d2a976ded6c6b8d05e23a02223cdb0203a2ac68a9393647ae8816beec7718cc7152cb0f471fd0773c
-docfiles size=315
+containersize 444
+containerchecksum 0f3207675c160921c75f147adea391a60fd426a3de91969be05d6d1b8a38a7f9e167895e6c7d3a94eab2b71915ed51a0053624c2d6ac02beca58cc5a26ad92ab
+doccontainersize 958568
+doccontainerchecksum 23eac68cb9e4a160c48e1e1d0a37b20d76e1249e84b71dab2de195ac5bbf707ee620c77bd21c7448378d67542ba5a0ea875406a6a41e7367fa089975de23e0d2
+docfiles size=313
RELOC/doc/metapost/mcf2graph/CHANGELOG
RELOC/doc/metapost/mcf2graph/README details="Readme"
RELOC/doc/metapost/mcf2graph/mcf2graph.mp
@@ -196033,7 +196062,7 @@ docfiles size=315
catalogue-ctan /graphics/mcf2graph
catalogue-license mit
catalogue-topics graphics graphics-mpost chemistry
-catalogue-version 4.80
+catalogue-version 4.81
name mcite
category Package
@@ -237978,21 +238007,21 @@ binfiles arch=x86_64-solaris size=1
name penlight
category Package
-revision 61326
+revision 62255
shortdesc Penlight Lua libraries made available to LuaLaTeX users
relocated 1
-longdesc This LuaLaTeX package provides a thin-wrapper to use the
-longdesc penlight Lua libraries with LuaLaTeX. It uses the
-longdesc luapackageloader package.
-containersize 99720
-containerchecksum d6f1e6d6d3e8ca2fc38905f5c8af74fef1a02b83dab7fcf00dd12802d062a2e0e74307e96ec53f226ad0ea10bdb1efda0638d1af0c6ac43a991a7bad27c97fc6
-doccontainersize 26724
-doccontainerchecksum 78817dadc25de4b7ba7e065a8bf5080747d041de530d0090073b14c4acffc4edb7bf2f2196a0f4935dcf6219d7f846f395b99d5bb980ed1df5dce0672bb648d3
-docfiles size=11
+longdesc This LuaLaTeX package provides a wrapper to use the penlight
+longdesc Lua libraries with LuaLaTeX, with some extra functionality
+longdesc added.
+containersize 105380
+containerchecksum 1bd82e613fe994f246d3bfab1311f74bfb93bbcde353dcedd0eb8dc5dcb2d279213ab885bdee47855720a0f5025ad6b3bdeec284313da9efe0cdc17925ac2701
+doccontainersize 34912
+doccontainerchecksum 29a48f688b586a02b64d322022c077db861b523764fba7e67bca6b8a053b9cebdc8eee76d65540db7c4ed8a463845061d99f919375be28a65a06ad646404e4fc
+docfiles size=13
RELOC/doc/luatex/penlight/README.md details="Readme"
RELOC/doc/luatex/penlight/penlight.pdf details="Package documentation"
RELOC/doc/luatex/penlight/penlight.tex
-runfiles size=104
+runfiles size=109
RELOC/tex/luatex/penlight/penlight.lua
RELOC/tex/luatex/penlight/penlight.sty
RELOC/tex/luatex/penlight/penlightextras.lua
@@ -248897,7 +248926,7 @@ catalogue-version 0.99-l
name proflycee
category Package
-revision 62157
+revision 62260
shortdesc A LaTeX package for French maths teachers in high school
relocated 1
longdesc This package provides some commands to help French mathematics
@@ -248906,11 +248935,11 @@ longdesc create splines with "derivative control"; \paramCF and \ligneCF
longdesc in order to create an xcas-windows-like; \envconsolepythontex
longdesc and \envcodepythontex to create code presentation and code
longdesc execution with pythontex.
-containersize 6312
-containerchecksum 7caff3212d35997e0278eafa6453355b5713ed26eb1125a0bf6f2033f339bc4059be9f43c75ea866ed24fd814ffbe3d1a1738befeb2099867bba21ac681a516d
-doccontainersize 411928
-doccontainerchecksum 58c50b3e63301e722c0ebd14e7815139feab44d593f6a729e12141b00bfa5e6d4b3ffaa534831971a63284eb9ba5fe2908532fa64314d973ea54117039b1224a
-docfiles size=112
+containersize 6472
+containerchecksum 3c883e5dbb9d874191265cb4c5bf123d2c4462ab6f7aa2079e39f75beb5406d97fed33cdf945eb0f52424e19993cbe07c232cfafc382d965ab060cd52fa3fc55
+doccontainersize 475196
+doccontainerchecksum 313132c777fc7f74be1db6436b43f1ef1c846eba807228b44c9c7591b80dcfb61ff40b88192177a493c8530efd8f25b7fc509fb12fe0fae35e2de11ceb4cd3a5
+docfiles size=128
RELOC/doc/latex/proflycee/ProfLycee-doc.pdf details="Package documentation" language="fr"
RELOC/doc/latex/proflycee/ProfLycee-doc.tex
RELOC/doc/latex/proflycee/README.md details="Readme"
@@ -249005,7 +249034,7 @@ catalogue-version 1.0b~4
name projlib
category Package
-revision 61338
+revision 62251
shortdesc A series of tools to simplify your workflow
relocated 1
longdesc ProjLib is a collection of tools to help you write LaTeX
@@ -249014,10 +249043,10 @@ longdesc need to set up the theorem-like environments, nor to manually
longdesc configure the appropriate multilingual settings. In addition, a
longdesc series of auxiliary functionalities are introduced.
containersize 16540
-containerchecksum 24db5449be1b233520950d78ae0db7d31fc02e18e6bde757d8f90d7b92b3df7b425fd0a8e34d7a3d834fbaabaed2eb7d3826738cd4ea1c34d015f994c3e785fc
-doccontainersize 679576
-doccontainerchecksum 237e6a2237a824bc83ea9761f65bce4c4da0ad749aef6c90363dc90438f22aa3795ba8a6c5ca1cb2b83ab35f992a7fbd999b32f7540996a62255c2084013dddf
-docfiles size=211
+containerchecksum 3094e2d197d505db35870a21aa795952fc4b5b4a775cbfd2084ac4e40ffbf51074b8c2fe8685bf3bd5f1ac4cc911d27f72184522b8c570f79133759735037063
+doccontainersize 692336
+doccontainerchecksum 741e6969aaec89f067e70d908507ba28676987770d2a1bc0ea34fa5c697d5d026c867f20a1283ed2d617321699c8b7608772846d7b68fbddcc2b57ba382cc01a
+docfiles size=241
RELOC/doc/latex/projlib/LICENSE
RELOC/doc/latex/projlib/ProjLib-doc-cn.pdf details="Package documentation (Chinese)" language="zh"
RELOC/doc/latex/projlib/ProjLib-doc-cn.tex
@@ -249026,8 +249055,16 @@ docfiles size=211
RELOC/doc/latex/projlib/ProjLib-doc-fr.pdf details="Package documentation (French)" language="fr"
RELOC/doc/latex/projlib/ProjLib-doc-fr.tex
RELOC/doc/latex/projlib/README.md details="Readme"
-srccontainersize 41248
-srccontainerchecksum fb35ee3d6b0a8390340ff4de3d4a052c9ceb203af6e8380818c50ed58289297b257a45eed8fe8132724eff242be3188a60a70a59aee3c8d6653f0b1d1f6ea69d
+ RELOC/doc/latex/projlib/new-modules/projlib-author.sty
+ RELOC/doc/latex/projlib/new-modules/projlib-datetime.sty
+ RELOC/doc/latex/projlib/new-modules/projlib-draft.sty
+ RELOC/doc/latex/projlib/new-modules/projlib-font.sty
+ RELOC/doc/latex/projlib/new-modules/projlib-language.sty
+ RELOC/doc/latex/projlib/new-modules/projlib-logo.sty
+ RELOC/doc/latex/projlib/new-modules/projlib-math.sty
+ RELOC/doc/latex/projlib/new-modules/projlib-paper.sty
+srccontainersize 41260
+srccontainerchecksum 78613cc24aebdfe75198f9c3fe711b08d112cd1fa837961cb9bd7fc8b11aa497b1527238e769cf655b284a85e5baf2c5e49ff3ed19a23caa646d097f311460bc
srcfiles size=60
RELOC/source/latex/projlib/ProjLib-doc.dtx
RELOC/source/latex/projlib/ProjLib-doc.ins
@@ -249046,7 +249083,7 @@ runfiles size=35
catalogue-contact-repository https://github.com/Jinwen-XU/ProjLib
catalogue-ctan /macros/latex/contrib/projlib
catalogue-license lppl1.3c
-catalogue-topics misc-support
+catalogue-topics misc-support expl3
name proof-at-the-end
category Package
@@ -279130,7 +279167,7 @@ catalogue-topics font font-body font-serif font-proportional font-ttf font-type1
name spectralsequences
category Package
-revision 62157
+revision 62262
shortdesc Print spectral sequence diagrams using PGF/TikZ
relocated 1
longdesc The package is a specialized tool built on top of PGF/TikZ for
@@ -279147,11 +279184,11 @@ longdesc turn off most of the automated layout features and draw
longdesc replacements using TikZ commands. The package also provides a
longdesc carefully designed error reporting system intended to ensure
longdesc that it is as clear as possible what is going wrong.
-containersize 72140
-containerchecksum 81bcfce4596232df7ace0a502ff845ae829bbc8855144b3cce3c6707e1040341063a6bee3b92f88029d3c96e7d440fc5a546a4b36a2851ee26fad43fd5fe6ceb
-doccontainersize 1808292
-doccontainerchecksum 68d8f674798a6dc33e6bf81a954717a6476fb686adad8d5b365ce86dab5eb02055d797208f449708125c7f02e7b18b8f07d5ffc3e1ee5d852d85b323789a09fc
-docfiles size=569
+containersize 72168
+containerchecksum 02ed7d4a46d6bf7046985f6f63845234c31049cf4ebec352be7704a6076859533c4180fb7e73f52755f5fdcc1fa3a15fe1dbbad2daed88f1946a4b03bbc14892
+doccontainersize 1595616
+doccontainerchecksum 7e77757234287b9ddb0936a6df71dbc377a4a4872e07c7fe5713693fb31aa70520dbeb1083c510d165ab4c2e12df3c9f1cd40093b644a094b2b1dbddfa436ec3
+docfiles size=512
RELOC/doc/latex/spectralsequences/README.md details="Readme"
RELOC/doc/latex/spectralsequences/examples/ANSS-S_2.pdf
RELOC/doc/latex/spectralsequences/examples/ANSS-S_2.tex
@@ -279179,6 +279216,7 @@ docfiles size=569
RELOC/doc/latex/spectralsequences/examples/SSS-KZ3.tex
RELOC/doc/latex/spectralsequences/examples/hatcher.pdf
RELOC/doc/latex/spectralsequences/examples/hatcher.tex
+ RELOC/doc/latex/spectralsequences/examples/spectralsequence-example.cls
RELOC/doc/latex/spectralsequences/examples/unstable_ASS_SO.pdf
RELOC/doc/latex/spectralsequences/examples/unstable_ASS_SO.tex
RELOC/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex
@@ -281446,190 +281484,110 @@ catalogue-version 3.0b1
name stex
category Package
-revision 50489
+revision 62231
shortdesc An Infrastructure for Semantic Preloading of LaTeX Documents
relocated 1
longdesc The sTeX package collection is a version of TeX/LaTeX that
longdesc allows to markup TeX/LaTeX documents semantically without
longdesc leaving the document format, essentially turning it into a
longdesc document format for mathematical knowledge management (MKM).
-containersize 41256
-containerchecksum 43d9cb084f47b1fc2bfab9eb11ec9253fda495f29640d333c00de5d7a5681bf37e0331002938e141679b0ab10345e23d5cbff19cb33fbfa01d25be62295b18dc
-doccontainersize 5856944
-doccontainerchecksum 3e936e5905f5dac9a16030af94037398c60b6b79feeb6180af4b7542eb8293a681a213115dd082d9e2df8264771d6d92544e6ec514cf40cf4a136cf74a0a6e51
-docfiles size=1816
- RELOC/doc/latex/stex/cmath/README details="Readme"
- RELOC/doc/latex/stex/cmath/cmath.pdf
- RELOC/doc/latex/stex/dcm/README details="Readme"
- RELOC/doc/latex/stex/dcm/dcm.pdf
- RELOC/doc/latex/stex/example/Makefile
- RELOC/doc/latex/stex/example/README details="Readme"
- RELOC/doc/latex/stex/example/background/Makefile
- RELOC/doc/latex/stex/example/background/all.pdf
- RELOC/doc/latex/stex/example/background/all.tex
- RELOC/doc/latex/stex/example/background/functions.omdoc
- RELOC/doc/latex/stex/example/background/functions.pdf
- RELOC/doc/latex/stex/example/background/functions.tex
- RELOC/doc/latex/stex/example/background/post.tex
- RELOC/doc/latex/stex/example/background/pre.tex
- RELOC/doc/latex/stex/example/background/reals.pdf
- RELOC/doc/latex/stex/example/background/reals.tex
- RELOC/doc/latex/stex/example/paper/Makefile
- RELOC/doc/latex/stex/example/paper/continuous.pdf
- RELOC/doc/latex/stex/example/paper/continuous.tex
- RELOC/doc/latex/stex/example/paper/differentiable.pdf
- RELOC/doc/latex/stex/example/paper/differentiable.tex
- RELOC/doc/latex/stex/example/paper/intro.pdf
- RELOC/doc/latex/stex/example/paper/intro.tex
- RELOC/doc/latex/stex/example/paper/paper.tex
- RELOC/doc/latex/stex/hwexam/README details="Readme"
- RELOC/doc/latex/stex/hwexam/hwexam.pdf
- RELOC/doc/latex/stex/metakeys/README details="Readme"
- RELOC/doc/latex/stex/metakeys/metakeys.pdf
- RELOC/doc/latex/stex/mikoslides/README details="Readme"
- RELOC/doc/latex/stex/mikoslides/mikoslides.pdf
- RELOC/doc/latex/stex/modules/README details="Readme"
- RELOC/doc/latex/stex/modules/modules.pdf
- RELOC/doc/latex/stex/omdoc/README details="Readme"
- RELOC/doc/latex/stex/omdoc/omdoc.pdf
- RELOC/doc/latex/stex/omtext/README details="Readme"
- RELOC/doc/latex/stex/omtext/omtext.pdf
- RELOC/doc/latex/stex/presentation/README details="Readme"
- RELOC/doc/latex/stex/presentation/presentation.pdf
- RELOC/doc/latex/stex/problem/README details="Readme"
- RELOC/doc/latex/stex/problem/problem.pdf
- RELOC/doc/latex/stex/rfdmeta/README details="Readme"
- RELOC/doc/latex/stex/rfdmeta/certification.pdf
- RELOC/doc/latex/stex/rfdmeta/certification.tex
- RELOC/doc/latex/stex/rfdmeta/rdfmeta.pdf
- RELOC/doc/latex/stex/smglom/README details="Readme"
- RELOC/doc/latex/stex/smglom/smglom.pdf
- RELOC/doc/latex/stex/smultiling/README details="Readme"
- RELOC/doc/latex/stex/smultiling/smultiling.pdf
- RELOC/doc/latex/stex/sproof/README details="Readme"
- RELOC/doc/latex/stex/sproof/sproof.pdf
- RELOC/doc/latex/stex/sref/README details="Readme"
- RELOC/doc/latex/stex/sref/book.pdf
- RELOC/doc/latex/stex/sref/book.tex
- RELOC/doc/latex/stex/sref/idc.pdf
- RELOC/doc/latex/stex/sref/idc.tex
- RELOC/doc/latex/stex/sref/idcmain.tex
- RELOC/doc/latex/stex/sref/scr.pdf
- RELOC/doc/latex/stex/sref/scr.tex
- RELOC/doc/latex/stex/sref/scrmain.tex
- RELOC/doc/latex/stex/sref/sref.pdf
- RELOC/doc/latex/stex/statements/README details="Readme"
- RELOC/doc/latex/stex/statements/statements.pdf
- RELOC/doc/latex/stex/stex/README details="Readme"
- RELOC/doc/latex/stex/stex/stex.pdf details="Package documentation"
- RELOC/doc/latex/stex/structview/README details="Readme"
- RELOC/doc/latex/stex/structview/structview.pdf
- RELOC/doc/latex/stex/tikzinput/README details="Readme"
- RELOC/doc/latex/stex/tikzinput/tikzinput.pdf
- RELOC/doc/latex/stex/workaddress/README details="Readme"
- RELOC/doc/latex/stex/workaddress/workaddress.pdf
-srccontainersize 495572
-srccontainerchecksum 5cf2ccb75d699f86a095481c4fdefe0d2a981340d3df72c09ddfc4acd3798a35546674eca62c8aea07431b50edd643c514af901d86513a3e5d0d3af9588f24ed
-srcfiles size=628
- RELOC/source/latex/stex/bin/Modparse.pm
- RELOC/source/latex/stex/bin/README
- RELOC/source/latex/stex/bin/checksum
- RELOC/source/latex/stex/bin/filedate
- RELOC/source/latex/stex/bin/installFonts.sh
- RELOC/source/latex/stex/bin/sms
- RELOC/source/latex/stex/cmath/cmath.dtx
- RELOC/source/latex/stex/cmath/cmath.ins
- RELOC/source/latex/stex/dcm/dcm.dtx
- RELOC/source/latex/stex/dcm/dcm.ins
- RELOC/source/latex/stex/hwexam/hwexam.dtx
- RELOC/source/latex/stex/hwexam/hwexam.ins
- RELOC/source/latex/stex/lib/bib/extcrossrefs.bib
- RELOC/source/latex/stex/lib/bib/extpubs.bib
- RELOC/source/latex/stex/lib/bib/kwarccrossrefs.bib
- RELOC/source/latex/stex/lib/bib/kwarcpubs.bib
- RELOC/source/latex/stex/lib/make/Makefile
- RELOC/source/latex/stex/lib/make/Makefile.base.in
- RELOC/source/latex/stex/lib/make/Makefile.base.vars
- RELOC/source/latex/stex/lib/make/Makefile.in
- RELOC/source/latex/stex/lib/make/Makefile.latex.in
- RELOC/source/latex/stex/lib/make/Makefile.latex.vars
- RELOC/source/latex/stex/lib/make/Makefile.latexml.in
- RELOC/source/latex/stex/lib/make/Makefile.latexml.vars
- RELOC/source/latex/stex/lib/make/Makefile.subdirs
- RELOC/source/latex/stex/lib/make/Makefile.vars
- RELOC/source/latex/stex/lib/make/README
- RELOC/source/latex/stex/metakeys/metakeys.dtx
- RELOC/source/latex/stex/metakeys/metakeys.ins
- RELOC/source/latex/stex/mikoslides/mikoslides.dtx
- RELOC/source/latex/stex/mikoslides/mikoslides.ins
- RELOC/source/latex/stex/modules/modules.dtx
- RELOC/source/latex/stex/modules/modules.ins
- RELOC/source/latex/stex/omdoc/omdoc.dtx
- RELOC/source/latex/stex/omdoc/omdoc.ins
- RELOC/source/latex/stex/omtext/omtext.dtx
- RELOC/source/latex/stex/omtext/omtext.ins
- RELOC/source/latex/stex/presentation/presentation.dtx
- RELOC/source/latex/stex/presentation/presentation.ins
- RELOC/source/latex/stex/problem/problem.dtx
- RELOC/source/latex/stex/problem/problem.ins
- RELOC/source/latex/stex/rfdmeta/rdfmeta.dtx
- RELOC/source/latex/stex/rfdmeta/rdfmeta.ins
- RELOC/source/latex/stex/smglom/smglom.dtx
- RELOC/source/latex/stex/smglom/smglom.ins
- RELOC/source/latex/stex/smultiling/smultiling.dtx
- RELOC/source/latex/stex/smultiling/smultiling.ins
- RELOC/source/latex/stex/sproof/sproof.dtx
- RELOC/source/latex/stex/sproof/sproof.ins
- RELOC/source/latex/stex/sref/sref.dtx
- RELOC/source/latex/stex/sref/sref.ins
- RELOC/source/latex/stex/statements/statements.dtx
- RELOC/source/latex/stex/statements/statements.ins
- RELOC/source/latex/stex/stex/stex.dtx
+containersize 70884
+containerchecksum e47a724caa1a47a3d88d88e3ecb69c3336465df2b777b6567fb23c97506d413251a3b300e39e86ece8bb3271aeb13b00daa0f798463249ce1717783df7eca14a
+doccontainersize 1906008
+doccontainerchecksum 47ac36659667c4743056f86ef9e807656bea77b24a0374c4a8f02826b62b9e1121034785f3474b5726b862f523a3620657606d005f45521e51592cc9dac12f39
+docfiles size=557
+ RELOC/doc/latex/stex/Makefile
+ RELOC/doc/latex/stex/Makefile.top
+ RELOC/doc/latex/stex/README.md details="Readme"
+ RELOC/doc/latex/stex/packages/stex-basics.tex
+ RELOC/doc/latex/stex/packages/stex-document-structure.tex
+ RELOC/doc/latex/stex/packages/stex-features.tex
+ RELOC/doc/latex/stex/packages/stex-hwexam.tex
+ RELOC/doc/latex/stex/packages/stex-inheritance.tex
+ RELOC/doc/latex/stex/packages/stex-mathhub.tex
+ RELOC/doc/latex/stex/packages/stex-metatheory.tex
+ RELOC/doc/latex/stex/packages/stex-modules.tex
+ RELOC/doc/latex/stex/packages/stex-problem.tex
+ RELOC/doc/latex/stex/packages/stex-proofs.tex
+ RELOC/doc/latex/stex/packages/stex-references.tex
+ RELOC/doc/latex/stex/packages/stex-slides.tex
+ RELOC/doc/latex/stex/packages/stex-statements.tex
+ RELOC/doc/latex/stex/packages/stex-symbols.tex
+ RELOC/doc/latex/stex/packages/stex-terms.tex
+ RELOC/doc/latex/stex/packages/stex-tikzinput.tex
+ RELOC/doc/latex/stex/stex-abstract.tex
+ RELOC/doc/latex/stex/stex-doc.pdf details="Complete package documentation"
+ RELOC/doc/latex/stex/stex-doc.tex
+ RELOC/doc/latex/stex/stex-docheader.tex
+ RELOC/doc/latex/stex/stex-manual.pdf details="User manual"
+ RELOC/doc/latex/stex/stex-manual.tex
+srccontainersize 71588
+srccontainerchecksum 14ed535a53be60c2d6de6aba088c52d915c9f7b656ed4eac9ebb78a53e0ed9573ac2eb691f097d7d7d26a9d70df6abec4fac4ae6e641aa083af09179c7650f02
+srcfiles size=111
+ RELOC/source/latex/stex/Makefile
+ RELOC/source/latex/stex/extensions/Makefile
+ RELOC/source/latex/stex/extensions/document-structure.dtx
+ RELOC/source/latex/stex/extensions/hwexam.dtx
+ RELOC/source/latex/stex/extensions/notesslides.dtx
+ RELOC/source/latex/stex/extensions/problem.dtx
+ RELOC/source/latex/stex/extensions/stex-extensions.ins
+ RELOC/source/latex/stex/extensions/tikzinput.dtx
+ RELOC/source/latex/stex/stex/Makefile
+ RELOC/source/latex/stex/stex/stex-basics.dtx
+ RELOC/source/latex/stex/stex/stex-features.dtx
+ RELOC/source/latex/stex/stex/stex-inheritance.dtx
+ RELOC/source/latex/stex/stex/stex-mathhub.dtx
+ RELOC/source/latex/stex/stex/stex-metatheory.dtx
+ RELOC/source/latex/stex/stex/stex-modules.dtx
+ RELOC/source/latex/stex/stex/stex-others.dtx
+ RELOC/source/latex/stex/stex/stex-proofs.dtx
+ RELOC/source/latex/stex/stex/stex-references.dtx
+ RELOC/source/latex/stex/stex/stex-statements.dtx
+ RELOC/source/latex/stex/stex/stex-symbols.dtx
+ RELOC/source/latex/stex/stex/stex-terms.dtx
RELOC/source/latex/stex/stex/stex.ins
- RELOC/source/latex/stex/structview/structview.dtx
- RELOC/source/latex/stex/structview/structview.ins
- RELOC/source/latex/stex/tikzinput/tikzinput.dtx
- RELOC/source/latex/stex/tikzinput/tikzinput.ins
- RELOC/source/latex/stex/workaddress/workaddress.dtx
- RELOC/source/latex/stex/workaddress/workaddress.ins
-runfiles size=50
- RELOC/tex/latex/stex/cmath/cmath.sty
- RELOC/tex/latex/stex/dcm/dcm.sty
- RELOC/tex/latex/stex/hwexam/hwexam.cls
- RELOC/tex/latex/stex/hwexam/hwexam.sty
- RELOC/tex/latex/stex/metakeys/metakeys.sty
- RELOC/tex/latex/stex/mikoslides/beamerthemeJacobs.sty
- RELOC/tex/latex/stex/mikoslides/cc-by-sa.png
- RELOC/tex/latex/stex/mikoslides/cc_somerights.png
- RELOC/tex/latex/stex/mikoslides/dangerous-bend.png
- RELOC/tex/latex/stex/mikoslides/jacobs-logo.png
- RELOC/tex/latex/stex/mikoslides/mikoslides.cls
- RELOC/tex/latex/stex/mikoslides/mikoslides.sty
- RELOC/tex/latex/stex/mikoslides/shading-l2r.png
- RELOC/tex/latex/stex/modules/modules.sty
- RELOC/tex/latex/stex/omdoc/omdoc.cls
- RELOC/tex/latex/stex/omdoc/omdoc.sty
- RELOC/tex/latex/stex/omtext/omtext.sty
- RELOC/tex/latex/stex/presentation/presentation.sty
- RELOC/tex/latex/stex/problem/problem.sty
- RELOC/tex/latex/stex/rfdmeta/rdfmeta.sty
- RELOC/tex/latex/stex/smglom/smglom.cls
- RELOC/tex/latex/stex/smultiling/smultiling.sty
- RELOC/tex/latex/stex/sproof/sproof.sty
- RELOC/tex/latex/stex/sref/sref.sty
- RELOC/tex/latex/stex/statements/statements.sty
- RELOC/tex/latex/stex/stex/stex.sty
- RELOC/tex/latex/stex/structview/structview.sty
- RELOC/tex/latex/stex/tikzinput/tikzinput.sty
- RELOC/tex/latex/stex/workaddress/workaddress.sty
+runfiles size=93
+ RELOC/tex/latex/stex/document-structure.cls
+ RELOC/tex/latex/stex/document-structure.sty
+ RELOC/tex/latex/stex/etc/beamernotesthemesTeX.sty
+ RELOC/tex/latex/stex/etc/beamerthemesTeX.sty
+ RELOC/tex/latex/stex/etc/hwexam-default.header
+ RELOC/tex/latex/stex/etc/lststex.sty
+ RELOC/tex/latex/stex/etc/rustex.sty
+ RELOC/tex/latex/stex/etc/stexthm.sty
+ RELOC/tex/latex/stex/hwexam.cls
+ RELOC/tex/latex/stex/hwexam.sty
+ RELOC/tex/latex/stex/img/sTeX-logo.png
+ RELOC/tex/latex/stex/img/stex-cc-by-sa.png
+ RELOC/tex/latex/stex/img/stex-cc_somerights.png
+ RELOC/tex/latex/stex/img/stex-dangerous-bend.png
+ RELOC/tex/latex/stex/ldf/document-structure-ngerman.ldf
+ RELOC/tex/latex/stex/ldf/hwexam-finnish.ldf
+ RELOC/tex/latex/stex/ldf/hwexam-french.ldf
+ RELOC/tex/latex/stex/ldf/hwexam-ngerman.ldf
+ RELOC/tex/latex/stex/ldf/hwexam-russian.ldf
+ RELOC/tex/latex/stex/ldf/problem-finnish.ldf
+ RELOC/tex/latex/stex/ldf/problem-french.ldf
+ RELOC/tex/latex/stex/ldf/problem-ngerman.ldf
+ RELOC/tex/latex/stex/ldf/problem-russian.ldf
+ RELOC/tex/latex/stex/ldf/sproof-finnish.ldf
+ RELOC/tex/latex/stex/ldf/sproof-french.ldf
+ RELOC/tex/latex/stex/ldf/sproof-ngerman.ldf
+ RELOC/tex/latex/stex/ldf/sproof-russian.ldf
+ RELOC/tex/latex/stex/notesslides.cls
+ RELOC/tex/latex/stex/notesslides.sty
+ RELOC/tex/latex/stex/problem.sty
+ RELOC/tex/latex/stex/stex-tikzinput.sty
+ RELOC/tex/latex/stex/stex.cls
+ RELOC/tex/latex/stex/stex.sty
+ RELOC/tex/latex/stex/tikzinput.sty
catalogue-contact-announce https://lists.informatik.uni-erlangen.de/mailman/listinfo/stex
-catalogue-contact-bugs https://github.com/KWARC/sTeX/issues
-catalogue-contact-development https://lists.informatik.uni-erlangen.de/mailman/listinfo/stex
-catalogue-contact-home https://github.com/KWARC/sTeX
-catalogue-contact-repository https://github.com/KWARC/sTeX
+catalogue-contact-bugs https://github.com/slatex/sTeX/issues
+catalogue-contact-repository https://github.com/slatex/sTeX
catalogue-ctan /macros/latex/contrib/stex
catalogue-license lppl
-catalogue-topics struc-mkup format
+catalogue-topics struc-mkup format expl3
+catalogue-version 3.0.1
name stickstoo
category Package
@@ -299782,7 +299740,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 62196
+revision 62215
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -299790,10 +299748,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 108788
-containerchecksum e8e268a41b2f982aa892db60017e96f592069b7fb374c0735edb3be385c67205faa028cca94405cc9a1175fc4d059d325952a70e97b461d8aa9da7eaebe5f6f6
-doccontainersize 404188
-doccontainerchecksum 25abe3b3afa39a0c53cdcac0b0e8caaf25eed7fedee1960bbad50929cca8a6c996f38c8b454f4cb898fe677194bf3e1db2fab96029908fa47e6bb9cc91ad56ac
+containersize 108792
+containerchecksum 77a303b3979a8678bb7bfae05bf62d1065187dc351f6ca5f1d18be5e10486c7dd8b3bfa255158cd6e622e36a5e3b73133f743fc40a2e4e053199ff8b301a7b95
+doccontainersize 404028
+doccontainerchecksum 6cffb97aae59159c433d06b88e9e091381218ab403092f4b588fe34c50c2fbea1a1d59f37109daae1f54f282709edd5ed51b51681a9c6e97fa8d00c407776814
docfiles size=503
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 044653a9ae..53ba619db5 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-ac782e9affe5768d0ed5b6f68eff3fec texlive.tlpdb
+288ba30a784bdbfe7a902feceacb41b1 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 8563c7b5b3..940e29747f 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-6fd97121f09f8a4df00c4e3701b69679723eeb251592cbf0f66d64cae8052952087a090166c05cd0d4563fd24ade9980511d66b1738ceba4c6efe66d3cc39258 texlive.tlpdb
+ac07601fcbe256c201a6bf3abf1b171b5eefd025a9795ebaed1587859772b52870a5a58ae60b0c0f1a61a2be4e8e07eeb6d219a4ab409ef484f7028375e976a8 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index d2f3e6d66e..64157c959e 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJiGtlFAAoJEEzhh34ZQ4xw1HgH/RyFSaIm7enHdf0P8zhxA90k
-ElaDdGKT2zS+5TJBM59dOP66JOh0BXpidoD9sQXmtZUtehxAbIgqgdBTHXv0roBP
-wfI02fLUM6TpWADQQZpDBB2r9VJGFOH+hDho3N+aKo8C5bLbvm0gfjDgVnKdL/rj
-6n9NxpSbKcJAhgwsqJS2ECmplELPj9YHg32bU8+0PnRqwaid/OC21+vEg620bubo
-vqYj3Q5ULXJokFpU20nqcLIfb/IwcnfrGtfdVZUGZoG8cgBzn8eXKYqkoNhRGguj
-L+76rA9mJwz9I4IpUwSqC01U/uUrf5A8SK4zZOB2QmevI6ysrEJNVc2RSGLViL8=
-=pZMu
+iQEcBAEBCgAGBQJiHCrjAAoJEEzhh34ZQ4xw+J4H/3vp8zuHXlcDeI6fAg6PczAB
+nrRSRQLaOc2qTQ/pL9zKsKSZc/t6vQpu0bCFMzhqDSE7bBeQ6YqWCL0LkjbZeGbb
+pr2K6SOX8Y/osXbdJxwdD5JR0DCzJsecWT9BXC2me7QjY0b8MmNki7qQF7hxNK0y
+FHfaDGhs/LQhrqEnX7jS/LzcLddgL0/FqPa2bzj8R/YZF+jXIg51yAlssGqCbVnB
+QtpgOKzbxNU7FihoLRPFaKeNywwGPoYTd9+idQoyy3dn2PaKoxAT4itU09jHVC7D
+YLPpmCdxFqg2vuBx/cNzEfAsPwl7+ShgPb0El0a8KSUtz0uEhx39YE2fvF5Ep74=
+=LqTQ
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 8635d546aa..46d0f8eb88 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 9cf1087d33..5725740874 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1645996646
+date=1646083099
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=c2ca0ff1a3fe1c55d0f2beba0c7c18ab
+lstdigest=c08ee31f32ca82cda03ec40d81845bb3
numpkg=5396
relstate=next
-version=8093
+version=8094
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: E5fNT2I0QJElIF9PjtdJDeLut3a6hWZSINg4cuD9pIjy+SldVH0wFXMOVUzGhQsaAxjQPOGtJFCROMoeXFCZLCeh/Vk1cCkAksbjtJPLlXCzpe9O2PKBOnlUyegLZAxP61VJFzfu4FmmMx5iIiT30zWkQn5WhkzRenm4knuBDg3G5ucywBDyBZehlNuoR418hgzRir6wyfitsxtZGE5bwfp0JV5K0zlAuB5j0DUgw05sGaDerUgk8nxc1sl0yVzhYWC3CSJo0omvVprSpteEfxqoU1Rtejki/PZh2s+Uhu+0Cbq7y98kOgHT48Z4K3y5tXVlmzB/uvtltT/9X86qmA==
+;;;; signature/miktex: JYVmCRD9nFvUtt5f7KeuSOUlw/14qheQhstVdWqi+tnT89I96+3RV7M+1RfDJFAqCaPz6SQuYtWnqDX2ODlV08gosn0z9JZswuj1i5U6dPTXbkzfQ7bMvcfdpc5V+ufib/bGfzjk34Ql1zcwjrarYvZId9Frxg+4HAjtvmg/MZlt693SfI/B2ZJU0ARUchNwDt3szEK+W/mLSilu/hNJtryjh4r3wueaphyhQjLY/XIRjATZu7CLZ1YTSogSIpcqlLp9lAt3F2+I2y+T4lFglJDSHNtxXOwuEdyyRvYSQ4zDNhNi0rjuPq0yVGXjSTTCct+64sXl45lBJJf3b/qTOg==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index f55b938e7b..7632f3ec60 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1645996302
+date=1646082718
lastupd=andika andika__doc animate animate__doc animate__source beamertheme-focus beamertheme-focus__doc beamertheme-focus__source bfh-ci bfh-ci__doc biblatex-mla biblatex-mla__doc biblatex-mla__source bidi bidi__doc bidi__source caption caption__doc caption__source crefthe
-lstdigest=3b2d23f725d80e392cd94c78cbb942a1
+lstdigest=5b6df6a6cb94498f06fad00cdd094672
numpkg=5394
relstate=stable
-version=8093
+version=8094
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: OdFpVpmLAGDoyGGBjr2IzBrHXKY12mxkfpeEzhFGbfrM2kBU8rGRc0ytbl4PTm6mET6zLvqn6L2pkVkF8SJm8/vrUhR6PtUO1BMWDqmY6NSigIX19tNymMkYxVRB7V+PU3v7sPJmMmMcOyRfU/mP0fgjyM4Na81S1ixs3BxYGomCkW8t+PrreRFP03qGzks9Lj2n1yqYDvQlVzBofMOCDPVdac7zqTObfTcO23iJVR034RBXGzLsJpT2RhzHfJAN2SyjKpzXeYZaDsQy9hZroPfkbab1Ue9f2l5/5a/yTjOMpHOZDFS3kcnZJBkzZK3MbyoJWfqa3GChWrbRk1ivBg==
+;;;; signature/miktex: VxW/4H5QOWVuXAcynnUkODpDOjcJhhreFQ2fwu6FjaLawWdwTM6aMViNkwbI1/qe+gSdCHtlxU/5yVGaZ1co8ZABvjquoxqa6HlnrvWxarPFkcjrZX3XPFLqigP4kgeUzTmJuzVGZrTfDQQG7zjOuo56biyp7HGEuYDcySXcNxCg44LlXStfZCbR44koLd1qaHFoztlSTrojX4IZEFWDFuFW9zKuQaVGCt0cLvkDSeDra+326Ql8pvuiIXJL7odVjeHpeAuz5eGThJU+Se0Ko/UGxGS0WiFsFLvC5F4pdOoasBDOXYhwHxlsoAzoT6JQ/r6GKO0Dz27YzJFnkFV2Lw==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index ffca9a8d99..6a809ce07f 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-02-28-02-02
+2022-03-01-02-02