From ed204b296810be74994f70f76b7f5b849f6e9ecb Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 8 Aug 2021 03:01:03 +0000 Subject: CTAN sync 202108080301 --- FILES.byname | 916 +-- FILES.byname.gz | Bin 2332687 -> 2332681 bytes FILES.last07days | 820 ++- graphics/pgf/contrib/tikzlings/README.md | 2 +- .../pgf/contrib/tikzlings/tikzlings-addons.sty | 47 +- .../pgf/contrib/tikzlings/tikzlings-anteaters.sty | 279 +- graphics/pgf/contrib/tikzlings/tikzlings-bats.sty | 260 + graphics/pgf/contrib/tikzlings/tikzlings-bears.sty | 290 +- graphics/pgf/contrib/tikzlings/tikzlings-bees.sty | 300 +- graphics/pgf/contrib/tikzlings/tikzlings-bugs.sty | 263 + graphics/pgf/contrib/tikzlings/tikzlings-cats.sty | 488 +- .../pgf/contrib/tikzlings/tikzlings-chickens.sty | 547 +- .../pgf/contrib/tikzlings/tikzlings-coatis.sty | 409 +- graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf | Bin 629974 -> 686153 bytes graphics/pgf/contrib/tikzlings/tikzlings-doc.tex | 1771 +---- .../pgf/contrib/tikzlings/tikzlings-elephants.sty | 286 +- .../pgf/contrib/tikzlings/tikzlings-hippos.sty | 321 +- .../pgf/contrib/tikzlings/tikzlings-koalas.sty | 338 +- graphics/pgf/contrib/tikzlings/tikzlings-list.sty | 4 +- .../pgf/contrib/tikzlings/tikzlings-marmots.sty | 438 +- graphics/pgf/contrib/tikzlings/tikzlings-mice.sty | 319 +- graphics/pgf/contrib/tikzlings/tikzlings-moles.sty | 298 +- graphics/pgf/contrib/tikzlings/tikzlings-owls.sty | 303 +- .../pgf/contrib/tikzlings/tikzlings-pandas.sty | 293 +- .../pgf/contrib/tikzlings/tikzlings-penguins.sty | 286 +- graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty | 322 +- .../pgf/contrib/tikzlings/tikzlings-rhinos.sty | 323 +- graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty | 332 +- .../pgf/contrib/tikzlings/tikzlings-sloths.sty | 457 +- .../pgf/contrib/tikzlings/tikzlings-snowmen.sty | 318 +- .../pgf/contrib/tikzlings/tikzlings-squirrels.sty | 315 +- graphics/pgf/contrib/tikzlings/tikzlings.sty | 2 +- macros/generic/markdown/README.md | 24 +- macros/generic/markdown/banner.png | Bin 0 -> 140951 bytes macros/generic/markdown/docstrip.cfg | 4 +- macros/generic/markdown/markdown.dtx | 1880 ++++- macros/generic/markdown/markdown.html | 7695 ++++++++++---------- macros/generic/markdown/markdown.ins | 3 + macros/generic/markdown/markdown.md | 17 +- macros/generic/markdown/markdown.pdf | Bin 443344 -> 627901 bytes macros/latex/contrib/easybook/easybook.dtx | 6 +- macros/latex/contrib/easybook/easybook.pdf | Bin 583938 -> 583892 bytes macros/latex/contrib/easybook/easybook.tex | 34 +- macros/latex/contrib/projlib/ProjLib-doc-cn.pdf | Bin 325472 -> 310106 bytes macros/latex/contrib/projlib/ProjLib-doc-en.pdf | Bin 202001 -> 195753 bytes macros/latex/contrib/projlib/ProjLib-doc-fr.pdf | Bin 204097 -> 197885 bytes macros/latex/contrib/projlib/ProjLib-doc.dtx | 923 +-- macros/latex/contrib/projlib/ProjLib.dtx | 83 +- macros/luatex/latex/pyluatex/README.md | 1 - macros/luatex/latex/pyluatex/pyluatex.lua | 20 +- macros/luatex/latex/pyluatex/pyluatex.pdf | Bin 78301 -> 79524 bytes macros/luatex/latex/pyluatex/pyluatex.sty | 14 +- macros/luatex/latex/pyluatex/pyluatex.tex | 17 +- macros/unicodetex/latex/nwafuthesis/README.md | 10 +- .../unicodetex/latex/nwafuthesis/nwafuthesis.dtx | 16 +- .../unicodetex/latex/nwafuthesis/nwafuthesis.pdf | Bin 1748925 -> 2337649 bytes .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 1 - systems/texlive/tlnet/tlpkg/texlive.tlpdb | 132 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2327344 -> 2326404 bytes systems/win32/miktex/doc/miktex.pdf | Bin 509729 -> 509729 bytes systems/win32/miktex/tm/packages/files.csv.lzma | Bin 591262 -> 591262 bytes systems/win32/miktex/tm/packages/next/pr.ini | 8 +- systems/win32/miktex/tm/packages/pr.ini | 10 +- timestamp | 2 +- 67 files changed, 12325 insertions(+), 9940 deletions(-) create mode 100644 graphics/pgf/contrib/tikzlings/tikzlings-bats.sty create mode 100644 graphics/pgf/contrib/tikzlings/tikzlings-bugs.sty create mode 100644 macros/generic/markdown/banner.png diff --git a/FILES.byname b/FILES.byname index 72f6fec7db..1f3834f432 100644 --- a/FILES.byname +++ b/FILES.byname @@ -5100,7 +5100,7 @@ 1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp 1990/10/02 | 812 | dviware/vutex/vaxvms.ins 1990/10/02 | 127576 | dviware/vutex/vutex.web -2021/08/06 | 80005 | FILES.last07days +2021/08/07 | 73165 | 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 @@ -143783,34 +143783,36 @@ 2018/02/16 | 66931 | graphics/pgf/contrib/tikz-layers/tikz-layers-doc.pdf 2018/02/16 | 1107 | graphics/pgf/contrib/tikz-layers/tikz-layers.sty 2018/02/16 | 54819 | graphics/pgf/contrib/tikz-layers.zip -2021/04/16 | 1228 | graphics/pgf/contrib/tikzlings/README.md -2021/04/16 | 40843 | graphics/pgf/contrib/tikzlings/tikzlings-addons.sty -2021/04/16 | 11178 | graphics/pgf/contrib/tikzlings/tikzlings-anteaters.sty -2021/04/16 | 6513 | graphics/pgf/contrib/tikzlings/tikzlings-bears.sty -2021/04/16 | 7859 | graphics/pgf/contrib/tikzlings/tikzlings-bees.sty -2021/04/16 | 14391 | graphics/pgf/contrib/tikzlings/tikzlings-cats.sty -2021/04/16 | 16259 | graphics/pgf/contrib/tikzlings/tikzlings-chickens.sty -2021/04/16 | 13789 | graphics/pgf/contrib/tikzlings/tikzlings-coatis.sty -2021/04/16 | 629974 | graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf -2021/04/16 | 47296 | graphics/pgf/contrib/tikzlings/tikzlings-doc.tex -2021/04/16 | 7995 | graphics/pgf/contrib/tikzlings/tikzlings-elephants.sty -2021/04/16 | 8112 | graphics/pgf/contrib/tikzlings/tikzlings-hippos.sty -2021/04/16 | 10125 | graphics/pgf/contrib/tikzlings/tikzlings-koalas.sty -2021/04/16 | 629 | graphics/pgf/contrib/tikzlings/tikzlings-list.sty -2021/04/16 | 11652 | graphics/pgf/contrib/tikzlings/tikzlings-marmots.sty -2021/04/16 | 10882 | graphics/pgf/contrib/tikzlings/tikzlings-mice.sty -2021/04/16 | 8975 | graphics/pgf/contrib/tikzlings/tikzlings-moles.sty -2021/04/16 | 7614 | graphics/pgf/contrib/tikzlings/tikzlings-owls.sty -2021/04/16 | 7096 | graphics/pgf/contrib/tikzlings/tikzlings-pandas.sty -2021/04/16 | 9063 | graphics/pgf/contrib/tikzlings/tikzlings-penguins.sty -2021/04/16 | 10715 | graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty -2021/04/16 | 8876 | graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty -2021/04/16 | 11673 | graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty -2021/04/16 | 16884 | graphics/pgf/contrib/tikzlings/tikzlings-sloths.sty -2021/04/16 | 8222 | graphics/pgf/contrib/tikzlings/tikzlings-snowmen.sty -2021/04/16 | 9561 | graphics/pgf/contrib/tikzlings/tikzlings-squirrels.sty -2021/04/16 | 3383 | graphics/pgf/contrib/tikzlings/tikzlings.sty -2021/04/16 | 677448 | graphics/pgf/contrib/tikzlings.zip +2021/08/06 | 1228 | graphics/pgf/contrib/tikzlings/README.md +2021/08/06 | 43222 | graphics/pgf/contrib/tikzlings/tikzlings-addons.sty +2021/08/06 | 12562 | graphics/pgf/contrib/tikzlings/tikzlings-anteaters.sty +2021/08/06 | 10794 | graphics/pgf/contrib/tikzlings/tikzlings-bats.sty +2021/08/06 | 8582 | graphics/pgf/contrib/tikzlings/tikzlings-bears.sty +2021/08/06 | 9583 | graphics/pgf/contrib/tikzlings/tikzlings-bees.sty +2021/08/06 | 13134 | graphics/pgf/contrib/tikzlings/tikzlings-bugs.sty +2021/08/06 | 17294 | graphics/pgf/contrib/tikzlings/tikzlings-cats.sty +2021/08/06 | 17893 | graphics/pgf/contrib/tikzlings/tikzlings-chickens.sty +2021/08/06 | 15747 | graphics/pgf/contrib/tikzlings/tikzlings-coatis.sty +2021/08/06 | 686153 | graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf +2021/08/06 | 20748 | graphics/pgf/contrib/tikzlings/tikzlings-doc.tex +2021/08/06 | 9467 | graphics/pgf/contrib/tikzlings/tikzlings-elephants.sty +2021/08/06 | 9824 | graphics/pgf/contrib/tikzlings/tikzlings-hippos.sty +2021/08/06 | 11767 | graphics/pgf/contrib/tikzlings/tikzlings-koalas.sty +2021/08/06 | 653 | graphics/pgf/contrib/tikzlings/tikzlings-list.sty +2021/08/06 | 14308 | graphics/pgf/contrib/tikzlings/tikzlings-marmots.sty +2021/08/06 | 11531 | graphics/pgf/contrib/tikzlings/tikzlings-mice.sty +2021/08/06 | 10926 | graphics/pgf/contrib/tikzlings/tikzlings-moles.sty +2021/08/06 | 9215 | graphics/pgf/contrib/tikzlings/tikzlings-owls.sty +2021/08/06 | 8561 | graphics/pgf/contrib/tikzlings/tikzlings-pandas.sty +2021/08/06 | 10722 | graphics/pgf/contrib/tikzlings/tikzlings-penguins.sty +2021/08/06 | 11060 | graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty +2021/08/06 | 10506 | graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty +2021/08/06 | 13115 | graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty +2021/08/06 | 17503 | graphics/pgf/contrib/tikzlings/tikzlings-sloths.sty +2021/08/06 | 10086 | graphics/pgf/contrib/tikzlings/tikzlings-snowmen.sty +2021/08/06 | 11184 | graphics/pgf/contrib/tikzlings/tikzlings-squirrels.sty +2021/08/06 | 3383 | graphics/pgf/contrib/tikzlings/tikzlings.sty +2021/08/07 | 739600 | graphics/pgf/contrib/tikzlings.zip 2021/02/21 | 469 | graphics/pgf/contrib/tikzmark/README 2021/02/16 | 72059 | graphics/pgf/contrib/tikzmark/tikzmark.dtx 2021/02/21 | 423477 | graphics/pgf/contrib/tikzmark/tikzmark.pdf @@ -173016,7 +173018,7 @@ 2021/07/15 | 510822 | install/macros/generic/expkv.tds.zip 2020/03/06 | 222075 | install/macros/generic/iftex.tds.zip 2012/09/20 | 321508 | install/macros/generic/langcode.tds.zip -2020/09/14 | 619816 | install/macros/generic/markdown.tds.zip +2021/08/06 | 958166 | 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 @@ -186490,7 +186492,7 @@ 2013/04/01 | 14776 | macros/context/contrib/context-visualcounter/tex/context/third/visualcounter/t-visualcounter.mkvi 2018/03/05 | 11 | macros/context/contrib/context-visualcounter/VERSION 2018/03/22 | 276789 | macros/context/contrib/context-visualcounter.zip -2021/08/04 | 116955970 | macros/context/latest/cont-tmf.zip +2021/08/05 | 116956890 | macros/context/latest/cont-tmf.zip 2016/04/21 | 32846 | macros/cstex/base/cmexb.tar.gz 2016/06/26 | 1728262 | macros/cstex/base/csfonts-t1.tar.gz 2007/03/01 | 187106 | macros/cstex/base/csfonts.tar.gz @@ -187458,19 +187460,20 @@ 2016/06/15 | 170646 | macros/generic/luatex85/luatex85.pdf 2016/06/15 | 316 | macros/generic/luatex85/README.md 2016/06/15 | 173375 | macros/generic/luatex85.zip -2020/03/19 | 4485 | macros/generic/markdown/docstrip.cfg -2019/05/11 | 1060 | macros/generic/markdown/examples/context.tex -2019/05/18 | 2921 | macros/generic/markdown/examples/example.md -2019/05/11 | 1052 | macros/generic/markdown/examples/latex.tex -2019/05/11 | 75 | macros/generic/markdown/examples/scientists.csv -2020/09/14 | 4530 | macros/generic/markdown/markdown.css -2020/09/14 | 479825 | macros/generic/markdown/markdown.dtx -2020/09/14 | 526246 | macros/generic/markdown/markdown.html -2019/05/11 | 848 | macros/generic/markdown/markdown.ins -2020/09/14 | 8406 | macros/generic/markdown/markdown.md -2020/09/14 | 443344 | macros/generic/markdown/markdown.pdf -2020/08/14 | 8922 | macros/generic/markdown/README.md -2020/09/14 | 570716 | macros/generic/markdown.zip +2021/08/06 | 140951 | macros/generic/markdown/banner.png +2021/08/06 | 4485 | macros/generic/markdown/docstrip.cfg +2021/08/06 | 1060 | macros/generic/markdown/examples/context.tex +2021/08/06 | 2921 | macros/generic/markdown/examples/example.md +2021/08/06 | 1052 | macros/generic/markdown/examples/latex.tex +2021/08/06 | 75 | macros/generic/markdown/examples/scientists.csv +2021/08/06 | 4530 | macros/generic/markdown/markdown.css +2021/08/06 | 518773 | macros/generic/markdown/markdown.dtx +2021/08/06 | 595079 | macros/generic/markdown/markdown.html +2021/08/06 | 1145 | macros/generic/markdown/markdown.ins +2021/08/06 | 9108 | macros/generic/markdown/markdown.md +2021/08/06 | 627901 | macros/generic/markdown/markdown.pdf +2021/08/06 | 9414 | macros/generic/markdown/README.md +2021/08/07 | 903155 | 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 @@ -197821,12 +197824,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 -2021/08/06 | 78560 | macros/latex/contrib/easybook/easybook.dtx +2021/08/07 | 78560 | macros/latex/contrib/easybook/easybook.dtx 2021/07/28 | 1626 | macros/latex/contrib/easybook/easybook.ins -2021/08/06 | 583938 | macros/latex/contrib/easybook/easybook.pdf -2021/08/06 | 78146 | macros/latex/contrib/easybook/easybook.tex +2021/08/07 | 583892 | macros/latex/contrib/easybook/easybook.pdf +2021/08/07 | 78128 | macros/latex/contrib/easybook/easybook.tex 2021/07/14 | 1664 | macros/latex/contrib/easybook/README.md -2021/08/06 | 624265 | macros/latex/contrib/easybook.zip +2021/08/07 | 624161 | 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 @@ -209745,15 +209748,15 @@ 2003/07/02 | 413 | macros/latex/contrib/progress/README 2006/05/20 | 88703 | macros/latex/contrib/progress.zip 2021/05/06 | 19106 | macros/latex/contrib/projlib/LICENSE -2021/07/30 | 325472 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf -2021/07/30 | 88019 | macros/latex/contrib/projlib/ProjLib-doc.dtx -2021/07/30 | 202001 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf -2021/07/30 | 204097 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf +2021/08/07 | 310106 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf +2021/08/07 | 88462 | macros/latex/contrib/projlib/ProjLib-doc.dtx +2021/08/07 | 195753 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf +2021/08/07 | 197885 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf 2021/07/09 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins -2021/07/30 | 88485 | macros/latex/contrib/projlib/ProjLib.dtx +2021/08/07 | 88600 | macros/latex/contrib/projlib/ProjLib.dtx 2021/07/26 | 2832 | macros/latex/contrib/projlib/ProjLib.ins 2021/07/26 | 4224 | macros/latex/contrib/projlib/README.md -2021/07/30 | 770628 | macros/latex/contrib/projlib.zip +2021/08/07 | 744225 | macros/latex/contrib/projlib.zip 2019/05/22 | 116402 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf 2019/05/22 | 8959 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex 2019/05/22 | 49789 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx @@ -224111,14 +224114,14 @@ 2020/05/19 | 3051 | macros/luatex/latex/plantuml/README.md 2020/05/19 | 396 | macros/luatex/latex/plantuml/release.sh 2020/05/19 | 70541 | macros/luatex/latex/plantuml.zip -2021/07/26 | 2793 | macros/luatex/latex/pyluatex/pyluatex-interpreter.py -2021/07/26 | 9638 | macros/luatex/latex/pyluatex/pyluatex-json.lua -2021/07/26 | 4962 | macros/luatex/latex/pyluatex/pyluatex.lua -2021/07/26 | 78301 | macros/luatex/latex/pyluatex/pyluatex.pdf -2021/07/26 | 1710 | macros/luatex/latex/pyluatex/pyluatex.sty -2021/07/26 | 11290 | macros/luatex/latex/pyluatex/pyluatex.tex -2021/07/26 | 1806 | macros/luatex/latex/pyluatex/README.md -2021/07/26 | 89150 | macros/luatex/latex/pyluatex.zip +2021/08/07 | 2793 | macros/luatex/latex/pyluatex/pyluatex-interpreter.py +2021/08/07 | 9638 | macros/luatex/latex/pyluatex/pyluatex-json.lua +2021/08/07 | 5244 | macros/luatex/latex/pyluatex/pyluatex.lua +2021/08/07 | 79524 | macros/luatex/latex/pyluatex/pyluatex.pdf +2021/08/07 | 1810 | macros/luatex/latex/pyluatex/pyluatex.sty +2021/08/07 | 11796 | macros/luatex/latex/pyluatex/pyluatex.tex +2021/08/07 | 1805 | macros/luatex/latex/pyluatex/README.md +2021/08/07 | 90605 | macros/luatex/latex/pyluatex.zip 2013/07/31 | 697 | macros/luatex/latex/selnolig/gpp-ft.fea 2015/10/12 | 1376 | macros/luatex/latex/selnolig/README 2015/10/26 | 989 | macros/luatex/latex/selnolig/selnolig-bugreport.tex @@ -232322,10 +232325,10 @@ 2021/05/16 | 694569 | macros/unicodetex/latex/nwafuthesis/logo/nwafu-bar.pdf 2021/02/25 | 656165 | macros/unicodetex/latex/nwafuthesis/logo/nwafu-circle.pdf 2021/08/05 | 62595 | macros/unicodetex/latex/nwafuthesis/nwafuthesis-doc.dtx -2021/08/05 | 271330 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx -2021/08/05 | 1748925 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf -2021/08/05 | 1533 | macros/unicodetex/latex/nwafuthesis/README.md -2021/08/05 | 2834317 | macros/unicodetex/latex/nwafuthesis.zip +2021/08/07 | 271564 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx +2021/08/07 | 2337649 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf +2021/08/07 | 1542 | macros/unicodetex/latex/nwafuthesis/README.md +2021/08/07 | 3400019 | macros/unicodetex/latex/nwafuthesis.zip 2021/04/12 | 934533 | macros/unicodetex/latex/polyglossia/polyglossia.dtx 2021/04/12 | 341615 | macros/unicodetex/latex/polyglossia/polyglossia.pdf 2021/04/12 | 1942 | macros/unicodetex/latex/polyglossia/README.md @@ -268450,7 +268453,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 -2021/08/06 | 6420 | systems/texlive/tlnet/archive/collection-latexextra.r60171.tar.xz +2021/08/07 | 6420 | systems/texlive/tlnet/archive/collection-latexextra.r60178.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 2021/07/15 | 744 | systems/texlive/tlnet/archive/collection-luatex.r59928.tar.xz @@ -269781,9 +269784,9 @@ 2021/07/19 | 313228 | systems/texlive/tlnet/archive/easing.doc.r59975.tar.xz 2021/07/19 | 2220 | systems/texlive/tlnet/archive/easing.r59975.tar.xz 2021/07/19 | 7876 | systems/texlive/tlnet/archive/easing.source.r59975.tar.xz -2021/08/05 | 603540 | systems/texlive/tlnet/archive/easybook.doc.r60160.tar.xz -2021/08/05 | 16992 | systems/texlive/tlnet/archive/easybook.r60160.tar.xz -2021/08/05 | 17048 | systems/texlive/tlnet/archive/easybook.source.r60160.tar.xz +2021/08/07 | 604156 | systems/texlive/tlnet/archive/easybook.doc.r60176.tar.xz +2021/08/07 | 16992 | systems/texlive/tlnet/archive/easybook.r60176.tar.xz +2021/08/07 | 17040 | systems/texlive/tlnet/archive/easybook.source.r60176.tar.xz 2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz 2020/09/08 | 175976 | systems/texlive/tlnet/archive/easyfig.doc.r56291.tar.xz 2020/09/08 | 1936 | systems/texlive/tlnet/archive/easyfig.r56291.tar.xz @@ -271517,8 +271520,8 @@ 2019/02/28 | 98316 | systems/texlive/tlnet/archive/hrlatex.doc.r18020.tar.xz 2019/02/28 | 3528 | systems/texlive/tlnet/archive/hrlatex.r18020.tar.xz 2019/02/28 | 3768 | systems/texlive/tlnet/archive/hrlatex.source.r18020.tar.xz -2021/07/16 | 341736 | systems/texlive/tlnet/archive/huawei.doc.r59945.tar.xz -2021/07/16 | 259600 | systems/texlive/tlnet/archive/huawei.r59945.tar.xz +2021/08/07 | 342620 | systems/texlive/tlnet/archive/huawei.doc.r60177.tar.xz +2021/08/07 | 259736 | systems/texlive/tlnet/archive/huawei.r60177.tar.xz 2021/02/01 | 213632 | systems/texlive/tlnet/archive/hu-berlin-bundle.doc.r57580.tar.xz 2021/02/01 | 8244 | systems/texlive/tlnet/archive/hu-berlin-bundle.r57580.tar.xz 2021/02/01 | 17768 | systems/texlive/tlnet/archive/hu-berlin-bundle.source.r57580.tar.xz @@ -276628,6 +276631,9 @@ 2019/02/28 | 258768 | systems/texlive/tlnet/archive/smartdiagram.doc.r42781.tar.xz 2019/02/28 | 6524 | systems/texlive/tlnet/archive/smartdiagram.r42781.tar.xz 2019/02/28 | 16864 | systems/texlive/tlnet/archive/smartdiagram.source.r42781.tar.xz +2021/08/07 | 84356 | systems/texlive/tlnet/archive/smart-eqn.doc.r60178.tar.xz +2021/08/07 | 2196 | systems/texlive/tlnet/archive/smart-eqn.r60178.tar.xz +2021/08/07 | 5800 | systems/texlive/tlnet/archive/smart-eqn.source.r60178.tar.xz 2019/02/28 | 319192 | systems/texlive/tlnet/archive/smartref.doc.r20311.tar.xz 2019/02/28 | 3100 | systems/texlive/tlnet/archive/smartref.r20311.tar.xz 2019/02/28 | 340260 | systems/texlive/tlnet/archive/smartunits.doc.r39592.tar.xz @@ -277457,7 +277463,7 @@ 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz -2021/08/06 | 399060 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60169.tar.xz +2021/08/07 | 399200 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60174.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 @@ -277481,7 +277487,7 @@ 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz -2021/08/06 | 108296 | systems/texlive/tlnet/archive/texlive-scripts.r60169.tar.xz +2021/08/07 | 108276 | systems/texlive/tlnet/archive/texlive-scripts.r60174.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 @@ -279198,16 +279204,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2021/05/02 | 105152 | systems/texlive/tlnet/install-tl -2021/08/06 | 6811270 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/08/06 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/08/06 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/08/07 | 6811529 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/08/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/08/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2021/08/06 | 20811067 | systems/texlive/tlnet/install-tl-windows.exe -2021/08/06 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/08/06 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/08/06 | 25585316 | systems/texlive/tlnet/install-tl.zip -2021/08/06 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/08/06 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/08/07 | 20809140 | systems/texlive/tlnet/install-tl-windows.exe +2021/08/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/08/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/08/07 | 25585299 | systems/texlive/tlnet/install-tl.zip +2021/08/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/08/07 | 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 @@ -279217,7 +279223,7 @@ 2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2021/07/02 | 49348 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2021/08/05 | 6911 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2021/08/06 | 6836 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -279259,12 +279265,12 @@ 2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/05/16 | 5402 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2021/05/16 | 27555 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2021/08/06 | 17346861 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2021/08/06 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/08/07 | 17347736 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/08/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/05/16 | 86511 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2021/08/06 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/08/06 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/08/06 | 2327548 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/08/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/08/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/08/07 | 2327344 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/05/16 | 58801 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2021/05/16 | 42084 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2021/05/16 | 16103 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -282425,7 +282431,7 @@ 2001/02/25 | 458318 | systems/win32/micropress/eqmlite/ppsample.zip 2001/02/25 | 2566 | systems/win32/micropress/eqmlite/whatsnew.231 2005/01/06 | 587 | systems/win32/micropress/eqmlite/whats-really-new -2021/07/17 | 509729 | systems/win32/miktex/doc/miktex.pdf +2021/08/07 | 509729 | systems/win32/miktex/doc/miktex.pdf 2019/05/28 | 101 | systems/win32/miktex/README.md 2021/06/07 | 61137802 | systems/win32/miktex/setup/darwin-x86_64/miktex-21.6-darwin-x86_64.dmg 2021/07/18 | 61340561 | systems/win32/miktex/setup/darwin-x86_64/miktex-21.7-darwin-x86_64.dmg @@ -284135,7 +284141,7 @@ 2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma 2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma 2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma -2021/08/06 | 591262 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/08/07 | 591262 | 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 @@ -285252,238 +285258,238 @@ 2021/03/17 | 1951618 | systems/win32/miktex/tm/packages/microtype.tar.lzma 2016/07/16 | 344819 | systems/win32/miktex/tm/packages/midnight.tar.lzma 2010/03/16 | 190135 | systems/win32/miktex/tm/packages/midpage.tar.lzma -2021/07/17 | 51068 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma -2021/07/17 | 56441 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/07/17 | 973826 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma -2021/07/17 | 1074471 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/07/17 | 28922 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma -2021/07/17 | 31306 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma -2021/07/17 | 29799 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma -2021/07/17 | 34681 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/07/17 | 50026 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma -2021/07/17 | 57537 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/07/17 | 83582 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/07/17 | 95344 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/07/17 | 68060 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma -2021/07/17 | 75747 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/07/17 | 27172 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma -2021/07/17 | 30769 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/07/17 | 330462 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma -2021/07/17 | 392679 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma +2021/08/07 | 51031 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma +2021/08/07 | 56405 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/08/07 | 973111 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma +2021/08/07 | 1076749 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/08/07 | 29026 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma +2021/08/07 | 31334 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma +2021/08/07 | 29815 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma +2021/08/07 | 34644 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/08/07 | 49905 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma +2021/08/07 | 57570 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/08/07 | 83705 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/08/07 | 95414 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/08/07 | 68012 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma +2021/08/07 | 75767 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/08/07 | 27177 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma +2021/08/07 | 30803 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/08/07 | 330456 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma +2021/08/07 | 392514 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma 2013/06/24 | 447360 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x86-2.9.tar.lzma -2021/07/17 | 32576 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma -2021/07/17 | 36586 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma -2021/07/17 | 51291 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma -2021/07/17 | 56627 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/08/07 | 32651 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma +2021/08/07 | 36602 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma +2021/08/07 | 51253 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma +2021/08/07 | 56772 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma 2021/06/05 | 4882 | systems/win32/miktex/tm/packages/miktex-config-2.9.tar.lzma -2021/07/17 | 238651 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma -2021/07/17 | 264081 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma -2021/07/17 | 179763 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma -2021/07/17 | 195611 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma -2021/07/17 | 54674 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma -2021/07/17 | 61865 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma -2021/07/17 | 21174 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma -2021/07/17 | 23300 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma +2021/08/07 | 251703 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma +2021/08/07 | 279550 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma +2021/08/07 | 179745 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma +2021/08/07 | 195609 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma +2021/08/07 | 54628 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma +2021/08/07 | 61841 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma +2021/08/07 | 21168 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma +2021/08/07 | 23341 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma 2020/02/07 | 785398 | systems/win32/miktex/tm/packages/miktex-dict-british.tar.lzma 2016/11/02 | 171725 | systems/win32/miktex/tm/packages/miktex-dict-english.tar.lzma 2016/11/02 | 292320 | systems/win32/miktex/tm/packages/miktex-dict-french.tar.lzma 2016/11/02 | 967418 | systems/win32/miktex/tm/packages/miktex-dict-german.tar.lzma 2020/05/17 | 460366 | systems/win32/miktex/tm/packages/miktex-doc-2.9.tar.lzma -2021/07/17 | 461757 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma -2021/07/17 | 45935 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma -2021/07/17 | 51188 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/07/17 | 284820 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/07/17 | 324712 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/08/07 | 461708 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma +2021/08/07 | 45910 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma +2021/08/07 | 51171 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/08/07 | 284951 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/08/07 | 324459 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma 2021/03/16 | 5048 | systems/win32/miktex/tm/packages/miktex-dvipdfmx.tar.lzma -2021/07/17 | 41121 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma -2021/07/17 | 45423 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/07/17 | 119902 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma -2021/07/17 | 133963 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma +2021/08/07 | 41216 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma +2021/08/07 | 45371 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/08/07 | 119904 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma +2021/08/07 | 133872 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma 2017/04/09 | 4195 | systems/win32/miktex/tm/packages/miktex-dvips.tar.lzma -2021/07/17 | 1282591 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma -2021/07/17 | 1424025 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/07/17 | 100398 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma -2021/07/17 | 112806 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/08/07 | 1288660 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma +2021/08/07 | 1416524 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/08/07 | 100477 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma +2021/08/07 | 112772 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma 2016/11/03 | 672 | systems/win32/miktex/tm/packages/miktex-etex.tar.lzma -2021/07/17 | 43012 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma -2021/07/17 | 48198 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma -2021/07/17 | 24998 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma -2021/07/17 | 28135 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/07/17 | 56354 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma -2021/07/17 | 62743 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma +2021/08/07 | 43020 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma +2021/08/07 | 48232 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma +2021/08/07 | 24997 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma +2021/08/07 | 28124 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/08/07 | 56310 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma +2021/08/07 | 62690 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma 2015/09/08 | 11241 | systems/win32/miktex/tm/packages/miktex-fontconfig-base.tar.lzma -2021/07/17 | 136615 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma -2021/07/17 | 154597 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/08/07 | 136496 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma +2021/08/07 | 154550 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma 2016/11/04 | 3555 | systems/win32/miktex/tm/packages/miktex-fontconfig.tar.lzma -2021/07/17 | 73215 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma -2021/07/17 | 78126 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma -2021/07/17 | 71693 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma -2021/07/17 | 80680 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/07/17 | 258946 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma -2021/07/17 | 295413 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/07/17 | 22006 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma -2021/07/17 | 24972 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/07/17 | 97157 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma -2021/07/17 | 112213 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma +2021/08/07 | 73166 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma +2021/08/07 | 78184 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma +2021/08/07 | 71650 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma +2021/08/07 | 80630 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/08/07 | 258947 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma +2021/08/07 | 295323 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/08/07 | 22021 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma +2021/08/07 | 24969 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/08/07 | 97303 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma +2021/08/07 | 112220 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma 2018/09/25 | 10777812 | systems/win32/miktex/tm/packages/miktex-ghostscript-bin.tar.lzma 2018/09/25 | 11056498 | systems/win32/miktex/tm/packages/miktex-ghostscript-bin-x64.tar.lzma -2021/07/17 | 64345 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma -2021/07/17 | 73108 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/07/17 | 96281 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma -2021/07/17 | 115204 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/07/17 | 38141 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma -2021/07/17 | 43015 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/07/17 | 484096 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma -2021/07/17 | 566257 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/08/07 | 64402 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma +2021/08/07 | 73156 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/08/07 | 96441 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma +2021/08/07 | 115576 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/08/07 | 38136 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma +2021/08/07 | 42988 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 483048 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma +2021/08/07 | 566081 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma 2019/09/28 | 1103778 | systems/win32/miktex/tm/packages/miktex-harftex-bin-2.9.tar.lzma 2019/09/28 | 1272652 | systems/win32/miktex/tm/packages/miktex-harftex-bin-x64-2.9.tar.lzma -2021/07/17 | 147489 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma -2021/07/17 | 159392 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/08/07 | 147542 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma +2021/08/07 | 159583 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma 2017/11/02 | 7484214 | systems/win32/miktex/tm/packages/miktex-icu-bin.tar.lzma 2017/11/02 | 7651539 | systems/win32/miktex/tm/packages/miktex-icu-bin-x64.tar.lzma -2021/07/17 | 94784 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma -2021/07/17 | 109019 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/07/17 | 16310 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma -2021/07/17 | 17957 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/07/17 | 28357 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma -2021/07/17 | 30023 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/08/07 | 94754 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma +2021/08/07 | 109034 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/08/07 | 16313 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma +2021/08/07 | 17969 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/08/07 | 28146 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma +2021/08/07 | 30025 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma 2021/03/18 | 1262 | systems/win32/miktex/tm/packages/miktex-latex.tar.lzma -2021/07/17 | 629433 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/07/17 | 680603 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/07/17 | 531913 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma -2021/07/17 | 595612 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma -2021/07/17 | 476714 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma -2021/07/17 | 510798 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/08/07 | 629628 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/08/07 | 680872 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/08/07 | 531724 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma +2021/08/07 | 596374 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma +2021/08/07 | 476919 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma +2021/08/07 | 510530 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma 2019/01/02 | 71265 | systems/win32/miktex/tm/packages/miktex-lua52-bin-2.9.tar.lzma 2019/01/02 | 80005 | systems/win32/miktex/tm/packages/miktex-lua52-bin-x64-2.9.tar.lzma -2021/07/17 | 94344 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma -2021/07/17 | 103316 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma -2021/07/17 | 1721853 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma -2021/07/17 | 2006278 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma +2021/08/07 | 94339 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma +2021/08/07 | 103428 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma +2021/08/07 | 1729966 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma +2021/08/07 | 1985987 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma 2016/11/06 | 11511 | systems/win32/miktex/tm/packages/miktex-luatex.tar.lzma -2021/07/17 | 67588 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma -2021/07/17 | 74139 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma -2021/07/17 | 27106 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma -2021/07/17 | 31499 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/07/17 | 7689 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma -2021/07/17 | 8758 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma -2021/07/17 | 196839 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma -2021/07/17 | 215065 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma +2021/08/07 | 67590 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma +2021/08/07 | 74152 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma +2021/08/07 | 27481 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma +2021/08/07 | 31588 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/08/07 | 7689 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma +2021/08/07 | 8748 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma +2021/08/07 | 196803 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma +2021/08/07 | 215210 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma 2016/11/04 | 675 | systems/win32/miktex/tm/packages/miktex-metafont.tar.lzma -2021/07/17 | 250244 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma -2021/07/17 | 283894 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma +2021/08/07 | 250124 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma +2021/08/07 | 283925 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma 2016/11/04 | 687 | systems/win32/miktex/tm/packages/miktex-metapost.tar.lzma -2021/07/17 | 98190 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma -2021/07/17 | 103586 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma +2021/08/07 | 98300 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma +2021/08/07 | 103645 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma 2021/06/24 | 22882 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma -2021/07/17 | 60717 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma -2021/07/17 | 68039 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/07/17 | 124389 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma -2021/07/17 | 136410 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma -2021/07/17 | 178399 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma -2021/07/17 | 196722 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma -2021/07/17 | 199489 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma -2021/07/17 | 179907 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/07/17 | 67431 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma -2021/07/17 | 76804 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/07/17 | 31189 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma -2021/07/17 | 35058 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma -2021/07/17 | 37762 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma -2021/07/17 | 42649 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/07/17 | 42844 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma -2021/07/17 | 46981 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/07/17 | 45942 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma -2021/07/17 | 52393 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/08/07 | 60698 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma +2021/08/07 | 68105 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/08/07 | 124437 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma +2021/08/07 | 136429 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma +2021/08/07 | 178262 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma +2021/08/07 | 196617 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma +2021/08/07 | 199582 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma +2021/08/07 | 179953 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/08/07 | 67483 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma +2021/08/07 | 76801 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/08/07 | 31188 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma +2021/08/07 | 35038 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma +2021/08/07 | 37755 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma +2021/08/07 | 42672 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/08/07 | 42839 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma +2021/08/07 | 46978 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/08/07 | 45932 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma +2021/08/07 | 52403 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma 2006/05/19 | 1267123 | systems/win32/miktex/tm/packages/miktex-omega-base.cab 2020/05/12 | 354540 | systems/win32/miktex/tm/packages/miktex-omega-bin-2.9.tar.lzma 2020/05/12 | 387734 | systems/win32/miktex/tm/packages/miktex-omega-bin-x64-2.9.tar.lzma 2016/11/04 | 746 | systems/win32/miktex/tm/packages/miktex-omega.tar.lzma -2021/07/17 | 194178 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma -2021/07/17 | 207014 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/07/17 | 35731 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma -2021/07/17 | 40229 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma -2021/07/17 | 743079 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma -2021/07/17 | 818937 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/08/07 | 194085 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma +2021/08/07 | 206835 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/08/07 | 35730 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma +2021/08/07 | 40324 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma +2021/08/07 | 748712 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma +2021/08/07 | 817283 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma 2016/11/10 | 1683 | systems/win32/miktex/tm/packages/miktex-pdftex.tar.lzma -2021/07/17 | 198379 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma -2021/07/17 | 202925 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma -2021/07/17 | 207861 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma -2021/07/17 | 243428 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma -2021/07/17 | 78739 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma -2021/07/17 | 87630 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma -2021/07/17 | 1169942 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma -2021/07/17 | 1302290 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma -2021/07/17 | 20107 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma -2021/07/17 | 23869 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma -2021/07/17 | 31478 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma -2021/07/17 | 37248 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma -2021/07/17 | 63882 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma -2021/07/17 | 72162 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 198293 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma +2021/08/07 | 202953 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma +2021/08/07 | 208067 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma +2021/08/07 | 243436 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma +2021/08/07 | 78707 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma +2021/08/07 | 87720 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma +2021/08/07 | 1169691 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma +2021/08/07 | 1301693 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma +2021/08/07 | 20119 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma +2021/08/07 | 23871 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma +2021/08/07 | 31502 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma +2021/08/07 | 37226 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma +2021/08/07 | 64174 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma +2021/08/07 | 72221 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma 2016/07/29 | 121451 | systems/win32/miktex/tm/packages/miktex-psutils-base.tar.lzma -2021/07/17 | 50623 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma -2021/07/17 | 57796 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma +2021/08/07 | 50651 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma +2021/08/07 | 57712 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma 2021/03/08 | 8242908 | systems/win32/miktex/tm/packages/miktex-qt5-bin.tar.lzma 2021/03/08 | 9576187 | systems/win32/miktex/tm/packages/miktex-qt5-bin-x64.tar.lzma -2021/07/17 | 1340575 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma -2021/07/17 | 1464450 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma -2021/07/17 | 42368 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma -2021/07/17 | 51766 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma +2021/08/07 | 1342256 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma +2021/08/07 | 1465793 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma +2021/08/07 | 42374 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma +2021/08/07 | 51795 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma 2020/05/17 | 74366 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-2.9.tar.lzma -2021/07/17 | 56512 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma +2021/08/07 | 56486 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma 2020/05/17 | 82298 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64-2.9.tar.lzma -2021/07/17 | 59943 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma -2021/07/17 | 25277 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma -2021/07/17 | 27259 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma -2021/07/17 | 16381 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma -2021/07/17 | 18134 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/07/17 | 63832 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma -2021/07/17 | 69958 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/08/07 | 59951 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma +2021/08/07 | 25281 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma +2021/08/07 | 27351 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma +2021/08/07 | 16447 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma +2021/08/07 | 18133 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/08/07 | 63706 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma +2021/08/07 | 69867 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma 2020/01/26 | 4527 | systems/win32/miktex/tm/packages/miktex-tex4ht.tar.lzma -2021/07/17 | 154763 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma -2021/07/17 | 169258 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma -2021/07/17 | 57030 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma -2021/07/17 | 65685 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma +2021/08/07 | 154802 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma +2021/08/07 | 169295 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma +2021/08/07 | 56966 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma +2021/08/07 | 65671 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma 2016/11/05 | 748 | systems/win32/miktex/tm/packages/miktex-texinfo.tar.lzma 2016/11/05 | 724 | systems/win32/miktex/tm/packages/miktex-tex.tar.lzma -2021/07/17 | 98248 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma -2021/07/17 | 104866 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma -2021/07/17 | 2673269 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma -2021/07/17 | 2796870 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma -2021/07/17 | 56347 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/07/17 | 62185 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/08/07 | 98187 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma +2021/08/07 | 104968 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma +2021/08/07 | 2671585 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma +2021/08/07 | 2797150 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma +2021/08/07 | 56456 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/08/07 | 62233 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma 2020/06/25 | 488938 | systems/win32/miktex/tm/packages/miktex-ucrt-bin.tar.lzma 2020/06/25 | 442560 | systems/win32/miktex/tm/packages/miktex-ucrt-bin-x64.tar.lzma -2021/07/17 | 33550 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma -2021/07/17 | 37331 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma -2021/07/17 | 27714 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma -2021/07/17 | 33625 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/08/07 | 33396 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma +2021/08/07 | 37335 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma +2021/08/07 | 27696 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma +2021/08/07 | 33615 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma 2015/10/12 | 2312969 | systems/win32/miktex/tm/packages/miktex-vc120-bin.tar.lzma 2015/10/12 | 2544479 | systems/win32/miktex/tm/packages/miktex-vc120-bin-x64.tar.lzma 2020/06/25 | 3230115 | systems/win32/miktex/tm/packages/miktex-vc140-bin.tar.lzma 2020/06/25 | 3064461 | systems/win32/miktex/tm/packages/miktex-vc140-bin-x64.tar.lzma -2021/07/17 | 65508 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma -2021/07/17 | 70738 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma +2021/08/07 | 65553 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma +2021/08/07 | 70721 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma 2016/04/19 | 634372 | systems/win32/miktex/tm/packages/miktex-xetex-base.tar.lzma -2021/07/17 | 311743 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma -2021/07/17 | 345984 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma +2021/08/07 | 311749 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma +2021/08/07 | 345884 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma 2016/11/05 | 2089 | systems/win32/miktex/tm/packages/miktex-xetex.tar.lzma 2015/06/27 | 136065 | systems/win32/miktex/tm/packages/miktex-xindy-base.tar.lzma 2015/06/19 | 1712962 | systems/win32/miktex/tm/packages/miktex-xindy-bin.tar.lzma 2015/06/19 | 1714958 | systems/win32/miktex/tm/packages/miktex-xindy-bin-x64.tar.lzma 2015/06/19 | 369481 | systems/win32/miktex/tm/packages/miktex-xindy-doc.tar.lzma -2021/07/17 | 55485 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma -2021/07/17 | 57151 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma -2021/07/17 | 590269 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma -2021/07/17 | 625132 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma +2021/08/07 | 55460 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma +2021/08/07 | 57124 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma +2021/08/07 | 590162 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma +2021/08/07 | 624826 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma 2018/01/12 | 138155 | systems/win32/miktex/tm/packages/miktex-zip-bin.tar.lzma 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma -2021/07/17 | 39091 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma -2021/07/17 | 43361 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2021/08/06 | 233191 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/08/06 | 1323080 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/08/06 | 1230005 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/07/17 | 13442 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma -2021/07/17 | 14316 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma +2021/08/07 | 39000 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma +2021/08/07 | 43393 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma +2021/08/07 | 233157 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/08/07 | 1322973 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/08/07 | 1229559 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/08/07 | 13446 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma +2021/08/07 | 14327 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma 2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma 2004/11/11 | 10497 | systems/win32/miktex/tm/packages/miller.cab 2016/07/06 | 405919 | systems/win32/miktex/tm/packages/milog.tar.lzma @@ -285678,189 +285684,189 @@ 2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma 2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma 2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma -2021/08/06 | 590772 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/08/06 | 51112 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/08/06 | 56475 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/08/06 | 975019 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/08/06 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/08/06 | 29037 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/08/06 | 31352 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/08/06 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/08/06 | 34664 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/08/06 | 50152 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2021/08/06 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/08/06 | 83542 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/08/06 | 95401 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/08/06 | 67820 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/08/06 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/08/06 | 27199 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/08/06 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/08/06 | 330787 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/08/06 | 392794 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/08/06 | 32674 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/08/06 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/08/06 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/08/06 | 56686 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/08/06 | 241812 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/08/06 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/08/06 | 180009 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/08/06 | 195635 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/08/06 | 54632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/08/06 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/08/06 | 21225 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/08/06 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/08/06 | 461813 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/08/06 | 45905 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/08/06 | 51201 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/08/06 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/08/06 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/08/06 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2021/08/06 | 45311 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/08/06 | 119822 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/08/06 | 133864 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/08/06 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/08/06 | 1421868 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/08/06 | 100623 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2021/08/06 | 112983 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/08/06 | 43029 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/08/06 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/08/06 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/08/06 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/08/06 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/08/06 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/08/06 | 136818 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/08/06 | 154426 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/08/06 | 73196 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/08/06 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/08/06 | 71669 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/08/06 | 80448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/08/06 | 258881 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/08/06 | 295206 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/08/06 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2021/08/06 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/08/06 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/08/06 | 112086 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/08/06 | 64426 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/08/06 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/08/06 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/08/06 | 115350 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/08/06 | 38141 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/08/06 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/08/06 | 483653 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/08/06 | 566528 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/08/06 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/08/06 | 159579 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2021/08/06 | 94798 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/08/06 | 109030 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/08/06 | 16356 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/08/06 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/08/06 | 28390 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/08/06 | 30057 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/08/06 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/08/06 | 681254 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/08/06 | 531849 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/08/06 | 596929 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/08/06 | 476918 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/08/06 | 510586 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/08/06 | 94308 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2021/08/06 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/08/06 | 1713894 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/08/06 | 2009905 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/08/06 | 67619 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/08/06 | 74211 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/08/06 | 27358 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/08/06 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/08/06 | 7721 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/08/06 | 8768 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/08/06 | 196873 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/08/06 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/08/06 | 250265 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/08/06 | 284025 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/08/06 | 98380 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/08/06 | 103203 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/08/06 | 60637 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/08/06 | 68024 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/08/06 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2021/08/06 | 136821 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/08/06 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/08/06 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/08/06 | 199732 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/08/06 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/08/06 | 67481 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/08/06 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/08/06 | 31231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/08/06 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/08/06 | 37806 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/08/06 | 42711 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/08/06 | 42891 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/08/06 | 46906 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/08/06 | 45970 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/08/06 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/08/06 | 194382 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2021/08/06 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/08/06 | 35692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/08/06 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/08/06 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/08/06 | 815242 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/08/06 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/08/06 | 202796 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/08/06 | 208049 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/08/06 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/08/06 | 78775 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/08/06 | 87777 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/08/06 | 1169716 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/08/06 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/08/06 | 20137 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/08/06 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/08/06 | 31536 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/08/06 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/08/06 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/08/06 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/08/06 | 50395 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/08/06 | 57729 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/08/06 | 1340931 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/08/06 | 1464204 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/08/06 | 42385 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/08/06 | 51750 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/08/06 | 56513 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/08/06 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/08/06 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/08/06 | 27388 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/08/06 | 16413 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/08/06 | 18175 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/08/06 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/08/06 | 69914 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2021/08/06 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/08/06 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/08/06 | 57013 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/08/06 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/08/06 | 98263 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/08/06 | 105220 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2021/08/06 | 2672607 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/08/06 | 2796726 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/08/06 | 56357 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/08/06 | 62229 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/08/06 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/08/06 | 37359 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/08/06 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/08/06 | 33633 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/08/06 | 65620 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/08/06 | 70648 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/08/06 | 312108 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/08/06 | 345738 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/08/06 | 55499 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/08/06 | 57139 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/08/06 | 589841 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/08/06 | 624652 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/08/06 | 39128 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/08/06 | 43426 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/08/06 | 233198 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/08/06 | 1323201 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/08/06 | 1230160 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/08/06 | 13465 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/08/06 | 14348 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/08/07 | 590772 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/08/07 | 51111 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/08/07 | 56476 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/08/07 | 975022 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/08/07 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/08/07 | 29035 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/08/07 | 31350 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/08/07 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/08/07 | 34665 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/08/07 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/08/07 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/08/07 | 83541 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/08/07 | 95402 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/08/07 | 67819 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/08/07 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/08/07 | 27198 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/08/07 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/08/07 | 330788 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/08/07 | 392792 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/08/07 | 32673 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/08/07 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/08/07 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/08/07 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/08/07 | 241811 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/08/07 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/08/07 | 180013 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/08/07 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/08/07 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/08/07 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/08/07 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/08/07 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/08/07 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/08/07 | 45904 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/08/07 | 51201 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/08/07 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/08/07 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/08/07 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/08/07 | 45310 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/08/07 | 119820 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/08/07 | 133863 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/08/07 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/08/07 | 1421868 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/08/07 | 100625 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/08/07 | 112983 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/08/07 | 43028 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/08/07 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/08/07 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/08/07 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/08/07 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/08/07 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/08/07 | 136817 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/08/07 | 154425 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/08/07 | 73196 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/08/07 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/08/07 | 71669 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/08/07 | 80448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/08/07 | 258880 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/08/07 | 295204 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/08/07 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/08/07 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/08/07 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/08/07 | 112087 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/08/07 | 64427 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/08/07 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/08/07 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/08/07 | 115351 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/08/07 | 38139 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/08/07 | 43002 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 483655 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/08/07 | 566528 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/08/07 | 147372 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/08/07 | 159580 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/08/07 | 94799 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/08/07 | 109030 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/08/07 | 16357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/08/07 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/08/07 | 28391 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/08/07 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/08/07 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/08/07 | 681249 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/08/07 | 531852 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/08/07 | 596931 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/08/07 | 476919 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/08/07 | 510588 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/08/07 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/08/07 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/08/07 | 1713894 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/08/07 | 2009904 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/08/07 | 67618 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/08/07 | 74211 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/08/07 | 27357 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/08/07 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/08/07 | 7722 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/08/07 | 8769 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/08/07 | 196870 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/08/07 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/08/07 | 250263 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/08/07 | 284024 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/08/07 | 98381 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/08/07 | 103204 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/08/07 | 60635 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/08/07 | 68023 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/08/07 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/08/07 | 136821 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/08/07 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/08/07 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/08/07 | 199732 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/08/07 | 180121 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/08/07 | 67484 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/08/07 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/08/07 | 31232 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/08/07 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/08/07 | 37804 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/08/07 | 42711 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/08/07 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/08/07 | 46907 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/08/07 | 45971 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/08/07 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/08/07 | 194382 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/08/07 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/08/07 | 35692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/08/07 | 40228 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/08/07 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/08/07 | 815242 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/08/07 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/08/07 | 202795 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/08/07 | 208049 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/08/07 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/08/07 | 78773 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/08/07 | 87776 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/08/07 | 1169717 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/08/07 | 1301192 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/08/07 | 20138 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/08/07 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/08/07 | 31539 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/08/07 | 37241 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/08/07 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/08/07 | 72205 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 50393 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/08/07 | 57730 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/08/07 | 1340930 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/08/07 | 1464203 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/08/07 | 42387 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/08/07 | 51749 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/08/07 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/08/07 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/08/07 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/08/07 | 27392 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/08/07 | 16413 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/08/07 | 18176 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/08/07 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/08/07 | 69915 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/08/07 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/08/07 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/08/07 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/08/07 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/08/07 | 98258 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/08/07 | 105224 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/08/07 | 2672609 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/08/07 | 2796726 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/08/07 | 56356 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/08/07 | 62230 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/08/07 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/08/07 | 37358 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/08/07 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/08/07 | 33633 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/08/07 | 65618 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/08/07 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/08/07 | 312109 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/08/07 | 345740 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/08/07 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/08/07 | 57139 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/08/07 | 589841 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/08/07 | 624655 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/08/07 | 39128 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/08/07 | 43425 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/08/07 | 233191 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/08/07 | 1322116 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/08/07 | 1229098 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/08/07 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/08/07 | 14350 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma -2021/08/06 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/08/07 | 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 @@ -286233,7 +286239,7 @@ 2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma 2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma 2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma -2021/08/06 | 934 | systems/win32/miktex/tm/packages/pr.ini +2021/08/07 | 1155 | 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 @@ -287779,7 +287785,7 @@ 2004/06/04 | 404 | tds/tds.sed 2004/06/23 | 65418 | tds/tds.tex 2019/05/29 | 304264 | tds.zip -2021/08/07 | 186 | timestamp +2021/08/08 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2021/08/04 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index 6c9a0aa6a1..b3e58e7884 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index 690b744123..edca8fd36d 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,235 +1,485 @@ -2021/08/06 | 98380 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/08/06 | 98263 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/08/06 | 975019 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/08/06 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/08/06 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/08/06 | 95401 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/08/06 | 94798 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/08/06 | 94308 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2021/08/06 | 934 | systems/win32/miktex/tm/packages/pr.ini +2021/08/07 | 98381 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/08/07 | 98300 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma +2021/08/07 | 98258 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/08/07 | 98187 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma +2021/08/07 | 975022 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/08/07 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/08/07 | 973111 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma +2021/08/07 | 97303 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma +2021/08/07 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/08/07 | 96441 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma +2021/08/07 | 9638 | macros/luatex/latex/pyluatex/pyluatex-json.lua +2021/08/07 | 95414 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/08/07 | 95402 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/08/07 | 94799 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/08/07 | 94754 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma +2021/08/07 | 94339 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma +2021/08/07 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/08/07 | 90605 | macros/luatex/latex/pyluatex.zip +2021/08/07 | 903155 | macros/generic/markdown.zip +2021/08/07 | 88600 | macros/latex/contrib/projlib/ProjLib.dtx +2021/08/07 | 88462 | macros/latex/contrib/projlib/ProjLib-doc.dtx +2021/08/07 | 87776 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/08/07 | 87720 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma +2021/08/07 | 8769 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/08/07 | 8748 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma +2021/08/07 | 84356 | systems/texlive/tlnet/archive/smart-eqn.doc.r60178.tar.xz +2021/08/07 | 83705 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/08/07 | 83541 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/08/07 | 817283 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/08/07 | 815242 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/08/07 | 80630 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/08/07 | 80448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/08/07 | 79524 | macros/luatex/latex/pyluatex/pyluatex.pdf +2021/08/07 | 78773 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/08/07 | 78707 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma +2021/08/07 | 78560 | macros/latex/contrib/easybook/easybook.dtx +2021/08/07 | 78184 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma +2021/08/07 | 78128 | macros/latex/contrib/easybook/easybook.tex +2021/08/07 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/08/07 | 7722 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/08/07 | 7689 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma +2021/08/07 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/08/07 | 76801 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/08/07 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/08/07 | 75767 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/08/07 | 748712 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma +2021/08/07 | 744225 | macros/latex/contrib/projlib.zip +2021/08/07 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/08/07 | 74211 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/08/07 | 74152 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma +2021/08/07 | 739600 | graphics/pgf/contrib/tikzlings.zip +2021/08/07 | 73196 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/08/07 | 73166 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma +2021/08/07 | 73156 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/08/07 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/08/07 | 72221 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 72205 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 71669 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/08/07 | 71650 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma +2021/08/07 | 70721 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma +2021/08/07 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/08/07 | 69915 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/08/07 | 69867 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/08/07 | 681249 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/08/07 | 6811529 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/08/07 | 68105 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/08/07 | 680872 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/08/07 | 68023 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/08/07 | 68012 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma +2021/08/07 | 67819 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/08/07 | 67618 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/08/07 | 67590 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma +2021/08/07 | 67484 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/08/07 | 67483 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma +2021/08/07 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/08/07 | 65671 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma +2021/08/07 | 65618 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/08/07 | 65553 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma +2021/08/07 | 64427 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/08/07 | 64402 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma +2021/08/07 | 6420 | systems/texlive/tlnet/archive/collection-latexextra.r60178.tar.xz +2021/08/07 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/08/07 | 64174 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma +2021/08/07 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/08/07 | 63706 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma +2021/08/07 | 629628 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/08/07 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/08/07 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/08/07 | 62690 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma +2021/08/07 | 624826 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma +2021/08/07 | 624655 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/08/07 | 624161 | macros/latex/contrib/easybook.zip +2021/08/07 | 62233 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/08/07 | 62230 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/08/07 | 61841 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma +2021/08/07 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/08/07 | 60698 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma +2021/08/07 | 60635 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/08/07 | 604156 | systems/texlive/tlnet/archive/easybook.doc.r60176.tar.xz +2021/08/07 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/08/07 | 59951 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma +2021/08/07 | 596931 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/08/07 | 596374 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma +2021/08/07 | 591262 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/08/07 | 590772 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/08/07 | 590162 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma +2021/08/07 | 589841 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/08/07 | 583892 | macros/latex/contrib/easybook/easybook.pdf +2021/08/07 | 5800 | systems/texlive/tlnet/archive/smart-eqn.source.r60178.tar.xz +2021/08/07 | 57730 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/08/07 | 57712 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma +2021/08/07 | 57570 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/08/07 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/08/07 | 57139 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/08/07 | 57124 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma +2021/08/07 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/08/07 | 56966 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma +2021/08/07 | 56772 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/08/07 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/08/07 | 566528 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/08/07 | 566081 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/08/07 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/08/07 | 56486 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma +2021/08/07 | 56476 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/08/07 | 56456 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/08/07 | 56405 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/08/07 | 56356 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/08/07 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/08/07 | 56310 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma +2021/08/07 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/08/07 | 55460 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma +2021/08/07 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/08/07 | 54628 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma +2021/08/07 | 531852 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/08/07 | 531724 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma +2021/08/07 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/08/07 | 5244 | macros/luatex/latex/pyluatex/pyluatex.lua +2021/08/07 | 52403 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/08/07 | 51795 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma +2021/08/07 | 51749 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/08/07 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/08/07 | 51253 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma +2021/08/07 | 51201 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/08/07 | 51171 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/08/07 | 51111 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/08/07 | 510588 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/08/07 | 510530 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/08/07 | 51031 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma +2021/08/07 | 509729 | systems/win32/miktex/doc/miktex.pdf +2021/08/07 | 50651 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma +2021/08/07 | 50393 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/08/07 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/08/07 | 49905 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma +2021/08/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/08/07 | 483655 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/08/07 | 483048 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma +2021/08/07 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/08/07 | 48232 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma +2021/08/07 | 476919 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/08/07 | 476919 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma +2021/08/07 | 46978 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/08/07 | 46907 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/08/07 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/08/07 | 461708 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma +2021/08/07 | 45971 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/08/07 | 45932 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma +2021/08/07 | 45910 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma +2021/08/07 | 45904 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/08/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/08/07 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/08/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/08/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/08/07 | 45371 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/08/07 | 45310 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/08/07 | 43425 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/08/07 | 43393 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma +2021/08/07 | 43028 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/08/07 | 43020 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma +2021/08/07 | 43002 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 42988 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/08/07 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/08/07 | 42839 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma +2021/08/07 | 42711 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/08/07 | 42672 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/08/07 | 42387 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/08/07 | 42374 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma +2021/08/07 | 41216 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma +2021/08/07 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/08/07 | 40324 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma +2021/08/07 | 40228 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/08/07 | 399200 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60174.tar.xz +2021/08/07 | 392792 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/08/07 | 392514 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma +2021/08/07 | 39128 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/08/07 | 39000 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma +2021/08/07 | 38139 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/08/07 | 38136 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma +2021/08/07 | 37804 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/08/07 | 37755 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma +2021/08/07 | 37358 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/08/07 | 37335 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma +2021/08/07 | 37241 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/08/07 | 37226 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma +2021/08/07 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/08/07 | 36602 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma +2021/08/07 | 35730 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma +2021/08/07 | 35692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/08/07 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/08/07 | 35038 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma +2021/08/07 | 34665 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/08/07 | 34644 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/08/07 | 345884 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma +2021/08/07 | 345740 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/08/07 | 342620 | systems/texlive/tlnet/archive/huawei.doc.r60177.tar.xz +2021/08/07 | 3400019 | macros/unicodetex/latex/nwafuthesis.zip +2021/08/07 | 33633 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/08/07 | 33615 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/08/07 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/08/07 | 33396 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma +2021/08/07 | 330788 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/08/07 | 330456 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma +2021/08/07 | 32673 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/08/07 | 32651 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma +2021/08/07 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/08/07 | 324459 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/08/07 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/08/07 | 31588 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/08/07 | 31539 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/08/07 | 31502 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma +2021/08/07 | 31350 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/08/07 | 31334 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma +2021/08/07 | 31232 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/08/07 | 312109 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/08/07 | 31188 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma +2021/08/07 | 311749 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma +2021/08/07 | 310106 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf +2021/08/07 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/08/07 | 30803 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/08/07 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/08/07 | 30025 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/08/07 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/08/07 | 29815 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma +2021/08/07 | 295323 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/08/07 | 295204 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/08/07 | 29035 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/08/07 | 29026 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma +2021/08/07 | 284951 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/08/07 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/08/07 | 284024 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/08/07 | 283925 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma +2021/08/07 | 28391 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/08/07 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/08/07 | 28146 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma +2021/08/07 | 28124 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/08/07 | 2797150 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma +2021/08/07 | 2796726 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/08/07 | 279550 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma +2021/08/07 | 2793 | macros/luatex/latex/pyluatex/pyluatex-interpreter.py +2021/08/07 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/08/07 | 27696 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma +2021/08/07 | 27481 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma +2021/08/07 | 27392 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/08/07 | 27357 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/08/07 | 27351 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma +2021/08/07 | 27198 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/08/07 | 27177 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma +2021/08/07 | 271564 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx +2021/08/07 | 2672609 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/08/07 | 2671585 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma +2021/08/07 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/08/07 | 259736 | systems/texlive/tlnet/archive/huawei.r60177.tar.xz +2021/08/07 | 258947 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma +2021/08/07 | 258880 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/08/07 | 25585299 | systems/texlive/tlnet/install-tl.zip +2021/08/07 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/08/07 | 25281 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma +2021/08/07 | 251703 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma +2021/08/07 | 250263 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/08/07 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/08/07 | 250124 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma +2021/08/07 | 24997 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma +2021/08/07 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/08/07 | 24969 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/08/07 | 243436 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma +2021/08/07 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/08/07 | 241811 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/08/07 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/08/07 | 23871 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma +2021/08/07 | 2337649 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf +2021/08/07 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/08/07 | 23341 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma +2021/08/07 | 233191 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/08/07 | 233157 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/08/07 | 2327344 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/08/07 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/08/07 | 22021 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma +2021/08/07 | 2196 | systems/texlive/tlnet/archive/smart-eqn.r60178.tar.xz +2021/08/07 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/08/07 | 215210 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma +2021/08/07 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/08/07 | 21168 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma +2021/08/07 | 20809140 | systems/texlive/tlnet/install-tl-windows.exe +2021/08/07 | 208067 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma +2021/08/07 | 208049 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/08/07 | 206835 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/08/07 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/08/07 | 202953 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma +2021/08/07 | 202795 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/08/07 | 20138 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/08/07 | 20119 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma +2021/08/07 | 2009904 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/08/07 | 199732 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/08/07 | 199582 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma +2021/08/07 | 1985987 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma +2021/08/07 | 198293 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma +2021/08/07 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/08/07 | 197885 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf +2021/08/07 | 196870 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/08/07 | 196803 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma +2021/08/07 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/08/07 | 196617 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma +2021/08/07 | 195753 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf +2021/08/07 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/08/07 | 195609 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma +2021/08/07 | 194382 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/08/07 | 194085 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma +2021/08/07 | 18176 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/08/07 | 18133 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/08/07 | 1810 | macros/luatex/latex/pyluatex/pyluatex.sty +2021/08/07 | 1805 | macros/luatex/latex/pyluatex/README.md +2021/08/07 | 180121 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/08/07 | 180013 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/08/07 | 179953 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/08/07 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/08/07 | 179745 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma +2021/08/07 | 17969 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/08/07 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/08/07 | 178262 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma +2021/08/07 | 17347736 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/08/07 | 1729966 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma +2021/08/07 | 1713894 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/08/07 | 17040 | systems/texlive/tlnet/archive/easybook.source.r60176.tar.xz +2021/08/07 | 16992 | systems/texlive/tlnet/archive/easybook.r60176.tar.xz +2021/08/07 | 169295 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma +2021/08/07 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/08/07 | 16447 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma +2021/08/07 | 16413 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/08/07 | 16357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/08/07 | 16313 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma +2021/08/07 | 159583 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/08/07 | 159580 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/08/07 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/08/07 | 154802 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma +2021/08/07 | 154550 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/08/07 | 154425 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/08/07 | 1542 | macros/unicodetex/latex/nwafuthesis/README.md +2021/08/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/08/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/08/07 | 147542 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma +2021/08/07 | 147372 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/08/07 | 1465793 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma +2021/08/07 | 1464203 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/08/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/08/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/08/07 | 14350 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/08/07 | 14327 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma +2021/08/07 | 1421868 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/08/07 | 1416524 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/08/07 | 136821 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/08/07 | 136817 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/08/07 | 136496 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma +2021/08/07 | 136429 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma +2021/08/07 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/08/07 | 13446 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma +2021/08/07 | 1342256 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma +2021/08/07 | 1340930 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/08/07 | 133872 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma +2021/08/07 | 133863 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/08/07 | 1322973 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/08/07 | 1322116 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/08/07 | 1301693 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma +2021/08/07 | 1301192 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/08/07 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/08/07 | 1288660 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma +2021/08/07 | 124437 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma +2021/08/07 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/08/07 | 1229559 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/08/07 | 1229098 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/08/07 | 119904 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma +2021/08/07 | 119820 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/08/07 | 11796 | macros/luatex/latex/pyluatex/pyluatex.tex +2021/08/07 | 1169717 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/08/07 | 1169691 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma +2021/08/07 | 1155 | systems/win32/miktex/tm/packages/pr.ini +2021/08/07 | 115576 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/08/07 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/08/07 | 115351 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/08/07 | 112983 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/08/07 | 112772 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/08/07 | 112220 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma +2021/08/07 | 112087 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/08/07 | 109034 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/08/07 | 109030 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/08/07 | 108276 | systems/texlive/tlnet/archive/texlive-scripts.r60174.tar.xz +2021/08/07 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/08/07 | 1076749 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/08/07 | 105224 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/08/07 | 104968 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma +2021/08/07 | 103645 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma +2021/08/07 | 103428 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma +2021/08/07 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/08/07 | 103204 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/08/07 | 100625 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/08/07 | 100477 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma +2021/08/06 | 9824 | graphics/pgf/contrib/tikzlings/tikzlings-hippos.sty +2021/08/06 | 9583 | graphics/pgf/contrib/tikzlings/tikzlings-bees.sty +2021/08/06 | 958166 | install/macros/generic/markdown.tds.zip +2021/08/06 | 9467 | graphics/pgf/contrib/tikzlings/tikzlings-elephants.sty +2021/08/06 | 9414 | macros/generic/markdown/README.md +2021/08/06 | 9215 | graphics/pgf/contrib/tikzlings/tikzlings-owls.sty +2021/08/06 | 9108 | macros/generic/markdown/markdown.md 2021/08/06 | 89763 | macros/latex/contrib/smart-eqn.zip -2021/08/06 | 87777 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/08/06 | 8768 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/08/06 | 8582 | graphics/pgf/contrib/tikzlings/tikzlings-bears.sty +2021/08/06 | 8561 | graphics/pgf/contrib/tikzlings/tikzlings-pandas.sty 2021/08/06 | 85510 | macros/latex/contrib/smart-eqn/smart-eqn.pdf -2021/08/06 | 83542 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/08/06 | 815242 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma 2021/08/06 | 8141 | macros/latex/contrib/huawei/huawei.tex -2021/08/06 | 80448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/08/06 | 78775 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/08/06 | 78560 | macros/latex/contrib/easybook/easybook.dtx -2021/08/06 | 78146 | macros/latex/contrib/easybook/easybook.tex -2021/08/06 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/08/06 | 7721 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/08/06 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/08/06 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/08/06 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/08/06 | 74211 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/08/06 | 73196 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/08/06 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/08/06 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/08/06 | 71669 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/08/06 | 70648 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/08/06 | 69914 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2021/08/06 | 681254 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/08/06 | 6811270 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/08/06 | 68024 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/08/06 | 67820 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/08/06 | 67619 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/08/06 | 67481 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/08/06 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/08/06 | 65620 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/08/06 | 64426 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/08/06 | 6420 | systems/texlive/tlnet/archive/collection-latexextra.r60171.tar.xz -2021/08/06 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/08/06 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/08/06 | 75 | macros/generic/markdown/examples/scientists.csv +2021/08/06 | 686153 | graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf +2021/08/06 | 6836 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2021/08/06 | 653 | graphics/pgf/contrib/tikzlings/tikzlings-list.sty 2021/08/06 | 62956 | systems/texlive/tlnet/archive/nwafuthesis.source.r60172.tar.xz -2021/08/06 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/08/06 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/08/06 | 624652 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/08/06 | 624265 | macros/latex/contrib/easybook.zip -2021/08/06 | 62229 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/08/06 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/08/06 | 60637 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/08/06 | 627901 | macros/generic/markdown/markdown.pdf 2021/08/06 | 604627 | macros/latex/contrib/huawei.zip -2021/08/06 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/08/06 | 596929 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/08/06 | 591262 | systems/win32/miktex/tm/packages/files.csv.lzma -2021/08/06 | 590772 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/08/06 | 589841 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/08/06 | 583938 | macros/latex/contrib/easybook/easybook.pdf -2021/08/06 | 57729 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/08/06 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/08/06 | 57139 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/08/06 | 57013 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/08/06 | 56686 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/08/06 | 566528 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/08/06 | 56513 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/08/06 | 56475 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/08/06 | 56357 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/08/06 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/08/06 | 55499 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/08/06 | 54632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/08/06 | 531849 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/08/06 | 52523 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/08/06 | 51750 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/08/06 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/08/06 | 51201 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/08/06 | 51112 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/08/06 | 510586 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/08/06 | 50395 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/08/06 | 595079 | macros/generic/markdown/markdown.html +2021/08/06 | 518773 | macros/generic/markdown/markdown.dtx 2021/08/06 | 5036 | systems/texlive/tlnet/archive/zref-check.r60171.tar.xz -2021/08/06 | 50152 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2021/08/06 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 -2021/08/06 | 483653 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/08/06 | 48253 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/08/06 | 476918 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/08/06 | 46906 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/08/06 | 461813 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/08/06 | 45970 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/08/06 | 45905 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/08/06 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/08/06 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2021/08/06 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/08/06 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc -2021/08/06 | 45311 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/08/06 | 43426 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/08/06 | 4530 | macros/generic/markdown/markdown.css +2021/08/06 | 4485 | macros/generic/markdown/docstrip.cfg 2021/08/06 | 43312 | systems/texlive/tlnet/archive/tuda-ci.r60170.tar.xz -2021/08/06 | 43029 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/08/06 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/08/06 | 42891 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/08/06 | 42711 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/08/06 | 42385 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/08/06 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/08/06 | 43222 | graphics/pgf/contrib/tikzlings/tikzlings-addons.sty 2021/08/06 | 403 | macros/latex/contrib/huawei/DEPENDS.txt -2021/08/06 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/08/06 | 399060 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60169.tar.xz -2021/08/06 | 392794 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/08/06 | 39128 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/08/06 | 38141 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/08/06 | 37806 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/08/06 | 37359 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/08/06 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/08/06 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/08/06 | 35692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/08/06 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/08/06 | 34664 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/08/06 | 345738 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/08/06 | 3383 | graphics/pgf/contrib/tikzlings/tikzlings.sty 2021/08/06 | 336961 | macros/latex/contrib/huawei/huawei.pdf -2021/08/06 | 33633 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/08/06 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/08/06 | 330787 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/08/06 | 32674 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/08/06 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/08/06 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/08/06 | 31536 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/08/06 | 31352 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/08/06 | 31231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/08/06 | 312108 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/08/06 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/08/06 | 30057 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/08/06 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/08/06 | 295206 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/08/06 | 29037 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/08/06 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/08/06 | 284025 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/08/06 | 28390 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/08/06 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/08/06 | 2796726 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/08/06 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/08/06 | 27388 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/08/06 | 27358 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/08/06 | 27199 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/08/06 | 2672607 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/08/06 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/08/06 | 258881 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/08/06 | 25585316 | systems/texlive/tlnet/install-tl.zip +2021/08/06 | 2921 | macros/generic/markdown/examples/example.md 2021/08/06 | 253724 | macros/latex/contrib/huawei/huawei-cover-picture.pdf -2021/08/06 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/08/06 | 250265 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/08/06 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/08/06 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/08/06 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/08/06 | 241812 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/08/06 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/08/06 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/08/06 | 233198 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/08/06 | 233191 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/08/06 | 2327548 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz -2021/08/06 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma 2021/08/06 | 216 | macros/latex/contrib/smart-eqn/README.md 2021/08/06 | 21596 | systems/texlive/tlnet/archive/nwafuthesis.r60172.tar.xz -2021/08/06 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/08/06 | 21225 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/08/06 | 20811067 | systems/texlive/tlnet/install-tl-windows.exe -2021/08/06 | 208049 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/08/06 | 206604 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/08/06 | 20748 | graphics/pgf/contrib/tikzlings/tikzlings-doc.tex 2021/08/06 | 2057 | macros/latex/contrib/huawei/samples/huawei-charter.tex -2021/08/06 | 202796 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/08/06 | 20137 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/08/06 | 2009905 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/08/06 | 199732 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/08/06 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/08/06 | 196873 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/08/06 | 196740 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/08/06 | 195635 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma 2021/08/06 | 1947 | macros/latex/contrib/huawei/samples/huawei-cfp.tex -2021/08/06 | 194382 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma 2021/08/06 | 18644 | systems/texlive/tlnet/archive/zref-check.source.r60171.tar.xz -2021/08/06 | 18175 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/08/06 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/08/06 | 180009 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/08/06 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/08/06 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/08/06 | 17893 | graphics/pgf/contrib/tikzlings/tikzlings-chickens.sty +2021/08/06 | 17503 | graphics/pgf/contrib/tikzlings/tikzlings-sloths.sty 2021/08/06 | 17466 | macros/latex/contrib/huawei/huawei.cls -2021/08/06 | 17346861 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2021/08/06 | 1713894 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/08/06 | 17294 | graphics/pgf/contrib/tikzlings/tikzlings-cats.sty 2021/08/06 | 17123 | macros/latex/contrib/smart-eqn/smart-eqn.dtx -2021/08/06 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma 2021/08/06 | 1684136 | systems/texlive/tlnet/archive/nwafuthesis.doc.r60172.tar.xz -2021/08/06 | 16413 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/08/06 | 16356 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/08/06 | 159579 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/08/06 | 15747 | graphics/pgf/contrib/tikzlings/tikzlings-coatis.sty 2021/08/06 | 1560 | systems/texlive/tlnet/archive/collection-publishers.r60172.tar.xz -2021/08/06 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/08/06 | 154426 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/08/06 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/08/06 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 2021/08/06 | 1497 | macros/latex/contrib/huawei/README.md -2021/08/06 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/08/06 | 1464204 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma 2021/08/06 | 1461 | macros/latex/contrib/huawei/samples/huawei-main.bib -2021/08/06 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/08/06 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/08/06 | 14348 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma -2021/08/06 | 1421868 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/08/06 | 136821 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/08/06 | 136818 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/08/06 | 13465 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/08/06 | 1340931 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/08/06 | 133864 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/08/06 | 1323201 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/08/06 | 1323080 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/08/06 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/08/06 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/08/06 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2021/08/06 | 1230160 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/08/06 | 1230005 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/08/06 | 119822 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/08/06 | 1169716 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/08/06 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini -2021/08/06 | 115350 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/08/06 | 14308 | graphics/pgf/contrib/tikzlings/tikzlings-marmots.sty +2021/08/06 | 140951 | macros/generic/markdown/banner.png +2021/08/06 | 13134 | graphics/pgf/contrib/tikzlings/tikzlings-bugs.sty +2021/08/06 | 13115 | graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty +2021/08/06 | 12562 | graphics/pgf/contrib/tikzlings/tikzlings-anteaters.sty +2021/08/06 | 1228 | graphics/pgf/contrib/tikzlings/README.md +2021/08/06 | 11767 | graphics/pgf/contrib/tikzlings/tikzlings-koalas.sty +2021/08/06 | 11531 | graphics/pgf/contrib/tikzlings/tikzlings-mice.sty 2021/08/06 | 1148 | macros/latex/contrib/smart-eqn/smart-eqn.ins -2021/08/06 | 112983 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/08/06 | 1145 | macros/generic/markdown/markdown.ins 2021/08/06 | 1121692 | systems/texlive/tlnet/archive/tuda-ci.doc.r60170.tar.xz -2021/08/06 | 112086 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/08/06 | 109030 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/08/06 | 108296 | systems/texlive/tlnet/archive/texlive-scripts.r60169.tar.xz -2021/08/06 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/08/06 | 105220 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2021/08/06 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/08/06 | 103203 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/08/06 | 11184 | graphics/pgf/contrib/tikzlings/tikzlings-squirrels.sty +2021/08/06 | 11060 | graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty +2021/08/06 | 10926 | graphics/pgf/contrib/tikzlings/tikzlings-moles.sty +2021/08/06 | 10794 | graphics/pgf/contrib/tikzlings/tikzlings-bats.sty +2021/08/06 | 10722 | graphics/pgf/contrib/tikzlings/tikzlings-penguins.sty +2021/08/06 | 1060 | macros/generic/markdown/examples/context.tex +2021/08/06 | 1052 | macros/generic/markdown/examples/latex.tex +2021/08/06 | 10506 | graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty 2021/08/06 | 1013184 | systems/texlive/tlnet/archive/zref-check.doc.r60171.tar.xz -2021/08/06 | 100623 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/08/06 | 10086 | graphics/pgf/contrib/tikzlings/tikzlings-snowmen.sty 2021/08/05 | 9622 | macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg 2021/08/05 | 9383 | macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty 2021/08/05 | 8703 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex @@ -244,7 +494,6 @@ 2021/08/05 | 75120 | systems/texlive/tlnet/archive/bangla.doc.r60159.tar.xz 2021/08/05 | 73667 | systems/win32/miktex/tm/packages/bangla__doc.tar.lzma 2021/08/05 | 7336 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex -2021/08/05 | 6911 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/08/05 | 6881 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex 2021/08/05 | 682571 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf 2021/08/05 | 655456 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf @@ -256,7 +505,6 @@ 2021/08/05 | 61492 | systems/texlive/tlnet/archive/siunitx.r60164.tar.xz 2021/08/05 | 60969 | systems/win32/miktex/tm/packages/siunitx.tar.lzma 2021/08/05 | 6043 | systems/win32/miktex/tm/packages/beamer-rl.tar.lzma -2021/08/05 | 603540 | systems/texlive/tlnet/archive/easybook.doc.r60160.tar.xz 2021/08/05 | 594859 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf 2021/08/05 | 589937 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf 2021/08/05 | 586895 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf @@ -294,8 +542,6 @@ 2021/08/05 | 2866077 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma 2021/08/05 | 2863024 | systems/texlive/tlnet/archive/siunitx.doc.r60164.tar.xz 2021/08/05 | 28400 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex -2021/08/05 | 2834317 | macros/unicodetex/latex/nwafuthesis.zip -2021/08/05 | 271330 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx 2021/08/05 | 269 | macros/unicodetex/latex/nwafuthesis/build.sh 2021/08/05 | 26972 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex 2021/08/05 | 26639 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex @@ -324,10 +570,7 @@ 2021/08/05 | 1839289 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma 2021/08/05 | 1837412 | systems/texlive/tlnet/archive/l3packages.doc.r60167.tar.xz 2021/08/05 | 17622 | macros/latex/contrib/tuda-ci/tex/tudaletter.cls -2021/08/05 | 1748925 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf 2021/08/05 | 17408 | macros/latex/contrib/tuda-ci/tex/tudaposter.cls -2021/08/05 | 17048 | systems/texlive/tlnet/archive/easybook.source.r60160.tar.xz -2021/08/05 | 16992 | systems/texlive/tlnet/archive/easybook.r60160.tar.xz 2021/08/05 | 1686 | macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo 2021/08/05 | 1684 | macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo 2021/08/05 | 1682 | macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo @@ -338,12 +581,12 @@ 2021/08/05 | 16364 | systems/texlive/tlnet/archive/dtk.r60166.tar.xz 2021/08/05 | 16036 | macros/latex/contrib/tuda-ci/README.md 2021/08/05 | 15380 | systems/win32/miktex/tm/packages/fontsize__source.tar.lzma -2021/08/05 | 1533 | macros/unicodetex/latex/nwafuthesis/README.md 2021/08/05 | 15124 | systems/texlive/tlnet/archive/fontsize.source.r60161.tar.xz 2021/08/05 | 14735 | systems/win32/miktex/tm/packages/l3backend.tar.lzma 2021/08/05 | 14572 | systems/texlive/tlnet/archive/l3backend.r60167.tar.xz 2021/08/05 | 13710 | macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls 2021/08/05 | 1179 | systems/win32/miktex/tm/packages/python__doc.tar.lzma +2021/08/05 | 116956890 | macros/context/latest/cont-tmf.zip 2021/08/05 | 1143068 | macros/latex/contrib/zref-check.zip 2021/08/05 | 106008 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma 2021/08/05 | 105932 | systems/texlive/tlnet/archive/siunitx.source.r60164.tar.xz @@ -527,7 +770,6 @@ 2021/08/04 | 1206 | info/ptex-manual/README.md 2021/08/04 | 1191 | macros/latex/contrib/l3packages/xfp.ins 2021/08/04 | 11761 | macros/latex/contrib/l3packages/l3keys2e.dtx -2021/08/04 | 116955970 | macros/context/latest/cont-tmf.zip 2021/08/04 | 116169 | macros/latex/contrib/siunitx/siunitx-number.dtx 2021/08/04 | 11374 | language/bengali/bangla/bangla.sty 2021/08/04 | 105110 | info/ptex-manual/ptex-guide-en.pdf @@ -648,7 +890,6 @@ 2021/08/01 | 75544 | systems/texlive/tlnet/archive/hvlogos.doc.r60126.tar.xz 2021/08/01 | 7487 | macros/latex/contrib/elpres/tex/elpres.cls 2021/08/01 | 74782 | systems/win32/miktex/tm/packages/hvlogos__doc.tar.lzma -2021/08/01 | 744469 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf 2021/08/01 | 7401 | support/wp2latex/readme.txt 2021/08/01 | 7352 | systems/win32/miktex/tm/packages/minimalist.tar.lzma 2021/08/01 | 7152 | systems/texlive/tlnet/archive/minimalist.r60121.tar.xz @@ -759,146 +1000,3 @@ 2021/08/01 | 106812 | systems/texlive/tlnet/archive/colorist.doc.r60121.tar.xz 2021/08/01 | 102551 | systems/win32/miktex/tm/packages/minimalist__doc.tar.lzma 2021/08/01 | 100025 | systems/win32/miktex/tm/packages/colorist__doc.tar.lzma -2021/07/31 | 9803909 | support/latexindent/latexindent.exe -2021/07/31 | 9541 | support/latexindent/LatexIndent/IfElseFi.pm -2021/07/31 | 949988 | support/latexindent/documentation/latexindent.pdf -2021/07/31 | 948089 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf -2021/07/31 | 88494 | macros/latex/contrib/exam-randomizechoices/exam-randomizechoices.pdf -2021/07/31 | 833 | support/latexindent/LatexIndent/Version.pm -2021/07/31 | 7969 | support/latexindent/documentation/sec-introduction.tex -2021/07/31 | 7881 | support/latexindent/LatexIndent/LogFile.pm -2021/07/31 | 783736 | info/install-latex-guide-zh-cn.zip -2021/07/31 | 77401 | macros/latex/contrib/hvlogos.zip -2021/07/31 | 7728 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty -2021/07/31 | 739256 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf -2021/07/31 | 7234 | support/latexindent/documentation/subsubsec-no-add-remaining-code-blocks.tex -2021/07/31 | 7161 | support/latexindent/documentation/figure-schematic.png -2021/07/31 | 68758 | support/latexindent/documentation/sec-default-user-local.tex -2021/07/31 | 6793 | support/latexindent/LatexIndent/MandatoryArgument.pm -2021/07/31 | 67782 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx -2021/07/31 | 673135 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf -2021/07/31 | 663896 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf -2021/07/31 | 66280 | support/latexindent/documentation/subsec-poly-switches.tex -2021/07/31 | 6589 | support/latexindent/LatexIndent/FileExtension.pm -2021/07/31 | 6549 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx -2021/07/31 | 6408 | support/latexindent/LatexIndent/Item.pm -2021/07/31 | 6385 | support/latexindent/LatexIndent/TrailingComments.pm -2021/07/31 | 6335 | support/latexindent/LatexIndent/Environment.pm -2021/07/31 | 63320 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx -2021/07/31 | 61612 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm -2021/07/31 | 6062 | support/latexindent/LatexIndent/OptionalArgument.pm -2021/07/31 | 6042 | support/latexindent/LatexIndent/BackUpFileProcedure.pm -2021/07/31 | 5992676 | support/latexindent.zip -2021/07/31 | 5979 | support/latexindent/documentation/subsubsec-commands-with-arguments.tex -2021/07/31 | 5969 | support/latexindent/LatexIndent/Else.pm -2021/07/31 | 591169 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf -2021/07/31 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty -2021/07/31 | 5777 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm -2021/07/31 | 577331 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf -2021/07/31 | 576314 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf -2021/07/31 | 5736 | support/latexindent/documentation/subsec-combine-text-wrap-para-line-breaks.tex -2021/07/31 | 55632 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx -2021/07/31 | 553330 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf -2021/07/31 | 547881 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf -2021/07/31 | 536935 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf -2021/07/31 | 534125 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf -2021/07/31 | 5312 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm -2021/07/31 | 530911 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf -2021/07/31 | 5286 | support/latexindent/documentation/subsubsec-headings.tex -2021/07/31 | 52738 | support/latexindent/LatexIndent/GetYamlSettings.pm -2021/07/31 | 527111 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf -2021/07/31 | 526311 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf -2021/07/31 | 518296 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf -2021/07/31 | 505534 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf -2021/07/31 | 492 | support/latexindent/documentation/cmhlistings.tex -2021/07/31 | 4873 | support/latexindent/documentation/subsubsec-ifelsefi.tex -2021/07/31 | 4798 | support/latexindent/LatexIndent/BlankLines.pm -2021/07/31 | 47023 | macros/latex/contrib/exam-randomizechoices/exam-randomizechoices-doc.tex -2021/07/31 | 4685 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex -2021/07/31 | 4617 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty -2021/07/31 | 4570 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md -2021/07/31 | 4485 | graphics/mcf2graph/README -2021/07/31 | 446355 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf -2021/07/31 | 44096 | support/latexindent/documentation/logo.png -2021/07/31 | 4355 | support/latexindent/LatexIndent/RoundBrackets.pm -2021/07/31 | 4284 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm -2021/07/31 | 421483 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf -2021/07/31 | 4212 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty -2021/07/31 | 418329 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf -2021/07/31 | 3850 | support/latexindent/documentation/subsubsec-special.tex -2021/07/31 | 3618 | support/latexindent/LatexIndent/Replacement.pm -2021/07/31 | 3542 | macros/latex/contrib/exam-randomizechoices/README.md -2021/07/31 | 3463 | support/latexindent/LatexIndent/Preamble.pm -2021/07/31 | 3450 | support/latexindent/documentation/subsubsec-environments-with-items.tex -2021/07/31 | 3394 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm -2021/07/31 | 3273 | support/latexindent/LatexIndent/Tokens.pm -2021/07/31 | 320254 | macros/latex/contrib/exam-randomizechoices.zip -2021/07/31 | 3075 | support/latexindent/documentation/sec-the-m-switch.tex -2021/07/31 | 30568 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx -2021/07/31 | 28041 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx -2021/07/31 | 27837 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx -2021/07/31 | 27438 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx -2021/07/31 | 26672 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx -2021/07/31 | 26662 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx -2021/07/31 | 2645 | support/latexindent/latexindent.pl -2021/07/31 | 25321 | macros/latex/contrib/exam-randomizechoices/exam-randomizechoices.tex -2021/07/31 | 246 | support/latexindent/documentation/references.tex -2021/07/31 | 23932 | support/latexindent/documentation/latexindent.tex -2021/07/31 | 23600 | support/latexindent/LatexIndent/Arguments.pm -2021/07/31 | 22938 | support/latexindent/LatexIndent/ModifyLineBreaks.pm -2021/07/31 | 22875 | macros/latex/contrib/exam-randomizechoices/exam-randomizechoices.sty -2021/07/31 | 22855 | support/latexindent/LatexIndent/Verbatim.pm -2021/07/31 | 2212 | support/latexindent/LatexIndent/Logger.pm -2021/07/31 | 22113 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx -2021/07/31 | 22107 | support/latexindent/documentation/subsec-one-sentence-per-line.tex -2021/07/31 | 217081 | macros/latex/contrib/exam-randomizechoices/exam-randomizechoices-doc.pdf -2021/07/31 | 21650 | support/latexindent/documentation/sec-replacements.tex -2021/07/31 | 21217 | support/latexindent/LatexIndent/Document.pm -2021/07/31 | 2120 | support/latexindent/documentation/sec-demonstration.tex -2021/07/31 | 20834 | info/install-latex-guide-zh-cn/chapter/windows.tex -2021/07/31 | 20575 | support/latexindent/LatexIndent/Indent.pm -2021/07/31 | 20556 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx -2021/07/31 | 1992 | support/latexindent/LatexIndent/Switches.pm -2021/07/31 | 19864 | support/latexindent/LatexIndent/Sentence.pm -2021/07/31 | 194141 | macros/latex/contrib/macrolist.zip -2021/07/31 | 194057 | macros/latex/contrib/macrolist/macrolist.pdf -2021/07/31 | 1909 | support/latexindent/documentation/subsec-noAdditionalIndent-indentRules.tex -2021/07/31 | 18923 | support/latexindent/documentation/sec-how-to-use.tex -2021/07/31 | 1879 | support/latexindent/documentation/figure-schematic.tex -2021/07/31 | 1878 | macros/latex/contrib/macrolist/macrolist.ins -2021/07/31 | 18760 | support/latexindent/defaultSettings.yaml -2021/07/31 | 1874 | support/latexindent/README -2021/07/31 | 18289 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx -2021/07/31 | 1822 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty -2021/07/31 | 18082 | support/latexindent/documentation/subsec-text-wrap.tex -2021/07/31 | 17807 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx -2021/07/31 | 17429 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx -2021/07/31 | 173067 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx -2021/07/31 | 1688 | support/latexindent/documentation/sec-conclusions-know-limitations.tex -2021/07/31 | 16703 | support/latexindent/documentation/subsubsec-environments-and-their-arguments.tex -2021/07/31 | 1664 | support/latexindent/documentation/logo.tex -2021/07/31 | 16349 | graphics/mcf2graph/mcf_mplib_exa.tex -2021/07/31 | 15944 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx -2021/07/31 | 15784 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx -2021/07/31 | 15661 | macros/latex/contrib/macrolist/macrolist.dtx -2021/07/31 | 1558 | support/latexindent/latexindent-module-installer.pl -2021/07/31 | 15347 | graphics/mcf2graph/CHANGELOG -2021/07/31 | 1483 | support/latexindent/LatexIndent/DoubleBackSlash.pm -2021/07/31 | 1477 | support/latexindent/documentation/title.tex -2021/07/31 | 1442 | support/latexindent/documentation/subsec-text-wrap-summary.tex -2021/07/31 | 14050 | support/latexindent/documentation/subsec-commands-and-their-options.tex -2021/07/31 | 13572 | support/latexindent/LatexIndent/Special.pm -2021/07/31 | 13109 | support/latexindent/documentation/appendices.tex -2021/07/31 | 12661 | support/latexindent/LatexIndent/Braces.pm -2021/07/31 | 12302 | support/latexindent/LatexIndent/HiddenChildren.pm -2021/07/31 | 12024 | support/latexindent/documentation/sec-fine-tuning.tex -2021/07/31 | 1195 | macros/latex/contrib/pdfmanagement-testphase/README.md -2021/07/31 | 11823 | support/latexindent/LatexIndent/FileContents.pm -2021/07/31 | 11600 | support/latexindent/documentation/subsec-remove-para-line-breaks.tex -2021/07/31 | 1137 | macros/latex/contrib/macrolist/README.md -2021/07/31 | 11151 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx -2021/07/31 | 10859 | support/latexindent/documentation/sec-indent-config-and-settings.tex -2021/07/31 | 10806 | support/latexindent/LatexIndent/Heading.pm -2021/07/31 | 107903 | graphics/mcf2graph/mcf2graph.mf -2021/07/31 | 10666138 | macros/latex/contrib/pdfmanagement-testphase.zip -2021/07/31 | 10361 | support/latexindent/LatexIndent/Command.pm diff --git a/graphics/pgf/contrib/tikzlings/README.md b/graphics/pgf/contrib/tikzlings/README.md index f0b4928420..05ad647df4 100644 --- a/graphics/pgf/contrib/tikzlings/README.md +++ b/graphics/pgf/contrib/tikzlings/README.md @@ -1,7 +1,7 @@ # TikZlings A collection of animals and other beings from the tikz world -Current version: 2021/04/16 version v0.6 +Current version: 2021/08/06 version v0.8 This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-addons.sty b/graphics/pgf/contrib/tikzlings/tikzlings-addons.sty index 4cc5eecbf3..67199fdd99 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-addons.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-addons.sty @@ -12,7 +12,7 @@ % See http://www.latex-project.org/lppl.txt % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-addons}[2021/04/16 version v0.6 Draw additional items for the tikzlings] +\ProvidesPackage{tikzlings-addons}[2021/08/06 version v0.8 Draw additional items for the tikzlings] \RequirePackage{tikz} \usetikzlibrary{patterns} % for the wizard hat @@ -107,6 +107,8 @@ \newif\ifthing@crozier \newif\ifthing@shovel \newif\ifthing@pickaxe +\newif\ifthing@strawbroom +\newif\ifthing@broom \newif\ifthing@umbrella \newif\ifthing@umbrellaclosed \newif\ifthing@handbag @@ -312,13 +314,25 @@ shovel/.default = gray, pickaxe/.code = \thing@pickaxetrue \def\thing@pickaxe{#1}, - pickaxe/.default = gray, + pickaxe/.default = gray, + strawbroom/.code = \thing@strawbroomtrue + \def\thing@strawbroom{#1}, + strawbroom/.default = brown!50!white, + strawbroomstick/.code = \def\thing@strawbroomstick{#1}, + strawbroomstick = brown, + strawbroomribbon/.code = \def\thing@strawbroomribbon{#1}, + strawbroomribbon = red!50!black, + broom/.code = \thing@broomtrue + \def\thing@broom{#1}, + broom/.default = brown, + broomstick/.code = \def\thing@broomstick{#1}, + broomstick = gray!50!black, umbrella/.code = \thing@umbrellatrue \def\thing@umbrella{#1}, - umbrella/.default = cyan, + umbrella/.default = cyan, umbrellaclosed/.code = \thing@umbrellaclosedtrue \def\thing@umbrellaclosed{#1}, - umbrellaclosed/.default = cyan, + umbrellaclosed/.default = cyan, umbrella closed/.forward to = /thing/umbrellaclosed, handbag/.code = \thing@handbagtrue \def\thing@handbag{#1}, @@ -384,10 +398,8 @@ \ifthing@harlequin \begin{scope}[xshift=-26] \path (0.19,1.85) rectangle (1.85,2.67); - \begin{pgfinterruptboundingbox} - \fill[\thing@harlequin] (0.6006,1.9719) .. controls (0.7432,1.8954) and (0.9320,1.8698) .. (0.9320,1.8698) -- (1.0404,2.3839) .. controls (0.9223,2.8873) and (0.1755,2.5634) .. (0.3019,2.2958) .. controls (0.5807,2.5024) and (0.7251,2.3376) .. (0.6006,1.9719) -- cycle; - \fill[\thing@niuqelrah] (1.2853,1.8902) .. controls (1.1177,1.8507) and (0.9278,1.8703) .. (0.9278,1.8703) -- (1.0404,2.3839) .. controls (1.3637,2.8347) and (1.9373,2.3532) .. (1.7049,2.1284) .. controls (1.5267,2.3895) and (1.3204,2.2666) .. (1.2853,1.8902) -- cycle; - \end{pgfinterruptboundingbox} + \fill[\thing@harlequin,overlay] (0.6006,1.9719) .. controls (0.7432,1.8954) and (0.9320,1.8698) .. (0.9320,1.8698) -- (1.0404,2.3839) .. controls (0.9223,2.8873) and (0.1755,2.5634) .. (0.3019,2.2958) .. controls (0.5807,2.5024) and (0.7251,2.3376) .. (0.6006,1.9719) -- cycle; + \fill[\thing@niuqelrah,overlay] (1.2853,1.8902) .. controls (1.1177,1.8507) and (0.9278,1.8703) .. (0.9278,1.8703) -- (1.0404,2.3839) .. controls (1.3637,2.8347) and (1.9373,2.3532) .. (1.7049,2.1284) .. controls (1.5267,2.3895) and (1.3204,2.2666) .. (1.2853,1.8902) -- cycle; \fill[\thing@harlequin] (1.7,2.07) circle[radius=0.1]; \fill[\thing@niuqelrah] (0.3,2.23) circle[radius=0.1]; \end{scope} @@ -831,6 +843,25 @@ \fill[\thing@pickaxe] (-0.77, 0.57) .. controls (-0.14, 0.25) and (-0.02, 0.21) .. (0.60, 0.02) .. controls (-0.12, 0.03) and (-0.22, 0.10) .. (-0.77, 0.57) -- cycle; \fi % +% strawbroom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@strawbroom + \begin{scope}[xshift=-24] + \fill[\thing@strawbroomstick] (0.9160,0.5478) -- (1.2792,1.6574) .. controls (1.3063,1.6961) and (1.3956,1.6649) .. (1.3688,1.6176) -- (0.9508,0.5179) .. controls (0.9360,0.5142) and (0.9202,0.5331) .. (0.9160,0.5478) -- cycle; + \fill[\thing@strawbroom] (0.5528,0.2890) .. controls (0.6449,0.3598) and (0.7460,0.5693) .. (0.8911,0.6871) .. controls (0.9481,0.7215) and (1.0395,0.6925) .. (1.0553,0.6224) .. controls (1.1219,0.4385) and (0.9965,0.2147) .. (1.0056,0.1000) .. controls (0.8926,0.0241) and (0.5950,0.2078) .. (0.5528,0.2890) -- cycle; + \draw[\thing@strawbroomribbon,line width=\scalingfactor*0.4pt] (0.7916,0.5876) .. controls (0.7916,0.5876) and (0.8210,0.5404) .. (0.8451,0.5304) .. controls (0.8708,0.5197) and (0.9021,0.5419) .. (0.9284,0.5329) .. controls (0.9544,0.5240) and (0.9663,0.4903) .. (0.9919,0.4806) .. controls (1.0148,0.4720) and (1.0653,0.4781) .. (1.0653,0.4781); + \draw[\thing@strawbroomribbon,line width=\scalingfactor*0.4pt] (0.7565,0.5493) .. controls (0.7565,0.5493) and (0.7897,0.4961) .. (0.8169,0.4848) .. controls (0.8458,0.4727) and (0.8812,0.4978) .. (0.9109,0.4876) .. controls (0.9401,0.4776) and (0.9535,0.4396) .. (0.9824,0.4287) .. controls (1.0083,0.4189) and (1.0652,0.4259) .. (1.0652,0.4259); + \end{scope} +\fi +% +% broom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@broom + \begin{scope}[rotate=-10,xshift=-23,yshift=-4] + \draw[\thing@broomstick,line width=\scalingfactor*1.8pt] (0.9, 1.8) -- ++(0,-1.4); + \draw[\thing@broomstick,line width=\scalingfactor*1.8pt] (0.6, 0.42) -- ++(0.6,0); + \fill[\thing@broom] (0.6, 0.40) -- ++(-0.05,-0.1) -- ++(0.7,0) -- ++(-0.05, 0.1) -- cycle; + \end{scope} +\fi +% % umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@umbrella \path (-0.8, 0.4) rectangle (1.2200000000000002, 2.7); diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-anteaters.sty b/graphics/pgf/contrib/tikzlings/tikzlings-anteaters.sty index b14a2d76d1..721502f6cd 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-anteaters.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-anteaters.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/anteater.tex + % !TeX root = ./examples/anteater.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-anteaters}[2021/04/16 version v0.6 Drawing anteaters in TikZ] +\ProvidesPackage{tikzlings-anteaters}[2021/08/06 version v0.8 Drawing anteaters in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -63,117 +63,168 @@ } \def\anteater@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.75,0.1) rectangle (1.12,2.26); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from + % https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifanteater@threeD + \def\anteater@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifanteater@contour + \def\anteater@part@draw[##1]{\draw[##1,\anteater@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\anteater@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname anteaterhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifanteater@back + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle; + \fi% back + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!45!white!95!orange] (-0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=70] (0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body] (0.52, 0.8) .. controls (0.52, 0.23) and (0.3, 0.17) .. (0, 0.17) .. controls (-0.3, 0.17) and (-0.52, 0.23) .. (-0.52, 0.8) .. controls (-0.52, 1.35) and (-0.3, 1.8) .. (0, 1.8) .. controls (0.3, 1.8) and (0.52, 1.35) .. (0.52, 0.8) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname anteaterhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + \ifanteater@back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!45!white!95!orange] (-0,1.47) ellipse [x radius=0.36, y radius=0.28]; + % + % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] + (-0,1.47) ellipse [x radius=0.35, y radius=0.23]; + \anteater@part@draw[\anteater@body] (-0,1.73) ellipse [x radius=0.36, y radius=0.33]; + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.5551, 2.2281) .. controls (0.4961, 2.2273) and (0.4390, 2.2093) .. (0.3831, 2.1919) .. controls (0.3282, 2.173) and (0.2725, 2.1539) .. (0.2231, 2.1228) .. controls (0.1875, 2.0984) and (0.1524, 2.0637) .. (0.1470, 2.0187) .. controls (0.1446, 2.0028) and (0.1518, 1.9881) .. (0.1584, 1.9744) .. controls (0.1706, 1.9343) and (0.2090, 1.9063) .. (0.25, 1.9017) .. controls (0.3079, 1.8943) and (0.3684, 1.9134) .. (0.4132, 1.9504) .. controls (0.4657, 1.9988) and (0.5111, 2.0545) .. (0.5513, 2.1133) .. controls (0.5692, 2.1404) and (0.5854, 2.1692) .. (0.5945, 2.2004) .. controls (0.5989, 2.2232) and (0.5717, 2.2282) .. (0.5551, 2.2281) -- cycle; + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.5551, 2.2281) .. controls (-0.4961, 2.2273) and (-0.4390, 2.2093) .. (-0.3831, 2.1919) .. controls (-0.3282, 2.173) and (-0.2725, 2.1539) .. (-0.2231, 2.1228) .. controls (-0.1875, 2.0984) and (-0.1524, 2.0637) .. (-0.1470, 2.0187) .. controls (-0.1446, 2.0028) and (-0.1518, 1.9881) .. (-0.1584, 1.9744) .. controls (-0.1706, 1.9343) and (-0.2090, 1.9063) .. (-0.25, 1.9017) .. controls (-0.3079, 1.8943) and (-0.3684, 1.9134) .. (-0.4132, 1.9504) .. controls (-0.4657, 1.9988) and (-0.5111, 2.0545) .. (-0.5513, 2.1133) .. controls (-0.5692, 2.1404) and (-0.5854, 2.1692) .. (-0.5945, 2.2004) .. controls (-0.5989, 2.2232) and (-0.5717, 2.2282) .. (-0.5551, 2.2281) -- cycle; + % + \else% back + % + % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!45!white!95!orange] (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.5, 1.05) and (-0.1, 0.95) .. (0, 0.60) .. controls (0.1, 0.95) and (0.5, 1.05) .. (0.33, 1.55) -- cycle; + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.45, 1.1) and (-0.1, 1) .. (0, 0.70) .. controls (0.1, 1) and (0.45, 1.1) .. (0.33, 1.55) -- cycle; + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.3531, 1.9773) .. controls (0.4315, 2.0197) and (0.6217, 2.172) .. (0.5917, 2.2157) .. controls (0.5615, 2.2594) and (0.3224, 2.178) .. (0.2441, 2.1354) .. controls (0.1659, 2.093) and (0.1269, 2.023) .. (0.1569, 1.9793) .. controls (0.1870, 1.9356) and (0.2748, 1.9347) .. (0.3531, 1.9773) -- cycle; + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.3531, 1.9773) .. controls (-0.4315, 2.0197) and (-0.6217, 2.172) .. (-0.5917, 2.2157) .. controls (-0.5615, 2.2594) and (-0.3224, 2.178) .. (-0.2441, 2.1354) .. controls (-0.1659, 2.093) and (-0.1269, 2.023) .. (-0.1569, 1.9793) .. controls (-0.1870, 1.9356) and (-0.2748, 1.9347) .. (-0.3531, 1.9773) -- cycle; + \anteater@part@draw[\anteater@body!45!white!95!orange] (0.4086, 1.9465) .. controls (0.4679, 1.9952) and (0.6205, 2.1813) .. (0.5862, 2.2146) .. controls (0.5517, 2.2477) and (0.3434, 2.1152) .. (0.2841, 2.0665) .. controls (0.2249, 2.0177) and (0.2048, 1.9515) .. (0.2391, 1.9184) .. controls (0.2736, 1.8853) and (0.3494, 1.8979) .. (0.40861, 1.9465) -- cycle + (-0.4086, 1.9465) .. controls (-0.4679, 1.9952) and (-0.6205, 2.1813) .. (-0.5862, 2.2146) .. controls (-0.5517, 2.2477) and (-0.3434, 2.1152) .. (-0.2841, 2.0665) .. controls (-0.2249, 2.0177) and (-0.2048, 1.9515) .. (-0.2391, 1.9184) .. controls (-0.2736, 1.8853) and (-0.3494, 1.8979) .. (-0.40861, 1.9465) -- cycle; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body] + (0.33, 1.71) .. controls (0.16, 1.52) and (0.1, 1.5) .. (0.08, 1.05) .. controls (0.07, 1) and (-0.07, 1) .. (-0.08, 1.05) .. controls (-0.1, 1.5) and (-0.16, 1.52) .. (-0.33, 1.7) .. controls (-0.45, 1.85) and (-0.22, 2.05) .. (0, 2.05) .. controls (0.22, 2.05) and (0.45, 1.85) .. (0.33, 1.7) -- cycle; + % + % Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!45!white!95!orange] (0.3508, 1.739) .. controls (0.3508, 1.739) and (0.2861, 1.8489) .. (0.1571, 1.7664) .. controls (0.0279, 1.684) and (0.0627, 1.0524) .. (0.0627, 1.0524) .. controls (0.0627, 1.0524) and (0.131, 1.3772) .. (0.2314, 1.44) .. controls (0.3599, 1.5206) and (0.3508, 1.739) .. (0.3508, 1.739) -- cycle + (-0.3508, 1.739) .. controls (-0.3508, 1.739) and (-0.2861, 1.8489) .. (-0.1571, 1.7664) .. controls (-0.0279, 1.684) and (-0.0627, 1.0524) .. (-0.0627, 1.0524) .. controls (-0.0627, 1.0524) and (-0.131, 1.3772) .. (-0.2314, 1.44) .. controls (-0.3599, 1.5206) and (-0.3508, 1.739) .. (-0.3508, 1.739) -- cycle; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0, 1.08) ellipse[x radius=0.08, y radius=0.05]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@eye] (0.23, 1.7) circle[radius=0.05]; + \anteater@part@draw[\anteater@eye] (-0.23, 1.7) circle[radius=0.05]; + \fi% back + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifanteater@back + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname anteaterhookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.75,0.1) rectangle (1.12,2.26); -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Anteater]{Peter, the anteater} % -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 +%\subsection{Package name} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-anteaters}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 +%\subsection{Basic Usage} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifanteater@threeD - \def\anteater@part@draw[##1]{\shade[ball color=##1]} -\else - \ifanteater@contour - \def\anteater@part@draw[##1]{\draw[##1,\anteater@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\anteater@part@draw[##1]{\fill[##1]} - \fi -\fi +%\begin{tcblisting}{} +%\anteater +%\end{tcblisting} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\subsection{Options} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname anteaterhookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; +%The basic anteater can be modified by changing its colour: +%\begin{tcblisting}{} +%\anteater[body=blue] +%\end{tcblisting} % -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifanteater@back - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle; -\fi +%In addition to the colour of the body, the colour of the eyes can be adjusted: +%\begin{tcblisting}{} +%\anteater[eye=red] +%\end{tcblisting} % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\anteater@part@draw[\anteater@body!45!white!95!orange] (-0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=70] (0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; +%To view the anteater from behind: +%\begin{tcblisting}{} +%\anteater[back] +%\end{tcblisting} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\anteater@part@draw[\anteater@body] (0.52, 0.8) .. controls (0.52, 0.23) and (0.3, 0.17) .. (0, 0.17) .. controls (-0.3, 0.17) and (-0.52, 0.23) .. (-0.52, 0.8) .. controls (-0.52, 1.35) and (-0.3, 1.8) .. (0, 1.8) .. controls (0.3, 1.8) and (0.52, 1.35) .. (0.52, 0.8) -- cycle; +%The key \lstinline|3D| will make the anteater 3-dimensional: +%\begin{tcblisting}{} +%\anteater[3D] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname anteaterhookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -\ifanteater@back - % - % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body!45!white!95!orange] (-0,1.47) ellipse [x radius=0.36, y radius=0.28]; - % - % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] - (-0,1.47) ellipse [x radius=0.35, y radius=0.23]; - \anteater@part@draw[\anteater@body] (-0,1.73) ellipse [x radius=0.36, y radius=0.33]; - % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.5551, 2.2281) .. controls (0.4961, 2.2273) and (0.4390, 2.2093) .. (0.3831, 2.1919) .. controls (0.3282, 2.173) and (0.2725, 2.1539) .. (0.2231, 2.1228) .. controls (0.1875, 2.0984) and (0.1524, 2.0637) .. (0.1470, 2.0187) .. controls (0.1446, 2.0028) and (0.1518, 1.9881) .. (0.1584, 1.9744) .. controls (0.1706, 1.9343) and (0.2090, 1.9063) .. (0.25, 1.9017) .. controls (0.3079, 1.8943) and (0.3684, 1.9134) .. (0.4132, 1.9504) .. controls (0.4657, 1.9988) and (0.5111, 2.0545) .. (0.5513, 2.1133) .. controls (0.5692, 2.1404) and (0.5854, 2.1692) .. (0.5945, 2.2004) .. controls (0.5989, 2.2232) and (0.5717, 2.2282) .. (0.5551, 2.2281) -- cycle; - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.5551, 2.2281) .. controls (-0.4961, 2.2273) and (-0.4390, 2.2093) .. (-0.3831, 2.1919) .. controls (-0.3282, 2.173) and (-0.2725, 2.1539) .. (-0.2231, 2.1228) .. controls (-0.1875, 2.0984) and (-0.1524, 2.0637) .. (-0.1470, 2.0187) .. controls (-0.1446, 2.0028) and (-0.1518, 1.9881) .. (-0.1584, 1.9744) .. controls (-0.1706, 1.9343) and (-0.2090, 1.9063) .. (-0.25, 1.9017) .. controls (-0.3079, 1.8943) and (-0.3684, 1.9134) .. (-0.4132, 1.9504) .. controls (-0.4657, 1.9988) and (-0.5111, 2.0545) .. (-0.5513, 2.1133) .. controls (-0.5692, 2.1404) and (-0.5854, 2.1692) .. (-0.5945, 2.2004) .. controls (-0.5989, 2.2232) and (-0.5717, 2.2282) .. (-0.5551, 2.2281) -- cycle; -% -\else - % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body!45!white!95!orange] (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.5, 1.05) and (-0.1, 0.95) .. (0, 0.60) .. controls (0.1, 0.95) and (0.5, 1.05) .. (0.33, 1.55) -- cycle; - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.45, 1.1) and (-0.1, 1) .. (0, 0.70) .. controls (0.1, 1) and (0.45, 1.1) .. (0.33, 1.55) -- cycle; - % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.3531, 1.9773) .. controls (0.4315, 2.0197) and (0.6217, 2.172) .. (0.5917, 2.2157) .. controls (0.5615, 2.2594) and (0.3224, 2.178) .. (0.2441, 2.1354) .. controls (0.1659, 2.093) and (0.1269, 2.023) .. (0.1569, 1.9793) .. controls (0.1870, 1.9356) and (0.2748, 1.9347) .. (0.3531, 1.9773) -- cycle; - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.3531, 1.9773) .. controls (-0.4315, 2.0197) and (-0.6217, 2.172) .. (-0.5917, 2.2157) .. controls (-0.5615, 2.2594) and (-0.3224, 2.178) .. (-0.2441, 2.1354) .. controls (-0.1659, 2.093) and (-0.1269, 2.023) .. (-0.1569, 1.9793) .. controls (-0.1870, 1.9356) and (-0.2748, 1.9347) .. (-0.3531, 1.9773) -- cycle; - \anteater@part@draw[\anteater@body!45!white!95!orange] (0.4086, 1.9465) .. controls (0.4679, 1.9952) and (0.6205, 2.1813) .. (0.5862, 2.2146) .. controls (0.5517, 2.2477) and (0.3434, 2.1152) .. (0.2841, 2.0665) .. controls (0.2249, 2.0177) and (0.2048, 1.9515) .. (0.2391, 1.9184) .. controls (0.2736, 1.8853) and (0.3494, 1.8979) .. (0.40861, 1.9465) -- cycle - (-0.4086, 1.9465) .. controls (-0.4679, 1.9952) and (-0.6205, 2.1813) .. (-0.5862, 2.2146) .. controls (-0.5517, 2.2477) and (-0.3434, 2.1152) .. (-0.2841, 2.0665) .. controls (-0.2249, 2.0177) and (-0.2048, 1.9515) .. (-0.2391, 1.9184) .. controls (-0.2736, 1.8853) and (-0.3494, 1.8979) .. (-0.40861, 1.9465) -- cycle; - % - % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body] - (0.33, 1.71) .. controls (0.16, 1.52) and (0.1, 1.5) .. (0.08, 1.05) .. controls (0.07, 1) and (-0.07, 1) .. (-0.08, 1.05) .. controls (-0.1, 1.5) and (-0.16, 1.52) .. (-0.33, 1.7) .. controls (-0.45, 1.85) and (-0.22, 2.05) .. (0, 2.05) .. controls (0.22, 2.05) and (0.45, 1.85) .. (0.33, 1.7) -- cycle; - % - % Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body!45!white!95!orange] (0.3508, 1.739) .. controls (0.3508, 1.739) and (0.2861, 1.8489) .. (0.1571, 1.7664) .. controls (0.0279, 1.684) and (0.0627, 1.0524) .. (0.0627, 1.0524) .. controls (0.0627, 1.0524) and (0.131, 1.3772) .. (0.2314, 1.44) .. controls (0.3599, 1.5206) and (0.3508, 1.739) .. (0.3508, 1.739) -- cycle - (-0.3508, 1.739) .. controls (-0.3508, 1.739) and (-0.2861, 1.8489) .. (-0.1571, 1.7664) .. controls (-0.0279, 1.684) and (-0.0627, 1.0524) .. (-0.0627, 1.0524) .. controls (-0.0627, 1.0524) and (-0.131, 1.3772) .. (-0.2314, 1.44) .. controls (-0.3599, 1.5206) and (-0.3508, 1.739) .. (-0.3508, 1.739) -- cycle; - % - % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0, 1.08) ellipse[x radius=0.08, y radius=0.05]; - % - % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \anteater@part@draw[\anteater@eye] (0.23, 1.7) circle[radius=0.05]; - \anteater@part@draw[\anteater@eye] (-0.23, 1.7) circle[radius=0.05]; -\fi -% -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifanteater@back - \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname anteaterhookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} - +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\anteater[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-bats.sty b/graphics/pgf/contrib/tikzlings/tikzlings-bats.sty new file mode 100644 index 0000000000..9e8daeb75d --- /dev/null +++ b/graphics/pgf/contrib/tikzlings/tikzlings-bats.sty @@ -0,0 +1,260 @@ + % !TeX root = ./examples/bat.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-bats}[2021/08/06 version v0.8 Drawing bats in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\bat}[1][]{% + \begin{scope}% + \tikzset{/bat/.cd,#1}% + \bat@draw% + \end{scope}% + \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bathookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % +} + +\newif\ifbat@threeD +\newif\ifbat@back +\newif\ifbat@contour +\newif\ifbat@teeth + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /bat/.search also={/tikz,/pgf,/thing}, + /bat/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\bat@body{#1}, + body = black!75!white, + ears/.code = \def\bat@ears{#1}, + ears = \bat@body, + eye/.code = \def\bat@eye{#1}, + eye = white, + pupil/.code = \def\bat@pupil{#1}, + pupil = black, + mouth/.code = \def\bat@mouth{#1}, + mouth = black, + feet/.code = \def\bat@feet{#1}, + feet = orange, + wings/.code = \def\bat@wings{#1}, + wings = 1, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + teeth/.code = \bat@teethtrue + \def\bat@teeth{#1}, + teeth/.default = white, + 3D/.code = \bat@threeDtrue, + back/.code = \bat@backtrue, + contour/.code = \bat@contourtrue + \def\bat@contour{#1} + \def\bat@antennas{#1} + \def\bat@mouth{#1}, + contour/.default = black, + outline/.forward to = /bat/contour, +} + +\def\bat@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.44,0.0) rectangle (0.44, 2.2); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbat@threeD + \def\bat@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifbat@contour + \def\bat@part@draw[##1]{\draw[##1,\bat@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\bat@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname batshookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bat@part@draw[\bat@body] (-0.4147-\bat@wings*1.8711, 0.6377) .. controls (-0.4147-\bat@wings*2.0410, 1.1512) and (-0.4147-\bat@wings*1.1342, 1.5336) .. (-0.4147-\bat@wings*0.5687, 1.6054) .. controls (-0.4147-\bat@wings*0.3860, 1.4742) and (-0.4147-\bat@wings*0.0711, 1.3009) .. (-0.35, 1.2365) -- (-0.35, 0.5586) .. controls (-0.4147-\bat@wings*0.0890, 0.6892) and (-0.4147-\bat@wings*0.2882, 0.7333) .. (-0.4147-\bat@wings*0.4758, 0.6377) .. controls (-0.4147-\bat@wings*0.6753, 0.841) and (-0.4147-\bat@wings*0.9758, 0.8349) .. (-0.4147-\bat@wings*1.1476, 0.6377) .. controls (-0.4147-\bat@wings*1.2902, 0.8407) and (-0.4147-\bat@wings*1.72, 0.8553) .. (-0.4147-\bat@wings*1.8711, 0.6377) -- cycle; + \bat@part@draw[\bat@body] (0.4147+\bat@wings*1.8711, 0.6377) .. controls (0.4147+\bat@wings*2.0410, 1.1512) and (0.4147+\bat@wings*1.1342, 1.5336) .. (0.4147+\bat@wings*0.5687, 1.6054) .. controls (0.4147+\bat@wings*0.3860, 1.4742) and (0.4147+\bat@wings*0.0711, 1.3009) .. (0.35, 1.2365) -- (0.35, 0.5586) .. controls (0.4147+\bat@wings*0.0890, 0.6892) and (0.4147+\bat@wings*0.2882, 0.7333) .. (0.4147+\bat@wings*0.4758, 0.6377) .. controls (0.4147+\bat@wings*0.6753, 0.841) and (0.4147+\bat@wings*0.9758, 0.8349) .. (0.4147+\bat@wings*1.1476, 0.6377) .. controls (0.4147+\bat@wings*1.2902, 0.8407) and (0.4147+\bat@wings*1.72, 0.8553) .. (0.4147+\bat@wings*1.8711, 0.6377) -- cycle; + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bat@part@draw[\bat@ears] (-0.3498, 1.7392) .. controls (-0.3498, 1.7392) and (-0.4724, 1.9226) .. (-0.3896, 2.177) .. controls (-0.2561, 2.2679) and (-0.0953, 1.9447) .. (0.0234, 1.9394) -- cycle; + \bat@part@draw[\bat@ears] (0.3498, 1.7392) .. controls (0.3498, 1.7392) and (0.4724, 1.9226) .. (0.3896, 2.177) .. controls (0.2561, 2.2679) and (0.0953, 1.9447) .. (-0.0234, 1.9394) -- cycle; + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbat@back + \bat@part@draw[\bat@feet] (0.175,0.1) ellipse[x radius=0.03, y radius=0.1]; + \bat@part@draw[\bat@feet] (0.225,0.11) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \bat@part@draw[\bat@feet] (0.275,0.13) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \bat@part@draw[\bat@feet] (-0.175,0.1) ellipse[x radius=0.03, y radius=0.1]; + \bat@part@draw[\bat@feet] (-0.225,0.11) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \bat@part@draw[\bat@feet] (-0.275,0.13) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bat@part@draw[\bat@body] (0,0.8) ellipse [y radius=0.7, x radius=0.45]; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bat@part@draw[\bat@body] (0,1.55) circle [radius=0.43]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname batshookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifbat@back + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bat@part@draw[\bat@feet] (0.175,0.1) ellipse[x radius=0.03, y radius=0.1]; + \bat@part@draw[\bat@feet] (0.225,0.11) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \bat@part@draw[\bat@feet] (0.275,0.13) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \bat@part@draw[\bat@feet] (-0.175,0.1) ellipse[x radius=0.03, y radius=0.1]; + \bat@part@draw[\bat@feet] (-0.225,0.11) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \bat@part@draw[\bat@feet] (-0.275,0.13) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bat@part@draw[\bat@eye] (-0.18,1.66) ellipse[x radius=0.1, y radius=0.15, rotate=10]; + \bat@part@draw[\bat@pupil] (-0.15,1.645) ellipse[x radius=0.0357, y radius=0.0714, rotate=3]; + \bat@part@draw[\bat@eye] (0.18,1.66) ellipse[x radius=0.1, y radius=0.15, rotate=-10]; + \bat@part@draw[\bat@pupil] (0.15,1.645) ellipse[x radius=0.0357, y radius=0.0714, rotate=-3]; + % + % Teeth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbat@teeth + \bat@part@draw[\bat@teeth] (-0.1,1.36) -- (-0.12,1.3) -- (-0.14,1.38) -- cycle; + \bat@part@draw[\bat@teeth] (0.1,1.36) -- (0.12,1.3) -- (0.14,1.38) -- cycle; + \fi + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\bat@mouth,line width=\scalingfactor*0.4pt] (0.18, 1.42) arc [start angle=-40, end angle=-140, radius=0.23]; + % + % + \fi% back + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname batshookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Documentation +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Bat]{Natalie, the bat} +% +%\emph{Named after a dear friend from my undergrad studies} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-bats}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\bat +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic bat can be modified by changing its colour: +%\begin{tcblisting}{} +%\bat[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\bat[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bat[pupil=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bat[mouth=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bat[ears=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bat[feet=red] +%\end{tcblisting} +% +%The spread of the wings can be adjusted by passing values between 0 and 1 to the \lstinline|wings| option: +%\begin{tcblisting}{} +%\bat[wings=0.5] +%\end{tcblisting} +% +%To turn the bat into a vampire bat, the \lstinline|teeth| option can be used: +%\begin{tcblisting}{} +%\bat[teeth=white] +%\end{tcblisting} +% +%To view the bat from behind: +%\begin{tcblisting}{} +%\bat[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the bat 3-dimensional: +%\begin{tcblisting}{} +%\bat[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\bat[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty b/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty index b0b7b8de69..29ac05ff93 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/bear.tex + % !TeX root = ./examples/bear.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-bears}[2021/04/16 version v0.6 Draw teddy bears in TikZ] +\ProvidesPackage{tikzlings-bears}[2021/08/06 version v0.8 Draw teddy bears in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -49,6 +49,8 @@ body = brown, eye/.code = \def\bear@eye{#1}, eye = \bear@body!30!black, + mouth/.code = \def\bear@mouth{#1}, + mouth = \bear@body!30!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options @@ -57,117 +59,185 @@ 3D/.code = \bear@threeDtrue, back/.code = \bear@backtrue, contour/.code = \bear@contourtrue - \def\bear@contour{#1}, + \def\bear@contour{#1} + \def\bear@mouth{#1}, contour/.default = black, outline/.forward to = /bear/contour, } \def\bear@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.8, 0.0) rectangle (0.8, 2.13); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbear@threeD + \def\bear@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifbear@contour + \def\bear@part@draw[##1]{\draw[##1,\bear@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\bear@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bearhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bear@part@draw[\bear@body!70!black] (0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=-50]; + \bear@part@draw[\bear@body!70!black] (-0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=50]; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbear@back + \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28]; + \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bear@part@draw[\bear@body!70!black] (0,0.75) ellipse[x radius=0.55, y radius=0.65]; + \unless\ifbear@back + \bear@part@draw[\bear@body!50!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4]; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bearhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifbear@back + \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28]; + \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28]; + \bear@part@draw[\bear@body!50!white] (0.425, 0.3) circle[radius=0.17]; + \bear@part@draw[\bear@body!50!white] (-0.425, 0.3) circle[radius=0.17]; + \fi% back + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bear@part@draw[\bear@body!70!black] (0.375, 1.95) circle[radius=0.15]; + \bear@part@draw[\bear@body!70!black] (-0.375, 1.95) circle[radius=0.15]; + \unless\ifbear@back + \bear@part@draw[\bear@body!50!white] (0.375, 1.95) circle[radius=0.1]; + \bear@part@draw[\bear@body!50!white] (-0.375, 1.95) circle[radius=0.1]; + \fi% back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bear@part@draw[\bear@body!70!black] (0, 1.55) circle[radius=0.5]; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifbear@back + % + % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bear@part@draw[\bear@body!50!white] (0, 1.4) ellipse[x radius=0.28, y radius=0.2]; + \bear@part@draw[\bear@body!70!white!80!red] (0, 1.5) ellipse[x radius=0.15, y radius=0.08]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bear@part@draw[\bear@eye] (-0.155, 1.7) circle[radius=0.05]; + \bear@part@draw[\bear@eye] (0.155, 1.7) circle[radius=0.05]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\bear@mouth,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16]; + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bearhookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Bear]{B\"ar, the teddy bear} % -% minimal bounding box size +%\emph{If you look very closely at the group picture in \href{https://www.tug.org/TUGboat/tb39-2/tb122wright-tug18.pdf}{TUG goes to Rio} you can spot the real B\"ar in it} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.8, 0.0) rectangle (0.8, 2.13); +%\subsection{Package name} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-bears}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 +%\subsection{Basic Usage} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +%\begin{tcblisting}{} +%\bear +%\end{tcblisting} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 +%\subsection{Options} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifbear@threeD - \def\bear@part@draw[##1]{\shade[ball color=##1]} -\else - \ifbear@contour - \def\bear@part@draw[##1]{\draw[##1,\bear@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\bear@part@draw[##1]{\fill[##1]} - \fi -\fi +%The basic teddy bear can be modified by changing its colour: +%\begin{tcblisting}{} +%\bear[body=blue] +%\end{tcblisting} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\bear[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bear[mouth=red] +%\end{tcblisting} % -% Body parts (center: x=0.925) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%To view the teddy bear from behind: +%\begin{tcblisting}{} +%\bear[back] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname bearhookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=-50]; -\bear@part@draw[\bear@body!70!black] (-0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=50]; -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifbear@back - \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28]; - \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28]; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0,0.75) ellipse[x radius=0.55, y radius=0.65]; -\unless\ifbear@back - \bear@part@draw[\bear@body!50!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4]; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname bearhookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifbear@back - \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28]; - \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28]; - \bear@part@draw[\bear@body!50!white] (0.425, 0.3) circle[radius=0.17]; - \bear@part@draw[\bear@body!50!white] (-0.425, 0.3) circle[radius=0.17]; -\fi -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0.375, 1.95) circle[radius=0.15]; -\bear@part@draw[\bear@body!70!black] (-0.375, 1.95) circle[radius=0.15]; -\unless\ifbear@back - \bear@part@draw[\bear@body!50!white] (0.375, 1.95) circle[radius=0.1]; - \bear@part@draw[\bear@body!50!white] (-0.375, 1.95) circle[radius=0.1]; -\fi -% -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0, 1.55) circle[radius=0.5]; -% -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifbear@back -% -% Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!50!white] (0, 1.4) ellipse[x radius=0.28, y radius=0.2]; -\bear@part@draw[\bear@body!70!white!80!red] (0, 1.5) ellipse[x radius=0.15, y radius=0.08]; -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@eye] (-0.155, 1.7) circle[radius=0.05]; -\bear@part@draw[\bear@eye] (0.155, 1.7) circle[radius=0.05]; -% -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifbear@contour - \draw[\bear@contour,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16]; -\else - \draw[\bear@body!30!black,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16]; -\fi -% -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname bearhookbody\endcsname -\csname tikzlinghookbody\endcsname +%The key \lstinline|3D| will make the teddy bear 3-dimensional: +%\begin{tcblisting}{} +%\bear[3D] +%\end{tcblisting} % -} +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\bear[contour=black] +%\end{tcblisting} +% +%\subsection{Extension} +% +%The B\"ar and Ulrike Fischer wrote the fantastic \lstinline|bearwear| package, that provides many different clothing options for the \lstinline|TikZbears|. All the other \tikzlings admire them for the nice clothing! +% +%A short example: +% +%\begin{tcblisting}{} +%%\usepackage{bearwear} +%\bear +%\bearwear[ +% long sleeves, +% shirt=red!80!black +%] +%\end{tcblisting} +% +%Many more options and examples can be found in the package documentation \url{https://ctan.org/pkg/bearwear}. diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-bees.sty b/graphics/pgf/contrib/tikzlings/tikzlings-bees.sty index 818f713d44..6c88a2e3d7 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-bees.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-bees.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/bee.tex + % !TeX root = ./examples/bee.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-bees}[2021/04/16 version v0.6 Drawing bees in TikZ] +\ProvidesPackage{tikzlings-bees}[2021/08/06 version v0.8 Drawing bees in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -76,119 +76,187 @@ } \def\bee@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.88,0.1) rectangle (0.88, 2.4); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbee@threeD + \def\bee@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifbee@contour + \def\bee@part@draw[##1]{\draw[##1,\bee@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\bee@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname beeshookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + \ifbee@back + % + % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\bee@antennas,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3); + \fill[\bee@antennas,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3); + \bee@part@draw[\bee@antennas] (-0.22,2.30) circle[radius=0.07]; + \bee@part@draw[\bee@antennas] (0.22,2.30) circle[radius=0.07]; + \else% back + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbee@contour + \bee@part@draw[\bee@wings] (0.5,0.8) circle[radius=0.35]; + \bee@part@draw[\bee@wings] (0.45,1.25) circle[radius=0.35]; + \bee@part@draw[\bee@wings] (-0.5,0.8) circle[radius=0.35]; + \bee@part@draw[\bee@wings] (-0.45,1.25) circle[radius=0.35]; + \else% contour + \fill[\bee@wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35]; + \fill[\bee@wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35]; + \fi% contour + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{scope} + \bee@part@draw[\bee@body] (0,2.1) to[out=180,in=140,looseness=1.2] (-0.3,1.5) to[out=-110,in=180,looseness=1.2] (0,0.15) to[out=00,in=-65,looseness=1.2] (0.3,1.5) to[out=40,in=0,looseness=1.2] cycle; + \clip (0,2.1) to[out=180,in=140,looseness=1.2] (-0.3,1.5) to[out=-110,in=180,looseness=1.2] (0,0.15) to[out=00,in=-65,looseness=1.2] (0.3,1.5) to[out=40,in=0,looseness=1.2] cycle; + % stripes + \bee@part@draw[\bee@stripes] (-0.475,1.3) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle + (-0.475,1.0) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle + (-0.475,0.65) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle + (-0.475,0.35) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle; + \end{scope} + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname beeshookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbee@back + % + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbee@contour + \bee@part@draw[\bee@wings] (0.5,0.8) circle[radius=0.35]; + \bee@part@draw[\bee@wings] (0.45,1.25) circle[radius=0.35]; + \bee@part@draw[\bee@wings] (-0.5,0.8) circle[radius=0.35]; + \bee@part@draw[\bee@wings] (-0.45,1.25) circle[radius=0.35]; + \else% contour + \fill[\bee@wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35]; + \fill[\bee@wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35]; + \fi% contour + \else% back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bee@part@draw[\bee@eye] (-0.15,1.8) circle[radius=0.05]; + \bee@part@draw[\bee@eye] (0.15,1.8) circle[radius=0.05]; + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bee@part@draw[\bee@hands] (-0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=25]; + \bee@part@draw[\bee@hands] (0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=-25]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\bee@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.6) arc [start angle=-40, end angle=-140, radius=0.16]; + % + % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\bee@antennas,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3); + \fill[\bee@antennas,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3); + \bee@part@draw[\bee@antennas] (-0.22,2.30) circle[radius=0.07]; + \bee@part@draw[\bee@antennas] (0.22,2.30) circle[radius=0.07]; + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname beeshookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.88,0.1) rectangle (0.88, 2.4); -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Bee]{Beeing, the bee} % -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 +%\emph{The bee was kindly contributed by @marmot} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +%\subsection{Package name} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-bees}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifbee@threeD - \def\bee@part@draw[##1]{\shade[ball color=##1]} -\else - \ifbee@contour - \def\bee@part@draw[##1]{\draw[##1,\bee@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\bee@part@draw[##1]{\fill[##1]} - \fi -\fi +%\subsection{Basic Usage} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{tcblisting}{} +%\bee +%\end{tcblisting} % -% Body parts (center: x=0) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\subsection{Options} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname beeshookbackground\endcsname -\csname tikzlinghookbackground\endcsname +%The basic bee can be modified by changing its colour: +%\begin{tcblisting}{} +%\bee[body=blue] +%\end{tcblisting} % -\ifbee@back - % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \fill[\bee@antennas,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3); - \fill[\bee@antennas,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3); - \bee@part@draw[\bee@antennas] (-0.22,2.30) circle[radius=0.07]; - \bee@part@draw[\bee@antennas] (0.22,2.30) circle[radius=0.07]; -\else - % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifbee@contour - \bee@part@draw[\bee@wings] (0.5,0.8) circle[radius=0.35]; - \bee@part@draw[\bee@wings] (0.45,1.25) circle[radius=0.35]; - \bee@part@draw[\bee@wings] (-0.5,0.8) circle[radius=0.35]; - \bee@part@draw[\bee@wings] (-0.45,1.25) circle[radius=0.35]; - \else - \fill[\bee@wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35]; - \fill[\bee@wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35]; - \fi -\fi +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\bee[antennas=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bee[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bee[mouth=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bee[wings=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bee[hands=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bee[stripes=red] +%\end{tcblisting} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{scope} - \bee@part@draw[\bee@body] (0,2.1) to[out=180,in=140,looseness=1.2] (-0.3,1.5) to[out=-110,in=180,looseness=1.2] (0,0.15) to[out=00,in=-65,looseness=1.2] (0.3,1.5) to[out=40,in=0,looseness=1.2] cycle; - \clip (0,2.1) to[out=180,in=140,looseness=1.2] (-0.3,1.5) to[out=-110,in=180,looseness=1.2] (0,0.15) to[out=00,in=-65,looseness=1.2] (0.3,1.5) to[out=40,in=0,looseness=1.2] cycle; - % stripes - \bee@part@draw[\bee@stripes] (-0.475,1.3) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle - (-0.475,1.0) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle - (-0.475,0.65) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle - (-0.475,0.35) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle; -\end{scope} +%To view the bee from behind: +%\begin{tcblisting}{} +%\bee[back] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname beeshookbelly\endcsname -\csname tikzlinghookbelly\endcsname +%The key \lstinline|3D| will make the bee 3-dimensional: +%\begin{tcblisting}{} +%\bee[3D] +%\end{tcblisting} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifbee@back - % - % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifbee@contour - \bee@part@draw[\bee@wings] (0.5,0.8) circle[radius=0.35]; - \bee@part@draw[\bee@wings] (0.45,1.25) circle[radius=0.35]; - \bee@part@draw[\bee@wings] (-0.5,0.8) circle[radius=0.35]; - \bee@part@draw[\bee@wings] (-0.45,1.25) circle[radius=0.35]; - \else - \fill[\bee@wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35]; - \fill[\bee@wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35]; - \fi -\else - % - % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \bee@part@draw[\bee@eye] (-0.15,1.8) circle[radius=0.05]; - \bee@part@draw[\bee@eye] (0.15,1.8) circle[radius=0.05]; - % - % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \bee@part@draw[\bee@hands] (-0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=25]; - \bee@part@draw[\bee@hands] (0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=-25]; - % - % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \draw[\bee@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.6) arc [start angle=-40, end angle=-140, radius=0.16]; - % - % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \fill[\bee@antennas,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3); - \fill[\bee@antennas,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3); - \bee@part@draw[\bee@antennas] (-0.22,2.30) circle[radius=0.07]; - \bee@part@draw[\bee@antennas] (0.22,2.30) circle[radius=0.07]; - % -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname beeshookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\bee[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-bugs.sty b/graphics/pgf/contrib/tikzlings/tikzlings-bugs.sty new file mode 100644 index 0000000000..bca48e2680 --- /dev/null +++ b/graphics/pgf/contrib/tikzlings/tikzlings-bugs.sty @@ -0,0 +1,263 @@ + % !TeX root = ./examples/bug.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-bugs}[2021/08/06 version v0.8 Drawing bugs in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\bug}[1][]{% + \begin{scope}% + \tikzset{/bug/.cd,#1}% + \bug@draw% + \end{scope}% + \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bughookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % +} + +\newif\ifbug@threeD +\newif\ifbug@back +\newif\ifbug@contour + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /bug/.search also={/tikz,/pgf,/thing}, + /bug/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\bug@body{#1}, + body = black!90!white, + arms/.code = \def\bug@arms{#1}, + arms = red!80!black, + wings/.code = \def\bug@wings{#1}, + wings = red!80!black, + dots/.code = \def\bug@dots{#1}, + dots = black!90!white, + antennas/.code = \def\bug@antennas{#1}, + antennas = red!80!black, + eye/.code = \def\bug@eye{#1}, + eye = white, + pupil/.code = \def\bug@pupil{#1}, + pupil = black, + mouth/.code = \def\bug@mouth{#1}, + mouth = red, + feet/.code = \def\bug@feet{#1}, + feet = red!80!black, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \bug@threeDtrue, + back/.code = \bug@backtrue, + contour/.code = \bug@contourtrue + \def\bug@contour{#1} + \def\bug@antennas{#1} + \def\bug@mouth{#1}, + contour/.default = black, + outline/.forward to = /bug/contour, +} + +\def\bug@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.92,0.02) rectangle (0.92, 2.36); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbug@threeD + \def\bug@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifbug@contour + \def\bug@part@draw[##1]{\draw[##1,\bug@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\bug@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bugshookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + \ifbug@back + % + % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\bug@antennas,line width=\scalingfactor*0.8pt] (0.1134, 1.911) .. controls (0.0917, 2.0537) and (0.0986, 2.1999) .. (0.1608, 2.2816) .. controls (0.245, 2.3919) and (0.3278, 2.3011) .. (0.3272, 2.2192) .. controls (0.3266, 2.1341) and (0.2237, 2.0423) .. (0.1978, 2.1538); + \draw[\bug@antennas,line width=\scalingfactor*0.8pt] (-0.1134, 1.911) .. controls (-0.0917, 2.0537) and (-0.0986, 2.1999) .. (-0.1608, 2.2816) .. controls (-0.245, 2.3919) and (-0.3278, 2.3011) .. (-0.3272, 2.2192) .. controls (-0.3266, 2.1341) and (-0.2237, 2.0423) .. (-0.1978, 2.1538); + \else% back + % + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bug@part@draw[\bug@wings] (-0.0955, 1.4222) .. controls (-0.2086, 1.6765) and (-0.692, 1.2508) .. (-0.8174, 1.0023) .. controls (-0.9304, 0.7786) and (-0.9533, 0.379) .. (-0.7355, 0.2548) .. controls (-0.5988, 0.1768) and (-0.4043, 0.3269) .. (-0.3054, 0.4494) .. controls (-0.097, 0.7075) and (0.0589, 1.0749) .. (-0.0955, 1.4222) -- cycle; + \bug@part@draw[\bug@wings] (0.0955, 1.4222) .. controls (0.2086, 1.6765) and (0.692, 1.2508) .. (0.8174, 1.0023) .. controls (0.9304, 0.7786) and (0.9533, 0.379) .. (0.7355, 0.2548) .. controls (0.5988, 0.1768) and (0.4043, 0.3269) .. (0.3054, 0.4494) .. controls (0.097, 0.7075) and (-0.0589, 1.0749) .. (0.0955, 1.4222) -- cycle; + \ifbug@contour + \bug@part@draw[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08]; + \else% contour + \fill[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08]; + \fi% contour + \fi% back + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bug@part@draw[\bug@feet] (0.2,0.1) ellipse[x radius=0.18, y radius=0.06]; + \bug@part@draw[\bug@feet] (-0.2,0.1) ellipse[x radius=0.18, y radius=0.06]; + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bug@part@draw[\bug@body] ( 0.55, 0.75) .. controls ( 0.55, 0.40) and ( 0.55, 0.08) .. ( 0.00, 0.08) .. controls (-0.55, 0.08) and (-0.55, 0.40) .. (-0.55, 0.75) .. controls (-0.55, 1.13) and (-0.30, 1.44) .. ( 0.00, 1.44) .. controls ( 0.30, 1.44) and ( 0.55, 1.13) .. ( 0.55, 0.75) -- cycle; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bug@part@draw[\bug@body] (0,1.7) circle [radius=0.37]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bugshookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifbug@back + % + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bug@part@draw[\bug@wings] (-0.0955, 1.4222) .. controls (-0.2086, 1.6765) and (-0.692, 1.2508) .. (-0.8174, 1.0023) .. controls (-0.9304, 0.7786) and (-0.9533, 0.379) .. (-0.7355, 0.2548) .. controls (-0.5988, 0.1768) and (-0.4043, 0.3269) .. (-0.3054, 0.4494) .. controls (-0.097, 0.7075) and (0.0589, 1.0749) .. (-0.0955, 1.4222) -- cycle; + \bug@part@draw[\bug@wings] (0.0955, 1.4222) .. controls (0.2086, 1.6765) and (0.692, 1.2508) .. (0.8174, 1.0023) .. controls (0.9304, 0.7786) and (0.9533, 0.379) .. (0.7355, 0.2548) .. controls (0.5988, 0.1768) and (0.4043, 0.3269) .. (0.3054, 0.4494) .. controls (0.097, 0.7075) and (-0.0589, 1.0749) .. (0.0955, 1.4222) -- cycle; + \ifbug@contour + \bug@part@draw[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08]; + \else% contour + \fill[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08]; + \fi% contour + \else% back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bug@part@draw[\bug@eye] (0.13,1.75) ellipse[x radius=0.067, y radius=0.085]; + \bug@part@draw[\bug@eye] (-0.13,1.75) ellipse[x radius=0.067, y radius=0.085]; + \bug@part@draw[\bug@pupil] (0.12,1.73) ellipse[x radius=0.019, y radius=0.029]; + \bug@part@draw[\bug@pupil] (-0.12,1.73) ellipse[x radius=0.019, y radius=0.029]; + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \bug@part@draw[\bug@arms] (-0.25,0.88) circle[x radius=0.07,y radius=0.18, rotate=35]; + \bug@part@draw[\bug@arms] (0.25,0.88) circle[x radius=0.07,y radius=0.18, rotate=-35]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\bug@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.56) arc [start angle=-40, end angle=-140, radius=0.16]; + % + % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\bug@antennas,line width=\scalingfactor*0.8pt] (0.1134, 1.911) .. controls (0.0917, 2.0537) and (0.0986, 2.1999) .. (0.1608, 2.2816) .. controls (0.245, 2.3919) and (0.3278, 2.3011) .. (0.3272, 2.2192) .. controls (0.3266, 2.1341) and (0.2237, 2.0423) .. (0.1978, 2.1538); + \draw[\bug@antennas,line width=\scalingfactor*0.8pt] (-0.1134, 1.911) .. controls (-0.0917, 2.0537) and (-0.0986, 2.1999) .. (-0.1608, 2.2816) .. controls (-0.245, 2.3919) and (-0.3278, 2.3011) .. (-0.3272, 2.2192) .. controls (-0.3266, 2.1341) and (-0.2237, 2.0423) .. (-0.1978, 2.1538); + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bugshookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Documentation +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Bug]{Marie, the bug} +% +%\emph{For a French girl who likes ladybugs -- the name comes from the German word for ladybug ``Marienkäfer''} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-bugs}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\bug +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic bug can be modified by changing its colour: +%\begin{tcblisting}{} +%\bug[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\bug[antennas=blue] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bug[eye=blue] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bug[pupil=blue] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bug[mouth=blue] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bug[arms=blue] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bug[wings=blue] +%\end{tcblisting} +%\begin{tcblisting}{} +%\bug[feet=blue] +%\end{tcblisting} +% +%To view the bug from behind: +%\begin{tcblisting}{} +%\bug[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the bug 3-dimensional: +%\begin{tcblisting}{} +%\bug[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\bug[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-cats.sty b/graphics/pgf/contrib/tikzlings/tikzlings-cats.sty index fd3559c347..4081fa4a23 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-cats.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-cats.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/cat.tex + % !TeX root = ./examples/cat.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-cats}[2021/04/16 version v0.6 Drawing cats in TikZ] +\ProvidesPackage{tikzlings-cats}[2021/08/06 version v0.8 Drawing cats in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -114,193 +114,287 @@ } \def\cat@draw{% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.56,0.1) rectangle (1.63, 2.22); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifcat@threeD - \def\cat@part@draw[##1]{\shade[ball color=##1]} -\else - \ifcat@contour - \def\cat@part@draw[##1]{\draw[##1,\cat@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\cat@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname cathookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{pgfinterruptboundingbox} - \cat@part@draw[\cat@body] (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle; -\end{pgfinterruptboundingbox} -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifcat@back - \cat@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18]; - \cat@part@draw[\cat@paws] (0.255,0.3) circle[radius=0.18]; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[\cat@body] (0.5462, 0.7155) .. controls (0.5462, 0.1823) and (0.3259, 0.17) .. (0, 0.17) .. controls (-0.3259, 0.17) and (-0.5462, 0.1823) .. (-0.5462, 0.7155) .. controls (-0.5554, 1.2487) and (-0.3075, 1.6768) .. (0, 1.6768) .. controls (0.3075, 1.6768) and (0.5554, 1.2487) .. (0.5462, 0.7155) -- cycle; -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname cathookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[\cat@body] -(0.12, 2.0392) .. controls (0.16, 2.1584) and (0.37, 2.22) .. (0.37, 2.20) .. controls (0.37, 2.2) and (0.39, 1.9) .. (0.2721, 1.9) .. controls (0.1891, 1.88) and (0.12, 1.88) .. (0.12, 2.0392) -- cycle; -\cat@part@draw[\cat@body] -(-0.12, 2.0392) .. controls (-0.16, 2.1584) and (-0.37, 2.22) .. (-0.37, 2.20) .. controls (-0.37, 2.2) and (-0.39, 1.9) .. (-0.2721, 1.9) .. controls (-0.1891, 1.88) and (-0.12, 1.88) .. (-0.12, 2.0392) -- cycle; -% -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[\cat@body] (0,1.64) circle[radius=0.44]; -% -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifcat@back -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[\cat@eye] (-0.1014, 1.7491) .. controls (-0.1014, 1.7491) and (-0.1451, 1.7171) .. (-0.1841, 1.7284) .. controls (-0.2231, 1.7397) and (-0.2427, 1.79) .. (-0.2427, 1.79) .. controls (-0.2427, 1.79) and (-0.1992, 1.8221) .. (-0.1602, 1.8108) .. controls (-0.1212, 1.7995) and (-0.1014, 1.7491) .. (-0.1014, 1.7491) -- cycle; -\cat@part@draw[\cat@eye] (0.1014, 1.7491) .. controls (0.1014, 1.7491) and (0.1451, 1.7171) .. (0.1841, 1.7284) .. controls (0.2231, 1.7397) and (0.2427, 1.79) .. (0.2427, 1.79) .. controls (0.2427, 1.79) and (0.1992, 1.8221) .. (0.1602, 1.8108) .. controls (0.1212, 1.7995) and (0.1014, 1.7491) .. (0.1014, 1.7491) -- cycle; -% -% Pupils %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[\cat@pupil] - (-0.1720, 1.8071) - .. controls (-0.1720+\cat@pupil@width, 1.7827+\cat@pupil@offset) and (-0.1720+\cat@pupil@width, 1.7584-\cat@pupil@offset) .. (-0.1720, 1.7341) - .. controls (-0.1720-\cat@pupil@width, 1.7584-\cat@pupil@offset) and (-0.1720-\cat@pupil@width, 1.7827+\cat@pupil@offset) .. (-0.1720, 1.8071) - -- cycle; -\cat@part@draw[\cat@pupil] - ( 0.1720, 1.8071) - .. controls ( 0.1720+\cat@pupil@width, 1.7827+\cat@pupil@offset) and ( 0.1720+\cat@pupil@width, 1.7584-\cat@pupil@offset) .. ( 0.1720, 1.7341) - .. controls ( 0.1720-\cat@pupil@width, 1.7584-\cat@pupil@offset) and ( 0.1720-\cat@pupil@width, 1.7827+\cat@pupil@offset) .. ( 0.1720, 1.8071) - -- cycle; -% -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\draw[\cat@whiskers,line width=\scalingfactor*0.2pt] (-0.16, 1.527) .. controls (-0.16, 1.527) and (-0.062, 1.420) .. ( 0.000, 1.556) .. controls ( 0.062, 1.420) and ( 0.16, 1.527) .. ( 0.16, 1.527); -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[\cat@nose] (-0.069, 1.6452) .. controls (-0.0524, 1.6613) and (0.0524, 1.6613) .. (0.069, 1.6452) .. controls (0.08, 1.625) and (0.0206, 1.55) .. (0, 1.55) .. controls (-0.0206, 1.55) and (-0.08, 1.625) .. (-0.069, 1.6452) -- cycle; -% -% Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\cat@whiskers] (0.0788, 1.5946) .. controls (0.1658, 1.6099) and (0.2086, 1.5439) .. (0.2956, 1.5286) -- (0.2956, 1.5386) .. controls (0.2097, 1.5537) and (0.1648, 1.6097) .. (0.0788, 1.5946) -- cycle; -\fill[\cat@whiskers] (-0.0788, 1.5946) .. controls (-0.1658, 1.6099) and (-0.2087, 1.5439) .. (-0.2956, 1.5286) -- (-0.2956, 1.5386) .. controls (-0.2097, 1.5537) and (-0.1648, 1.6097) .. (-0.0788, 1.5946) -- cycle; -\fill[\cat@whiskers] (0.0752, 1.6081) .. controls (0.1583, 1.6383) and (0.2171, 1.6109) .. (0.3002, 1.5807) -- (0.3002, 1.5907) .. controls (0.2174, 1.6208) and (0.158, 1.6382) .. (0.0752, 1.6081) -- cycle; -\fill[\cat@whiskers] (-0.0752, 1.6081) .. controls (-0.1583, 1.6383) and (-0.2171, 1.6109) .. (-0.3002, 1.5807) -- (-0.3002, 1.5907) .. controls (-0.2174, 1.6208) and (-0.158, 1.6382) .. (-0.0752, 1.6081) -- cycle; -\fill[\cat@whiskers] (0.0671, 1.6243) .. controls (0.1414, 1.6725) and (0.2182, 1.6964) .. (0.2925, 1.6482) -- (0.2925, 1.6582) .. controls (0.2179, 1.7066) and (0.1417, 1.6727) .. (0.0671, 1.6243) -- cycle; -\fill[\cat@whiskers] (-0.0671, 1.6243) .. controls (-0.1414, 1.6725) and (-0.2182, 1.6964) .. (-0.2925, 1.6482) -- (-0.2925, 1.6582) .. controls (-0.2179, 1.7066) and (-0.1417, 1.6727) .. (-0.0671, 1.6243) -- cycle; -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18]; -\cat@part@draw[\cat@paws] (0.255,0.3) circle[radius=0.18]; -% -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname cathookbody\endcsname -\csname tikzlinghookbody\endcsname + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.56,0.1) rectangle (1.63, 2.22); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcat@threeD + \def\cat@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifcat@contour + \def\cat@part@draw[##1]{\draw[##1,\cat@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\cat@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname cathookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@body,overlay] (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcat@back + \cat@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18]; + \cat@part@draw[\cat@paws] (0.255,0.3) circle[radius=0.18]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@body] (0.5462, 0.7155) .. controls (0.5462, 0.1823) and (0.3259, 0.17) .. (0, 0.17) .. controls (-0.3259, 0.17) and (-0.5462, 0.1823) .. (-0.5462, 0.7155) .. controls (-0.5554, 1.2487) and (-0.3075, 1.6768) .. (0, 1.6768) .. controls (0.3075, 1.6768) and (0.5554, 1.2487) .. (0.5462, 0.7155) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname cathookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@body] + (0.12, 2.0392) .. controls (0.16, 2.1584) and (0.37, 2.22) .. (0.37, 2.20) .. controls (0.37, 2.2) and (0.39, 1.9) .. (0.2721, 1.9) .. controls (0.1891, 1.88) and (0.12, 1.88) .. (0.12, 2.0392) -- cycle; + \cat@part@draw[\cat@body] + (-0.12, 2.0392) .. controls (-0.16, 2.1584) and (-0.37, 2.22) .. (-0.37, 2.20) .. controls (-0.37, 2.2) and (-0.39, 1.9) .. (-0.2721, 1.9) .. controls (-0.1891, 1.88) and (-0.12, 1.88) .. (-0.12, 2.0392) -- cycle; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@body] (0,1.64) circle[radius=0.44]; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcat@back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@eye] (-0.1014, 1.7491) .. controls (-0.1014, 1.7491) and (-0.1451, 1.7171) .. (-0.1841, 1.7284) .. controls (-0.2231, 1.7397) and (-0.2427, 1.79) .. (-0.2427, 1.79) .. controls (-0.2427, 1.79) and (-0.1992, 1.8221) .. (-0.1602, 1.8108) .. controls (-0.1212, 1.7995) and (-0.1014, 1.7491) .. (-0.1014, 1.7491) -- cycle; + \cat@part@draw[\cat@eye] (0.1014, 1.7491) .. controls (0.1014, 1.7491) and (0.1451, 1.7171) .. (0.1841, 1.7284) .. controls (0.2231, 1.7397) and (0.2427, 1.79) .. (0.2427, 1.79) .. controls (0.2427, 1.79) and (0.1992, 1.8221) .. (0.1602, 1.8108) .. controls (0.1212, 1.7995) and (0.1014, 1.7491) .. (0.1014, 1.7491) -- cycle; + % + % Pupils %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@pupil] (-0.1720, 1.8071) .. controls (-0.1720+\cat@pupil@width, 1.7827+\cat@pupil@offset) and (-0.1720+\cat@pupil@width, 1.7584-\cat@pupil@offset) .. (-0.1720, 1.7341) .. controls (-0.1720-\cat@pupil@width, 1.7584-\cat@pupil@offset) and (-0.1720-\cat@pupil@width, 1.7827+\cat@pupil@offset) .. (-0.1720, 1.8071) -- cycle; + \cat@part@draw[\cat@pupil] ( 0.1720, 1.8071) .. controls ( 0.1720+\cat@pupil@width, 1.7827+\cat@pupil@offset) and ( 0.1720+\cat@pupil@width, 1.7584-\cat@pupil@offset) .. ( 0.1720, 1.7341) .. controls ( 0.1720-\cat@pupil@width, 1.7584-\cat@pupil@offset) and ( 0.1720-\cat@pupil@width, 1.7827+\cat@pupil@offset) .. ( 0.1720, 1.8071) -- cycle; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\cat@whiskers,line width=\scalingfactor*0.2pt] (-0.16, 1.527) .. controls (-0.16, 1.527) and (-0.062, 1.420) .. ( 0.000, 1.556) .. controls ( 0.062, 1.420) and ( 0.16, 1.527) .. ( 0.16, 1.527); + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@nose] (-0.069, 1.6452) .. controls (-0.0524, 1.6613) and (0.0524, 1.6613) .. (0.069, 1.6452) .. controls (0.08, 1.625) and (0.0206, 1.55) .. (0, 1.55) .. controls (-0.0206, 1.55) and (-0.08, 1.625) .. (-0.069, 1.6452) -- cycle; + % + % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\cat@whiskers] (0.0788, 1.5946) .. controls (0.1658, 1.6099) and (0.2086, 1.5439) .. (0.2956, 1.5286) -- (0.2956, 1.5386) .. controls (0.2097, 1.5537) and (0.1648, 1.6097) .. (0.0788, 1.5946) -- cycle; + \fill[\cat@whiskers] (-0.0788, 1.5946) .. controls (-0.1658, 1.6099) and (-0.2087, 1.5439) .. (-0.2956, 1.5286) -- (-0.2956, 1.5386) .. controls (-0.2097, 1.5537) and (-0.1648, 1.6097) .. (-0.0788, 1.5946) -- cycle; + \fill[\cat@whiskers] (0.0752, 1.6081) .. controls (0.1583, 1.6383) and (0.2171, 1.6109) .. (0.3002, 1.5807) -- (0.3002, 1.5907) .. controls (0.2174, 1.6208) and (0.158, 1.6382) .. (0.0752, 1.6081) -- cycle; + \fill[\cat@whiskers] (-0.0752, 1.6081) .. controls (-0.1583, 1.6383) and (-0.2171, 1.6109) .. (-0.3002, 1.5807) -- (-0.3002, 1.5907) .. controls (-0.2174, 1.6208) and (-0.158, 1.6382) .. (-0.0752, 1.6081) -- cycle; + \fill[\cat@whiskers] (0.0671, 1.6243) .. controls (0.1414, 1.6725) and (0.2182, 1.6964) .. (0.2925, 1.6482) -- (0.2925, 1.6582) .. controls (0.2179, 1.7066) and (0.1417, 1.6727) .. (0.0671, 1.6243) -- cycle; + \fill[\cat@whiskers] (-0.0671, 1.6243) .. controls (-0.1414, 1.6725) and (-0.2182, 1.6964) .. (-0.2925, 1.6482) -- (-0.2925, 1.6582) .. controls (-0.2179, 1.7066) and (-0.1417, 1.6727) .. (-0.0671, 1.6243) -- cycle; + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18]; + \cat@part@draw[\cat@paws] (0.255,0.3) circle[radius=0.18]; + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname cathookbody\endcsname + \csname tikzlinghookbody\endcsname } \def\cat@tombstone{% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.55,0.39) rectangle (0.55, 2.06); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifcat@threeD - \def\cat@part@draw[##1]{\shade[ball color=##1]} -\else + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.55,0.39) rectangle (0.55, 2.06); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcat@threeD + \def\cat@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifcat@contour + \def\cat@part@draw[##1]{\draw[##1,\cat@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\cat@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Drawing the tomebstone + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname cathookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Stone %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[gray] (-0.55,0.4) -- (-0.55,1.5) arc [start angle=180, end angle=0, radius=0.55] -- (0.55,0.4) -- cycle; + \node[scale=\scalingfactor] at (0,1.3) {R.I.P.}; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname cathookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % soil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \cat@part@draw[brown!65!black] (1,0.15) arc [start angle=50, end angle=130, radius=1.56] -- cycle; + % + % flower %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifcat@contour - \def\cat@part@draw[##1]{\draw[##1,\cat@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\cat@part@draw[##1]{\fill[##1]} - \fi -\fi -% + \draw[\cat@contour,line width=\scalingfactor*0.4pt] (-0.01,0.3) arc [start angle=-15, end angle=30, radius=0.7]; + \else% contour + \draw[green!50!brown,line width=\scalingfactor*0.4pt] (-0.01,0.3) arc [start angle=-15, end angle=30, radius=0.7]; + \fi% contour + \cat@part@draw[green!50!brown] (-0.1377, 0.7384) .. controls (-0.1775, 0.5828) and (-0.1479, 0.4649) .. (0.0072, 0.4246) .. controls (0.0570, 0.5636) and (-0.1529, 0.6447) .. (-0.1377, 0.7384) -- cycle; + \cat@part@draw[green!50!brown] (0.1527, 0.7334) .. controls (0.1925, 0.5778) and (0.1629, 0.4599) .. (0.0178, 0.4196) .. controls (-0.0420, 0.5586) and (0.1679, 0.6397) .. (0.1527, 0.7334) -- cycle; + \foreach \i in {0,51.42857,...,359}{ + \cat@part@draw[yellow!50!white,rotate around={\i:(-0.0865, 0.8219)}] (-0.087, 0.822) .. controls (-0.087, 0.822) and (-0.1635, 0.6638) .. (-0.0818, 0.6653) .. controls (-0.0066, 0.6646) and (-0.087, 0.822) .. (-0.087, 0.822) -- cycle; + } + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname cathookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Drawing the tomebstone -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname cathookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Stone %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[gray] (-0.55,0.4) -- (-0.55,1.5) arc [start angle=180, end angle=0, radius=0.55] -- (0.55,0.4) -- cycle; -\node[scale=\scalingfactor] at (0,1.3) {R.I.P.}; -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname cathookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% soil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cat@part@draw[brown!65!black] (1,0.15) arc [start angle=50, end angle=130, radius=1.56] -- cycle; -% -% flower -\ifcat@contour - \draw[\cat@contour,line width=\scalingfactor*0.4pt] (-0.01,0.3) arc [start angle=-15, end angle=30, radius=0.7]; -\else - \draw[green!50!brown,line width=\scalingfactor*0.4pt] (-0.01,0.3) arc [start angle=-15, end angle=30, radius=0.7]; -\fi -\cat@part@draw[green!50!brown] (-0.1377, 0.7384) .. controls (-0.1775, 0.5828) and (-0.1479, 0.4649) .. (0.0072, 0.4246) .. controls (0.0570, 0.5636) and (-0.1529, 0.6447) .. (-0.1377, 0.7384) -- cycle; -\cat@part@draw[green!50!brown] (0.1527, 0.7334) .. controls (0.1925, 0.5778) and (0.1629, 0.4599) .. (0.0178, 0.4196) .. controls (-0.0420, 0.5586) and (0.1679, 0.6397) .. (0.1527, 0.7334) -- cycle; -\foreach \i in {0,51.42857,...,359}{ - \cat@part@draw[yellow!50!white,rotate around={\i:(-0.0865, 0.8219)}] (-0.087, 0.822) .. controls (-0.087, 0.822) and (-0.1635, 0.6638) .. (-0.0818, 0.6653) .. controls (-0.0066, 0.6646) and (-0.087, 0.822) .. (-0.087, 0.822) -- cycle; -} -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname cathookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%\clearpage +%\section[Cat]{MisTi$k$Zelees, the cat} +% +%\emph{Named after the worlds best singing cat} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-cats}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\cat +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic cat can be modified by changing its colour: +%\begin{tcblisting}{} +%\cat[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\cat[eye=green] +%\end{tcblisting} +%\begin{tcblisting}{} +%\cat[pupil=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\cat[nose=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\cat[whiskers=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\cat[paws=red] +%\end{tcblisting} +% +%The shape of the \lstinline|pupil| can be changed with the \lstinline|pupilwidth| option: +%\begin{tcblisting}{} +%\cat[pupilwidth=0.015] +%\end{tcblisting} +% +%Additionally several predefined widths exist: +%\begin{tcolorbox} +%\begin{lstlisting}[morekeywords={narrow,medium,wide,very,pupils}] +%\cat[narrow pupils] +% +%\cat[medium pupils] +% +%\cat[wide pupils] +% +%\cat[very wide pupils] +%\end{lstlisting} +% +%\tcblower +%\begin{tikzpicture}[yshift=2.4cm,xshift=1.8cm] +%\cat[narrow pupils] +%\cat[medium pupils,xshift=2.5cm] +%\cat[wide pupils,yshift=-2.5cm] +%\cat[very wide pupils,xshift=2.5cm,yshift=-2.5cm] +%\end{tikzpicture} +%\end{tcolorbox} +% +%There is also the special option \lstinline|schroedinger|. This cat is both alive and dead as long as you did not compile your document. +%Be prepared for a possibly disturbing scene when you open the pdf, this option is not suited for sensitive \tikzlings. +%\begingroup +%\makeatletter +%\renewcommand*{\cat}[1][]{% +% \tikzset{/cat/.cd,#1}% +% \cat@tombstone% +%} +%\renewcommand{\cathookbackground}{} +%\makeatother +%\begin{tcblisting}{} +%\cat[schroedinger] +%\end{tcblisting} +%\endgroup +% +%To view the cat from behind: +%\begin{tcblisting}{} +%\cat[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the cat 3-dimensional: +%\begin{tcblisting}{} +%\cat[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\cat[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-chickens.sty b/graphics/pgf/contrib/tikzlings/tikzlings-chickens.sty index af16df2564..0d7a805572 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-chickens.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-chickens.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/chicken.tex + % !TeX root = ./examples/chicken.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-chickens}[2021/04/16 version v0.6 Draw chickens in TikZ] +\ProvidesPackage{tikzlings-chickens}[2021/08/06 version v0.8 Draw chickens in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -82,256 +82,321 @@ } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Grown up chicken -% +%% +%% Grown up chicken +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\chicken@draw{% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.96, 0.08) rectangle (0.96, 2.35); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifchicken@threeD - \def\chicken@part@draw[##1]{\shade[ball color=##1]} -\else - \ifchicken@contour - \def\chicken@part@draw[##1]{\draw[##1,\chicken@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\chicken@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0.925) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname chickenhookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chicken@part@draw[\chicken@body] (0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=-65]; -\chicken@part@draw[\chicken@body] (0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=-43]; -\chicken@part@draw[\chicken@body] (0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=-18]; -\chicken@part@draw[\chicken@body] (-0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=65]; -\chicken@part@draw[\chicken@body] (-0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=43]; -\chicken@part@draw[\chicken@body] (-0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=18]; -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifchicken@back - \chicken@part@draw[\chicken@feet] (0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; - \chicken@part@draw[\chicken@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; - \chicken@part@draw[\chicken@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; - \chicken@part@draw[\chicken@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chicken@part@draw[\chicken@body!50!white] ( 0.00, 0.33) .. controls (-0.60, 0.33) and (-0.55, 0.65) .. (-0.55, 0.90) .. controls (-0.55, 1.10) and (-0.48, 1.20) .. (-0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) .. controls ( 0.48, 1.20) and ( 0.55, 1.10) .. ( 0.55, 0.90) .. controls ( 0.55, 0.65) and ( 0.60, 0.33) .. ( 0, 0.33) -- cycle; -\chicken@part@draw[\chicken@body,decoration={snake,amplitude=\scalingfactor*1.5pt,segment length=\scalingfactor*6.1pt}] ( -0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) decorate {arc [start angle=-60,end angle=-120,radius=0.77]} -- cycle; -% -% Comb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chicken@part@draw[\chicken@comb] (0.04,2.132) ellipse[x radius=0.22, y radius=0.06, rotate=70]; -\chicken@part@draw[\chicken@comb] (-0.03,2.095) ellipse[x radius=0.17, y radius=0.06, rotate=92]; -\chicken@part@draw[\chicken@comb] (-0.082,2.060) ellipse[x radius=0.15, y radius=0.06, rotate=120]; -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname chickenhookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifchicken@back - \chicken@part@draw[\chicken@eye] (0.135,1.8) ellipse[x radius=0.06, y radius=0.07]; - \chicken@part@draw[\chicken@eye] (-0.135,1.8) ellipse[x radius=0.06, y radius=0.07]; - \chicken@part@draw[\chicken@pupil] (0.124,1.78) ellipse[x radius=0.017, y radius=0.027]; - \chicken@part@draw[\chicken@pupil] (-0.124,1.78) ellipse[x radius=0.017, y radius=0.027]; -\fi -% -% Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifchicken@back - \chicken@part@draw[\chicken@comb] (-0.04, 1.57) ellipse[x radius=0.04, y radius=0.08, rotate=-20]; - \chicken@part@draw[\chicken@comb] (0.04, 1.57) ellipse[x radius=0.04, y radius=0.08, rotate=20]; - \chicken@part@draw[\chicken@bill] (-0.09, 1.7) -- (0, 1.58) -- (0.09, 1.7) arc [start angle=50, end angle=130, radius=0.14] -- cycle; -\fi -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifchicken@back - \chicken@part@draw[\chicken@feet] (0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; - \chicken@part@draw[\chicken@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; - \chicken@part@draw[\chicken@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; - \chicken@part@draw[\chicken@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; -\fi -% -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifchicken@back - \chicken@part@draw[\chicken@body] (0.12, 0.795) ellipse[x radius=0.20, y radius=0.06, rotate=58]; - \chicken@part@draw[\chicken@body] (0.04, 0.87) ellipse[x radius=0.25, y radius=0.06, rotate=80]; - \chicken@part@draw[\chicken@body] (-0.03, 0.83) ellipse[x radius=0.20, y radius=0.06, rotate=102]; - \chicken@part@draw[\chicken@body] (-0.082, 0.76) ellipse[x radius=0.17, y radius=0.06, rotate=130]; -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname chickenhookbody\endcsname -\csname tikzlinghookbody\endcsname -% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.96, 0.08) rectangle (0.96, 2.35); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifchicken@threeD + \def\chicken@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifchicken@contour + \def\chicken@part@draw[##1]{\draw[##1,\chicken@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\chicken@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname chickenhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \chicken@part@draw[\chicken@body] (0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=-65]; + \chicken@part@draw[\chicken@body] (0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=-43]; + \chicken@part@draw[\chicken@body] (0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=-18]; + \chicken@part@draw[\chicken@body] (-0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=65]; + \chicken@part@draw[\chicken@body] (-0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=43]; + \chicken@part@draw[\chicken@body] (-0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=18]; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifchicken@back + \chicken@part@draw[\chicken@feet] (0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \chicken@part@draw[\chicken@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \chicken@part@draw[\chicken@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \chicken@part@draw[\chicken@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \chicken@part@draw[\chicken@body!50!white] ( 0.00, 0.33) .. controls (-0.60, 0.33) and (-0.55, 0.65) .. (-0.55, 0.90) .. controls (-0.55, 1.10) and (-0.48, 1.20) .. (-0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) .. controls ( 0.48, 1.20) and ( 0.55, 1.10) .. ( 0.55, 0.90) .. controls ( 0.55, 0.65) and ( 0.60, 0.33) .. ( 0, 0.33) -- cycle; + \chicken@part@draw[\chicken@body,decoration={snake,amplitude=\scalingfactor*1.5pt,segment length=\scalingfactor*6.1pt}] ( -0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) decorate {arc [start angle=-60,end angle=-120,radius=0.77]} -- cycle; + % + % Comb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \chicken@part@draw[\chicken@comb] (0.04,2.132) ellipse[x radius=0.22, y radius=0.06, rotate=70]; + \chicken@part@draw[\chicken@comb] (-0.03,2.095) ellipse[x radius=0.17, y radius=0.06, rotate=92]; + \chicken@part@draw[\chicken@comb] (-0.082,2.060) ellipse[x radius=0.15, y radius=0.06, rotate=120]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname chickenhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifchicken@back + \chicken@part@draw[\chicken@eye] (0.135,1.8) ellipse[x radius=0.06, y radius=0.07]; + \chicken@part@draw[\chicken@eye] (-0.135,1.8) ellipse[x radius=0.06, y radius=0.07]; + \chicken@part@draw[\chicken@pupil] (0.124,1.78) ellipse[x radius=0.017, y radius=0.027]; + \chicken@part@draw[\chicken@pupil] (-0.124,1.78) ellipse[x radius=0.017, y radius=0.027]; + \fi% back + % + % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifchicken@back + \chicken@part@draw[\chicken@comb] (-0.04, 1.57) ellipse[x radius=0.04, y radius=0.08, rotate=-20]; + \chicken@part@draw[\chicken@comb] (0.04, 1.57) ellipse[x radius=0.04, y radius=0.08, rotate=20]; + \chicken@part@draw[\chicken@bill] (-0.09, 1.7) -- (0, 1.58) -- (0.09, 1.7) arc [start angle=50, end angle=130, radius=0.14] -- cycle; + \fi% back + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifchicken@back + \chicken@part@draw[\chicken@feet] (0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.19,0.3) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \chicken@part@draw[\chicken@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \chicken@part@draw[\chicken@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \chicken@part@draw[\chicken@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + \fi% back + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifchicken@back + \chicken@part@draw[\chicken@body] (0.12, 0.795) ellipse[x radius=0.20, y radius=0.06, rotate=58]; + \chicken@part@draw[\chicken@body] (0.04, 0.87) ellipse[x radius=0.25, y radius=0.06, rotate=80]; + \chicken@part@draw[\chicken@body] (-0.03, 0.83) ellipse[x radius=0.20, y radius=0.06, rotate=102]; + \chicken@part@draw[\chicken@body] (-0.082, 0.76) ellipse[x radius=0.17, y radius=0.06, rotate=130]; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname chickenhookbody\endcsname + \csname tikzlinghookbody\endcsname + % } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Baby chicken -% +%% +%% Baby chicken +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\chicken@drawbaby{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.53, 0.1) rectangle (0.53, 1.22); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifchicken@threeD + \def\chicken@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifchicken@contour + \def\chicken@part@draw[##1]{\draw[##1,\chicken@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\chicken@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts (center: x=0.925) + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname chickenhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{scope}[scale=0.55] + \chicken@part@draw[\chicken@baby] (0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=-65]; + \chicken@part@draw[\chicken@baby] (0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=-43]; + \chicken@part@draw[\chicken@baby] (0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=-18]; + \chicken@part@draw[\chicken@baby] (-0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=65]; + \chicken@part@draw[\chicken@baby] (-0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=43]; + \chicken@part@draw[\chicken@baby] (-0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=18]; + \end{scope} + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifchicken@back + \begin{scope}[scale=0.67] + \chicken@part@draw[\chicken@feet] (0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \chicken@part@draw[\chicken@feet] (0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \chicken@part@draw[\chicken@feet] (-0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \chicken@part@draw[\chicken@feet] (-0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + \end{scope} + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \chicken@part@draw[\chicken@baby] (0,0.55) circle [radius=0.3]; + % + % Comb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{scope}[scale=0.52] + \chicken@part@draw[\chicken@baby] (0.04,2.142) ellipse[x radius=0.2, y radius=0.05, rotate=70]; + \chicken@part@draw[\chicken@baby] (-0.03,2.105) ellipse[x radius=0.15, y radius=0.05, rotate=92]; + \chicken@part@draw[\chicken@baby] (-0.082,2.070) ellipse[x radius=0.13, y radius=0.05, rotate=120]; + \end{scope} + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \chicken@part@draw[\chicken@baby] (0,0.87) circle [radius=0.25]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname chickenhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifchicken@back + \chicken@part@draw[\chicken@eye] (0.075,0.925) ellipse[x radius=0.055, y radius=0.065]; + \chicken@part@draw[\chicken@eye] (-0.075,0.925) ellipse[x radius=0.055, y radius=0.065]; + \chicken@part@draw[\chicken@pupil] (0.07,0.91) ellipse[x radius=0.017, y radius=0.024]; + \chicken@part@draw[\chicken@pupil] (-0.07,0.91) ellipse[x radius=0.017, y radius=0.024]; + \fi% back + % + % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifchicken@back + \chicken@part@draw[\chicken@bill] (-0.05, 0.81) -- (0, 0.74) -- (0.05, 0.81) arc [start angle=60, end angle=120, radius=0.1] -- cycle; + \fi% back + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifchicken@back + \begin{scope}[scale=0.67] + \chicken@part@draw[\chicken@feet] (0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \chicken@part@draw[\chicken@feet] (0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \chicken@part@draw[\chicken@feet] (-0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; + \chicken@part@draw[\chicken@feet] (-0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \chicken@part@draw[\chicken@feet] (-0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + \end{scope} + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname chickenhookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.53, 0.1) rectangle (0.53, 1.22); -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Chicken]{Paulette, the chicken} % -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +%\emph{Paulette is named after the French word for chicken ``poulet''} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 +%\subsection{Package name} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifchicken@threeD - \def\chicken@part@draw[##1]{\shade[ball color=##1]} -\else - \ifchicken@contour - \def\chicken@part@draw[##1]{\draw[##1,\chicken@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\chicken@part@draw[##1]{\fill[##1]} - \fi -\fi +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-chickens}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\subsection{Basic Usage} % -% Body parts (center: x=0.925) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{tcblisting}{} +%\chicken +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname chickenhookbackground\endcsname -\csname tikzlinghookbackground\endcsname +%\subsection{Options} % -% Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{scope}[scale=0.55] - \chicken@part@draw[\chicken@baby] (0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=-65]; - \chicken@part@draw[\chicken@baby] (0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=-43]; - \chicken@part@draw[\chicken@baby] (0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=-18]; - \chicken@part@draw[\chicken@baby] (-0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=65]; - \chicken@part@draw[\chicken@baby] (-0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=43]; - \chicken@part@draw[\chicken@baby] (-0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=18]; -\end{scope} +%The basic chicken can be modified by changing its colour: +%\begin{tcblisting}{} +%\chicken[body=blue] +%\end{tcblisting} % -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifchicken@back - \begin{scope}[scale=0.67] - \chicken@part@draw[\chicken@feet] (0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=20]; - \chicken@part@draw[\chicken@feet] (0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=40]; - \chicken@part@draw[\chicken@feet] (-0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; - \chicken@part@draw[\chicken@feet] (-0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; - \end{scope} -\fi +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\chicken[comb=green] +%\end{tcblisting} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chicken@part@draw[\chicken@baby] (0,0.55) circle [radius=0.3]; +%\begin{tcblisting}{} +%\chicken[eye=red] +%\end{tcblisting} % -% Comb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{scope}[scale=0.52] - \chicken@part@draw[\chicken@baby] (0.04,2.142) ellipse[x radius=0.2, y radius=0.05, rotate=70]; - \chicken@part@draw[\chicken@baby] (-0.03,2.105) ellipse[x radius=0.15, y radius=0.05, rotate=92]; - \chicken@part@draw[\chicken@baby] (-0.082,2.070) ellipse[x radius=0.13, y radius=0.05, rotate=120]; -\end{scope} +%\begin{tcblisting}{} +%\chicken[pupil=red] +%\end{tcblisting} % -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chicken@part@draw[\chicken@baby] (0,0.87) circle [radius=0.25]; +%\begin{tcblisting}{} +%\chicken[bill=red] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname chickenhookbelly\endcsname -\csname tikzlinghookbelly\endcsname +%\begin{tcblisting}{} +%\chicken[feet=red] +%\end{tcblisting} % -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifchicken@back - \chicken@part@draw[\chicken@eye] (0.075,0.925) ellipse[x radius=0.055, y radius=0.065]; - \chicken@part@draw[\chicken@eye] (-0.075,0.925) ellipse[x radius=0.055, y radius=0.065]; - \chicken@part@draw[\chicken@pupil] (0.07,0.91) ellipse[x radius=0.017, y radius=0.024]; - \chicken@part@draw[\chicken@pupil] (-0.07,0.91) ellipse[x radius=0.017, y radius=0.024]; -\fi +%There is also the special option \lstinline|baby| which will draw a baby chicken called \emph{Pio}: +%\begin{tcblisting}{} +%\chicken[baby=yellow] +%\end{tcblisting} % -% Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifchicken@back - \chicken@part@draw[\chicken@bill] (-0.05, 0.81) -- (0, 0.74) -- (0.05, 0.81) arc [start angle=60, end angle=120, radius=0.1] -- cycle; -\fi +%To view the chicken from behind: +%\begin{tcblisting}{} +%\chicken[back] +%\end{tcblisting} % -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifchicken@back - \begin{scope}[scale=0.67] - \chicken@part@draw[\chicken@feet] (0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.19,0.38) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=20]; - \chicken@part@draw[\chicken@feet] (0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=40]; - \chicken@part@draw[\chicken@feet] (-0.175,0.27) ellipse[x radius=0.03, y radius=0.1]; - \chicken@part@draw[\chicken@feet] (-0.225,0.28) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; - \chicken@part@draw[\chicken@feet] (-0.275,0.3) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; - \end{scope} -\fi -%% -%% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\ifchicken@back -% \chicken@part@draw[\chicken@body] (0.12, 0.795) ellipse[x radius=0.20, y radius=0.06, rotate=58]; -% \chicken@part@draw[\chicken@body] (0.04, 0.87) ellipse[x radius=0.25, y radius=0.06, rotate=80]; -% \chicken@part@draw[\chicken@body] (-0.03, 0.83) ellipse[x radius=0.20, y radius=0.06, rotate=102]; -% \chicken@part@draw[\chicken@body] (-0.082, 0.76) ellipse[x radius=0.17, y radius=0.06, rotate=130]; -%\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname chickenhookbody\endcsname -\csname tikzlinghookbody\endcsname +%The key \lstinline|3D| will make the chicken 3-dimensional: +%\begin{tcblisting}{} +%\chicken[3D] +%\end{tcblisting} % -} - +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\chicken[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-coatis.sty b/graphics/pgf/contrib/tikzlings/tikzlings-coatis.sty index fdeaa64177..3ff1dec919 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-coatis.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-coatis.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/coati.tex + % !TeX root = ./examples/coati.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-coatis}[2021/04/16 version v0.6 Drawing coatis in TikZ] +\ProvidesPackage{tikzlings-coatis}[2021/08/06 version v0.8 Drawing coatis in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -68,179 +68,240 @@ } \def\coati@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.84,0.1) rectangle (1.63,2.26); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcoati@threeD + \def\coati@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifcoati@contour + \def\coati@part@draw[##1]{\draw[##1,\coati@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\coati@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname coatihookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!80!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \coati@part@draw[\coati@body!80!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcoati@back + \coati@part@draw[\coati@body!50!darkgray] (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; + \begin{scope} + \clip (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1); + \end{scope} + \fi% back + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!80!white] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70]; + \coati@part@draw[\coati@body!80!white] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!50!darkgray] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname coatihookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{scope}[rotate around={\coati@rotatehead:(0,1.68)}] + % + % Sidewards head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcoati@sideward + % + % Left Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!45!white!95!orange] (-0.212, 2.135) ellipse[x radius=0.09, y radius=0.12, rotate=-16]; + \unless\ifcoati@back + \coati@part@draw[\coati@body!80!white] (-0.212, 2.135) ellipse[x radius=0.065, y radius=0.09, rotate=-16]; + \fi% back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcoati@back + \coati@part@draw[\coati@body!45!white!95!orange] (0.4569, 1.5608) .. controls (0.3680, 1.3594) and (0.0005, 1.2699) .. (-0.1826, 1.3507) .. controls (-0.3657, 1.4315) and (-0.5475, 1.7632) .. (-0.4587, 1.9646) .. controls (-0.1103, 2.3578) and (0.5123, 2.0832) .. (0.4569, 1.5608) -- cycle; + \else% back + \coati@part@draw[\coati@body!45!white!95!orange] (0.4808, 1.7911) .. controls (0.5682, 1.2837) and (-0.3468, 1.3575) .. (-0.6360, 1.3679) .. controls (-0.7582, 1.4729) and (-0.5198, 1.7911) .. (-0.5198, 1.7911) .. controls (-0.3597, 2.2914) and (0.3207, 2.2914) .. (0.4808, 1.7911) -- cycle; + \fi% back + % + % Cheek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcoati@back + \coati@part@draw[\coati@body!80!white] (0.30, 1.4552) .. controls (0.30, 1.4552) and (0.1016, 1.7565) .. (-0.0005, 1.7581) -- (-0.6360, 1.3679) .. controls (-0.3083, 1.3437) and (0.0283, 1.332) .. (0.30, 1.4552) -- cycle (-0.4166, 1.9824) .. controls (-0.4166, 1.9824) and (-0.2413, 1.9758) .. (-0.2226, 1.9112) -- (-0.6875, 1.4906) .. controls (-0.6875, 1.4906) and (-0.5712, 1.7549) .. (-0.4166, 1.9824) -- cycle; + \fi% back + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcoati@back + \coati@part@draw[\coati@body!50!black] (-0.605, 1.453) circle[radius=0.09]; + \fi% back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcoati@back + \coati@part@draw[\coati@eye] (0.007, 1.624) ellipse[x radius=0.04, y radius=0.06]; + \coati@part@draw[\coati@eye] (-0.38, 1.865) ellipse[x radius=0.035, y radius=0.055]; + \fi% back + % + % Right Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!45!white!95!orange] (0.417, 1.875) ellipse[x radius=0.1, y radius=0.14, rotate=-16]; + \unless\ifcoati@back + \coati@part@draw[\coati@body!80!white] (0.417, 1.875) ellipse[x radius=0.07, y radius=0.10, rotate=-16]; + \fi% back + % + % Normal Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \else% sidewards + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcoati@back + \coati@part@draw[\coati@body!45!white!95!orange] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.35) .. (0, 1.35) .. controls (-0.2, 1.35) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle; + \else% back + \coati@part@draw[\coati@body!45!white!95!orange] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle; + \fi% back + % + % Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcoati@back + \coati@part@draw[\coati@body!80!white] (-0.4935, 1.7443) .. controls (-0.4935, 1.7443) and (-0.1917, 1.7798) .. (-0.1371, 1.7333) .. controls (-0.07, 1.2) and (-0.07, 1.2) .. (-0.07, 1.2) .. controls (-0.259, 1.3169) and (-0.46, 1.5665) .. (-0.4935, 1.7443) -- cycle (0.4935, 1.7443) .. controls (0.4935, 1.7443) and (0.1917, 1.7798) .. (0.1371, 1.7333) .. controls (0.07, 1.2) and (0.07, 1.2) .. (0.07, 1.2) .. controls (0.259, 1.3169) and (0.46, 1.5665) .. (0.4935, 1.7443) -- cycle; + \fi% back + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcoati@back + \coati@part@draw[\coati@body!50!black] (0, 1.248) circle[radius=0.09]; + \fi% back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifcoati@back + \coati@part@draw[\coati@eye] (0.23, 1.62) circle[radius=0.05]; + \coati@part@draw[\coati@eye] (-0.23, 1.62) circle[radius=0.05]; + \fi% back + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!45!white!95!orange] (0.44, 2.02) circle[radius=0.12]; + \coati@part@draw[\coati@body!45!white!95!orange] (-0.44, 2.02) circle[radius=0.12]; + \unless\ifcoati@back + \coati@part@draw[\coati@body!80!white] (0.44, 2.02) circle[radius=0.09]; + \coati@part@draw[\coati@body!80!white] (-0.44, 2.02) circle[radius=0.09]; + \fi% back + % + \fi% sidewards + \end{scope} + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifcoati@back + \coati@part@draw[\coati@body!50!darkgray] (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; + \begin{scope} + \clip (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1); + \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1); + \end{scope} + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname coatihookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.84,0.1) rectangle (1.63,2.26); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +%\clearpage +%\section[Coati]{007, the coati} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 +%\emph{Named after a coati living in the zoo of M\"onchengladbach} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifcoati@threeD - \def\coati@part@draw[##1]{\shade[ball color=##1]} -\else - \ifcoati@contour - \def\coati@part@draw[##1]{\draw[##1,\coati@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\coati@part@draw[##1]{\fill[##1]} - \fi -\fi +%\subsection{Package name} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-coatis}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% Body parts (center: x=0) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\subsection{Basic Usage} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname coatihookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\coati@part@draw[\coati@body!80!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\coati@part@draw[\coati@body!80!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; +%\begin{tcblisting}{} +%\coati +%\end{tcblisting} % -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifcoati@back - \coati@part@draw[\coati@body!50!darkgray] (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; - \begin{scope} - \clip (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1); - \end{scope} -\fi +%\subsection{Options} % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\coati@part@draw[\coati@body!80!white] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70]; -\coati@part@draw[\coati@body!80!white] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; +%The basic coati can be modified by changing its colour: +%\begin{tcblisting}{} +%\coati[body=blue] +%\end{tcblisting} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\coati@part@draw[\coati@body!50!darkgray] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; +%In addition to the colour of the body, the colour of the eyes can be adjusted: +%\begin{tcblisting}{} +%\coati[eye=red] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname coatihookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{scope}[rotate around={\coati@rotatehead:(0,1.68)}] +%The head of the coati can be rotated, but please don't overdo this, otherwise his neck might break! +%\begin{tcblisting}{} +%\coati[rotatehead=-15] +%\end{tcblisting} % -% Sidewards head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifcoati@sideward - % - % Left Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!45!white!95!orange] (-0.212, 2.135) ellipse[x radius=0.09, y radius=0.12, rotate=-16]; - \unless\ifcoati@back - \coati@part@draw[\coati@body!80!white] (-0.212, 2.135) ellipse[x radius=0.065, y radius=0.09, rotate=-16]; - \fi - % - % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifcoati@back - \coati@part@draw[\coati@body!45!white!95!orange] (0.4569, 1.5608) .. controls (0.3680, 1.3594) and (0.0005, 1.2699) .. (-0.1826, 1.3507) .. controls (-0.3657, 1.4315) and (-0.5475, 1.7632) .. (-0.4587, 1.9646) .. controls (-0.1103, 2.3578) and (0.5123, 2.0832) .. (0.4569, 1.5608) -- cycle; - \else - \coati@part@draw[\coati@body!45!white!95!orange] (0.4808, 1.7911) .. controls (0.5682, 1.2837) and (-0.3468, 1.3575) .. (-0.6360, 1.3679) .. controls (-0.7582, 1.4729) and (-0.5198, 1.7911) .. (-0.5198, 1.7911) .. controls (-0.3597, 2.2914) and (0.3207, 2.2914) .. (0.4808, 1.7911) -- cycle; - \fi - % - % Cheek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \unless\ifcoati@back - \coati@part@draw[\coati@body!80!white] (0.30, 1.4552) .. controls (0.30, 1.4552) and (0.1016, 1.7565) .. (-0.0005, 1.7581) -- (-0.6360, 1.3679) .. controls (-0.3083, 1.3437) and (0.0283, 1.332) .. (0.30, 1.4552) -- cycle (-0.4166, 1.9824) .. controls (-0.4166, 1.9824) and (-0.2413, 1.9758) .. (-0.2226, 1.9112) -- (-0.6875, 1.4906) .. controls (-0.6875, 1.4906) and (-0.5712, 1.7549) .. (-0.4166, 1.9824) -- cycle; - \fi - % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \unless\ifcoati@back - \coati@part@draw[\coati@body!50!black] (-0.605, 1.453) circle[radius=0.09]; - \fi - % - % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \unless\ifcoati@back - \coati@part@draw[\coati@eye] (0.007, 1.624) ellipse[x radius=0.04, y radius=0.06]; - \coati@part@draw[\coati@eye] (-0.38, 1.865) ellipse[x radius=0.035, y radius=0.055]; - \fi - % - % Right Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!45!white!95!orange] (0.417, 1.875) ellipse[x radius=0.1, y radius=0.14, rotate=-16]; - \unless\ifcoati@back - \coati@part@draw[\coati@body!80!white] (0.417, 1.875) ellipse[x radius=0.07, y radius=0.10, rotate=-16]; - \fi +%For the head an alternative sidewards facing head is available. It can be combined with the \lstinline|rotatehead| option. +%\begin{tcblisting}{} +%\coati[sideward] +%\end{tcblisting} % -% Normal Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\else - % - % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifcoati@back - \coati@part@draw[\coati@body!45!white!95!orange] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.35) .. (0, 1.35) .. controls (-0.2, 1.35) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle; - \else - \coati@part@draw[\coati@body!45!white!95!orange] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle; - \fi - % - % Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \unless\ifcoati@back - \coati@part@draw[\coati@body!80!white] (-0.4935, 1.7443) .. controls (-0.4935, 1.7443) and (-0.1917, 1.7798) .. (-0.1371, 1.7333) .. controls (-0.07, 1.2) and (-0.07, 1.2) .. (-0.07, 1.2) .. controls (-0.259, 1.3169) and (-0.46, 1.5665) .. (-0.4935, 1.7443) -- cycle (0.4935, 1.7443) .. controls (0.4935, 1.7443) and (0.1917, 1.7798) .. (0.1371, 1.7333) .. controls (0.07, 1.2) and (0.07, 1.2) .. (0.07, 1.2) .. controls (0.259, 1.3169) and (0.46, 1.5665) .. (0.4935, 1.7443) -- cycle; - \fi - % - % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \unless\ifcoati@back - \coati@part@draw[\coati@body!50!black] (0, 1.248) circle[radius=0.09]; - \fi - % - % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \unless\ifcoati@back - \coati@part@draw[\coati@eye] (0.23, 1.62) circle[radius=0.05]; - \coati@part@draw[\coati@eye] (-0.23, 1.62) circle[radius=0.05]; - \fi - % - % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!45!white!95!orange] (0.44, 2.02) circle[radius=0.12]; - \coati@part@draw[\coati@body!45!white!95!orange] (-0.44, 2.02) circle[radius=0.12]; - \unless\ifcoati@back - \coati@part@draw[\coati@body!80!white] (0.44, 2.02) circle[radius=0.09]; - \coati@part@draw[\coati@body!80!white] (-0.44, 2.02) circle[radius=0.09]; - \fi - % -\fi -\end{scope} +%To view the coati from behind: +%\begin{tcblisting}{} +%\coati[back] +%\end{tcblisting} % -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifcoati@back - \coati@part@draw[\coati@body!50!darkgray] (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; - \begin{scope} - \clip (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle; - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1); - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1); - \end{scope} -\fi +%The key \lstinline|3D| will make the coati 3-dimensional: +%\begin{tcblisting}{} +%\coati[3D] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname coatihookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} - +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\coati[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf b/graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf index a51cde1b4d..67259e6d03 100644 Binary files a/graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf and b/graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf differ diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-doc.tex b/graphics/pgf/contrib/tikzlings/tikzlings-doc.tex index 36537f2ba6..f33ece7dae 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-doc.tex +++ b/graphics/pgf/contrib/tikzlings/tikzlings-doc.tex @@ -43,6 +43,68 @@ \newcommand{\miktex}{MiK\TeX\xspace} \newcommand{\texlive}{\TeX{}Live\xspace} +% including commented lines from the .sty files %%%%%%%%%%%%%%%%%%%%%% +% thanks to Phelype Oleinik https://topanswers.xyz/tex?q=1861#a2092 +\ExplSyntaxOn +\makeatletter +\iow_new:N \l__tikzlings_iow +\tl_new:N \l__tikzlings_file_name_tl +\NewDocumentCommand \CommentInput { m } + { \tikzlings_comment_input:n {#1} } +\cs_new_protected:Npn \tikzlings_comment_input:n #1 + { + \file_get_full_name:nNTF {#1} \l__tikzlings_file_name_tl + { \__tikzlings_comment_input: } + { \msg_error:nnn { tikzlings } { file-not-found } {#1} } + } +\msg_new:nnn { tikzlings } { file-not-found } { File~'#1'~not~found. } +\cs_new_protected:Npn \__tikzlings_comment_input: + { + \group_begin: + \cctab_select:N \c_other_cctab + \int_set:Nn \tex_endlinechar:D { `\^^M } + \use:x { \tex_everyeof:D { \exp_not:N \q_nil \char_generate:nn { 13 } { 13 } } } + \char_set_active_eq:NN \^^M \__tikzlings_process_line:w + \char_set_catcode_active:N \^^M + \iow_open:Nn \l__tikzlings_iow { \c_sys_jobname_str . cif } % cif => comment input file + \exp_after:wN \__tikzlings_process_line:w + \tex_input:D { \l__tikzlings_file_name_tl } + \iow_close:N \l__tikzlings_iow + \group_end: + \declare@file@substitution { \l__tikzlings_file_name_tl } { \c_sys_jobname_str . cif } + \input { \l__tikzlings_file_name_tl } + \undeclare@file@substitution { \l__tikzlings_file_name_tl } + } +\group_begin: +\char_set_catcode_active:N \^^M +\char_set_active_eq:NN \^^M \scan_stop: +\cs_new_protected:Npx \__tikzlings_process_line:w #1 ^^M + { \exp_not:N \__tikzlings_parse_line:w ^^M #1 ^^M \c_percent_str \s_stop } +\cs_set_protected:Npn \__tikzlings_tmp:w #1 + { + \cs_new_protected:Npn \__tikzlings_parse_line:w ##1 ^^M #1 ##2 \s_stop + { + \tl_if_empty:nTF {##1} + { + \peek_charcode_remove:NTF #1 + { \__tikzlings_ignore_line:w } + { \__tikzlings_output_line:w } + ##2 \s_stop ^^M + } + { + \tl_set:Nx \l_tmpa_tl { \tl_tail:n {##1} } + \tl_if_eq:NNF \l_tmpa_tl \q_nil { ^^M } + } + } + \cs_new_protected:Npn \__tikzlings_output_line:w ##1 ^^M #1 \s_stop + { \iow_now:Nn \l__tikzlings_iow {##1} } + \cs_new_protected:Npn \__tikzlings_ignore_line:w ##1 \s_stop { } + } +\exp_args:No \__tikzlings_tmp:w { \c_percent_str } +\group_end: +\makeatother +\ExplSyntaxOff + % customisation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \addtokomafont{sectioning}{\color{SteelBlue}} \addtokomafont{date}{\normalsize} @@ -93,17 +155,27 @@ alsoletter={3}, emphstyle=\color{red!60!black}, emph=[1]{ - tikzlings, - tikzlings-marmots, tikzlings-bears, tikzlings-coatis, tikzlings-koalas, tikzlings-marmots, tikzlings-owls, tikzlings-penguins, tikzlings-snowmen, tikzlings-mice, tikzlings-moles, tikzlings-sloths, tikzlings-pigs, tikzlings-cats, tikzlings-hippos, tikzlings-rhinos, tikzlings-pandas, tikzlings-bees, tikzlings-anteaters, tikzlings-squirrels, tikzlings-sheep, tikzlings-chickens, tikzlings-elephants, - body, 3D, rotatehead, sideward, blush, sleeping, whiskers, teeth, shadow, askphil, leftstep, rightstep, eye, nose, pupil, bill, feet, belly, ask, phil, mouth, buttons, rotatearms, paws, back, pupilwidth, globalwarming, wings, antennas, stripes, - scale, yshift, xshift, rotate, hands, muzzle, schroedinger, toes, - hat, tophat, beret, strawhat, ribbon, harlequin, niuqelrah, witch, magichat, magicstars, crown, queencrown, kingcrown, santa, chef, graduate, tassel, alien, book, bookcolour, signpost, signcolour, signback, speech, think, bubblecolour, pizza, cheese, baguette, cake, icecream, flavoura, flavourb, flavourc, milkshake, wine, cricket, hockey, football, crystalball, magicwand, rollingpin, lightsaber, torch, basket, easter, egga, eggb, eggc, crozier, shovel, pickaxe, umbrella, umbrellaclosed, handbag, cocktail, monocle, contour, comb, baby, + % package names + tikzlings, tikzlings-marmots, tikzlings-bears, tikzlings-coatis, tikzlings-koalas, tikzlings-marmots, tikzlings-owls, tikzlings-penguins, tikzlings-snowmen, tikzlings-mice, tikzlings-moles, tikzlings-sloths, tikzlings-pigs, tikzlings-cats, tikzlings-hippos, tikzlings-rhinos, tikzlings-pandas, tikzlings-bees, tikzlings-anteaters, tikzlings-squirrels, tikzlings-sheep, tikzlings-chickens, tikzlings-elephants, tikzlings-bugs, tikzlings-bats, + % tikzlings options + body, 3D, rotatehead, sideward, blush, sleeping, whiskers, teeth, shadow, askphil, leftstep, rightstep, eye, nose, pupil, bill, feet, belly, ask, phil, mouth, rotatearms, paws, back, pupilwidth, globalwarming, wings, antennas, stripes, arms, ears, tail, eyelid, hands, muzzle, schroedinger, toes, monocle, contour, comb, baby, + % acessoires + buttons, hat, tophat, beret, strawhat, ribbon, harlequin, niuqelrah, witch, magichat, magicstars, crown, queencrown, kingcrown, santa, chef, graduate, tassel, alien, book, bookcolour, signpost, signcolour, signback, speech, think, bubblecolour, pizza, cheese, baguette, cake, icecream, flavoura, flavourb, flavourc, milkshake, wine, cricket, hockey, football, crystalball, magicwand, rollingpin, lightsaber, torch, basket, easter, egga, eggb, eggc, crozier, shovel, pickaxe, umbrella, umbrellaclosed, handbag, cocktail, strawbroom, strawbroomstick, strawbroomribbon, broom, broomstick, + % tikz options + scale, yshift, xshift, rotate, + % other + figchild, standalone, document, }, texcsstyle=*\color{SteelBlue!50!black}\bfseries, keywordstyle=\color{red!60!black}\bfseries, morekeywords={tikzpicture}, moretexcs={ - usepackage, usetikzlibrary, marmot, coati, bear, koala, owl, penguin, thing, tikzling, snowman, mouse, moles, sloth, pig, cat, hippo, rhino, panda, bee, anteater, squirrel, bearwear, sheep, chicken, elephant, tikzlinghookbackground, tikzlinghookbelly, tikzlinghookbody, tikzlinghookforeground, mousehookbelly + % latex keywords + usepackage, usetikzlibrary, + % tikzlings names + marmot, coati, bear, koala, owl, penguin, thing, tikzling, snowman, mouse, moles, sloth, pig, cat, hippo, rhino, panda, bee, anteater, squirrel, bearwear, sheep, chicken, elephant, bug, bat, + % other + tikzlinghookbackground, tikzlinghookbelly, tikzlinghookbody, tikzlinghookforeground, mousehookbelly }, delim ={[s][\ttfamily\color{green!50!black}]{$}{$}}, moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|}, @@ -151,7 +223,7 @@ \url{https://github.com/samcarter/tikzlings}\\ \url{https://www.ctan.org/pkg/tikzlings} }{samcarter}} -\date{Version v0.6 \textendash{} 2021/04/16} +\date{Version v0.8 \textendash{} 2021/08/06} \begin{document} \maketitle @@ -260,7 +332,7 @@ With regard to the individual components of the \tikzlings, they are located in \end{tikzpicture} \end{center} -In addition the hooks \lstinline|\tikzlinghookbackground|, \lstinline|\tikzlinghookbelly|, \lstinline|\tikzlinghookbody| and \lstinline|\tikzlinghookforeground| are available and will effect all \tikzlings. +{\raggedright In addition, the hooks \lstinline|\tikzlinghookbackground|, \lstinline|\tikzlinghookbelly|,\newline \lstinline|\tikzlinghookbody| and \lstinline|\tikzlinghookforeground| are available and will effect all\newline \tikzlings.} A short example how the hooks can be used: \begin{tcblisting}{} @@ -280,1658 +352,365 @@ A short example how the hooks can be used: \tableofcontents \endgroup +\makeatletter +% modified from https://chat.stackexchange.com/transcript/message/56515698#56515698 +\ExplSyntaxOn +\cs_new_protected:Npn \tikzlings_load_stys:N #1 { + \clist_map_inline:Nn #1 { + \exp_args:Nx \CommentInput { + tikzlings- \__tikzlings_after_slash:w ##1 / / \s_stop .sty + } + } +} +\cs_new_eq:NN \tikzling@loadstys \tikzlings_load_stys:N +\ExplSyntaxOff +\tikzling@loadstys\tikzling@list +\makeatother + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% Anteater +% Random Tikzling % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \clearpage -\section[Anteater]{Peter, the anteater} +\section[Ti\emph{k}Zling]{Rani, the Ti\emph{k}Zling} + +\emph{The full name of this Ti\emph{k}Zling is ``Random'', but everybody just calls them ``Rani''} \subsection{Package name} \begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] \vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-anteaters}| +\lstinline|\usepackage{tikzlings}| \vspace*{0.5cm} \end{tcolorbox} \subsection{Basic Usage} \begin{tcblisting}{} -\anteater +\tikzling \end{tcblisting} \subsection{Options} -The basic anteater can be modified by changing its colour: -\begin{tcblisting}{} -\anteater[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: +Only options common for all \tikzlings are supported for the \lstinline|\tikzling|. These are the ability to change the body colour \begin{tcblisting}{} -\anteater[eye=red] +\tikzling[body=blue] \end{tcblisting} -To view the anteater from behind: +to view the \tikzlings from behind \begin{tcblisting}{} -\anteater[back] +\tikzling[back] \end{tcblisting} -The key \lstinline|3D| will make the anteater 3-dimensional: +and the \lstinline|3D| key, which will make the Ti\emph{k}Zlings 3-dimensional: \begin{tcblisting}{} -\anteater[3D] +\tikzling[3D] \end{tcblisting} And finally the \lstinline|contour| key will only draw the outlines: \begin{tcblisting}{} -\anteater[contour=black] +\tikzling[contour=black] \end{tcblisting} +If an option of a specific tikzlings is used (for example \lstinline|sleeping| which only the koala and sloth can do) this only works if you are lucky and one of them is drawn, in all other cases it will result in an error. + +In addition all usual \TikZ and \lstinline|pgf| keys can be used in the optional argument as well as the accessories presented in the following section. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% Bear +% Accessories % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \clearpage -\section[Bear]{B\"ar, the teddy bear} +\section{Accessories} -\emph{If you look very closely at the group picture in \href{https://www.tug.org/TUGboat/tb39-2/tb122wright-tug18.pdf}{TUG goes to Rio} you can spot the real B\"ar in it} +To customise the \tikzlings the package provides a number of accessories which can be added to all the \tikzlings simply by adding the respective keyword as optional argument: -\subsection{Package name} +\begin{tcblisting}{} +\bear[hat] +\end{tcblisting} + +For most of these items, the colour can be customised: -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-bears}| -\vspace*{0.5cm} -\end{tcolorbox} +\begin{tcblisting}{} +\koala[crown=orange!50!yellow] +\end{tcblisting} -\subsection{Basic Usage} +Unfortunately it is very difficult to create accessories that will fit all the different shapes of the \tikzlings. Therefore it is also possible to add them separately as optional argument of the \lstinline|\thing| macro, which allows more control of their size and placement: \begin{tcblisting}{} -\bear +\owl +\thing[tophat,scale=1.5,yshift=-0.6cm,xshift=-0.05cm] \end{tcblisting} -\subsection{Options} +A list of all available accessories is given below. For completeness the default colours for each key are shown, but actually it is unnecessary unless it should be changed. In case more than one key is shown, all but the first are optional. + +\subsection{Hats} -The basic teddy bear can be modified by changing its colour: \begin{tcblisting}{} -\bear[body=blue] +\penguin[ + hat=blue!40!black +] \end{tcblisting} -In addition to the colour of the body, the colour of the eyes can be adjusted: \begin{tcblisting}{} -\bear[eye=red] +\snowman[ + tophat=black!90!white +] \end{tcblisting} -To view the teddy bear from behind: \begin{tcblisting}{} -\bear[back] +\mouse[ + beret=black +] \end{tcblisting} -The key \lstinline|3D| will make the teddy bear 3-dimensional: \begin{tcblisting}{} -\bear[3D] +\anteater[ + strawhat=blue, + ribbon=black +] \end{tcblisting} -And finally the \lstinline|contour| key will only draw the outlines: \begin{tcblisting}{} -\bear[contour=black] +\coati[ + harlequin=blue, + niuqelrah=red +] \end{tcblisting} -\subsection{Extension} - -The B\"ar and Ulrike Fischer wrote the fantastic \lstinline|bearwear| package, that provides many different clothing options for the \lstinline|TikZbears|. All the other \tikzlings admire them for the nice clothing! - -A short example: - \begin{tcblisting}{} -%\usepackage{bearwear} -\bear -\bearwear[ - long sleeves, - shirt=red!80!black +\cat[ + witch=gray ] \end{tcblisting} -Many more options and examples can be found in the package documentation \url{https://ctan.org/pkg/bearwear}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Bee -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Bee]{Beeing, the bee} - -\emph{The bee was kindly contributed by @marmot} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-bees}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - \begin{tcblisting}{} -\bee +\bear[ + magichat=violet, + magicstars=yellow!80!brown +] \end{tcblisting} -\subsection{Options} - -The basic bee can be modified by changing its colour: \begin{tcblisting}{} -\bee[body=blue] +\sheep[ + crown=yellow!90!orange +] \end{tcblisting} -In addition to the colour of the body, the colour of various body parts can be adjusted: \begin{tcblisting}{} -\bee[antennas=red] +\bat[ + queencrown=yellow +] \end{tcblisting} + \begin{tcblisting}{} -\bee[eye=red] +\marmot[ + kingcrown=gray +] \end{tcblisting} + \begin{tcblisting}{} -\bee[mouth=red] +\mouse[ + santa=red!80!black +] \end{tcblisting} + \begin{tcblisting}{} -\bee[wings=red] +\bear[ + chef=gray!20!white +] \end{tcblisting} + \begin{tcblisting}{} -\bee[hands=red] +\snowman[ + graduate=black, + tassel=red +] \end{tcblisting} + \begin{tcblisting}{} -\bee[stripes=red] +\penguin[ + alien=green +] \end{tcblisting} -To view the bee from behind: +\subsection{Communication} + \begin{tcblisting}{} -\bee[back] +\coati[ + book={\tiny\TeX}, + bookcolour=brown +] \end{tcblisting} -The key \lstinline|3D| will make the bee 3-dimensional: \begin{tcblisting}{} -\bee[3D] +\pig[ + signpost={\TeX}, + signcolour= brown!50!black, + signback=green!40!black +] \end{tcblisting} -And finally the \lstinline|contour| key will only draw the outlines: \begin{tcblisting}{} -\bee[contour=black] +\bear[ + speech={\TeX}, + bubblecolour=gray!30!white +] \end{tcblisting} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Cat -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Cat]{MisTi$k$Zelees, the cat} - -\emph{Named after the worlds best singing cat} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-cats}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - \begin{tcblisting}{} -\cat +\penguin[ + think={\TeX}, + bubblecolour=gray!30!white +] \end{tcblisting} -\subsection{Options} +\subsection{Food} -The basic cat can be modified by changing its colour: \begin{tcblisting}{} -\cat[body=blue] +\koala[ + pizza +] \end{tcblisting} -In addition to the colour of the body, the colour of various body parts can be adjusted: \begin{tcblisting}{} -\cat[eye=green] +\mouse[ + cheese=yellow!30!orange!60!white +] \end{tcblisting} + \begin{tcblisting}{} -\cat[pupil=red] +\bug[ + baguette=brown +] \end{tcblisting} + \begin{tcblisting}{} -\cat[nose=red] +\moles[ + cake=violet +] \end{tcblisting} + \begin{tcblisting}{} -\cat[whiskers=red] +\marmot[ + icecream=brown!60!gray, + flavoura=brown!50!black, + flavourb=white!70!brown, + flavourc=red!50!white +] \end{tcblisting} + \begin{tcblisting}{} -\cat[paws=red] +\penguin[ + milkshake=red!20!white +] \end{tcblisting} -The shape of the \lstinline|pupil| can be changed with the \lstinline|pupilwidth| option: \begin{tcblisting}{} -\cat[pupilwidth=0.015] +\owl[ + wine=red!70!black +] \end{tcblisting} -Additionally several predefined widths exist: -\begin{tcolorbox} -\begin{lstlisting}[morekeywords={narrow,medium,wide,very,pupils}] -\cat[narrow pupils] - -\cat[medium pupils] - -\cat[wide pupils] - -\cat[very wide pupils] -\end{lstlisting} - -\tcblower -\begin{tikzpicture}[yshift=2.4cm,xshift=1.8cm] -\cat[narrow pupils] -\cat[medium pupils,xshift=2.5cm] -\cat[wide pupils,yshift=-2.5cm] -\cat[very wide pupils,xshift=2.5cm,yshift=-2.5cm] -\end{tikzpicture} -\end{tcolorbox} +\subsection{Sports} -There is also the special option \lstinline|schroedinger|. This cat is both alive and dead as long as you did not compile your document. -Be prepared for a possibly disturbing scene when you open the pdf, this option is not suited for sensitive \tikzlings. -\begingroup -\makeatletter -\renewcommand*{\cat}[1][]{% - \tikzset{/cat/.cd,#1}% - \cat@tombstone% -} -\renewcommand{\cathookbackground}{} -\makeatother \begin{tcblisting}{} -\cat[schroedinger] +\coati[ + cricket=brown +] \end{tcblisting} -\endgroup -To view the cat from behind: \begin{tcblisting}{} -\cat[back] +\bug[ + hockey=brown +] \end{tcblisting} -The key \lstinline|3D| will make the cat 3-dimensional: \begin{tcblisting}{} -\cat[3D] +\elephant[ + football=white +] \end{tcblisting} -And finally the \lstinline|contour| key will only draw the outlines: +\subsection{Other items} + \begin{tcblisting}{} -\cat[contour=black] +\marmot[ + crystalball=cyan +] \end{tcblisting} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Chicken -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Chicken]{Paulette, the chicken} - -\emph{Paulette is named after the French word for chicken ``poulet''} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-chickens}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - \begin{tcblisting}{} -\chicken +\bear[ + magicwand +] \end{tcblisting} -\subsection{Options} - -The basic chicken can be modified by changing its colour: \begin{tcblisting}{} -\chicken[body=blue] +\coati[ + rollingpin=brown +] \end{tcblisting} -In addition to the colour of the body, the colour of various body parts can be adjusted: \begin{tcblisting}{} -\chicken[comb=green] +\penguin[ + lightsaber=green +] \end{tcblisting} \begin{tcblisting}{} -\chicken[eye=red] +\snowman[ + torch=gray +] \end{tcblisting} \begin{tcblisting}{} -\chicken[pupil=red] +\mouse[ + basket=brown!70!gray +] \end{tcblisting} \begin{tcblisting}{} -\chicken[bill=red] +\sloth[ + easter=brown!70!gray, + egga=blue, + eggb=green, + eggc=red +] \end{tcblisting} \begin{tcblisting}{} -\chicken[feet=red] -\end{tcblisting} - -There is also the special option \lstinline|baby| which will draw a baby chicken called \emph{Pio}: -\begin{tcblisting}{} -\chicken[baby=yellow] -\end{tcblisting} - -To view the chicken from behind: -\begin{tcblisting}{} -\chicken[back] -\end{tcblisting} - -The key \lstinline|3D| will make the chicken 3-dimensional: -\begin{tcblisting}{} -\chicken[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\chicken[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Coati -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Coati]{007, the coati} - -\emph{Named after a coati living in the zoo of M\"onchengladbach} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-coatis}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\coati -\end{tcblisting} - -\subsection{Options} - -The basic coati can be modified by changing its colour: -\begin{tcblisting}{} -\coati[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\coati[eye=red] -\end{tcblisting} - -The head of the coati can be rotated, but please don't overdo this, otherwise his neck might break! -\begin{tcblisting}{} -\coati[rotatehead=-15] -\end{tcblisting} - -For the head an alternative sidewards facing head is available. It can be combined with the \lstinline|rotatehead| option. -\begin{tcblisting}{} -\coati[sideward] -\end{tcblisting} - -To view the coati from behind: -\begin{tcblisting}{} -\coati[back] -\end{tcblisting} - -The key \lstinline|3D| will make the coati 3-dimensional: -\begin{tcblisting}{} -\coati[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\coati[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Chicken -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Elephant]{Johannes, the elephant} - -\emph{The namesake of Johannes loves elephants} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-elephants}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\elephant -\end{tcblisting} - -\subsection{Options} - -The basic elephant can be modified by changing its colour: -\begin{tcblisting}{} -\elephant[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\elephant[eye=red] -\end{tcblisting} - -To view the elephant from behind: -\begin{tcblisting}{} -\elephant[back] -\end{tcblisting} - -The key \lstinline|3D| will make the elephant 3-dimensional: -\begin{tcblisting}{} -\elephant[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\elephant[contour=black] -\end{tcblisting} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Hippo -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Hippo]{Sieglinde, the hippo} - -\emph{For the winner of the 2019 Groundhog Challenge} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-hippos}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\hippo -\end{tcblisting} - -\subsection{Options} - -The basic hippo can be modified by changing its colour: -\begin{tcblisting}{} -\hippo[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\hippo[eye=red] -\end{tcblisting} -\begin{tcblisting}{} -\hippo[pupil=red] -\end{tcblisting} - -The hippo can also do its nails: -\begin{tcblisting}{} -\hippo[toes=red] -\end{tcblisting} - -To view the hippo from behind: -\begin{tcblisting}{} -\hippo[back] -\end{tcblisting} - -The key \lstinline|3D| will make the hippo 3-dimensional: -\begin{tcblisting}{} -\hippo[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\hippo[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Koala -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Koala]{Will, the koala} - -\emph{The koala was generously contributed by @marmot and is named in honour of a \LaTeX{} developer from Down Under} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-koalas}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\koala -\end{tcblisting} - -\subsection{Options} - -The basic koala can be modified by changing its colour: -\begin{tcblisting}{} -\koala[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\koala[eye=red] -\end{tcblisting} - -It can also blush -\begin{tcblisting}{} -\koala[blush] -\end{tcblisting} - -and if tired, it is going to take a nap: -\begin{tcblisting}{} -\koala[sleeping] -\end{tcblisting} - -To view the koala from behind: -\begin{tcblisting}{} -\koala[back] -\end{tcblisting} - -The key \lstinline|3D| will make the koala 3-dimensional: -\begin{tcblisting}{} -\koala[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\koala[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Marmot -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Marmot]{Phil, the marmot} - -\emph{Phil got his name from Punxsutawney Phil, the famous weather forecasting groundhog} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-marmots}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\marmot -\end{tcblisting} - -\subsection{Options} - -The basic marmot can be modified by changing its colour: -\begin{tcblisting}{} -\marmot[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\marmot[eye=red] -\end{tcblisting} - -The marmot can also blush -\begin{tcblisting}{} -\marmot[blush] -\end{tcblisting} - -and whiskers can be added: -\begin{tcblisting}{} -\marmot[whiskers=gray] -\end{tcblisting} - -Some marmots even show their chisel teeth: -\begin{tcblisting}{} -\marmot[teeth=white] -\end{tcblisting} - -or can cast a shadow: -\begin{tcblisting}{} -\marmot[shadow] -\end{tcblisting} - -This ability is important if you want to ask Punxsutawney Phil\footnote{\url{https://en.wikipedia.org/wiki/Punxsutawney_Phil}} on Groundhog Day how the weather is going to be. With a probability derived from the statistics of 120 Groundhog Days\footnote{\url{https://www.livescience.com/32974-punxsutawney-phil-weather-prediction-accuracy.html}} the option \lstinline|askphil| might or might not result in a shadow. -\begin{tcblisting}{} -\marmot[askphil] -\end{tcblisting} - -If a good weather prognosis is derived, the happy marmot can dance by lifting up its left and right foot: -\begin{tcblisting}{} -\marmot[leftstep] -\marmot[rightstep,xshift=2cm] -\end{tcblisting} - -To view the marmot from behind: -\begin{tcblisting}{} -\marmot[back] -\end{tcblisting} - -The key \lstinline|3D| will make the marmot 3-dimensional: -\begin{tcblisting}{} -\marmot[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\marmot[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Moles -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Mole]{Wilhelm, the mole} - -\emph{The mole was added in celebration of the international mole day and is named after the chemist Wilhelm Ostwald} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-moles}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\textcolor{red!60!black}{\textbf{Attention:} In contrast to the other \tikzlings the macro name is the plural form to avoid conflicts with \lstinline|siunitx| and similar packages.} -\begin{tcblisting}{} -\moles -\end{tcblisting} - -\subsection{Options} - -The basic mole can be modified by changing its colour: -\begin{tcblisting}{} -\moles[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of various body parts can be adjusted: -\begin{tcblisting}{} -\moles[eye=red] -\end{tcblisting} - -\begin{tcblisting}{} -\moles[muzzle=red] -\end{tcblisting} - -\begin{tcblisting}{} -\moles[hands=red] -\end{tcblisting} - -\begin{tcblisting}{} -\moles[feet=red] -\end{tcblisting} - -To view the mole from behind: -\begin{tcblisting}{} -\moles[back] -\end{tcblisting} - -The key \lstinline|3D| will make the mole 3-dimensional: -\begin{tcblisting}{} -\moles[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\moles[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Mouse -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Mouse]{Tokz, the mouse} - -\emph{The idea for the mouse came from an Italian \LaTeX{} user -- Tokz is a combination of the Italian word for mouse and \TikZ} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-mice}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\mouse -\end{tcblisting} - -\subsection{Options} - -The basic mouse can be modified by changing its colour: -\begin{tcblisting}{} -\mouse[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\mouse[eye=red] -\end{tcblisting} - -The rotation angle of its arms can be adjusted: -\begin{tcblisting}{} -\mouse[rotatearms=40] -\end{tcblisting} - -And the mouse can lift its legs: -\begin{tcblisting}{} -\mouse[leftstep] -\mouse[rightstep,xshift=2cm] -\end{tcblisting} - -To view the mouse from behind: -\begin{tcblisting}{} -\mouse[back] -\end{tcblisting} - -The key \lstinline|3D| will make the mouse 3-dimensional: -\begin{tcblisting}{} -\mouse[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\mouse[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Owl -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Owl]{Jake, the owl} - -\emph{The owl Jake was inspired by the avatar of one of the world's top TikZperts} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-owls}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\owl -\end{tcblisting} - -\subsection{Options} - -The basic owl can be modified by changing its colour: -\begin{tcblisting}{} -\owl[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of various body parts can be adjusted: -\begin{tcblisting}{} -\owl[eye=red] -\end{tcblisting} -\begin{tcblisting}{} -\owl[pupil=red] -\end{tcblisting} -\begin{tcblisting}{} -\owl[bill=red] -\end{tcblisting} -\begin{tcblisting}{} -\owl[feet=red] -\end{tcblisting} - -To view the owl from behind: -\begin{tcblisting}{} -\owl[back] -\end{tcblisting} - -The key \lstinline|3D| will make the owl 3-dimensional: -\begin{tcblisting}{} -\owl[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\owl[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Panda -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Panda]{Meng Meng, the panda} - -\emph{Meng Meng is named after one of the pandas at the zoological garden Berlin} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-pandas}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\panda -\end{tcblisting} - -\subsection{Options} - -The basic panda can be modified by changing its colour: -\begin{tcblisting}{} -\panda[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\panda[eye=red] -\end{tcblisting} -\begin{tcblisting}{} -\panda[pupil=red] -\end{tcblisting} - -To view the panda from behind: -\begin{tcblisting}{} -\panda[back] -\end{tcblisting} - -The key \lstinline|3D| will make the panda 3-dimensional: -\begin{tcblisting}{} -\panda[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\panda[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Penguin -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Penguin]{Tux, the penguin} - -\emph{Dedicated to the Linux mascot} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-penguins}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\penguin -\end{tcblisting} - -\subsection{Options} - -The basic penguin can be modified by changing its colour: -\begin{tcblisting}{} -\penguin[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of various body parts can be adjusted: -\begin{tcblisting}{} -\penguin[eye=red] -\end{tcblisting} -\begin{tcblisting}{} -\penguin[pupil=red] -\end{tcblisting} -\begin{tcblisting}{} -\penguin[bill=red] -\end{tcblisting} -\begin{tcblisting}{} -\penguin[belly=red] -\end{tcblisting} -\begin{tcblisting}{} -\penguin[feet=red] -\end{tcblisting} - -To view the penguin from behind: -\begin{tcblisting}{} -\penguin[back] -\end{tcblisting} - -The key \lstinline|3D| will make the penguin 3-dimensional: -\begin{tcblisting}{} -\penguin[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\penguin[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Pig -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Pig]{Ms Piggy, the pig} - -\emph{Added on February 5th, 2019 to commemorate the Chinese year of the pig} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-pigs}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\pig -\end{tcblisting} - -\subsection{Options} - -The basic pig can be modified by changing its colour: -\begin{tcblisting}{} -\pig[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\pig[eye=red] -\end{tcblisting} - -To view the pig from behind: -\begin{tcblisting}{} -\pig[back] -\end{tcblisting} - -The key \lstinline|3D| will make the pig 3-dimensional: -\begin{tcblisting}{} -\pig[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\pig[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Rhino -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Rhino]{D\"urer, the rhino} - -\emph{Named after Albrecht D\"urer who painted an amazing rhino merely based on stories} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-rhinos}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\rhino -\end{tcblisting} - -\subsection{Options} - -The basic rhino can be modified by changing its colour: -\begin{tcblisting}{} -\rhino[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\rhino[eye=red] -\end{tcblisting} -\begin{tcblisting}{} -\rhino[pupil=red] -\end{tcblisting} - -The hippo can also do its nails: -\begin{tcblisting}{} -\rhino[toes=red] -\end{tcblisting} - -To view the rhino from behind: -\begin{tcblisting}{} -\rhino[back] -\end{tcblisting} - -The key \lstinline|3D| will make the rhino 3-dimensional: -\begin{tcblisting}{} -\rhino[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\rhino[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Sheep -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Sheep]{Mókollur, the sheep} - -\emph{The sheep was kindly contributed by @Plergux. Mókollur is a bit silly and likes to goof off. This sheep's favourite food are boiled potatoes.} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-sheep}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\sheep -\end{tcblisting} - -\subsection{Options} - -The basic sheep can be modified by changing its colour: -\begin{tcblisting}{} -\sheep[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\sheep[eye=red] -\end{tcblisting} - -The sheep can also blush -\begin{tcblisting}{} -\sheep[blush] -\end{tcblisting} - -and put on a monocle -\begin{tcblisting}{} -\sheep[monocle] -\end{tcblisting} - -To view the sheep from behind: -\begin{tcblisting}{} -\sheep[back] -\end{tcblisting} - -The key \lstinline|3D| will make the sheep 3-dimensional: -\begin{tcblisting}{} -\sheep[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\sheep[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Sloth -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Sloth]{Riley, the sloth} - -\emph{One of good souls behind the TugBoat once met a sloth called Riley} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-sloths}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\sloth -\end{tcblisting} - -\subsection{Options} - -The basic sloth can be modified by changing its colour: -\begin{tcblisting}{} -\sloth[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\sloth[eye=red] -\end{tcblisting} - -If tired, the sloth can take a nap: -\begin{tcblisting}{} -\sloth[sleeping] -\end{tcblisting} - -To view the sloth from behind: -\begin{tcblisting}{} -\sloth[back] -\end{tcblisting} - -The key \lstinline|3D| will make the sloth 3-dimensional: -\begin{tcblisting}{} -\sloth[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\sloth[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Squirrel -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Squirrel]{Ratatosk, the squirrel} - -\emph{named after the squirrel from Norse mythology who climbs around Yggdrasil} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-squirrels}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\squirrel -\end{tcblisting} - -\subsection{Options} - -The basic squirrel can be modified by changing its colour: -\begin{tcblisting}{} -\squirrel[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of the eyes can be adjusted: -\begin{tcblisting}{} -\squirrel[eye=red] -\end{tcblisting} -\begin{tcblisting}{} -\squirrel[pupil=red] -\end{tcblisting} - -To view the squirrel from behind: -\begin{tcblisting}{} -\squirrel[back] -\end{tcblisting} - -The key \lstinline|3D| will make the squirrel 3-dimensional: -\begin{tcblisting}{} -\squirrel[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\squirrel[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Snowman -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Snowman]{Yuki, the snowman} - -\emph{Yuki is the transcription of the Japanese word for snow} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings-snowmen}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\snowman -\end{tcblisting} - -\subsection{Options} - -The basic snowman can be modified by changing its colour: -\begin{tcblisting}{} -\snowman[body=blue] -\end{tcblisting} - -In addition to the colour of the body, the colour of various body parts can be adjusted: -\begin{tcblisting}{} -\snowman[eye=red] -\end{tcblisting} -\begin{tcblisting}{} -\snowman[nose=red] -\end{tcblisting} -\begin{tcblisting}{} -\snowman[mouth=red] -\end{tcblisting} -\begin{tcblisting}{} -\snowman[buttons=red] -\end{tcblisting} - -The biggest enemy of the snowman are raising temperatures: -\begin{tcblisting}{} -\snowman[globalwarming,tophat] -\end{tcblisting} - -To view the snowman from behind: -\begin{tcblisting}{} -\snowman[back] -\end{tcblisting} - -The key \lstinline|3D| will make the snowman 3-dimensional: -\begin{tcblisting}{} -\snowman[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\snowman[contour=black] -\end{tcblisting} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Random Tikzling -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section[Ti\emph{k}Zling]{Rani, the Ti\emph{k}Zling} - -\emph{The full name of this Ti\emph{k}Zling is ``Random'', but everybody just calls them ``Rani''} - -\subsection{Package name} - -\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] -\vspace*{0.5cm} -\lstinline|\usepackage{tikzlings}| -\vspace*{0.5cm} -\end{tcolorbox} - -\subsection{Basic Usage} - -\begin{tcblisting}{} -\tikzling -\end{tcblisting} - -\subsection{Options} - -Only options common for all \tikzlings are supported for the \lstinline|\tikzling|. These are the ability to change the body colour -\begin{tcblisting}{} -\tikzling[body=blue] -\end{tcblisting} - -to view the \tikzlings from behind -\begin{tcblisting}{} -\tikzling[back] -\end{tcblisting} - -and the \lstinline|3D| key, which will make the Ti\emph{k}Zlings 3-dimensional: -\begin{tcblisting}{} -\tikzling[3D] -\end{tcblisting} - -And finally the \lstinline|contour| key will only draw the outlines: -\begin{tcblisting}{} -\tikzling[contour=black] -\end{tcblisting} - -If an option of a specific tikzlings is used (for example \lstinline|sleeping| which only the koala and sloth can do) this only works if you are lucky and one of them is drawn, in all other cases it will result in an error. - -In addition all usual \TikZ and \lstinline|pgf| keys can be used in the optional argument as well as the accessories presented in the following section. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Accessories -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage -\section{Accessories} - -To customise the \tikzlings the package provides a number of accessories which can be added to all the \tikzlings simply by adding the respective keyword as optional argument: - -\begin{tcblisting}{} -\bear[hat] -\end{tcblisting} - -For most of these items, the colour can be customised: - -\begin{tcblisting}{} -\koala[crown=orange!50!yellow] -\end{tcblisting} - -Unfortunately it is very difficult to create accessories that will fit all the different shapes of the \tikzlings. Therefore it is also possible to add them separately as optional argument of the \lstinline|\thing| macro, which allows more control of their size and placement: - -\begin{tcblisting}{} -\owl -\thing[tophat,scale=1.5,yshift=-0.6cm,xshift=-0.05cm] -\end{tcblisting} - -A list of all available accessories is given below. For completeness the default colours for each key are shown, but actually it is unnecessary unless it should be changed. In case more than one key is shown, all but the first are optional. - -\subsection{Hats} - -\begin{tcblisting}{} -\penguin[ - hat=blue!40!black -] -\end{tcblisting} - -\begin{tcblisting}{} -\snowman[ - tophat=black!90!white -] -\end{tcblisting} - -\begin{tcblisting}{} -\mouse[ - beret=black -] -\end{tcblisting} - -\begin{tcblisting}{} -\anteater[ - strawhat=blue, - ribbon=black -] -\end{tcblisting} - -\begin{tcblisting}{} -\coati[ - harlequin=blue, - niuqelrah=red -] -\end{tcblisting} - -\begin{tcblisting}{} -\cat[ - witch=gray -] -\end{tcblisting} - -\begin{tcblisting}{} -\bear[ - magichat=violet, - magicstars=yellow!80!brown -] -\end{tcblisting} - -\begin{tcblisting}{} -\sheep[ - crown=yellow!90!orange -] -\end{tcblisting} - -\begin{tcblisting}{} -\koala[ - queencrown=yellow -] -\end{tcblisting} - -\begin{tcblisting}{} -\marmot[ - kingcrown=gray -] -\end{tcblisting} - -\begin{tcblisting}{} -\mouse[ - santa=red!80!black -] -\end{tcblisting} - -\begin{tcblisting}{} -\bear[ - chef=gray!20!white -] +\koala[ + crozier=brown +] \end{tcblisting} \begin{tcblisting}{} \snowman[ - graduate=black, - tassel=red -] -\end{tcblisting} - -\begin{tcblisting}{} -\penguin[ - alien=green -] -\end{tcblisting} - -\subsection{Communication} - -\begin{tcblisting}{} -\coati[ - book={\tiny\TeX}, - bookcolour=brown -] -\end{tcblisting} - -\begin{tcblisting}{} -\pig[ - signpost={\TeX}, - signcolour= brown!50!black, - signback=green!40!black -] -\end{tcblisting} - -\begin{tcblisting}{} -\bear[ - speech={\TeX}, - bubblecolour=gray!30!white -] -\end{tcblisting} - -\begin{tcblisting}{} -\penguin[ - think={\TeX}, - bubblecolour=gray!30!white -] -\end{tcblisting} - -\subsection{Food} - -\begin{tcblisting}{} -\koala[ - pizza -] -\end{tcblisting} - -\begin{tcblisting}{} -\mouse[ - cheese=yellow!30!orange!60!white -] -\end{tcblisting} - -\begin{tcblisting}{} -\coati[ - baguette=brown -] -\end{tcblisting} - -\begin{tcblisting}{} -\moles[ - cake=violet -] -\end{tcblisting} - -\begin{tcblisting}{} -\marmot[ - icecream=brown!60!gray, - flavoura=brown!50!black, - flavourb=white!70!brown, - flavourc=red!50!white -] -\end{tcblisting} - -\begin{tcblisting}{} -\penguin[ - milkshake=red!20!white -] -\end{tcblisting} - -\begin{tcblisting}{} -\owl[ - wine=red!70!black -] -\end{tcblisting} - -\subsection{Sports} - -\begin{tcblisting}{} -\coati[ - cricket=brown -] -\end{tcblisting} - -\begin{tcblisting}{} -\bee[ - hockey=brown -] -\end{tcblisting} - -\begin{tcblisting}{} -\elephant[ - football=white -] -\end{tcblisting} - -\subsection{Other items} - -\begin{tcblisting}{} -\marmot[ - crystalball=cyan -] -\end{tcblisting} - -\begin{tcblisting}{} -\bear[ - magicwand -] -\end{tcblisting} - -\begin{tcblisting}{} -\coati[ - rollingpin=brown + shovel=gray ] \end{tcblisting} \begin{tcblisting}{} \penguin[ - lightsaber=green -] -\end{tcblisting} - -\begin{tcblisting}{} -\snowman[ - torch=gray -] -\end{tcblisting} - -\begin{tcblisting}{} -\mouse[ - basket=brown!70!gray -] -\end{tcblisting} - -\begin{tcblisting}{} -\sloth[ - easter=brown!70!gray, - egga=blue, - eggb=green, - eggc=red -] -\end{tcblisting} - -\begin{tcblisting}{} -\koala[ - crozier=brown + pickaxe=gray ] \end{tcblisting} \begin{tcblisting}{} -\snowman[ - shovel=gray +\bug[ + strawbroom=brown!50!white, + strawbroomstick=brown, + strawbroomribbon=red!50!black ] \end{tcblisting} \begin{tcblisting}{} -\penguin[ - pickaxe=gray +\chicken[ + broom=brown, + broomstick=gray!50!black ] \end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-elephants.sty b/graphics/pgf/contrib/tikzlings/tikzlings-elephants.sty index 750dc756ea..58a86d074e 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-elephants.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-elephants.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/elephant.tex + % !TeX root = ./examples/elephant.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-elephants}[2021/04/16 version v0.6 Draw teddy elephants in TikZ] +\ProvidesPackage{tikzlings-elephants}[2021/08/06 version v0.8 Draw teddy elephants in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -63,120 +63,172 @@ } \def\elephant@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.86, 0.0) rectangle (0.86, 2.17); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifelephant@threeD + \def\elephant@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifelephant@contour + \def\elephant@part@draw[##1]{\draw[##1,\elephant@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\elephant@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname elephanthookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \elephant@part@draw[\elephant@body] (0.47,0.86) ellipse[x radius=0.35, y radius=0.25, rotate=-50]; + \elephant@part@draw[\elephant@body] (-0.47,0.86) ellipse[x radius=0.35, y radius=0.25, rotate=50]; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifelephant@back + \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28]; + \elephant@part@draw[\elephant@body] (-0.425, 0.3) circle[radius=0.28]; + \elephant@part@draw[\elephant@body] (0.57,0.74) circle [radius=0.20]; + \elephant@part@draw[\elephant@body] (-0.57,0.74) circle [radius=0.20]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \elephant@part@draw[\elephant@body] (0,0.75) ellipse[x radius=0.55, y radius=0.65]; + \unless\ifelephant@back + \elephant@part@draw[\elephant@body!30!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4]; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname elephanthookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifelephant@back + \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28]; + \elephant@part@draw[\elephant@body] (-0.425, 0.3) circle[radius=0.28]; + \elephant@part@draw[\elephant@body!30!white] (0.425, 0.3) circle[radius=0.17]; + \elephant@part@draw[\elephant@body!30!white] (-0.425, 0.3) circle[radius=0.17]; + \elephant@part@draw[\elephant@body] (0.57,0.75) circle [radius=0.20]; + \elephant@part@draw[\elephant@body!30!white] (0.57,0.74) circle [radius=0.12]; + \elephant@part@draw[\elephant@body] (-0.57,0.74) circle [radius=0.20]; + \elephant@part@draw[\elephant@body!30!white] (-0.57,0.74) circle [radius=0.12]; + \fi% back + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \elephant@part@draw[\elephant@body] (0.5, 1.7) ellipse [x radius=0.35,y radius=0.45]; + \elephant@part@draw[\elephant@body] (-0.5, 1.7) ellipse [x radius=0.35,y radius=0.45]; + \unless\ifelephant@back + \elephant@part@draw[\elephant@body!30!white] (0.5, 1.7) ellipse [x radius=0.25,y radius=0.35]; + \elephant@part@draw[\elephant@body!30!white] (-0.5, 1.7) ellipse [x radius=0.25,y radius=0.35]; + \fi% back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \elephant@part@draw[\elephant@body] (0, 1.55) circle[radius=0.5]; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifelephant@back + % + % Trunk% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifelephant@threeD + \elephant@part@draw[\elephant@body,draw=\elephant@body!70!black,line width=\scalingfactor*0.6pt] (0.1428, 1.4375) .. controls (0.1607, 1.0411) and (0.3327, 1.1276) .. (0.6705, 1.355) -- (0.72, 1.22) .. controls (0.3327, 0.9) and (-0.1607, 0.8) .. (-0.1428, 1.4375) arc [start angle=160, end angle=20, radius=0.155] -- cycle; + \fill[\elephant@body!40!black] (0.7, 1.29) circle [radius=0.08]; + \else% 3D + \elephant@part@draw[\elephant@body,draw=\elephant@body!70!black,line width=\scalingfactor*0.6pt] (0.1428, 1.4375) .. controls (0.1607, 1.0411) and (0.3327, 1.1276) .. (0.6705, 1.355) -- (0.72, 1.22) .. controls (0.3327, 0.9) and (-0.1607, 0.8) .. (-0.1428, 1.4375); + \elephant@part@draw[\elephant@body!70!black] (0.7, 1.29) circle [radius=0.08]; + \fi% 3D + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \elephant@part@draw[\elephant@eye] (-0.155, 1.7) circle[radius=0.05]; + \elephant@part@draw[\elephant@eye] (0.155, 1.7) circle[radius=0.05]; + % + \fi% back + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifelephant@back + \draw[\elephant@body!30!white,line width=\scalingfactor*0.6pt] (0, 0.5904) .. controls (-0.1619, 0.4147) and (0.203, 0.4157) .. (0.2422, 0.2712); + \elephant@part@draw[\elephant@body!30!white] (0.2008, 0.1949) .. controls (0.2452, 0.2121) and (0.2799, 0.242) .. (0.2691, 0.2755) .. controls (0.2611, 0.3005) and (0.2127, 0.3115) .. (0.1927, 0.2945) .. controls (0.1674, 0.2729) and (0.2082, 0.2383) .. (0.2008, 0.1949) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname elephanthookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.86, 0.0) rectangle (0.86, 2.17); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifelephant@threeD - \def\elephant@part@draw[##1]{\shade[ball color=##1]} -\else - \ifelephant@contour - \def\elephant@part@draw[##1]{\draw[##1,\elephant@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\elephant@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0.925) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Elephant]{Johannes, the elephant} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname elephanthookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\elephant@part@draw[\elephant@body] (0.47,0.86) ellipse[x radius=0.35, y radius=0.25, rotate=-50]; -\elephant@part@draw[\elephant@body] (-0.47,0.86) ellipse[x radius=0.35, y radius=0.25, rotate=50]; +%\emph{The namesake of Johannes loves elephants} % -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifelephant@back - \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28]; - \elephant@part@draw[\elephant@body] (-0.425, 0.3) circle[radius=0.28]; - \elephant@part@draw[\elephant@body] (0.57,0.74) circle [radius=0.20]; - \elephant@part@draw[\elephant@body] (-0.57,0.74) circle [radius=0.20]; -\fi +%\subsection{Package name} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\elephant@part@draw[\elephant@body] (0,0.75) ellipse[x radius=0.55, y radius=0.65]; -\unless\ifelephant@back - \elephant@part@draw[\elephant@body!30!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4]; -\fi +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-elephants}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname elephanthookbelly\endcsname -\csname tikzlinghookbelly\endcsname +%\subsection{Basic Usage} % -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifelephant@back - \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28]; - \elephant@part@draw[\elephant@body] (-0.425, 0.3) circle[radius=0.28]; - \elephant@part@draw[\elephant@body!30!white] (0.425, 0.3) circle[radius=0.17]; - \elephant@part@draw[\elephant@body!30!white] (-0.425, 0.3) circle[radius=0.17]; - \elephant@part@draw[\elephant@body] (0.57,0.75) circle [radius=0.20]; - \elephant@part@draw[\elephant@body!30!white] (0.57,0.74) circle [radius=0.12]; - \elephant@part@draw[\elephant@body] (-0.57,0.74) circle [radius=0.20]; - \elephant@part@draw[\elephant@body!30!white] (-0.57,0.74) circle [radius=0.12]; -\fi +%\begin{tcblisting}{} +%\elephant +%\end{tcblisting} % -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\elephant@part@draw[\elephant@body] (0.5, 1.7) ellipse [x radius=0.35,y radius=0.45]; -\elephant@part@draw[\elephant@body] (-0.5, 1.7) ellipse [x radius=0.35,y radius=0.45]; -\unless\ifelephant@back - \elephant@part@draw[\elephant@body!30!white] (0.5, 1.7) ellipse [x radius=0.25,y radius=0.35]; - \elephant@part@draw[\elephant@body!30!white] (-0.5, 1.7) ellipse [x radius=0.25,y radius=0.35]; -\fi +%\subsection{Options} % -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\elephant@part@draw[\elephant@body] (0, 1.55) circle[radius=0.5]; +%The basic elephant can be modified by changing its colour: +%\begin{tcblisting}{} +%\elephant[body=blue] +%\end{tcblisting} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifelephant@back +%In addition to the colour of the body, the colour of the eyes can be adjusted: +%\begin{tcblisting}{} +%\elephant[eye=red] +%\end{tcblisting} % -% Trunk% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifelephant@threeD - \elephant@part@draw[\elephant@body,draw=\elephant@body!70!black,line width=\scalingfactor*0.6pt] (0.1428, 1.4375) .. controls (0.1607, 1.0411) and (0.3327, 1.1276) .. (0.6705, 1.355) -- (0.72, 1.22) .. controls (0.3327, 0.9) and (-0.1607, 0.8) .. (-0.1428, 1.4375) arc [start angle=160, end angle=20, radius=0.155] -- cycle; - \fill[\elephant@body!40!black] (0.7, 1.29) circle [radius=0.08]; -\else - \elephant@part@draw[\elephant@body,draw=\elephant@body!70!black,line width=\scalingfactor*0.6pt] (0.1428, 1.4375) .. controls (0.1607, 1.0411) and (0.3327, 1.1276) .. (0.6705, 1.355) -- (0.72, 1.22) .. controls (0.3327, 0.9) and (-0.1607, 0.8) .. (-0.1428, 1.4375); - \elephant@part@draw[\elephant@body!70!black] (0.7, 1.29) circle [radius=0.08]; -\fi +%To view the elephant from behind: +%\begin{tcblisting}{} +%\elephant[back] +%\end{tcblisting} % -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\elephant@part@draw[\elephant@eye] (-0.155, 1.7) circle[radius=0.05]; -\elephant@part@draw[\elephant@eye] (0.155, 1.7) circle[radius=0.05]; +%The key \lstinline|3D| will make the elephant 3-dimensional: +%\begin{tcblisting}{} +%\elephant[3D] +%\end{tcblisting} % -\fi -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifelephant@back - \draw[\elephant@body!30!white,line width=\scalingfactor*0.6pt] (0, 0.5904) .. controls (-0.1619, 0.4147) and (0.203, 0.4157) .. (0.2422, 0.2712); - \elephant@part@draw[\elephant@body!30!white] (0.2008, 0.1949) .. controls (0.2452, 0.2121) and (0.2799, 0.242) .. (0.2691, 0.2755) .. controls (0.2611, 0.3005) and (0.2127, 0.3115) .. (0.1927, 0.2945) .. controls (0.1674, 0.2729) and (0.2082, 0.2383) .. (0.2008, 0.1949) -- cycle; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname elephanthookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\elephant[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-hippos.sty b/graphics/pgf/contrib/tikzlings/tikzlings-hippos.sty index ec3735b920..eaeeb97c33 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-hippos.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-hippos.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/hippo.tex + % !TeX root = ./examples/hippo.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-hippos}[2021/04/16 version v0.6 Drawing hippos in TikZ] +\ProvidesPackage{tikzlings-hippos}[2021/08/06 version v0.8 Drawing hippos in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -53,6 +53,8 @@ pupil = black, toes/.code = \def\hippo@toes{#1}, toes = \hippo@body!55!white, + mouth/.code = \def\hippo@mouth{#1}, + mouth = \hippo@body!70!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options @@ -61,139 +63,198 @@ 3D/.code = \hippo@threeDtrue, back/.code = \hippo@backtrue, contour/.code = \hippo@contourtrue - \def\hippo@contour{#1}, + \def\hippo@contour{#1} + \def\hippo@mouth{#1}, contour/.default = black, outline/.forward to = /hippo/contour, } \def\hippo@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.625,0.1) rectangle (0.625, 2.17); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifhippo@threeD + \def\hippo@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifhippo@contour + \def\hippo@part@draw[##1]{\draw[##1,\hippo@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\hippo@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname hippohookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \hippo@part@draw[\hippo@body] (0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=-30]; + \hippo@part@draw[\hippo@body] (-0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=30]; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifhippo@back + \begin{scope} + \clip (-0.5,0.4) rectangle (0.5,0.13); + \hippo@part@draw[\hippo@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \hippo@part@draw[\hippo@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \end{scope} + \fi% back + % + % Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifhippo@back + \hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \hippo@part@draw[\hippo@body!55!white] ( 0.6, 0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.19) .. ( 0.0, 0.19) .. controls (-0.35, 0.19) and (-0.6 , 0.4) .. (-0.6, 0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.65) .. ( 0.0, 1.65) .. controls ( 0.35, 1.65) and ( 0.6 , 1.3) .. ( 0.6, 0.8) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname hippohookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifhippo@back + \hippo@part@draw[\hippo@body] (0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90]; + \hippo@part@draw[\hippo@body] (-0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90]; + \fi% back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \hippo@part@draw[\hippo@body!55!white] (0, 1.76) circle[radius=0.36]; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifhippo@back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifhippo@contour + \hippo@part@draw[\hippo@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \hippo@part@draw[\hippo@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \hippo@part@draw[\hippo@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \hippo@part@draw[\hippo@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \else% contour + \fill[\hippo@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \fill[\hippo@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \fill[\hippo@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \fill[\hippo@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \fi% contour + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2]; + \hippo@part@draw[\hippo@body!70!black] (-0.07, 1.63) circle[radius=0.035]; + \hippo@part@draw[\hippo@body!70!black] (0.07, 1.63) circle[radius=0.035]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifhippo@threeD + \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; + \else% 3D + \draw[\hippo@mouth,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2]; + \fi% 3D + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{scope} + \clip (-0.5,0.4) rectangle (0.5,0.13); + \hippo@part@draw[\hippo@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \hippo@part@draw[\hippo@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \hippo@part@draw[\hippo@toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; + \hippo@part@draw[\hippo@toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; + \hippo@part@draw[\hippo@toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; + \hippo@part@draw[\hippo@toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; + \hippo@part@draw[\hippo@toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; + \hippo@part@draw[\hippo@toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; + \end{scope} + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname hippohookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.625,0.1) rectangle (0.625, 2.17); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifhippo@threeD - \def\hippo@part@draw[##1]{\shade[ball color=##1]} -\else - \ifhippo@contour - \def\hippo@part@draw[##1]{\draw[##1,\hippo@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\hippo@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Hippo]{Sieglinde, the hippo} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname hippohookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body] (0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=-30]; -\hippo@part@draw[\hippo@body] (-0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=30]; +%\emph{For the winner of the 2019 Groundhog Challenge} % -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifhippo@back - \begin{scope} - \clip (-0.5,0.4) rectangle (0.5,0.13); - \hippo@part@draw[\hippo@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \hippo@part@draw[\hippo@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \end{scope} -\fi +%\subsection{Package name} % -% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifhippo@back - \hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2]; -\fi +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-hippos}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body!55!white] ( 0.6, 0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.19) .. ( 0.0, 0.19) .. controls (-0.35, 0.19) and (-0.6 , 0.4) .. (-0.6, 0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.65) .. ( 0.0, 1.65) .. controls ( 0.35, 1.65) and ( 0.6 , 1.3) .. ( 0.6, 0.8) -- cycle; +%\subsection{Basic Usage} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname hippohookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifhippo@back - \hippo@part@draw[\hippo@body] (0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90]; - \hippo@part@draw[\hippo@body] (-0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90]; -\fi +%\begin{tcblisting}{} +%\hippo +%\end{tcblisting} % -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body!55!white] (0, 1.76) circle[radius=0.36]; +%\subsection{Options} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifhippo@back +%The basic hippo can be modified by changing its colour: +%\begin{tcblisting}{} +%\hippo[body=blue] +%\end{tcblisting} % -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifhippo@contour - \hippo@part@draw[\hippo@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \hippo@part@draw[\hippo@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \hippo@part@draw[\hippo@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; - \hippo@part@draw[\hippo@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; -\else - \fill[\hippo@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \fill[\hippo@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \fill[\hippo@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; - \fill[\hippo@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; -\fi +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\hippo[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\hippo[pupil=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\hippo[mouth=red] +%\end{tcblisting} % -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2]; -\hippo@part@draw[\hippo@body!70!black] (-0.07, 1.63) circle[radius=0.035]; -\hippo@part@draw[\hippo@body!70!black] (0.07, 1.63) circle[radius=0.035]; +%The hippo can also do its nails: +%\begin{tcblisting}{} +%\hippo[toes=red] +%\end{tcblisting} % -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifhippo@threeD - \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; -\else - \ifhippo@contour - \draw[\hippo@contour,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2]; - \else - \draw[\hippo@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2]; - \fi -\fi +%To view the hippo from behind: +%\begin{tcblisting}{} +%\hippo[back] +%\end{tcblisting} % -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{scope} - \clip (-0.5,0.4) rectangle (0.5,0.13); - \hippo@part@draw[\hippo@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \hippo@part@draw[\hippo@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \hippo@part@draw[\hippo@toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; - \hippo@part@draw[\hippo@toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; - \hippo@part@draw[\hippo@toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; - \hippo@part@draw[\hippo@toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; - \hippo@part@draw[\hippo@toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; - \hippo@part@draw[\hippo@toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; -\end{scope} +%The key \lstinline|3D| will make the hippo 3-dimensional: +%\begin{tcblisting}{} +%\hippo[3D] +%\end{tcblisting} % -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname hippohookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\hippo[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-koalas.sty b/graphics/pgf/contrib/tikzlings/tikzlings-koalas.sty index 873a910b8e..43281e9d2d 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-koalas.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-koalas.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/koala.tex + % !TeX root = ./examples/koala.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-koalas}[2021/04/16 version v0.6 Drawing koalas in TikZ] +\ProvidesPackage{tikzlings-koalas}[2021/08/06 version v0.8 Drawing koalas in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -56,158 +56,216 @@ body = gray!75!white, eye/.code = \def\koala@eye{#1}, eye = black, + mouth/.code = \def\koala@mouth{#1}, + mouth = \koala@body!40!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - blush/.code = \koala@blushtrue, + blush/.code = \koala@blushtrue + \def\koala@blushcolor{#1}, + blush/.default = red, sleeping/.code = \koala@sleepingtrue, - 3D/.code = \koala@threeDtrue, + 3D/.code = \koala@threeDtrue + \def\koala@mouth{black}, back/.code = \koala@backtrue, contour/.code = \koala@contourtrue - \def\koala@contour{#1}, + \def\koala@contour{#1} + \def\koala@blushcolor{#1} + \def\koala@mouth{#1}, contour/.default = black, outline/.forward to = /koala/contour, } \def\koala@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.88,0.1) rectangle (0.88, 2.35); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifkoala@threeD + \def\koala@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifkoala@contour + \def\koala@part@draw[##1]{\draw[##1,\koala@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\koala@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname koalahookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \koala@part@draw[\koala@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \koala@part@draw[\koala@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \koala@part@draw[\koala@body] (0.405, 2.1) ellipse[x radius=0.3, y radius=0.23]; + \koala@part@draw[\koala@body] (-0.405, 2.1) ellipse[x radius=0.3, y radius=0.23]; + \unless\ifkoala@back + \koala@part@draw[\koala@body!40!white] (-0.405, 2.1) ellipse[x radius=0.15, y radius=0.12]; + \koala@part@draw[\koala@body!40!white] (0.405, 2.1) ellipse[x radius=0.15, y radius=0.12]; + \fi% back + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \koala@part@draw[\koala@body] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70]; + \koala@part@draw[\koala@body!50!black] (-0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=-20]; + \koala@part@draw[\koala@body] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; + \koala@part@draw[\koala@body!50!black] (0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=20]; + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \koala@part@draw[\koala@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifkoala@back + \koala@part@draw[\koala@body!40!white] ( 0.425, 0.71) .. controls ( 0.425, 0.41) and ( 0.255, 0.27) .. ( 0 , 0.27) .. controls (-0.255, 0.27) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.255, 1.20) .. ( 0 , 1.20) .. controls ( 0.225, 1.20) and ( 0.425, 1.01) .. ( 0.425, 0.71) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname koalahookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \koala@part@draw[\koala@body] (0,1.67) ellipse[x radius=0.55, y radius=0.45]; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifkoala@back + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \koala@part@draw[\koala@body!40!black] (-0.1501, 1.5609) .. controls (-0.1784, 1.4833) and (-0.0827, 1.4108) .. ( 0.0000, 1.4108) .. controls ( 0.0827, 1.4108) and ( 0.1784, 1.4833) .. ( 0.1501, 1.5609) .. controls ( 0.1290, 1.6191) and ( 0.1187, 1.6573) .. ( 0.0750, 1.7010) .. controls ( 0.0336, 1.7424) and (-0.0336, 1.7424) .. (-0.0750, 1.7010) .. controls (-0.1187, 1.6573) and (-0.1290, 1.6191) .. (-0.1501, 1.5609) -- cycle; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifkoala@sleeping + \fill[\koala@body!50!black] (0.2534, 1.675) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={20:(0.2925, 1.6925)}] (0.29, 1.68) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-20:(0.2143, 1.6925)}] (0.2168, 1.68) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={40:(0.3255, 1.7025)}] (0.323, 1.69) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-40:(0.1813, 1.7025)}] (0.1838, 1.69) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black] (-0.2534, 1.675) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-20:(-0.2925, 1.6925)}] (-0.29, 1.68) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={20:(-0.2143, 1.6925)}] (-0.2168, 1.68) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-40:(-0.3255, 1.7025)}] (-0.323, 1.69) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={40:(-0.1813, 1.7025)}] (-0.1838, 1.69) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black, even odd rule] (0.3331, 1.741) .. controls (0.3331, 1.685) and (0.1737, 1.685) .. (0.1737, 1.741) .. controls (0.1737, 1.848) and (0.3331, 1.848) .. (0.3331, 1.741) -- cycle (0.328, 1.741) .. controls (0.323, 1.705) and (0.184, 1.705) .. (0.179, 1.741) .. controls (0.184, 1.843) and (0.323, 1.843) .. (0.328, 1.741) -- cycle; + \fill[\koala@body!50!black, even odd rule] (-0.3331, 1.741) .. controls (-0.3331, 1.685) and (-0.1737, 1.685) .. (-0.1737, 1.741) .. controls (-0.1737, 1.848) and (-0.3331, 1.848) .. (-0.3331, 1.741) -- cycle (-0.328, 1.741) .. controls (-0.323, 1.705) and (-0.184, 1.705) .. (-0.179, 1.741) .. controls (-0.184, 1.843) and (-0.323, 1.843) .. (-0.328, 1.741) -- cycle; + \else% sleeping + \koala@part@draw[\koala@eye] (-0.255, 1.74) circle[radius=0.08]; + \koala@part@draw[\koala@eye] (0.255, 1.74) circle[radius=0.08]; + \fill[white] (-0.27, 1.76) circle[radius=0.015]; + \fill[white] (0.24, 1.76) circle[radius=0.015]; + \fi% sleeping + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\koala@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16]; + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % optional + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifkoala@blush + \fill[\koala@blushcolor,path fading=koala@blush] (-0.3, 1.52) circle[radius=0.1]; + \fill[\koala@blushcolor,path fading=koala@blush] (0.3, 1.52) circle[radius=0.1]; + \fi% blush + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname koalahookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.88,0.1) rectangle (0.88, 2.35); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifkoala@threeD - \def\koala@part@draw[##1]{\shade[ball color=##1]} -\else - \ifkoala@contour - \def\koala@part@draw[##1]{\draw[##1,\koala@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\koala@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Koala]{Will, the koala} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname koalahookbackground\endcsname -\csname tikzlinghookbackground\endcsname +%\emph{The koala was generously contributed by @marmot and is named in honour of a \LaTeX{} developer from Down Under} % -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\koala@part@draw[\koala@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; +%\subsection{Package name} % -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body] (0.405, 2.1) ellipse[x radius=0.3, y radius=0.23]; -\koala@part@draw[\koala@body] (-0.405, 2.1) ellipse[x radius=0.3, y radius=0.23]; -\unless\ifkoala@back - \koala@part@draw[\koala@body!40!white] (-0.405, 2.1) ellipse[x radius=0.15, y radius=0.12]; - \koala@part@draw[\koala@body!40!white] (0.405, 2.1) ellipse[x radius=0.15, y radius=0.12]; -\fi +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-koalas}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70]; -\koala@part@draw[\koala@body!50!black] (-0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=-20]; -\koala@part@draw[\koala@body] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; -\koala@part@draw[\koala@body!50!black] (0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=20]; +%\subsection{Basic Usage} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; +%\begin{tcblisting}{} +%\koala +%\end{tcblisting} % -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifkoala@back - \koala@part@draw[\koala@body!40!white] ( 0.425, 0.71) .. controls ( 0.425, 0.41) and ( 0.255, 0.27) .. ( 0 , 0.27) .. controls (-0.255, 0.27) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.255, 1.20) .. ( 0 , 1.20) .. controls ( 0.225, 1.20) and ( 0.425, 1.01) .. ( 0.425, 0.71) -- cycle; -\fi +%\subsection{Options} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname koalahookbelly\endcsname -\csname tikzlinghookbelly\endcsname +%The basic koala can be modified by changing its colour: +%\begin{tcblisting}{} +%\koala[body=blue] +%\end{tcblisting} % -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body] (0,1.67) ellipse[x radius=0.55, y radius=0.45]; +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\koala[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\koala[mouth=red] +%\end{tcblisting} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifkoala@back +%It can also blush +%\begin{tcblisting}{} +%\koala[blush=red] +%\end{tcblisting} % -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body!40!black] (-0.1501, 1.5609) .. controls (-0.1784, 1.4833) and (-0.0827, 1.4108) .. ( 0.0000, 1.4108) .. controls ( 0.0827, 1.4108) and ( 0.1784, 1.4833) .. ( 0.1501, 1.5609) .. controls ( 0.1290, 1.6191) and ( 0.1187, 1.6573) .. ( 0.0750, 1.7010) .. controls ( 0.0336, 1.7424) and (-0.0336, 1.7424) .. (-0.0750, 1.7010) .. controls (-0.1187, 1.6573) and (-0.1290, 1.6191) .. (-0.1501, 1.5609) -- cycle; +%and if tired, it is going to take a nap: +%\begin{tcblisting}{} +%\koala[sleeping] +%\end{tcblisting} % -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifkoala@sleeping - \fill[\koala@body!50!black] (0.2534, 1.675) rectangle ++(0.005, 0.03); - \fill[\koala@body!50!black,rotate around={20:(0.2925, 1.6925)}] (0.29, 1.68) rectangle ++(0.005, 0.03); - \fill[\koala@body!50!black,rotate around={-20:(0.2143, 1.6925)}] (0.2168, 1.68) rectangle ++(0.005, 0.03); - \fill[\koala@body!50!black,rotate around={40:(0.3255, 1.7025)}] (0.323, 1.69) rectangle ++(0.005, 0.03); - \fill[\koala@body!50!black,rotate around={-40:(0.1813, 1.7025)}] (0.1838, 1.69) rectangle ++(0.005, 0.03); - \fill[\koala@body!50!black] (-0.2534, 1.675) rectangle ++(-0.005, 0.03); - \fill[\koala@body!50!black,rotate around={-20:(-0.2925, 1.6925)}] (-0.29, 1.68) rectangle ++(-0.005, 0.03); - \fill[\koala@body!50!black,rotate around={20:(-0.2143, 1.6925)}] (-0.2168, 1.68) rectangle ++(-0.005, 0.03); - \fill[\koala@body!50!black,rotate around={-40:(-0.3255, 1.7025)}] (-0.323, 1.69) rectangle ++(-0.005, 0.03); - \fill[\koala@body!50!black,rotate around={40:(-0.1813, 1.7025)}] (-0.1838, 1.69) rectangle ++(-0.005, 0.03); - \fill[\koala@body!50!black, even odd rule] (0.3331, 1.741) .. controls (0.3331, 1.685) and (0.1737, 1.685) .. (0.1737, 1.741) .. controls (0.1737, 1.848) and (0.3331, 1.848) .. (0.3331, 1.741) -- cycle (0.328, 1.741) .. controls (0.323, 1.705) and (0.184, 1.705) .. (0.179, 1.741) .. controls (0.184, 1.843) and (0.323, 1.843) .. (0.328, 1.741) -- cycle; - \fill[\koala@body!50!black, even odd rule] (-0.3331, 1.741) .. controls (-0.3331, 1.685) and (-0.1737, 1.685) .. (-0.1737, 1.741) .. controls (-0.1737, 1.848) and (-0.3331, 1.848) .. (-0.3331, 1.741) -- cycle (-0.328, 1.741) .. controls (-0.323, 1.705) and (-0.184, 1.705) .. (-0.179, 1.741) .. controls (-0.184, 1.843) and (-0.323, 1.843) .. (-0.328, 1.741) -- cycle; -\else - \koala@part@draw[\koala@eye] (-0.255, 1.74) circle[radius=0.08]; - \koala@part@draw[\koala@eye] (0.255, 1.74) circle[radius=0.08]; - \fill[white] (-0.27, 1.76) circle[radius=0.015]; - \fill[white] (0.24, 1.76) circle[radius=0.015]; -\fi +%To view the koala from behind: +%\begin{tcblisting}{} +%\koala[back] +%\end{tcblisting} % -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifkoala@threeD - \draw[black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16]; -\else - \ifkoala@contour - \draw[\koala@contour,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16]; - \else - \draw[\koala@body!40!black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16]; - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%The key \lstinline|3D| will make the koala 3-dimensional: +%\begin{tcblisting}{} +%\koala[3D] +%\end{tcblisting} % -% optional -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifkoala@blush - \ifkoala@contour - \fill[\koala@contour,path fading=koala@blush] (-0.3, 1.52) circle[radius=0.1]; - \fill[\koala@contour,path fading=koala@blush] (0.3, 1.52) circle[radius=0.1]; - \else - \fill[red,path fading=koala@blush] (-0.3, 1.52) circle[radius=0.1]; - \fill[red,path fading=koala@blush] (0.3, 1.52) circle[radius=0.1]; - \fi -\fi -% -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname koalahookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} - +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\koala[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-list.sty b/graphics/pgf/contrib/tikzlings/tikzlings-list.sty index c2b02ebc29..6a9acbb57d 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-list.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-list.sty @@ -1,4 +1,4 @@ -\ProvidesPackage{tikzlings-list}[2021/04/16 version v0.6 Helper package for the tikzlings] +\ProvidesPackage{tikzlings-list}[2021/08/06 version v0.8 Helper package for the tikzlings] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -7,8 +7,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\tikzling@list{ anteater/anteaters, + bat/bats, bear/bears, bee/bees, + bug/bugs, cat/cats, chicken/chickens, coati/coatis, diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-marmots.sty b/graphics/pgf/contrib/tikzlings/tikzlings-marmots.sty index 44d0dd0987..7e1968e22e 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-marmots.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-marmots.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/marmot.tex + % !TeX root = ./examples/marmot.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-marmots}[2021/04/16 version v0.6 Drawing marmots in TikZ] +\ProvidesPackage{tikzlings-marmots}[2021/08/06 version v0.8 Drawing marmots in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -78,12 +78,16 @@ body = brown, eye/.code = \def\marmot@eye{#1}, eye = \marmot@body!50!black, + mouth/.code = \def\marmot@mouth{#1}, + mouth = \marmot@body!50!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - blush/.code = \marmot@blushtrue, + blush/.code = \marmot@blushtrue + \def\marmot@blushcolor{#1}, + blush/.default = red, whiskers/.code = \marmot@whiskerstrue \def\marmot@whiskers{#1}, whiskers/.default = gray, @@ -100,175 +104,253 @@ right step/.forward to = /marmot/rightstep, back/.code = \marmot@backtrue, contour/.code = \marmot@contourtrue - \def\marmot@contour{#1}, + \def\marmot@contour{#1} + \def\marmot@blushcolor{#1} + \def\marmot@mouth{#1}, contour/.default = black, outline/.forward to = /marmot/contour, } \def\marmot@draw{% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.625,0.1) rectangle (0.905, 2.17); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@threeD - \def\marmot@part@draw[##1]{\shade[ball color=##1]} -\else - \ifmarmot@contour - \def\marmot@part@draw[##1]{\draw[##1,\marmot@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\marmot@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% shadow -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname marmothookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -\ifmarmot@askphil - \pgfmathparse{int(random(1,120))} - \let\marmot@random=\pgfmathresult - \ifnum\marmot@random>17 - \marmot@shadowtrue - \fi -\fi -% -\ifmarmot@shadow - \fill[opacity=0,blur shadow,] (0.3,0.5) ellipse[x radius=0.28, y radius=0.8, rotate=-80]; -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@leftstep - \marmot@part@draw[\marmot@body!50!black] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; -\else - \marmot@part@draw[\marmot@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\fi + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.625,0.1) rectangle (0.905, 2.17); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmarmot@threeD + \def\marmot@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifmarmot@contour + \def\marmot@part@draw[##1]{\draw[##1,\marmot@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\marmot@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % shadow + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname marmothookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + \ifmarmot@askphil + \pgfmathparse{int(random(1,120))} + \let\marmot@random=\pgfmathresult + \ifnum\marmot@random>17 + \marmot@shadowtrue + \fi + \fi% askphil + % + \ifmarmot@shadow + \fill[opacity=0,blur shadow,] (0.3,0.5) ellipse[x radius=0.28, y radius=0.8, rotate=-80]; + \fi% shadow + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmarmot@leftstep + \marmot@part@draw[\marmot@body!50!black] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; + \else% step + \marmot@part@draw[\marmot@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \fi% step + % + \ifmarmot@rightstep + \marmot@part@draw[\marmot@body!50!black] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; + \else% step + \marmot@part@draw[\marmot@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \fi% step + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \marmot@part@draw[\marmot@body!50!black] (0.255,2.03) ellipse[x radius=0.09, y radius=0.13]; + \marmot@part@draw[\marmot@body!50!black] (-0.255,2.03) ellipse[x radius=0.09, y radius=0.13]; + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmarmot@back + \marmot@part@draw[\marmot@body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \marmot@part@draw[\marmot@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmarmot@back + \marmot@part@draw[\marmot@body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); + \fi% back + % + % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmarmot@back + \marmot@part@draw[\marmot@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname marmothookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmarmot@back + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \marmot@part@draw[\marmot@body!50!black] (0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70]; + \marmot@part@draw[\marmot@body!50!black] (-0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70]; + % + % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \marmot@part@draw[\marmot@body!50!white] (0,1.47) ellipse[x radius=0.23, y radius=0.13]; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \marmot@part@draw[\marmot@body!50!black] (0,1.6) circle[radius=0.08]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \marmot@part@draw[\marmot@eye] (-0.155,1.77) circle[radius=0.05]; + \marmot@part@draw[\marmot@eye] (0.155,1.77) circle[radius=0.05]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\marmot@mouth] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] -- (-0.14,1.51) -- (-0.14,1.51) arc [start angle=-160, end angle=-20, radius=0.144] -- cycle ; + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % optional + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmarmot@blush + \fill[\marmot@blushcolor,path fading=marmot@blush] (-0.295,1.6) circle[radius=0.1]; + \fill[\marmot@blushcolor,path fading=marmot@blush] (0.295,1.6) circle[radius=0.1]; + \fi% blush + % + % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmarmot@whiskers + \fill[\marmot@whiskers] (0.0788, 1.6146) .. controls (0.1658, 1.6299) and (0.2086, 1.5639) .. (0.2956, 1.5486) -- (0.2956, 1.5586) .. controls (0.2097, 1.5737) and (0.1648, 1.6297) .. (0.0788, 1.6146) -- cycle; + \fill[\marmot@whiskers] (-0.0788, 1.6146) .. controls (-0.1658, 1.6299) and (-0.2087, 1.5639) .. (-0.2956, 1.5486) -- (-0.2956, 1.5586) .. controls (-0.2097, 1.5737) and (-0.1648, 1.6297) .. (-0.0788, 1.6146) -- cycle; + \fill[\marmot@whiskers] (0.0752, 1.6281) .. controls (0.1583, 1.6583) and (0.2171, 1.6309) .. (0.3002, 1.6007) -- (0.3002, 1.6107) .. controls (0.2174, 1.6408) and (0.158, 1.6582) .. (0.0752, 1.6281) -- cycle; + \fill[\marmot@whiskers] (-0.0752, 1.6281) .. controls (-0.1583, 1.6583) and (-0.2171, 1.6309) .. (-0.3002, 1.6007) -- (-0.3002, 1.6107) .. controls (-0.2174, 1.6408) and (-0.158, 1.6582) .. (-0.0752, 1.6281) -- cycle; + \fill[\marmot@whiskers] (0.0671, 1.6443) .. controls (0.1414, 1.6925) and (0.2182, 1.7164) .. (0.2925, 1.6682) -- (0.2925, 1.6782) .. controls (0.2179, 1.7266) and (0.1417, 1.6927) .. (0.0671, 1.6443) -- cycle; + \fill[\marmot@whiskers] (-0.0671, 1.6443) .. controls (-0.1414, 1.6925) and (-0.2182, 1.7164) .. (-0.2925, 1.6682) -- (-0.2925, 1.6782) .. controls (-0.2179, 1.7266) and (-0.1417, 1.6927) .. (-0.0671, 1.6443) -- cycle; + \fi% whiskers + % + % Teeth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmarmot@teeth + \fill[\marmot@body!50!black] (0.048,1.413) rectangle (-0.048,1.373); + \fill[\marmot@teeth] (-0.045,1.407) rectangle (-0.004,1.376); + \fill[\marmot@teeth] (0.045,1.407) rectangle (0.004,1.376); + \fi% teeth + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname marmothookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} -\ifmarmot@rightstep - \marmot@part@draw[\marmot@body!50!black] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; -\else - \marmot@part@draw[\marmot@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\fi -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!black] (0.255,2.03) ellipse[x radius=0.09, y radius=0.13]; -\marmot@part@draw[\marmot@body!50!black] (-0.255,2.03) ellipse[x radius=0.09, y radius=0.13]; -% -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmarmot@back - \marmot@part@draw[\marmot@body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; -% -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@back - \marmot@part@draw[\marmot@body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); -\fi -% -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmarmot@back - \marmot@part@draw[\marmot@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname marmothookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmarmot@back -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!black] (0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70]; -\marmot@part@draw[\marmot@body!50!black] (-0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70]; -% -% Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!white] (0,1.47) ellipse[x radius=0.23, y radius=0.13]; -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!black] (0,1.6) circle[radius=0.08]; -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@eye] (-0.155,1.77) circle[radius=0.05]; -\marmot@part@draw[\marmot@eye] (0.155,1.77) circle[radius=0.05]; -% -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@contour - \fill[\marmot@contour] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] -- (-0.14,1.51) -- (-0.14,1.51) arc [start angle=-160, end angle=-20, radius=0.144] -- cycle ; -\else - \fill[\marmot@body!50!black] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] -- (-0.14,1.51) -- (-0.14,1.51) arc [start angle=-160, end angle=-20, radius=0.144] -- cycle ; -\fi -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% optional -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@blush - \ifmarmot@contour - \fill[\marmot@contour,path fading=marmot@blush] (-0.295,1.6) circle[radius=0.1]; - \fill[\marmot@contour,path fading=marmot@blush] (0.295,1.6) circle[radius=0.1]; - \else - \fill[red,path fading=marmot@blush] (-0.295,1.6) circle[radius=0.1]; - \fill[red,path fading=marmot@blush] (0.295,1.6) circle[radius=0.1]; - \fi -\fi -% -% Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@whiskers - \fill[\marmot@whiskers] (0.0788, 1.6146) .. controls (0.1658, 1.6299) and (0.2086, 1.5639) .. (0.2956, 1.5486) -- (0.2956, 1.5586) .. controls (0.2097, 1.5737) and (0.1648, 1.6297) .. (0.0788, 1.6146) -- cycle; - \fill[\marmot@whiskers] (-0.0788, 1.6146) .. controls (-0.1658, 1.6299) and (-0.2087, 1.5639) .. (-0.2956, 1.5486) -- (-0.2956, 1.5586) .. controls (-0.2097, 1.5737) and (-0.1648, 1.6297) .. (-0.0788, 1.6146) -- cycle; - \fill[\marmot@whiskers] (0.0752, 1.6281) .. controls (0.1583, 1.6583) and (0.2171, 1.6309) .. (0.3002, 1.6007) -- (0.3002, 1.6107) .. controls (0.2174, 1.6408) and (0.158, 1.6582) .. (0.0752, 1.6281) -- cycle; - \fill[\marmot@whiskers] (-0.0752, 1.6281) .. controls (-0.1583, 1.6583) and (-0.2171, 1.6309) .. (-0.3002, 1.6007) -- (-0.3002, 1.6107) .. controls (-0.2174, 1.6408) and (-0.158, 1.6582) .. (-0.0752, 1.6281) -- cycle; - \fill[\marmot@whiskers] (0.0671, 1.6443) .. controls (0.1414, 1.6925) and (0.2182, 1.7164) .. (0.2925, 1.6682) -- (0.2925, 1.6782) .. controls (0.2179, 1.7266) and (0.1417, 1.6927) .. (0.0671, 1.6443) -- cycle; - \fill[\marmot@whiskers] (-0.0671, 1.6443) .. controls (-0.1414, 1.6925) and (-0.2182, 1.7164) .. (-0.2925, 1.6682) -- (-0.2925, 1.6782) .. controls (-0.2179, 1.7266) and (-0.1417, 1.6927) .. (-0.0671, 1.6443) -- cycle; -\fi -% -% Teeth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@teeth - \fill[\marmot@body!50!black] (0.048,1.413) rectangle (-0.048,1.373); - \fill[\marmot@teeth] (-0.045,1.407) rectangle (-0.004,1.376); - \fill[\marmot@teeth] (0.045,1.407) rectangle (0.004,1.376); -\fi -% -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname marmothookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} - +%\clearpage +%\section[Marmot]{Phil, the marmot} +% +%\emph{Phil got his name from Punxsutawney Phil, the famous weather forecasting groundhog} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-marmots}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\marmot +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic marmot can be modified by changing its colour: +%\begin{tcblisting}{} +%\marmot[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\marmot[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\marmot[mouth=red] +%\end{tcblisting} +% +%The marmot can also blush +%\begin{tcblisting}{} +%\marmot[blush=red] +%\end{tcblisting} +% +%and whiskers can be added: +%\begin{tcblisting}{} +%\marmot[whiskers=gray] +%\end{tcblisting} +% +%Some marmots even show their chisel teeth: +%\begin{tcblisting}{} +%\marmot[teeth=white] +%\end{tcblisting} +% +%or can cast a shadow: +%\begin{tcblisting}{} +%\marmot[shadow] +%\end{tcblisting} +% +%This ability is important if you want to ask Punxsutawney Phil\footnote{\url{https://en.wikipedia.org/wiki/Punxsutawney_Phil}} on Groundhog Day how the weather is going to be. With a probability derived from the statistics of 120 Groundhog Days\footnote{\hbadness=99999\url{https://www.livescience.com/32974-punxsutawney-phil-weather-prediction-accuracy.html}} the option \lstinline|askphil| might or might not result in a shadow. +%\begin{tcblisting}{} +%\marmot[askphil] +%\end{tcblisting} +% +%If a good weather prognosis is derived, the happy marmot can dance by lifting up its left and right foot: +%\begin{tcblisting}{} +%\marmot[leftstep] +%\marmot[rightstep,xshift=2cm] +%\end{tcblisting} +% +%To view the marmot from behind: +%\begin{tcblisting}{} +%\marmot[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the marmot 3-dimensional: +%\begin{tcblisting}{} +%\marmot[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\marmot[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-mice.sty b/graphics/pgf/contrib/tikzlings/tikzlings-mice.sty index 0b36ea82e3..5b3be0abe1 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-mice.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-mice.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/mouse.tex + % !TeX root = ./examples/mouse.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-mice}[2021/04/16 version v0.6 Drawing mice in TikZ] +\ProvidesPackage{tikzlings-mice}[2021/08/06 version v0.8 Drawing mice in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -53,6 +53,8 @@ body = gray!90!white, eye/.code = \def\mouse@eye{#1}, eye = \mouse@body!50!black, + whiskers/.code = \def\mouse@whiskers{#1}, + whiskers = \mouse@body!50!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options @@ -69,140 +71,197 @@ right step/.forward to = /mouse/rightstep, back/.code = \mouse@backtrue, contour/.code = \mouse@contourtrue - \def\mouse@contour{#1}, + \def\mouse@contour{#1} + \def\mouse@whiskers{#1}, contour/.default = black, outline/.forward to = /mouse/contour, } \def\mouse@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.625,0.1) rectangle (0.905, 2.17); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmouse@threeD + \def\mouse@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifmouse@contour + \def\mouse@part@draw[##1]{\draw[##1,\mouse@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\mouse@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname mousehookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmouse@leftstep + \mouse@part@draw[\mouse@body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; + \else% step + \mouse@part@draw[\mouse@body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \fi% step + % + \ifmouse@rightstep + \mouse@part@draw[\mouse@body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; + \else% step + \mouse@part@draw[\mouse@body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \fi% step + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \mouse@part@draw[\mouse@body!65!white] (0.36, 2.17) circle[radius=0.28]; + \mouse@part@draw[\mouse@body!65!white] (-0.36, 2.17) circle[radius=0.28]; + \unless\ifmouse@back + \mouse@part@draw[\mouse@body] (0.36, 2.17) circle[radius=0.15]; + \mouse@part@draw[\mouse@body] (-0.36, 2.17) circle[radius=0.15]; + \fi% back + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmouse@back + \mouse@part@draw[\mouse@body!65!white] (1.0825, 1.6326) .. controls (1.3527, 1.7527) and (1.6609, 1.3164) .. (1.5928, 1.3124) .. controls (0.9164, 2.186) and (0.8338, 0.6325) .. (0.3708, 0.4451) .. controls (0.2529, 0.3974) and (-0.0064, 0.3874) .. (-0.0064, 0.3874) .. controls (-0.0776, 0.3765) and (-0.0862, 0.5026) .. (-0.0092, 0.5034) .. controls (-0.0092, 0.5034) and (0.0363, 0.4591) .. (0.3516, 0.54360) .. controls (0.6710, 0.6988) and (0.7613, 1.4825) .. (1.0825, 1.6326) -- cycle; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \mouse@part@draw[\mouse@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname mousehookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmouse@back + \mouse@part@draw[\mouse@body!65!white] (1.0825, 1.6326) .. controls (1.3527, 1.7527) and (1.6609, 1.3164) .. (1.5928, 1.3124) .. controls (0.9164, 2.186) and (0.8338, 0.6325) .. (0.3708, 0.4451) .. controls (0.2529, 0.3974) and (-0.0064, 0.3874) .. (-0.0064, 0.3874) .. controls (-0.0776, 0.3765) and (-0.0862, 0.5026) .. (-0.0092, 0.5034) .. controls (-0.0092, 0.5034) and (0.0363, 0.4591) .. (0.3516, 0.54360) .. controls (0.6710, 0.6988) and (0.7613, 1.4825) .. (1.0825, 1.6326) -- cycle; + \fi% back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmouse@back + \mouse@part@draw[\mouse@body!65!white] + (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.35) .. + (0, 1.35) .. controls (-0.2, 1.35) and (-0.5, 1.58) .. + (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. + (0.5, 1.8) -- cycle; + \else% back + \mouse@part@draw[\mouse@body!65!white] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle; + \fi% back + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmouse@back + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \mouse@part@draw[\mouse@body!65!white,rotate around={-\mouse@rotatearms:(0.47,1.15)}] (0.47,0.93) ellipse[x radius=0.13, y radius=0.24]; + \mouse@part@draw[\mouse@body!65!white,rotate around={\mouse@rotatearms:(-0.47,1.15)}] (-0.47,0.93) ellipse[x radius=0.13, y radius=0.24]; + % + % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\mouse@whiskers] (0.0788, 1.2046) .. controls (0.1658, 1.2199) and (0.2086, 1.1539) .. (0.2956, 1.1386) -- (0.2956, 1.1486) .. controls (0.2097, 1.1637) and (0.1648, 1.2197) .. (0.0788, 1.2046) -- cycle; + \fill[\mouse@whiskers] (-0.0788, 1.2046) .. controls (-0.1658, 1.2199) and (-0.2087, 1.1539) .. (-0.2956, 1.1386) -- (-0.2956, 1.1486) .. controls (-0.2097, 1.1637) and (-0.1648, 1.2197) .. (-0.0788, 1.2046) -- cycle; + \fill[\mouse@whiskers] (0.0752, 1.2181) .. controls (0.1583, 1.2483) and (0.2171, 1.2209) .. (0.3002, 1.1907) -- (0.3002, 1.2007) .. controls (0.2174, 1.2308) and (0.158, 1.2482) .. (0.0752, 1.2181) -- cycle; + \fill[\mouse@whiskers] (-0.0752, 1.2181) .. controls (-0.1583, 1.2483) and (-0.2171, 1.2209) .. (-0.3002, 1.1907) -- (-0.3002, 1.2007) .. controls (-0.2174, 1.2308) and (-0.158, 1.2482) .. (-0.0752, 1.2181) -- cycle; + \fill[\mouse@whiskers] (0.0671, 1.2343) .. controls (0.1414, 1.2825) and (0.2182, 1.3064) .. (0.2925, 1.2582) -- (0.2925, 1.2682) .. controls (0.2179, 1.3166) and (0.1417, 1.2827) .. (0.0671, 1.2343) -- cycle; + \fill[\mouse@whiskers] (-0.0671, 1.2343) .. controls (-0.1414, 1.2825) and (-0.2182, 1.3064) .. (-0.2925, 1.2582) -- (-0.2925, 1.2682) .. controls (-0.2179, 1.3166) and (-0.1417, 1.2827) .. (-0.0671, 1.2343) -- cycle; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \mouse@part@draw[\mouse@body!50!black] (0, 1.248) circle[radius=0.09]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \mouse@part@draw[\mouse@eye] (0.23, 1.68) circle[radius=0.05]; + \mouse@part@draw[\mouse@eye] (-0.23, 1.68) circle[radius=0.05]; + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname mousehookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.625,0.1) rectangle (0.905, 2.17); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmouse@threeD - \def\mouse@part@draw[##1]{\shade[ball color=##1]} -\else - \ifmouse@contour - \def\mouse@part@draw[##1]{\draw[##1,\mouse@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\mouse@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Mouse]{Tokz, the mouse} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname mousehookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmouse@leftstep - \mouse@part@draw[\mouse@body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; -\else - \mouse@part@draw[\mouse@body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\fi +%\emph{The idea for the mouse came from an Italian \LaTeX{} user -- Tokz is a combination of the Italian word for mouse and \TikZ} % -\ifmouse@rightstep - \mouse@part@draw[\mouse@body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; -\else - \mouse@part@draw[\mouse@body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\fi +%\subsection{Package name} % -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!65!white] (0.36, 2.17) circle[radius=0.28]; -\mouse@part@draw[\mouse@body!65!white] (-0.36, 2.17) circle[radius=0.28]; -\unless\ifmouse@back - \mouse@part@draw[\mouse@body] (0.36, 2.17) circle[radius=0.15]; - \mouse@part@draw[\mouse@body] (-0.36, 2.17) circle[radius=0.15]; -\fi +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-mice}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmouse@back - \mouse@part@draw[\mouse@body!65!white] (1.0825, 1.6326) .. controls (1.3527, 1.7527) and (1.6609, 1.3164) .. (1.5928, 1.3124) .. controls (0.9164, 2.186) and (0.8338, 0.6325) .. (0.3708, 0.4451) .. controls (0.2529, 0.3974) and (-0.0064, 0.3874) .. (-0.0064, 0.3874) .. controls (-0.0776, 0.3765) and (-0.0862, 0.5026) .. (-0.0092, 0.5034) .. controls (-0.0092, 0.5034) and (0.0363, 0.4591) .. (0.3516, 0.54360) .. controls (0.6710, 0.6988) and (0.7613, 1.4825) .. (1.0825, 1.6326) -- cycle; -\fi +%\subsection{Basic Usage} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; +%\begin{tcblisting}{} +%\mouse +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname mousehookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmouse@back - \mouse@part@draw[\mouse@body!65!white] (1.0825, 1.6326) .. controls (1.3527, 1.7527) and (1.6609, 1.3164) .. (1.5928, 1.3124) .. controls (0.9164, 2.186) and (0.8338, 0.6325) .. (0.3708, 0.4451) .. controls (0.2529, 0.3974) and (-0.0064, 0.3874) .. (-0.0064, 0.3874) .. controls (-0.0776, 0.3765) and (-0.0862, 0.5026) .. (-0.0092, 0.5034) .. controls (-0.0092, 0.5034) and (0.0363, 0.4591) .. (0.3516, 0.54360) .. controls (0.6710, 0.6988) and (0.7613, 1.4825) .. (1.0825, 1.6326) -- cycle; -\fi +%\subsection{Options} % -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmouse@back - \mouse@part@draw[\mouse@body!65!white] - (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.35) .. - (0, 1.35) .. controls (-0.2, 1.35) and (-0.5, 1.58) .. - (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. - (0.5, 1.8) -- cycle; -\else - \mouse@part@draw[\mouse@body!65!white] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle; -\fi +%The basic mouse can be modified by changing its colour: +%\begin{tcblisting}{} +%\mouse[body=blue] +%\end{tcblisting} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmouse@back +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\mouse[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\mouse[whiskers=red] +%\end{tcblisting} % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!65!white,rotate around={-\mouse@rotatearms:(0.47,1.15)}] (0.47,0.93) ellipse[x radius=0.13, y radius=0.24]; -\mouse@part@draw[\mouse@body!65!white,rotate around={\mouse@rotatearms:(-0.47,1.15)}] (-0.47,0.93) ellipse[x radius=0.13, y radius=0.24]; +%The rotation angle of its arms can be adjusted: +%\begin{tcblisting}{} +%\mouse[rotatearms=40] +%\end{tcblisting} % -% Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmouse@contour - \fill[\mouse@contour] (0.0788, 1.2046) .. controls (0.1658, 1.2199) and (0.2086, 1.1539) .. (0.2956, 1.1386) -- (0.2956, 1.1486) .. controls (0.2097, 1.1637) and (0.1648, 1.2197) .. (0.0788, 1.2046) -- cycle; - \fill[\mouse@contour] (-0.0788, 1.2046) .. controls (-0.1658, 1.2199) and (-0.2087, 1.1539) .. (-0.2956, 1.1386) -- (-0.2956, 1.1486) .. controls (-0.2097, 1.1637) and (-0.1648, 1.2197) .. (-0.0788, 1.2046) -- cycle; - \fill[\mouse@contour] (0.0752, 1.2181) .. controls (0.1583, 1.2483) and (0.2171, 1.2209) .. (0.3002, 1.1907) -- (0.3002, 1.2007) .. controls (0.2174, 1.2308) and (0.158, 1.2482) .. (0.0752, 1.2181) -- cycle; - \fill[\mouse@contour] (-0.0752, 1.2181) .. controls (-0.1583, 1.2483) and (-0.2171, 1.2209) .. (-0.3002, 1.1907) -- (-0.3002, 1.2007) .. controls (-0.2174, 1.2308) and (-0.158, 1.2482) .. (-0.0752, 1.2181) -- cycle; - \fill[\mouse@contour] (0.0671, 1.2343) .. controls (0.1414, 1.2825) and (0.2182, 1.3064) .. (0.2925, 1.2582) -- (0.2925, 1.2682) .. controls (0.2179, 1.3166) and (0.1417, 1.2827) .. (0.0671, 1.2343) -- cycle; - \fill[\mouse@contour] (-0.0671, 1.2343) .. controls (-0.1414, 1.2825) and (-0.2182, 1.3064) .. (-0.2925, 1.2582) -- (-0.2925, 1.2682) .. controls (-0.2179, 1.3166) and (-0.1417, 1.2827) .. (-0.0671, 1.2343) -- cycle; -\else - \fill[\mouse@body!50!black] (0.0788, 1.2046) .. controls (0.1658, 1.2199) and (0.2086, 1.1539) .. (0.2956, 1.1386) -- (0.2956, 1.1486) .. controls (0.2097, 1.1637) and (0.1648, 1.2197) .. (0.0788, 1.2046) -- cycle; - \fill[\mouse@body!50!black] (-0.0788, 1.2046) .. controls (-0.1658, 1.2199) and (-0.2087, 1.1539) .. (-0.2956, 1.1386) -- (-0.2956, 1.1486) .. controls (-0.2097, 1.1637) and (-0.1648, 1.2197) .. (-0.0788, 1.2046) -- cycle; - \fill[\mouse@body!50!black] (0.0752, 1.2181) .. controls (0.1583, 1.2483) and (0.2171, 1.2209) .. (0.3002, 1.1907) -- (0.3002, 1.2007) .. controls (0.2174, 1.2308) and (0.158, 1.2482) .. (0.0752, 1.2181) -- cycle; - \fill[\mouse@body!50!black] (-0.0752, 1.2181) .. controls (-0.1583, 1.2483) and (-0.2171, 1.2209) .. (-0.3002, 1.1907) -- (-0.3002, 1.2007) .. controls (-0.2174, 1.2308) and (-0.158, 1.2482) .. (-0.0752, 1.2181) -- cycle; - \fill[\mouse@body!50!black] (0.0671, 1.2343) .. controls (0.1414, 1.2825) and (0.2182, 1.3064) .. (0.2925, 1.2582) -- (0.2925, 1.2682) .. controls (0.2179, 1.3166) and (0.1417, 1.2827) .. (0.0671, 1.2343) -- cycle; - \fill[\mouse@body!50!black] (-0.0671, 1.2343) .. controls (-0.1414, 1.2825) and (-0.2182, 1.3064) .. (-0.2925, 1.2582) -- (-0.2925, 1.2682) .. controls (-0.2179, 1.3166) and (-0.1417, 1.2827) .. (-0.0671, 1.2343) -- cycle; -\fi +%And the mouse can lift its legs: +%\begin{tcblisting}{} +%\mouse[leftstep] +%\mouse[rightstep,xshift=2cm] +%\end{tcblisting} % -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!50!black] (0, 1.248) circle[radius=0.09]; +%To view the mouse from behind: +%\begin{tcblisting}{} +%\mouse[back] +%\end{tcblisting} % -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@eye] (0.23, 1.68) circle[radius=0.05]; -\mouse@part@draw[\mouse@eye] (-0.23, 1.68) circle[radius=0.05]; +%The key \lstinline|3D| will make the mouse 3-dimensional: +%\begin{tcblisting}{} +%\mouse[3D] +%\end{tcblisting} % -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname mousehookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} - +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\mouse[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-moles.sty b/graphics/pgf/contrib/tikzlings/tikzlings-moles.sty index cf04bc19f2..9846cc5824 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-moles.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-moles.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/mole.tex + % !TeX root = ./examples/mole.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-moles}[2021/04/16 version v0.6 Drawing moles in TikZ] +\ProvidesPackage{tikzlings-moles}[2021/08/06 version v0.8 Drawing moles in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -56,6 +56,8 @@ hands = red!20!white!50!brown, muzzle/.code = \def\moles@muzzle{#1}, muzzle = red!20!white!50!brown, + mouth/.code = \def\moles@mouth{#1}, + mouth = \moles@body!60!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options @@ -65,128 +67,194 @@ back/.code = \moles@backtrue, contour/.code = \moles@contourtrue \def\moles@contour{#1} + \def\moles@mouth{#1} \def\moles@eye{#1}, contour/.default = black, outline/.forward to = /moles/contour, } \def\moles@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.625,0.1) rectangle (0.905, 2.17); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmoles@threeD + \def\moles@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifmoles@contour + \def\moles@part@draw[##1]{\draw[##1,\moles@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\moles@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname moleshookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \moles@part@draw[\moles@feet] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \moles@part@draw[\moles@feet] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmoles@back + \moles@part@draw[\moles@body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); + \fi% back + % + % Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \moles@part@draw[\moles@body] (-0.09, 2.06) .. controls (-0.09, 2.06) and (-0.13, 2.25) .. (-0.07, 2.27) .. controls (-0.09, 2.13) and (0.04, 2.08) .. (0.04, 2.08) .. controls (0.04, 2.08) and (0.02, 2.20) .. (0.06, 2.21) .. controls (0.06, 2.11) and (0.13, 2.08) .. (0.13, 2.08) -- cycle; + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \moles@part@draw[\moles@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmoles@back + \moles@part@draw[\moles@body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504) -- cycle; + \fi% back + % + % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmoles@back + \moles@part@draw[\moles@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname moleshookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifmoles@back + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \moles@part@draw[\moles@body] (0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=70]; + \moles@part@draw[\moles@body] (-0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=-70]; + % + % Hands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmoles@contour + \moles@part@draw[] (-0.37,0.6) -- (-0.32,0.53) -- (-0.3,0.6) -- (-0.23,0.55) -- (-0.23,0.64) -- (-0.16,0.59) -- (-0.18,0.67) -- cycle; + \moles@part@draw[] (0.37,0.6) -- (0.32,0.53) -- (0.3,0.6) -- (0.23,0.55) -- (0.23,0.64) -- (0.16,0.59) -- (0.18,0.67) -- cycle; + \else% contour + \fill[white] (-0.37,0.6) -- (-0.32,0.53) -- (-0.3,0.6) -- (-0.23,0.55) -- (-0.23,0.64) -- (-0.16,0.59) -- (-0.18,0.67) -- cycle; + \fill[white] (0.37,0.6) -- (0.32,0.53) -- (0.3,0.6) -- (0.23,0.55) -- (0.23,0.64) -- (0.16,0.59) -- (0.18,0.67) -- cycle; + \fi% contour + \moles@part@draw[\moles@hands] (0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=70]; + \moles@part@draw[\moles@hands] (-0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=-70]; + % + % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \moles@part@draw[\moles@muzzle] ( 0.22, 1.46) .. controls ( 0.22, 1.50) and ( 0.22, 1.53) .. ( 0.17, 1.56) .. controls ( 0.11, 1.58) and ( 0.05, 1.66) .. ( 0.00, 1.66) .. controls (-0.05, 1.66) and (-0.11, 1.58) .. (-0.17, 1.56) .. controls (-0.22, 1.53) and (-0.22, 1.50) .. (-0.22, 1.46) .. controls (-0.22, 1.39) and (-0.14, 1.33) .. ( 0.00, 1.33) .. controls ( 0.14, 1.33) and ( 0.22, 1.39) .. ( 0.22, 1.46) -- cycle; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \moles@part@draw[\moles@body!60!black] (0,1.67) circle[radius=0.055]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmoles@threeD + \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; + \fill[\moles@eye!50!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; + \else% 3D + \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; + \fill[\moles@eye] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; + \fi% 3D + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\moles@mouth, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] ; + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname moleshookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.625,0.1) rectangle (0.905, 2.17); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmoles@threeD - \def\moles@part@draw[##1]{\shade[ball color=##1]} -\else - \ifmoles@contour - \def\moles@part@draw[##1]{\draw[##1,\moles@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\moles@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Mole]{Wilhelm, the mole} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname moleshookbackground\endcsname -\csname tikzlinghookbackground\endcsname +%\emph{The mole was added in celebration of the international mole day and is named after the chemist Wilhelm Ostwald} % -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\moles@part@draw[\moles@feet] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\moles@part@draw[\moles@feet] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; +%\subsection{Package name} % -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmoles@back - \moles@part@draw[\moles@body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); -\fi +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-moles}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\moles@part@draw[\moles@body] (-0.09, 2.06) .. controls (-0.09, 2.06) and (-0.13, 2.25) .. (-0.07, 2.27) .. controls (-0.09, 2.13) and (0.04, 2.08) .. (0.04, 2.08) .. controls (0.04, 2.08) and (0.02, 2.20) .. (0.06, 2.21) .. controls (0.06, 2.11) and (0.13, 2.08) .. (0.13, 2.08) -- cycle; +%\subsection{Basic Usage} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\moles@part@draw[\moles@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; +%\textcolor{red!60!black}{\textbf{Attention:} In contrast to the other \tikzlings the macro name is the plural form to avoid conflicts with \lstinline|siunitx| and similar packages.} +%\begin{tcblisting}{} +%\moles +%\end{tcblisting} % -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmoles@back - \moles@part@draw[\moles@body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504) -- cycle; -\fi +%\subsection{Options} % -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmoles@back - \moles@part@draw[\moles@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; -\fi +%The basic mole can be modified by changing its colour: +%\begin{tcblisting}{} +%\moles[body=blue] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname moleshookbelly\endcsname -\csname tikzlinghookbelly\endcsname +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\moles[eye=red] +%\end{tcblisting} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifmoles@back +%\begin{tcblisting}{} +%\moles[muzzle=red] +%\end{tcblisting} % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\moles@part@draw[\moles@body] (0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=70]; -\moles@part@draw[\moles@body] (-0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=-70]; +%\begin{tcblisting}{} +%\moles[hands=red] +%\end{tcblisting} % -% Hands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmoles@contour - \moles@part@draw[] (-0.37,0.6) -- (-0.32,0.53) -- (-0.3,0.6) -- (-0.23,0.55) -- (-0.23,0.64) -- (-0.16,0.59) -- (-0.18,0.67) -- cycle; - \moles@part@draw[] (0.37,0.6) -- (0.32,0.53) -- (0.3,0.6) -- (0.23,0.55) -- (0.23,0.64) -- (0.16,0.59) -- (0.18,0.67) -- cycle; -\else - \fill[white] (-0.37,0.6) -- (-0.32,0.53) -- (-0.3,0.6) -- (-0.23,0.55) -- (-0.23,0.64) -- (-0.16,0.59) -- (-0.18,0.67) -- cycle; - \fill[white] (0.37,0.6) -- (0.32,0.53) -- (0.3,0.6) -- (0.23,0.55) -- (0.23,0.64) -- (0.16,0.59) -- (0.18,0.67) -- cycle; -\fi -\moles@part@draw[\moles@hands] (0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=70]; -\moles@part@draw[\moles@hands] (-0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=-70]; +%\begin{tcblisting}{} +%\moles[feet=red] +%\end{tcblisting} % -% Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\moles@part@draw[\moles@muzzle] ( 0.22, 1.46) .. controls ( 0.22, 1.50) and ( 0.22, 1.53) .. ( 0.17, 1.56) .. controls ( 0.11, 1.58) and ( 0.05, 1.66) .. ( 0.00, 1.66) .. controls (-0.05, 1.66) and (-0.11, 1.58) .. (-0.17, 1.56) .. controls (-0.22, 1.53) and (-0.22, 1.50) .. (-0.22, 1.46) .. controls (-0.22, 1.39) and (-0.14, 1.33) .. ( 0.00, 1.33) .. controls ( 0.14, 1.33) and ( 0.22, 1.39) .. ( 0.22, 1.46) -- cycle; +%\begin{tcblisting}{} +%\moles[mouth=red] +%\end{tcblisting} % -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\moles@part@draw[\moles@body!60!black] (0,1.67) circle[radius=0.055]; +%To view the mole from behind: +%\begin{tcblisting}{} +%\moles[back] +%\end{tcblisting} % -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmoles@threeD - \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; - \fill[\moles@eye!50!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; -\else - \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; - \fill[\moles@eye] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; -\fi +%The key \lstinline|3D| will make the mole 3-dimensional: +%\begin{tcblisting}{} +%\moles[3D] +%\end{tcblisting} % -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmoles@contour - \draw[\moles@contour, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] ; -\else - \draw[\moles@body!60!black, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] ; -\fi -% -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname moleshookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\moles[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-owls.sty b/graphics/pgf/contrib/tikzlings/tikzlings-owls.sty index 977593bbbb..d10b5c6a57 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-owls.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-owls.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/owl.tex + % !TeX root = ./examples/owl.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-owls}[2021/04/16 version v0.6 Draw owls in TikZ] +\ProvidesPackage{tikzlings-owls}[2021/08/06 version v0.8 Draw owls in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -70,113 +70,174 @@ } \def\owl@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.73, 0.08) rectangle (0.73, 2.24); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifowl@threeD + \def\owl@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifowl@contour + \def\owl@part@draw[##1]{\draw[##1,\owl@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\owl@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname owlhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \owl@part@draw[\owl@body] (0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=-80]; + \owl@part@draw[\owl@body] (-0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=80]; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifowl@back + \owl@part@draw[\owl@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \owl@part@draw[\owl@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \owl@part@draw[\owl@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \owl@part@draw[\owl@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \owl@part@draw[\owl@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \owl@part@draw[\owl@body] (-0.6361, 1.777) .. controls (-0.6361, 1.777) and (-0.7586, 1.9603) .. (-0.6759, 2.2145) .. controls (-0.3248, 1.912) and (0.3248, 1.912) .. (0.6759, 2.2145) .. controls (0.7586, 1.9603) and (0.6361, 1.777) .. (0.6361, 1.777); + % + % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifowl@back + \owl@part@draw[\owl@body!50!white] (0.425,0.5) .. controls (0.425,0.31) and (0.245,0.27) .. (0,0.27) .. controls (-0.245,0.27) and (-0.425,0.31) .. (-0.425,0.5) .. controls (-0.425,0.81) and (-0.225,0.98) .. (0,0.98) .. controls (0.225,0.98) and (0.425,0.81) .. (0.425,0.5) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname owlhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \owl@part@draw[\owl@body] (0,1.55) ellipse[x radius=0.7, y radius=0.55]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifowl@back + \ifowl@contour + \owl@part@draw[\owl@eye] (-0.28, 1.6) circle[radius=0.22]; + \owl@part@draw[\owl@eye] (0.28, 1.6) circle[radius=0.22]; + \else% contour + \fill[\owl@eye] (-0.28, 1.6) circle[radius=0.22]; + \fill[\owl@eye] (0.28, 1.6) circle[radius=0.22]; + \fi% contour + \owl@part@draw[\owl@pupil] (-0.28, 1.6) circle[radius=0.15]; + \owl@part@draw[\owl@pupil] (0.28, 1.6) circle[radius=0.15]; + \owl@part@draw[white] (0.25, 1.64) circle[radius=0.03]; + \owl@part@draw[white] (-0.31, 1.64) circle[radius=0.03]; + \fi% back + % + % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifowl@back + \owl@part@draw[\owl@bill] (0, 1.4) -- (-0.1, 1.3) -- (0, 1.15) -- (0.1, 1.3) -- cycle; + \fi% back + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifowl@back + \owl@part@draw[\owl@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \owl@part@draw[\owl@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \owl@part@draw[\owl@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \owl@part@draw[\owl@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname owlhookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.73, 0.08) rectangle (0.73, 2.24); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifowl@threeD - \def\owl@part@draw[##1]{\shade[ball color=##1]} -\else - \ifowl@contour - \def\owl@part@draw[##1]{\draw[##1,\owl@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\owl@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0.925) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname owlhookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@body] (0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=-80]; -\owl@part@draw[\owl@body] (-0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=80]; -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifowl@back - \owl@part@draw[\owl@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \owl@part@draw[\owl@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; - \owl@part@draw[\owl@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; - \owl@part@draw[\owl@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \owl@part@draw[\owl@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; - \owl@part@draw[\owl@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@body] (-0.6361, 1.777) .. controls (-0.6361, 1.777) and (-0.7586, 1.9603) .. (-0.6759, 2.2145) .. controls (-0.3248, 1.912) and (0.3248, 1.912) .. (0.6759, 2.2145) .. controls (0.7586, 1.9603) and (0.6361, 1.777) .. (0.6361, 1.777); -% -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifowl@back - \owl@part@draw[\owl@body!50!white] (0.425,0.5) .. controls (0.425,0.31) and (0.245,0.27) .. (0,0.27) .. controls (-0.245,0.27) and (-0.425,0.31) .. (-0.425,0.5) .. controls (-0.425,0.81) and (-0.225,0.98) .. (0,0.98) .. controls (0.225,0.98) and (0.425,0.81) .. (0.425,0.5) -- cycle; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname owlhookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@body] (0,1.55) ellipse[x radius=0.7, y radius=0.55]; -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifowl@back - \ifowl@contour - \owl@part@draw[\owl@eye] (-0.28, 1.6) circle[radius=0.22]; - \owl@part@draw[\owl@eye] (0.28, 1.6) circle[radius=0.22]; - \else - \fill[\owl@eye] (-0.28, 1.6) circle[radius=0.22]; - \fill[\owl@eye] (0.28, 1.6) circle[radius=0.22]; - \fi - \owl@part@draw[\owl@pupil] (-0.28, 1.6) circle[radius=0.15]; - \owl@part@draw[\owl@pupil] (0.28, 1.6) circle[radius=0.15]; - \owl@part@draw[white] (0.25, 1.64) circle[radius=0.03]; - \owl@part@draw[white] (-0.31, 1.64) circle[radius=0.03]; -\fi -% -% Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifowl@back - \owl@part@draw[\owl@bill] (0, 1.4) -- (-0.1, 1.3) -- (0, 1.15) -- (0.1, 1.3) -- cycle; -\fi -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifowl@back - \owl@part@draw[\owl@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \owl@part@draw[\owl@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; - \owl@part@draw[\owl@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; - \owl@part@draw[\owl@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; - \owl@part@draw[\owl@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; - \owl@part@draw[\owl@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname owlhookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%\clearpage +%\section[Owl]{Jake, the owl} +% +%\emph{The owl Jake was inspired by the avatar of one of the world's top TikZperts} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-owls}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\owl +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic owl can be modified by changing its colour: +%\begin{tcblisting}{} +%\owl[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\owl[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\owl[pupil=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\owl[bill=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\owl[feet=red] +%\end{tcblisting} +% +%To view the owl from behind: +%\begin{tcblisting}{} +%\owl[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the owl 3-dimensional: +%\begin{tcblisting}{} +%\owl[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\owl[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-pandas.sty b/graphics/pgf/contrib/tikzlings/tikzlings-pandas.sty index 9a962adac5..3f6301e3ea 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-pandas.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-pandas.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/panda.tex + % !TeX root = ./examples/panda.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-pandas}[2021/04/16 version v0.6 Drawing pandas in TikZ] +\ProvidesPackage{tikzlings-pandas}[2021/08/06 version v0.8 Drawing pandas in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -51,7 +51,9 @@ eye/.code = \def\panda@eye{#1}, eye = white, pupil/.code = \def\panda@pupil{#1}, - pupil = black, + pupil = black, + mouth/.code = \def\panda@mouth{#1}, + mouth = black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options @@ -60,114 +62,169 @@ 3D/.code = \panda@threeDtrue, back/.code = \panda@backtrue, contour/.code = \panda@contourtrue - \def\panda@contour{#1}, + \def\panda@contour{#1} + \def\panda@mouth{#1}, contour/.default = black, outline/.forward to = /panda/contour, } \def\panda@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.62,0.05) rectangle (0.62, 2.18); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifpanda@threeD + \def\panda@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifpanda@contour + \def\panda@part@draw[##1]{\draw[##1,\panda@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\panda@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pandahookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifpanda@back + \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2]; + \panda@part@draw[black] (-0.32, 0.27) circle[radius=0.2]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \panda@part@draw[\panda@body!55!white] (0,0.78) ellipse[x radius=0.57, y radius=0.65]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pandahookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpanda@back + \begin{scope}[yshift=-0.08cm] + \panda@part@draw[black] (0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70]; + \panda@part@draw[black] (-0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70]; + \end{scope} + \fi% back + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpanda@back + \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2]; + \panda@part@draw[black] (-0.32, 0.27) circle[radius=0.2]; + \fi% back + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \panda@part@draw[black] (0.32, 2) circle[radius=0.15]; + \panda@part@draw[black] (-0.32, 2) circle[radius=0.15]; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \panda@part@draw[\panda@body!55!white] (0.4897, 1.5886) .. controls (0.4614, 1.8238) and (0.25, 2.1172) .. (0, 2.1134) .. controls (-0.25, 2.1172) and (-0.4614, 1.8238) .. (-0.4897, 1.5886) .. controls (-0.5261, 1.3269) and (-0.2748, 1.2377) .. (0, 1.2377) .. controls (0.2748, 1.2377) and (0.5261, 1.3269) .. (0.4897, 1.5886) -- cycle; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpanda@back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \panda@part@draw[black] (0.3732, 1.6905) .. controls (0.3498, 1.767) and (0.2032, 1.8059) .. (0.0944, 1.7715) .. controls (-0.0145, 1.7371) and (0.173, 1.5479) .. (0.2508, 1.5443) .. controls (0.3286, 1.5407) and (0.3965, 1.614) .. (0.3732, 1.6905) -- cycle; + \panda@part@draw[black] (-0.3732, 1.6905) .. controls (-0.3498, 1.767) and (-0.2032, 1.8059) .. (-0.0944, 1.7715) .. controls (0.0145, 1.7371) and (-0.173, 1.5479) .. (-0.2508, 1.5443) .. controls (-0.3286, 1.5407) and (-0.3965, 1.614) .. (-0.3732, 1.6905) -- cycle; + \panda@part@draw[\panda@eye] (-0.18, 1.7) circle[radius=0.05]; + \panda@part@draw[\panda@eye] (0.18, 1.7) circle[radius=0.05]; + \panda@part@draw[\panda@pupil] (0.17, 1.695) circle[radius=0.02]; + \panda@part@draw[\panda@pupil] (-0.17, 1.695) circle[radius=0.02]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\panda@mouth,line width=\scalingfactor*0.2pt] (-0.16, 1.477) .. controls (-0.16, 1.477) and (-0.062, 1.37) .. (0, 1.506) .. controls (0.062, 1.37) and (0.16, 1.477) .. (0.16, 1.477); + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \panda@part@draw[black] (0,1.55) ellipse[x radius=0.07, y radius=0.04]; + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pandahookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.62,0.05) rectangle (0.62, 2.18); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpanda@threeD - \def\panda@part@draw[##1]{\shade[ball color=##1]} -\else - \ifpanda@contour - \def\panda@part@draw[##1]{\draw[##1,\panda@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\panda@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname pandahookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpanda@back - \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2]; - \panda@part@draw[black] (-0.32, 0.27) circle[radius=0.2]; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[\panda@body!55!white] (0,0.78) ellipse[x radius=0.57, y radius=0.65]; -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname pandahookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpanda@back - \begin{scope}[yshift=-0.08cm] - \panda@part@draw[black] (0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70]; - \panda@part@draw[black] (-0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70]; - \end{scope} -\fi -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpanda@back - \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2]; - \panda@part@draw[black] (-0.32, 0.27) circle[radius=0.2]; -\fi -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[black] (0.32, 2) circle[radius=0.15]; -\panda@part@draw[black] (-0.32, 2) circle[radius=0.15]; -% -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[\panda@body!55!white] (0.4897, 1.5886) .. controls (0.4614, 1.8238) and (0.25, 2.1172) .. (0, 2.1134) .. controls (-0.25, 2.1172) and (-0.4614, 1.8238) .. (-0.4897, 1.5886) .. controls (-0.5261, 1.3269) and (-0.2748, 1.2377) .. (0, 1.2377) .. controls (0.2748, 1.2377) and (0.5261, 1.3269) .. (0.4897, 1.5886) -- cycle; -% -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpanda@back -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[black] (0.3732, 1.6905) .. controls (0.3498, 1.767) and (0.2032, 1.8059) .. (0.0944, 1.7715) .. controls (-0.0145, 1.7371) and (0.173, 1.5479) .. (0.2508, 1.5443) .. controls (0.3286, 1.5407) and (0.3965, 1.614) .. (0.3732, 1.6905) -- cycle; -\panda@part@draw[black] (-0.3732, 1.6905) .. controls (-0.3498, 1.767) and (-0.2032, 1.8059) .. (-0.0944, 1.7715) .. controls (0.0145, 1.7371) and (-0.173, 1.5479) .. (-0.2508, 1.5443) .. controls (-0.3286, 1.5407) and (-0.3965, 1.614) .. (-0.3732, 1.6905) -- cycle; -\panda@part@draw[\panda@eye] (-0.18, 1.7) circle[radius=0.05]; -\panda@part@draw[\panda@eye] (0.18, 1.7) circle[radius=0.05]; -\panda@part@draw[\panda@pupil] (0.17, 1.695) circle[radius=0.02]; -\panda@part@draw[\panda@pupil] (-0.17, 1.695) circle[radius=0.02]; -% -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpanda@contour - \draw[\panda@contour,line width=\scalingfactor*0.2pt] (-0.16, 1.477) .. controls (-0.16, 1.477) and (-0.062, 1.37) .. (0, 1.506) .. controls (0.062, 1.37) and (0.16, 1.477) .. (0.16, 1.477); -\else - \draw[black,line width=\scalingfactor*0.2pt] (-0.16, 1.477) .. controls (-0.16, 1.477) and (-0.062, 1.37) .. (0, 1.506) .. controls (0.062, 1.37) and (0.16, 1.477) .. (0.16, 1.477); -\fi -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[black] (0,1.55) ellipse[x radius=0.07, y radius=0.04]; -% -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname pandahookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%\clearpage +%\section[Panda]{Meng Meng, the panda} +% +%\emph{Meng Meng is named after one of the pandas at the zoological garden Berlin} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-pandas}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\panda +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic panda can be modified by changing its colour: +%\begin{tcblisting}{} +%\panda[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\panda[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\panda[pupil=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\panda[mouth=red] +%\end{tcblisting} +% +%To view the panda from behind: +%\begin{tcblisting}{} +%\panda[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the panda 3-dimensional: +%\begin{tcblisting}{} +%\panda[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\panda[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-penguins.sty b/graphics/pgf/contrib/tikzlings/tikzlings-penguins.sty index fe99f485fa..7d2a6b5310 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-penguins.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-penguins.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/pingu.tex + % !TeX root = ./examples/pingu.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-penguins}[2021/04/16 version v0.6 Draw penguins in TikZ] +\ProvidesPackage{tikzlings-penguins}[2021/08/06 version v0.8 Draw penguins in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -72,103 +72,167 @@ } \def\penguin@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.865, 0.15) rectangle (0.865, 2.13); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifpenguin@threeD + \def\penguin@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifpenguin@contour + \def\penguin@part@draw[##1]{\draw[##1,\penguin@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\penguin@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname penguinhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \penguin@part@draw[\penguin@body] (0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=-50]; + \penguin@part@draw[\penguin@body] (-0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=50]; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifpenguin@back + \penguin@part@draw[\penguin@feet] + (-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle; + \penguin@part@draw[\penguin@feet] + (0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \penguin@part@draw[\penguin@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpenguin@back + \penguin@part@draw[\penguin@belly] (0, 0.6) ellipse[x radius=0.48, y radius=0.35]; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname penguinhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpenguin@back + \penguin@part@draw[\penguin@feet] + (-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle; + \penguin@part@draw[\penguin@feet] + (0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle; + \fi% back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpenguin@back + \ifpenguin@contour + \penguin@part@draw[\penguin@eye] (-0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=-10]; + \penguin@part@draw[\penguin@pupil] (-0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=-3]; + \penguin@part@draw[\penguin@eye] (0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=10]; + \penguin@part@draw[\penguin@pupil] (0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=3]; + \else% contour + \fill[\penguin@eye] (-0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=-10]; + \fill[\penguin@pupil] (-0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=-3]; + \fill[\penguin@eye] (0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=10]; + \fill[\penguin@pupil] (0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=3]; + \fi% contour + \fi% back + % + % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpenguin@back + \penguin@part@draw[\penguin@bill] (0.323, 1.4591) .. controls (0.1467, 1.3257) and (0.1066, 1.4365) .. (0, 1.4358) .. controls (-0.1066, 1.4365) and (-0.1467, 1.3257) .. (-0.323, 1.4591) .. controls (-0.1267, 1.075) and (0.1267, 1.075) .. (0.323, 1.4591) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname penguinhookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.865, 0.15) rectangle (0.865, 2.13); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpenguin@threeD - \def\penguin@part@draw[##1]{\shade[ball color=##1]} -\else - \ifpenguin@contour - \def\penguin@part@draw[##1]{\draw[##1,\penguin@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\penguin@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0.925) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname penguinhookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\penguin@part@draw[\penguin@body] (0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=-50]; -\penguin@part@draw[\penguin@body] (-0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=50]; -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpenguin@back - \penguin@part@draw[\penguin@feet] - (-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle; - \penguin@part@draw[\penguin@feet] - (0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\penguin@part@draw[\penguin@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; -% -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpenguin@back - \penguin@part@draw[\penguin@belly] (0, 0.6) ellipse[x radius=0.48, y radius=0.35]; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname penguinhookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpenguin@back - \penguin@part@draw[\penguin@feet] - (-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle; - \penguin@part@draw[\penguin@feet] - (0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle; -\fi -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpenguin@back - \ifpenguin@contour - \penguin@part@draw[\penguin@eye] (-0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=-10]; - \penguin@part@draw[\penguin@pupil] (-0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=-3]; - \penguin@part@draw[\penguin@eye] (0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=10]; - \penguin@part@draw[\penguin@pupil] (0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=3]; - \else - \fill[\penguin@eye] (-0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=-10]; - \fill[\penguin@pupil] (-0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=-3]; - \fill[\penguin@eye] (0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=10]; - \fill[\penguin@pupil] (0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=3]; - \fi -\fi -% -% Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpenguin@back - \penguin@part@draw[\penguin@bill] (0.323, 1.4591) .. controls (0.1467, 1.3257) and (0.1066, 1.4365) .. (0, 1.4358) .. controls (-0.1066, 1.4365) and (-0.1467, 1.3257) .. (-0.323, 1.4591) .. controls (-0.1267, 1.075) and (0.1267, 1.075) .. (0.323, 1.4591) -- cycle; -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname penguinhookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%\clearpage +%\section[Penguin]{Tux, the penguin} +% +%\emph{Dedicated to the Linux mascot} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-penguins}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\penguin +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic penguin can be modified by changing its colour: +%\begin{tcblisting}{} +%\penguin[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\penguin[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\penguin[pupil=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\penguin[bill=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\penguin[belly=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\penguin[feet=red] +%\end{tcblisting} +% +%To view the penguin from behind: +%\begin{tcblisting}{} +%\penguin[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the penguin 3-dimensional: +%\begin{tcblisting}{} +%\penguin[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\penguin[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty b/graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty index 6909df1fe3..bcfa92efd1 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-pigs.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/pig.tex + % !TeX root = ./examples/pig.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-pigs}[2021/04/16 version v0.6 Drawing pigs in TikZ] +\ProvidesPackage{tikzlings-pigs}[2021/08/06 version v0.8 Drawing pigs in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -50,140 +50,190 @@ body/.code = \def\pig@body{#1}, body = pigdark, eye/.code = \def\pig@eye{#1}, - eye = gray, + eye = gray, + tail/.code = \def\pig@tail{#1}, + tail = \pig@body, + mouth/.code = \def\pig@mouth{#1}, + mouth = gray, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - 3D/.code = \pig@threeDtrue, + 3D/.code = \pig@threeDtrue + \def\pig@mouth{gray!70!black}, back/.code = \pig@backtrue, contour/.code = \pig@contourtrue - \def\pig@contour{#1}, + \def\pig@contour{#1} + \def\pig@mouth{#1} + \def\pig@tail{#1}, contour/.default = black, outline/.forward to = /pig/contour, } \def\pig@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.625,0.1) rectangle (0.905, 2.27); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifpig@threeD + \def\pig@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifpig@contour + \def\pig@part@draw[##1]{\draw[##1,\pig@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\pig@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pighookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpig@back + \draw[\pig@tail,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); + \fi% back + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifpig@back + \pig@part@draw[\pig@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle; + \pig@part@draw[\pig@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pig@part@draw[\pig@body!55!white] ( 0.6, 0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.16) .. ( 0.0, 0.16) .. controls (-0.35, 0.16) and (-0.6 , 0.4) .. (-0.6, 0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.5) .. ( 0.0, 1.5) .. controls ( 0.35, 1.5) and ( 0.6 , 1.3) .. ( 0.6, 0.75) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pighookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpig@back + \pig@part@draw[\pig@body] (-0.2402, 0.9823) .. controls (-0.2994, 1.0582) and (-0.3721, 1.0651) .. (-0.4024, 0.9978) .. controls (-0.4327, 0.9305) and (-0.4092, 0.8145) .. (-0.35, 0.7386) .. controls (-0.3311, 0.7145) and (-0.3101, 0.6964) .. (-0.289, 0.6862) .. controls (-0.2755, 0.7023) and (-0.2498, 0.7563) .. (-0.2498, 0.7563) .. controls (-0.2498, 0.7563) and (-0.1790, 0.731) .. (-0.1611, 0.746) .. controls (-0.1611, 0.746) and (-0.1809, 0.9064) .. (-0.2402, 0.9823) -- cycle; + \pig@part@draw[\pig@body] (0.2402, 0.9823) .. controls (0.2994, 1.0582) and (0.3721, 1.0651) .. (0.4024, 0.9978) .. controls (0.4327, 0.9305) and (0.4092, 0.8145) .. (0.35, 0.7386) .. controls (0.3311, 0.7145) and (0.3101, 0.6964) .. (0.289, 0.6862) .. controls (0.2755, 0.7023) and (0.2498, 0.7563) .. (0.2498, 0.7563) .. controls (0.2498, 0.7563) and (0.1790, 0.731) .. (0.1611, 0.746) .. controls (0.1611, 0.746) and (0.1809, 0.9064) .. (0.2402, 0.9823) -- cycle; + \fi% back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pig@part@draw[\pig@body!55!white] (0,1.64) ellipse[x radius=.5, y radius=.5]; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifpig@back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pig@part@draw[\pig@eye] (-0.09, 1.82) circle[radius=0.02]; + \pig@part@draw[\pig@eye] ( 0.09, 1.82) circle[radius=0.02]; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pig@part@draw[\pig@body] (0, 1.62) ellipse[x radius=0.18, y radius=0.14]; + \pig@part@draw[gray] (-0.06, 1.62) circle[radius=0.035]; + \pig@part@draw[gray] ( 0.06, 1.62) circle[radius=0.035]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\pig@mouth,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pig@part@draw[\pig@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle; + \pig@part@draw[\pig@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle; + % + \fi% back + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pig@part@draw[\pig@body] (0.22, 2.0392) .. controls (0.22, 2.1584) and (0.49460, 2.255) .. (0.49460, 2.255) .. controls (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and (0.22, 1.9201) .. (0.22, 2.0392) -- cycle; + \pig@part@draw[\pig@body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; + \pig@part@draw[\pig@body] (-0.22, 2.0392) .. controls (-0.22, 2.1584) and (-0.49460, 2.255) .. (-0.49460, 2.255) .. controls (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle; + \pig@part@draw[\pig@body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle; + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifpig@back + \draw[\pig@tail,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pighookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.625,0.1) rectangle (0.905, 2.27); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpig@threeD - \def\pig@part@draw[##1]{\shade[ball color=##1]} -\else - \ifpig@contour - \def\pig@part@draw[##1]{\draw[##1,\pig@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\pig@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname pighookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpig@back - \ifpig@contour - \draw[\pig@contour,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); - \else - \draw[\pig@body,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); - \fi -\fi -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpig@back - \pig@part@draw[\pig@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle; - \pig@part@draw[\pig@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle; -\fi% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@body!55!white] ( 0.6, 0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.16) .. ( 0.0, 0.16) .. controls (-0.35, 0.16) and (-0.6 , 0.4) .. (-0.6, 0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.5) .. ( 0.0, 1.5) .. controls ( 0.35, 1.5) and ( 0.6 , 1.3) .. ( 0.6, 0.75) -- cycle; -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname pighookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpig@back - \pig@part@draw[\pig@body] (-0.2402, 0.9823) .. controls (-0.2994, 1.0582) and (-0.3721, 1.0651) .. (-0.4024, 0.9978) .. controls (-0.4327, 0.9305) and (-0.4092, 0.8145) .. (-0.35, 0.7386) .. controls (-0.3311, 0.7145) and (-0.3101, 0.6964) .. (-0.289, 0.6862) .. controls (-0.2755, 0.7023) and (-0.2498, 0.7563) .. (-0.2498, 0.7563) .. controls (-0.2498, 0.7563) and (-0.1790, 0.731) .. (-0.1611, 0.746) .. controls (-0.1611, 0.746) and (-0.1809, 0.9064) .. (-0.2402, 0.9823) -- cycle; - \pig@part@draw[\pig@body] (0.2402, 0.9823) .. controls (0.2994, 1.0582) and (0.3721, 1.0651) .. (0.4024, 0.9978) .. controls (0.4327, 0.9305) and (0.4092, 0.8145) .. (0.35, 0.7386) .. controls (0.3311, 0.7145) and (0.3101, 0.6964) .. (0.289, 0.6862) .. controls (0.2755, 0.7023) and (0.2498, 0.7563) .. (0.2498, 0.7563) .. controls (0.2498, 0.7563) and (0.1790, 0.731) .. (0.1611, 0.746) .. controls (0.1611, 0.746) and (0.1809, 0.9064) .. (0.2402, 0.9823) -- cycle; -\fi -% -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@body!55!white] (0,1.64) ellipse[x radius=.5, y radius=.5]; -% -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifpig@back -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@eye] (-0.09, 1.82) circle[radius=0.02]; -\pig@part@draw[\pig@eye] ( 0.09, 1.82) circle[radius=0.02]; -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@body] (0, 1.62) ellipse[x radius=0.18, y radius=0.14]; -\pig@part@draw[gray] (-0.06, 1.62) circle[radius=0.035]; -\pig@part@draw[gray] ( 0.06, 1.62) circle[radius=0.035]; -% -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpig@threeD - \draw[gray!70!black,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; -\else - \ifpig@contour - \draw[\pig@contour,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; - \else - \draw[gray,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; - \fi -\fi -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle; -\pig@part@draw[\pig@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle; -% -\fi -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@body] (0.22, 2.0392) .. controls (0.22, 2.1584) and (0.49460, 2.255) .. (0.49460, 2.255) .. controls (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and (0.22, 1.9201) .. (0.22, 2.0392) -- cycle; -\pig@part@draw[\pig@body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; -\pig@part@draw[\pig@body] (-0.22, 2.0392) .. controls (-0.22, 2.1584) and (-0.49460, 2.255) .. (-0.49460, 2.255) .. controls (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle; -\pig@part@draw[\pig@body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle; -% -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifpig@back - \ifpig@contour - \draw[\pig@contour,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); - \else - \draw[\pig@body,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); - \fi -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname pighookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%\clearpage +%\section[Pig]{Ms Piggy, the pig} +% +%\emph{Added on February 5th, 2019 to commemorate the Chinese year of the pig} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-pigs}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\pig +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic pig can be modified by changing its colour: +%\begin{tcblisting}{} +%\pig[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\pig[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\pig[tail=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\pig[mouth=red] +%\end{tcblisting} +% +%To view the pig from behind: +%\begin{tcblisting}{} +%\pig[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the pig 3-dimensional: +%\begin{tcblisting}{} +%\pig[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\pig[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty b/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty index c804c424bc..53eaf36bfc 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/rhino.tex + % !TeX root = ./examples/rhino.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-rhinos}[2021/04/16 version v0.6 Drawing rhinos in TikZ] +\ProvidesPackage{tikzlings-rhinos}[2021/08/06 version v0.8 Drawing rhinos in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -53,148 +53,207 @@ eye/.code = \def\rhino@eye{#1}, eye = white, pupil/.code = \def\rhino@pupil{#1}, - pupil = black, + pupil = black, + mouth/.code = \def\rhino@mouth{#1}, + mouth = \rhino@body!70!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - 3D/.code = \rhino@threeDtrue, + 3D/.code = \rhino@threeDtrue + \def\rhino@mouth{black}, back/.code = \rhino@backtrue, contour/.code = \rhino@contourtrue - \def\rhino@contour{#1}, + \def\rhino@contour{#1} + \def\rhino@mouth{#1}, contour/.default = black, outline/.forward to = /rhino/contour, } \def\rhino@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.625,0.1) rectangle (0.625, 2.17); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifrhino@threeD + \def\rhino@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifrhino@contour + \def\rhino@part@draw[##1]{\draw[##1,\rhino@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\rhino@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname rhinohookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \rhino@part@draw[\rhino@body] (-0.1772, 2.0686) .. controls (-0.2057, 2.1602) and (-0.3552, 2.2076) .. (-0.3552, 2.1922) .. controls (-0.3552, 2.1922) and (-0.3694, 1.9615) .. (-0.2855, 1.9615) .. controls (-0.2264, 1.9462) and (-0.1772, 1.9462) .. (-0.1772, 2.0686) -- cycle; + \rhino@part@draw[\rhino@body] (0.1772, 2.0686) .. controls (0.2057, 2.1602) and (0.3552, 2.2076) .. (0.3552, 2.1922) .. controls (0.3552, 2.1922) and (0.3694, 1.9615) .. (0.2855, 1.9615) .. controls (0.2264, 1.9462) and (0.1772, 1.9462) .. (0.1772, 2.0686) -- cycle; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifrhino@back + \begin{scope} + \clip (-0.5,0.4) rectangle (0.5,0.13); + \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \end{scope} + \fi% back + % + % Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifrhino@back + \rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \rhino@part@draw[\rhino@body!55!white] ( 0.55, 0.8 ) .. controls ( 0.55 , 0.4) and ( 0.35, 0.19) .. ( 0.0, 0.19) .. controls (-0.35, 0.19) and (-0.55 , 0.4) .. (-0.55, 0.8 ) .. controls (-0.55 , 1.3) and (-0.35, 1.65) .. ( 0.0, 1.65) .. controls ( 0.35, 1.65) and ( 0.55 , 1.3) .. ( 0.55, 0.75) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname rhinohookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifrhino@back + \rhino@part@draw[\rhino@body] (0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90]; + \rhino@part@draw[\rhino@body] (-0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90]; + \fi% back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \rhino@part@draw[\rhino@body!55!white] (0, 1.76) circle[radius=0.36]; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifrhino@back + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifrhino@contour + \rhino@part@draw[\rhino@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \rhino@part@draw[\rhino@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \rhino@part@draw[\rhino@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \rhino@part@draw[\rhino@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \else% contour + \fill[\rhino@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \fill[\rhino@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; + \fill[\rhino@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \fill[\rhino@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; + \fi% contour + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2]; + % + % Horn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \rhino@part@draw[white!95!yellow] (0, 1.7911) .. controls (-0.0231, 1.7372) and (-0.0463, 1.6832) .. (-0.0642, 1.6274) .. controls (-0.0687, 1.6132) and (-0.0724, 1.5981) .. (-0.0678, 1.5834) .. controls (-0.0603, 1.552) and (-0.0287, 1.5287) .. (0, 1.531) .. controls (0.0287, 1.5287) and (0.0603, 1.552) .. (0.0678, 1.5834) .. controls (0.0724, 1.5981) and (0.0687, 1.6132) .. (0.0642, 1.6274) .. controls (0.0463, 1.6832) and (0.0231, 1.7372) .. (0, 1.7911) -- cycle; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\rhino@mouth,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{scope} + \clip (-0.5,0.4) rectangle (0.5,0.13); + \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \rhino@part@draw[\rhino@toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; + \end{scope} + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname rhinohookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.625,0.1) rectangle (0.625, 2.17); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifrhino@threeD - \def\rhino@part@draw[##1]{\shade[ball color=##1]} -\else - \ifrhino@contour - \def\rhino@part@draw[##1]{\draw[##1,\rhino@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\rhino@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Rhino]{D\"urer, the rhino} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname rhinohookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body] (-0.1772, 2.0686) .. controls (-0.2057, 2.1602) and (-0.3552, 2.2076) .. (-0.3552, 2.1922) .. controls (-0.3552, 2.1922) and (-0.3694, 1.9615) .. (-0.2855, 1.9615) .. controls (-0.2264, 1.9462) and (-0.1772, 1.9462) .. (-0.1772, 2.0686) -- cycle; -\rhino@part@draw[\rhino@body] (0.1772, 2.0686) .. controls (0.2057, 2.1602) and (0.3552, 2.2076) .. (0.3552, 2.1922) .. controls (0.3552, 2.1922) and (0.3694, 1.9615) .. (0.2855, 1.9615) .. controls (0.2264, 1.9462) and (0.1772, 1.9462) .. (0.1772, 2.0686) -- cycle; -% -% Feet if back%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifrhino@back - \begin{scope} - \clip (-0.5,0.4) rectangle (0.5,0.13); - \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \end{scope} -\fi +%\emph{Named after Albrecht D\"urer who painted an amazing rhino merely based on stories} % -% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifrhino@back - \rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2]; -\fi +%\subsection{Package name} % -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body!55!white] ( 0.55, 0.8 ) .. controls ( 0.55 , 0.4) and ( 0.35, 0.19) .. ( 0.0, 0.19) .. controls (-0.35, 0.19) and (-0.55 , 0.4) .. (-0.55, 0.8 ) .. controls (-0.55 , 1.3) and (-0.35, 1.65) .. ( 0.0, 1.65) .. controls ( 0.35, 1.65) and ( 0.55 , 1.3) .. ( 0.55, 0.75) -- cycle; +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-rhinos}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname rhinohookbelly\endcsname -\csname tikzlinghookbelly\endcsname +%\subsection{Basic Usage} % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifrhino@back - \rhino@part@draw[\rhino@body] (0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90]; - \rhino@part@draw[\rhino@body] (-0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90]; -\fi +%\begin{tcblisting}{} +%\rhino +%\end{tcblisting} % -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body!55!white] (0, 1.76) circle[radius=0.36]; +%\subsection{Options} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifrhino@back +%The basic rhino can be modified by changing its colour: +%\begin{tcblisting}{} +%\rhino[body=blue] +%\end{tcblisting} % -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifrhino@contour - \rhino@part@draw[\rhino@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \rhino@part@draw[\rhino@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \rhino@part@draw[\rhino@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; - \rhino@part@draw[\rhino@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; -\else - \fill[\rhino@eye] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \fill[\rhino@eye] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; - \fill[\rhino@pupil] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; - \fill[\rhino@pupil] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; -\fi +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\rhino[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\rhino[pupil=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\rhino[mouth=red] +%\end{tcblisting} % -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2]; +%The hippo can also do its nails: +%\begin{tcblisting}{} +%\rhino[toes=red] +%\end{tcblisting} % -% Horn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[white!95!yellow] (0, 1.7911) .. controls (-0.0231, 1.7372) and (-0.0463, 1.6832) .. (-0.0642, 1.6274) .. controls (-0.0687, 1.6132) and (-0.0724, 1.5981) .. (-0.0678, 1.5834) .. controls (-0.0603, 1.552) and (-0.0287, 1.5287) .. (0, 1.531) .. controls (0.0287, 1.5287) and (0.0603, 1.552) .. (0.0678, 1.5834) .. controls (0.0724, 1.5981) and (0.0687, 1.6132) .. (0.0642, 1.6274) .. controls (0.0463, 1.6832) and (0.0231, 1.7372) .. (0, 1.7911) -- cycle; +%To view the rhino from behind: +%\begin{tcblisting}{} +%\rhino[back] +%\end{tcblisting} % -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifrhino@threeD - \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; -\else - \ifrhino@contour - \draw[\rhino@contour,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; - \else - \draw[\rhino@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; - \fi -\fi +%The key \lstinline|3D| will make the rhino 3-dimensional: +%\begin{tcblisting}{} +%\rhino[3D] +%\end{tcblisting} % -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{scope} - \clip (-0.5,0.4) rectangle (0.5,0.13); - \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; - \rhino@part@draw[\rhino@toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; - \rhino@part@draw[\rhino@toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; - \rhino@part@draw[\rhino@toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; - \rhino@part@draw[\rhino@toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; - \rhino@part@draw[\rhino@toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; - \rhino@part@draw[\rhino@toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; -\end{scope} -% -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname rhinohookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\rhino[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty b/graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty index 9ef0135463..14a02e4356 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-sheep.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/sheep.tex + % !TeX root = ./examples/sheep.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-sheep}[2021/04/16 version v0.6 Drawing sheep in TikZ] +\ProvidesPackage{tikzlings-sheep}[2021/08/06 version v0.8 Drawing sheep in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -55,157 +55,213 @@ body = brown!50!darkgray!97!yellow, eye/.code = \def\sheep@eye{#1}, eye = \sheep@body!50!black, + nose/.code = \def\sheep@nose{#1}, + nose = \sheep@body!50!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - blush/.code = \sheep@blushtrue, + blush/.code = \sheep@blushtrue + \def\sheep@blushcolor{#1}, + blush/.default = red, monocle/.code = \sheep@monocletrue, 3D/.code = \sheep@threeDtrue, back/.code = \sheep@backtrue, contour/.code = \sheep@contourtrue - \def\sheep@contour{#1}, + \def\sheep@contour{#1} + \def\sheep@blushcolor{#1} + \def\sheep@nose{#1}, contour/.default = black, outline/.forward to = /sheep/contour, } \def\sheep@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.7,0.08) rectangle (0.7,2.33); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsheep@threeD + \def\sheep@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifsheep@contour + \def\sheep@part@draw[##1]{\draw[##1,\sheep@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\sheep@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname sheephookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sheep@part@draw[\sheep@body] (0.22, 2.0392) .. controls (0.22, 2.1584) and (0.49460, 2.255) .. (0.49460, 2.255) .. controls (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and (0.22, 1.9201) .. (0.22, 2.0392) -- cycle; + \sheep@part@draw[\sheep@body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; + \sheep@part@draw[\sheep@body] (-0.22, 2.0392) .. controls (-0.22, 2.1584) and (-0.49460, 2.255) .. (-0.49460, 2.255) .. controls (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle; + \sheep@part@draw[\sheep@body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle; + % + % Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsheep@back + \sheep@part@draw[\sheep@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle; + \sheep@part@draw[\sheep@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname sheephookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsheep@back + \sheep@part@draw[\sheep@body!45!white!95!orange] (-0.2402, 0.9823) .. controls (-0.2994, 1.0582) and (-0.3721, 1.0651) .. (-0.4024, 0.9978) .. controls (-0.4327, 0.9305) and (-0.4092, 0.8145) .. (-0.35, 0.7386) .. controls (-0.3311, 0.7145) and (-0.3101, 0.6964) .. (-0.289, 0.6862) .. controls (-0.2755, 0.7023) and (-0.2498, 0.7563) .. (-0.2498, 0.7563) .. controls (-0.2498, 0.7563) and (-0.1790, 0.731) .. (-0.1611, 0.746) .. controls (-0.1611, 0.746) and (-0.1809, 0.9064) .. (-0.2402, 0.9823) -- cycle; + \sheep@part@draw[\sheep@body!45!white!95!orange] (0.2402, 0.9823) .. controls (0.2994, 1.0582) and (0.3721, 1.0651) .. (0.4024, 0.9978) .. controls (0.4327, 0.9305) and (0.4092, 0.8145) .. (0.35, 0.7386) .. controls (0.3311, 0.7145) and (0.3101, 0.6964) .. (0.289, 0.6862) .. controls (0.2755, 0.7023) and (0.2498, 0.7563) .. (0.2498, 0.7563) .. controls (0.2498, 0.7563) and (0.1790, 0.731) .. (0.1611, 0.746) .. controls (0.1611, 0.746) and (0.1809, 0.9064) .. (0.2402, 0.9823) -- cycle; + \fi% back + % + % Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle; + % + % Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsheep@back + \sheep@part@draw[\sheep@body!45!white!95!orange,rounded corners=\scalingfactor*0.1pt] (0,0.7) -- (0.08, 0.3236) arc (0:-180:\scalingfactor*2pt) -- cycle; + \fi% back + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsheep@back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sheep@part@draw[\sheep@body!45!white!95!orange] (0.4, 1.8) .. controls (0.4, 1.5) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.4, 1.5) .. (-0.4, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.4, 1.8) -- cycle; + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sheep@part@draw[\sheep@body] (0.22, 2.0392) .. controls (0.22, 2.1584) and (0.49460, 2.255) .. (0.49460, 2.255) .. controls (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and (0.22, 1.9201) .. (0.22, 2.0392) -- cycle; + \sheep@part@draw[\sheep@body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; + \sheep@part@draw[\sheep@body] (-0.22, 2.0392) .. controls (-0.22, 2.1584) and (-0.49460, 2.255) .. (-0.49460, 2.255) .. controls (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle; + \sheep@part@draw[\sheep@body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsheep@back + \sheep@part@draw[\sheep@eye] (0.2, 1.66) circle[radius=0.06]; + \sheep@part@draw[\sheep@eye] (-0.2, 1.66) circle[radius=0.06]; + \fi% back + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\sheep@nose,line width=\scalingfactor*0.8pt,line cap=round] (0.16,1.43) arc [start angle=-30, end angle=-150, radius=0.185] (0.0,1.335) -- (0,1.175); + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sheep@part@draw[\sheep@body!45!white!95!orange] (0.3216,0.13) arc (-15:195:0.10) -- (0.16,0.13) to [bend left] (0.25,0.13) -- cycle; + \sheep@part@draw[\sheep@body!45!white!95!orange] (-0.3216,0.13) arc (195:-15:0.10) -- (-0.16,0.13) to[bend right] (-0.25,0.13) --cycle; + % + % Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle; + % + % Blush %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsheep@blush + \fill[\sheep@blushcolor,path fading=sheep@blush] (-0.25, 1.5) circle[radius=0.1]; + \fill[\sheep@blushcolor,path fading=sheep@blush] (0.25, 1.5) circle[radius=0.1]; + \fi% blush + % + % monocle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsheep@monocle + \draw[black,line width=\scalingfactor*0.4pt] (0.2, 1.66) circle[radius=0.09]; + \draw[black,line width=\scalingfactor*0.4pt,rounded corners=\scalingfactor*0.01pt] (0.26,1.6) .. controls (0.3,1.54) .. (0.3,1.5) .. controls (0.28,1.45) .. (0.35,1.4); + \fi% monocle + % + \fi% end showing details only for front + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname sheephookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.7,0.08) rectangle (0.7,2.33); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsheep@threeD - \def\sheep@part@draw[##1]{\shade[ball color=##1]} -\else - \ifsheep@contour - \def\sheep@part@draw[##1]{\draw[##1,\sheep@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\sheep@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Sheep]{Mókollur, the sheep} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname sheephookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sheep@part@draw[\sheep@body] (0.22, 2.0392) .. controls (0.22, 2.1584) and (0.49460, 2.255) .. (0.49460, 2.255) .. controls (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and (0.22, 1.9201) .. (0.22, 2.0392) -- cycle; -\sheep@part@draw[\sheep@body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; -\sheep@part@draw[\sheep@body] (-0.22, 2.0392) .. controls (-0.22, 2.1584) and (-0.49460, 2.255) .. (-0.49460, 2.255) .. controls (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle; -\sheep@part@draw[\sheep@body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle; -% -% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsheep@back - \sheep@part@draw[\sheep@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle; - \sheep@part@draw[\sheep@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; -% +%\emph{The sheep was kindly contributed by @Plergux. Mókollur is a bit silly and likes to goof off. This sheep's favourite food are boiled potatoes.} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname sheephookbelly\endcsname -\csname tikzlinghookbelly\endcsname +%\subsection{Package name} % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifsheep@back - \sheep@part@draw[\sheep@body!45!white!95!orange] (-0.2402, 0.9823) .. controls (-0.2994, 1.0582) and (-0.3721, 1.0651) .. (-0.4024, 0.9978) .. controls (-0.4327, 0.9305) and (-0.4092, 0.8145) .. (-0.35, 0.7386) .. controls (-0.3311, 0.7145) and (-0.3101, 0.6964) .. (-0.289, 0.6862) .. controls (-0.2755, 0.7023) and (-0.2498, 0.7563) .. (-0.2498, 0.7563) .. controls (-0.2498, 0.7563) and (-0.1790, 0.731) .. (-0.1611, 0.746) .. controls (-0.1611, 0.746) and (-0.1809, 0.9064) .. (-0.2402, 0.9823) -- cycle; - \sheep@part@draw[\sheep@body!45!white!95!orange] (0.2402, 0.9823) .. controls (0.2994, 1.0582) and (0.3721, 1.0651) .. (0.4024, 0.9978) .. controls (0.4327, 0.9305) and (0.4092, 0.8145) .. (0.35, 0.7386) .. controls (0.3311, 0.7145) and (0.3101, 0.6964) .. (0.289, 0.6862) .. controls (0.2755, 0.7023) and (0.2498, 0.7563) .. (0.2498, 0.7563) .. controls (0.2498, 0.7563) and (0.1790, 0.731) .. (0.1611, 0.746) .. controls (0.1611, 0.746) and (0.1809, 0.9064) .. (0.2402, 0.9823) -- cycle; -\fi +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-sheep}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle; +%\subsection{Basic Usage} % -% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsheep@back - \sheep@part@draw[\sheep@body!45!white!95!orange,rounded corners=\scalingfactor*0.1pt] (0,0.7) -- (0.08, 0.3236) arc (0:-180:\scalingfactor*2pt) -- cycle; -\fi +%\begin{tcblisting}{} +%\sheep +%\end{tcblisting} % -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifsheep@back +%\subsection{Options} % -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsheep@back - \sheep@part@draw[\sheep@body!45!white!95!orange] (0.4, 1.8) .. controls (0.4, 1.5) and (0.2, 1.35) .. (0, 1.35) .. controls (-0.2, 1.35) and (-0.4, 1.5) .. (-0.4, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.4, 1.8) -- cycle; -\else - \sheep@part@draw[\sheep@body!45!white!95!orange] (0.4, 1.8) .. controls (0.4, 1.5) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.4, 1.5) .. (-0.4, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.4, 1.8) -- cycle; -\fi +%The basic sheep can be modified by changing its colour: +%\begin{tcblisting}{} +%\sheep[body=blue] +%\end{tcblisting} % -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sheep@part@draw[\sheep@body] (0.22, 2.0392) .. controls (0.22, 2.1584) and (0.49460, 2.255) .. (0.49460, 2.255) .. controls (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and (0.22, 1.9201) .. (0.22, 2.0392) -- cycle; -\sheep@part@draw[\sheep@body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; -\sheep@part@draw[\sheep@body] (-0.22, 2.0392) .. controls (-0.22, 2.1584) and (-0.49460, 2.255) .. (-0.49460, 2.255) .. controls (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle; -\sheep@part@draw[\sheep@body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle; -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifsheep@back - \sheep@part@draw[\sheep@eye] (0.2, 1.66) circle[radius=0.06]; - \sheep@part@draw[\sheep@eye] (-0.2, 1.66) circle[radius=0.06]; -\fi +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\sheep[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\sheep[nose=red] +%\end{tcblisting} % -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsheep@contour - \draw[\sheep@contour,line width=\scalingfactor*0.8pt,line cap=round] (0.16,1.43) arc [start angle=-30, end angle=-150, radius=0.185] (0.0,1.335) -- (0,1.175); -\else - \draw[\sheep@body!50!black,line width=\scalingfactor*0.8pt,line cap=round] (0.16,1.43) arc [start angle=-30, end angle=-150, radius=0.185] (0.0,1.335) -- (0,1.175); -\fi +%The sheep can also blush +%\begin{tcblisting}{} +%\sheep[blush=red] +%\end{tcblisting} % -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sheep@part@draw[\sheep@body!45!white!95!orange] (0.3216,0.13) arc (-15:195:0.10) -- (0.16,0.13) to [bend left] (0.25,0.13) -- cycle; -\sheep@part@draw[\sheep@body!45!white!95!orange] (-0.3216,0.13) arc (195:-15:0.10) -- (-0.16,0.13) to[bend right] (-0.25,0.13) --cycle; +%and put on a monocle +%\begin{tcblisting}{} +%\sheep[monocle] +%\end{tcblisting} % -% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle; +%To view the sheep from behind: +%\begin{tcblisting}{} +%\sheep[back] +%\end{tcblisting} % -% Blush %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsheep@blush - \ifsheep@contour - \fill[\sheep@contour,path fading=sheep@blush] (-0.25, 1.5) circle[radius=0.1]; - \fill[\sheep@contour,path fading=sheep@blush] (0.25, 1.5) circle[radius=0.1]; - \else - \fill[red,path fading=sheep@blush] (-0.25, 1.5) circle[radius=0.1]; - \fill[red,path fading=sheep@blush] (0.25, 1.5) circle[radius=0.1]; - \fi -\fi +%The key \lstinline|3D| will make the sheep 3-dimensional: +%\begin{tcblisting}{} +%\sheep[3D] +%\end{tcblisting} % -% monocle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsheep@monocle - \draw[black,line width=\scalingfactor*0.4pt] (0.2, 1.66) circle[radius=0.09]; - \draw[black,line width=\scalingfactor*0.4pt,rounded corners=\scalingfactor*0.01pt] (0.26,1.6) .. controls (0.3,1.54) .. (0.3,1.5) .. controls (0.28,1.45) .. (0.35,1.4); -\fi -% -\fi % end showing details only for front -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname sheephookbody\endcsname -\csname tikzlinghookbody\endcsname -% -} +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\sheep[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-sloths.sty b/graphics/pgf/contrib/tikzlings/tikzlings-sloths.sty index 8543155b7b..f42a95aba2 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-sloths.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-sloths.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/sloth.tex + % !TeX root = ./examples/sloth.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-sloths}[2021/04/16 version v0.6 Drawing sloths in TikZ] +\ProvidesPackage{tikzlings-sloths}[2021/08/06 version v0.8 Drawing sloths in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -53,6 +53,10 @@ body = slothcol, eye/.code = \def\sloth@eye{#1}, eye = black, + eyelid/.code = \def\sloth@eyelid{#1}, + eyelid = \sloth@body!50!white, + mouth/.code = \def\sloth@mouth{#1}, + mouth = \sloth@body!40!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options @@ -62,206 +66,251 @@ 3D/.code = \sloth@threeDtrue, back/.code = \sloth@backtrue, contour/.code = \sloth@contourtrue - \def\sloth@contour{#1}, + \def\sloth@contour{#1} + \def\sloth@mouth{#1} + \def\sloth@eyelid{#1}, contour/.default = black, outline/.forward to = /sloth/contour, } \def\sloth@draw{% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.7,0.12) rectangle (0.7, 2.27); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsloth@threeD - \def\sloth@part@draw[##1]{\shade[ball color=##1]} -\else - \ifsloth@contour - \def\sloth@part@draw[##1]{\draw[##1,\sloth@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\sloth@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname slothhookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Arms if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsloth@back - \sloth@part@draw[\sloth@body] (0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=10]; - \sloth@part@draw[\sloth@body] (-0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=-10]; -\fi -% -% Feet if back%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsloth@back - \fill[\sloth@body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019,rotate=-10]; - \fill[\sloth@body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16]; - \fill[\sloth@body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22]; - \fill[\sloth@body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10]; - \fill[\sloth@body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16]; - \fill[\sloth@body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22]; - \sloth@part@draw[\sloth@body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25]; - \sloth@part@draw[\sloth@body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25]; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body!85!black] (0.53,0.85) .. controls (0.53,0.29) and (0.32,0.22) .. (0,0.22) .. controls (-0.32,0.22) and (-0.53,0.29) .. -(-0.53,0.85) .. controls (-0.53,1.41) and (-0.32,1.87) .. (0,1.87) .. controls (0.33,1.87) and (0.53,1.41) .. (0.53,0.85) -- cycle; -% -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifsloth@back - \sloth@part@draw[\sloth@body!70!white] (0.36, 0.74) .. controls (0.36, 0.49) and (0.22, 0.41) .. (0, 0.41) .. controls (-0.22, 0.41) and (-0.36, 0.49) .. (-0.36, 0.74) .. controls (-0.36, 1) and (-0.22, 1.16) .. (0, 1.16) .. controls (0.22, 1.16) and (0.36, 1) .. (0.36, 0.74) -- cycle; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname slothhookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body] (-0.1128,2.0724) .. controls (-0.1128,2.0724) and (-0.1499,2.2329) .. (-0.0972,2.2525) .. controls (-0.1082,2.1318) and (-0.0047,2.0839) .. (-0.0047,2.0839) .. controls (-0.0047,2.0839) and (-0.0219,2.1866) .. (0.0145,2.1933) .. controls (0.0142,2.1159) and (0.0770,2.0884) .. (0.0770,2.0884) -- cycle; -% -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body] -( 0.50,1.67) .. controls ( 0.50,1.91) and ( 0.27,2.10) .. -( 0.00,2.10) .. controls (-0.27,2.10) and (-0.50,1.91) .. (-0.50,1.67) .. controls (-0.50,1.43) and (-0.33,1.28) .. -( 0.00,1.28) .. controls ( 0.33,1.28) and ( 0.50,1.43) .. -( 0.50,1.67) -- cycle; -% -% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifsloth@back -% -\sloth@part@draw[\sloth@body!50!white] ( 0.40,1.67) .. controls ( 0.40,1.90) and ( 0.12,2.09) .. ( 0.00,1.93) .. controls (-0.12,2.09) and (-0.40,1.90) .. (-0.40,1.67) .. controls (-0.40,1.45) and (-0.25,1.38) .. ( 0.00,1.38) .. controls ( 0.25,1.38) and ( 0.40,1.45) .. ( 0.40,1.67) -- cycle; -% -% behind the eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsloth@contour - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle; -\else - \fill[\sloth@body!60!black] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle; - \fill[\sloth@body!60!black] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle; -\fi -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsloth@sleeping - \ifsloth@contour - \fill[\sloth@contour] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.7,0.12) rectangle (0.7, 2.27); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsloth@threeD + \def\sloth@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifsloth@contour + \def\sloth@part@draw[##1]{\draw[##1,\sloth@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\sloth@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname slothhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Arms if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsloth@back + \sloth@part@draw[\sloth@body] (0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=10]; + \sloth@part@draw[\sloth@body] (-0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=-10]; + \fi% back + % + % Feet if back%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsloth@back + \fill[\sloth@body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019,rotate=-10]; + \fill[\sloth@body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16]; + \fill[\sloth@body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22]; + \fill[\sloth@body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10]; + \fill[\sloth@body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16]; + \fill[\sloth@body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22]; + \sloth@part@draw[\sloth@body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25]; + \sloth@part@draw[\sloth@body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25]; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sloth@part@draw[\sloth@body!85!black] (0.53,0.85) .. controls (0.53,0.29) and (0.32,0.22) .. (0,0.22) .. controls (-0.32,0.22) and (-0.53,0.29) .. + (-0.53,0.85) .. controls (-0.53,1.41) and (-0.32,1.87) .. (0,1.87) .. controls (0.33,1.87) and (0.53,1.41) .. (0.53,0.85) -- cycle; + % + % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsloth@back + \sloth@part@draw[\sloth@body!70!white] (0.36, 0.74) .. controls (0.36, 0.49) and (0.22, 0.41) .. (0, 0.41) .. controls (-0.22, 0.41) and (-0.36, 0.49) .. (-0.36, 0.74) .. controls (-0.36, 1) and (-0.22, 1.16) .. (0, 1.16) .. controls (0.22, 1.16) and (0.36, 1) .. (0.36, 0.74) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname slothhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sloth@part@draw[\sloth@body] (-0.1128,2.0724) .. controls (-0.1128,2.0724) and (-0.1499,2.2329) .. (-0.0972,2.2525) .. controls (-0.1082,2.1318) and (-0.0047,2.0839) .. (-0.0047,2.0839) .. controls (-0.0047,2.0839) and (-0.0219,2.1866) .. (0.0145,2.1933) .. controls (0.0142,2.1159) and (0.0770,2.0884) .. (0.0770,2.0884) -- cycle; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sloth@part@draw[\sloth@body] + ( 0.50,1.67) .. controls ( 0.50,1.91) and ( 0.27,2.10) .. + ( 0.00,2.10) .. controls (-0.27,2.10) and (-0.50,1.91) .. (-0.50,1.67) .. controls (-0.50,1.43) and (-0.33,1.28) .. + ( 0.00,1.28) .. controls ( 0.33,1.28) and ( 0.50,1.43) .. + ( 0.50,1.67) -- cycle; + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsloth@back % - \fill[\sloth@contour] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@contour,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02); + % Inner part of hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sloth@part@draw[\sloth@body!50!white] ( 0.40,1.67) .. controls ( 0.40,1.90) and ( 0.12,2.09) .. ( 0.00,1.93) .. controls (-0.12,2.09) and (-0.40,1.90) .. (-0.40,1.67) .. controls (-0.40,1.45) and (-0.25,1.38) .. ( 0.00,1.38) .. controls ( 0.25,1.38) and ( 0.40,1.45) .. ( 0.40,1.67) -- cycle; % - \draw[\sloth@contour, fill=white,line width=\scalingfactor*0.4pt] (0.237, 1.743) .. controls (0.237, 1.712) and (0.157, 1.712) .. (0.157, 1.743) .. controls (0.157, 1.802) and (0.237, 1.802) .. (0.237, 1.743) -- cycle; - \draw[\sloth@contour, fill=white,line width=\scalingfactor*0.4pt] (-0.237, 1.743) .. controls (-0.237, 1.712) and (-0.157, 1.712) .. (-0.157, 1.743) .. controls (-0.157, 1.802) and (-0.237, 1.802) .. (-0.237, 1.743) -- cycle; - \else - \fill[\sloth@body!50!white] (0.237, 1.743) .. controls (0.237, 1.712) and (0.157, 1.712) .. (0.157, 1.743) .. controls (0.157, 1.802) and (0.237, 1.802) .. (0.237, 1.743) -- cycle; - \fill[\sloth@body!50!white] (-0.237, 1.743) .. controls (-0.237, 1.712) and (-0.157, 1.712) .. (-0.157, 1.743) .. controls (-0.157, 1.802) and (-0.237, 1.802) .. (-0.237, 1.743) -- cycle; + % behind the eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsloth@contour + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle; + \else% contour + \fill[\sloth@body!60!black] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle; + \fill[\sloth@body!60!black] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle; + \fi% contour % - \fill[\sloth@body!50!white] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsloth@sleeping + \fill[\sloth@eyelid] (0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + % + \fill[\sloth@eyelid] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@eyelid,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02); + % + \sloth@part@draw[\sloth@eyelid] (0.237, 1.743) .. controls (0.237, 1.712) and (0.157, 1.712) .. (0.157, 1.743) .. controls (0.157, 1.802) and (0.237, 1.802) .. (0.237, 1.743) -- cycle; + \sloth@part@draw[\sloth@eyelid] (-0.237, 1.743) .. controls (-0.237, 1.712) and (-0.157, 1.712) .. (-0.157, 1.743) .. controls (-0.157, 1.802) and (-0.237, 1.802) .. (-0.237, 1.743) -- cycle; + \else% sleeping + \sloth@part@draw[\sloth@eye] (0.193,1.75) circle[radius=0.04]; + \sloth@part@draw[\sloth@eye] (-0.193,1.75) circle[radius=0.04]; + \fill[white] (-0.2 ,1.765) circle[radius=0.006]; + \fill[white] ( 0.186,1.765) circle[radius=0.006]; + \fi% sleeping % - \fill[\sloth@body!50!white] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02); - \fi -\else - \sloth@part@draw[\sloth@eye] (0.193,1.75) circle[radius=0.04]; - \sloth@part@draw[\sloth@eye] (-0.193,1.75) circle[radius=0.04]; - \fill[white] (-0.2 ,1.765) circle[radius=0.006]; - \fill[white] ( 0.186,1.765) circle[radius=0.006]; -\fi -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body!40!black] (0,1.665) ellipse[x radius=0.078, y radius=0.048]; -% -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsloth@contour - \draw[\sloth@contour,line width=\scalingfactor*0.4pt] (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16]; -\else - \draw[\sloth@body!40!black,line width=\scalingfactor*0.4pt] (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16]; -\fi -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body] (-0.50, 1.24) .. controls (-0.54, 1.24) and (-0.55, 1.20) .. (-0.56, 1.17) .. controls (-0.61, 1.06) and (-0.63, 0.95) .. (-0.64, 0.83) .. controls (-0.64, 0.80) and (-0.64, 0.77) .. (-0.63, 0.74) .. controls (-0.57, 0.66) and (-0.47, 0.60) .. (-0.38, 0.56) .. controls (-0.31, 0.54) and (-0.23, 0.52) .. (-0.16, 0.54) .. controls (-0.12, 0.54) and (-0.10, 0.59) .. (-0.13, 0.61) .. controls (-0.17, 0.68) and (-0.24, 0.73) .. (-0.30, 0.77) .. controls (-0.34, 0.79) and (-0.38, 0.81) .. (-0.42, 0.83) .. controls (-0.41, 0.92) and (-0.41, 1.01) .. (-0.42, 1.09) .. controls (-0.43, 1.14) and (-0.44, 1.19) .. (-0.48, 1.23) .. controls (-0.48, 1.24) and (-0.49, 1.24) .. (-0.50, 1.24) -- cycle; -\sloth@part@draw[\sloth@body] (0.50, 1.24) .. controls (0.54, 1.24) and (0.55, 1.20) .. (0.56, 1.17) .. controls (0.61, 1.06) and (0.63, 0.95) .. (0.64, 0.83) .. controls (0.64, 0.80) and (0.64, 0.77) .. (0.63, 0.74) .. controls (0.57, 0.66) and (0.47, 0.60) .. (0.38, 0.56) .. controls (0.31, 0.54) and (0.23, 0.52) .. (0.16, 0.54) .. controls (0.12, 0.54) and (0.10, 0.59) .. (0.13, 0.61) .. controls (0.17, 0.68) and (0.24, 0.73) .. (0.30, 0.77) .. controls (0.34, 0.79) and (0.38, 0.81) .. (0.42, 0.83) .. controls (0.41, 0.92) and (0.41, 1.01) .. (0.42, 1.09) .. controls (0.43, 1.14) and (0.44, 1.19) .. (0.48, 1.23) .. controls (0.48, 1.24) and (0.49, 1.24) .. (0.50, 1.24) -- cycle; -% -\ifsloth@contour - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=117]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=125]; + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sloth@part@draw[\sloth@body!40!black] (0,1.665) ellipse[x radius=0.078, y radius=0.048]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \draw[\sloth@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16]; + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sloth@part@draw[\sloth@body] (-0.50, 1.24) .. controls (-0.54, 1.24) and (-0.55, 1.20) .. (-0.56, 1.17) .. controls (-0.61, 1.06) and (-0.63, 0.95) .. (-0.64, 0.83) .. controls (-0.64, 0.80) and (-0.64, 0.77) .. (-0.63, 0.74) .. controls (-0.57, 0.66) and (-0.47, 0.60) .. (-0.38, 0.56) .. controls (-0.31, 0.54) and (-0.23, 0.52) .. (-0.16, 0.54) .. controls (-0.12, 0.54) and (-0.10, 0.59) .. (-0.13, 0.61) .. controls (-0.17, 0.68) and (-0.24, 0.73) .. (-0.30, 0.77) .. controls (-0.34, 0.79) and (-0.38, 0.81) .. (-0.42, 0.83) .. controls (-0.41, 0.92) and (-0.41, 1.01) .. (-0.42, 1.09) .. controls (-0.43, 1.14) and (-0.44, 1.19) .. (-0.48, 1.23) .. controls (-0.48, 1.24) and (-0.49, 1.24) .. (-0.50, 1.24) -- cycle; + \sloth@part@draw[\sloth@body] (0.50, 1.24) .. controls (0.54, 1.24) and (0.55, 1.20) .. (0.56, 1.17) .. controls (0.61, 1.06) and (0.63, 0.95) .. (0.64, 0.83) .. controls (0.64, 0.80) and (0.64, 0.77) .. (0.63, 0.74) .. controls (0.57, 0.66) and (0.47, 0.60) .. (0.38, 0.56) .. controls (0.31, 0.54) and (0.23, 0.52) .. (0.16, 0.54) .. controls (0.12, 0.54) and (0.10, 0.59) .. (0.13, 0.61) .. controls (0.17, 0.68) and (0.24, 0.73) .. (0.30, 0.77) .. controls (0.34, 0.79) and (0.38, 0.81) .. (0.42, 0.83) .. controls (0.41, 0.92) and (0.41, 1.01) .. (0.42, 1.09) .. controls (0.43, 1.14) and (0.44, 1.19) .. (0.48, 1.23) .. controls (0.48, 1.24) and (0.49, 1.24) .. (0.50, 1.24) -- cycle; + % + \ifsloth@contour + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=117]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=125]; + % + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=-110]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125]; + \else% contour + \fill[\sloth@body!50!black] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110]; + \fill[\sloth@body!50!black] (0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=117]; + \fill[\sloth@body!50!black] (0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=125]; + % + \fill[\sloth@body!50!black] (-0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=-110]; + \fill[\sloth@body!50!black] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117]; + \fill[\sloth@body!50!black] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125]; + \fi% contour + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \sloth@part@draw[\sloth@body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25]; + \sloth@part@draw[\sloth@body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25]; + % + \ifsloth@contour + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16]; + \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22]; + \else% contour + \fill[\sloth@body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10]; + \fill[\sloth@body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16]; + \fill[\sloth@body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22]; + \fill[\sloth@body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10]; + \fill[\sloth@body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16]; + \fill[\sloth@body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22]; + \fi% contour + % + \fi% back % - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=-110]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125]; -\else - \fill[\sloth@body!50!black] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110]; - \fill[\sloth@body!50!black] (0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=117]; - \fill[\sloth@body!50!black] (0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=125]; + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname slothhookbody\endcsname + \csname tikzlinghookbody\endcsname % - \fill[\sloth@body!50!black] (-0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=-110]; - \fill[\sloth@body!50!black] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117]; - \fill[\sloth@body!50!black] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125]; -\fi -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25]; -\sloth@part@draw[\sloth@body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25]; -% -\ifsloth@contour - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16]; - \draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22]; -\else - \fill[\sloth@body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10]; - \fill[\sloth@body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16]; - \fill[\sloth@body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22]; - \fill[\sloth@body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10]; - \fill[\sloth@body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16]; - \fill[\sloth@body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22]; -\fi -% -\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname slothhookbody\endcsname -\csname tikzlinghookbody\endcsname -% } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Documentation +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Sloth]{Riley, the sloth} +% +%\emph{One of good souls behind the TugBoat once met a sloth called Riley} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-sloths}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\sloth +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic sloth can be modified by changing its colour: +%\begin{tcblisting}{} +%\sloth[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\sloth[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\sloth[mouth=red] +%\end{tcblisting} +% +%If tired, the sloth can take a nap: +%\begin{tcblisting}{} +%\sloth[sleeping] +%\end{tcblisting} +%\begin{tcblisting}{} +%\sloth[sleeping,eyelid=red] +%\end{tcblisting} +% +%To view the sloth from behind: +%\begin{tcblisting}{} +%\sloth[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the sloth 3-dimensional: +%\begin{tcblisting}{} +%\sloth[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\sloth[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-snowmen.sty b/graphics/pgf/contrib/tikzlings/tikzlings-snowmen.sty index a7b194cf27..5b5f851352 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-snowmen.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-snowmen.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/snowman.tex + % !TeX root = ./examples/snowman.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-snowmen}[2021/04/16 version v0.6 Draw snowmen in TikZ] +\ProvidesPackage{tikzlings-snowmen}[2021/08/06 version v0.8 Draw snowmen in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -76,128 +76,196 @@ } \def\snowman@draw{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.75, 0.0) rectangle (0.75, 2.13); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsnowman@threeD + \def\snowman@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifsnowman@contour + \def\snowman@part@draw[##1]{\draw[##1,\snowman@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\snowman@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname snowmanhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Global warming %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsnowman@globalwarming + % + % Puddle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsnowman@contour + \draw[\snowman@contour,fill=white,line width=\scalingfactor*0.4pt] (0,1.15) ellipse[x radius=1.6,y radius=1.15]; + \else% contour + \fill[\snowman@globalwarming] (0,1.15) ellipse[x radius=1.6,y radius=1.15]; + \fi% contour + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname snowmanhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\snowman@mouth] (0,1.23) circle[radius=0.025]; + \fill[\snowman@mouth] (0.06,1.3) circle[radius=0.025]; + \fill[\snowman@mouth] (-0.06,1.27) circle[radius=0.025]; + \fill[\snowman@mouth] (0.09,1.37) circle[radius=0.025]; + \fill[\snowman@mouth] (-0.18,1.28) circle[radius=0.025]; + \fill[\snowman@mouth] (0.2,1.28) circle[radius=0.025]; + \fill[\snowman@mouth] (-0.25,1.2) circle[radius=0.025]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@eye] (-0.5,1.75) circle[radius=0.06]; + \snowman@part@draw[\snowman@eye] (-0.1,1.55) circle[radius=0.06]; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@nose] (-0.6,1.4) -- (-0.8,1.42) -- (-0.6,1.54) (-0.6,1.4) arc[radius=0.07, start angle=-90, end angle=90]; + % + % Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@buttons] (0.1,0.8) circle[radius=0.06]; + \snowman@part@draw[\snowman@buttons] (-0.15,0.55) circle[radius=0.06]; + \snowman@part@draw[\snowman@buttons] (0,0.25) circle[radius=0.06]; + % + % normal snowman %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \else% global warming + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@body] (0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=-50]; + \snowman@part@draw[\snowman@body] (-0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=50]; + % + % Body + Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@body] (0,0.5) ellipse[x radius=0.6, y radius=0.5]; + \snowman@part@draw[\snowman@body] (0,1.1) ellipse[x radius=0.5, y radius=0.4]; + \snowman@part@draw[\snowman@body] (0,1.7) circle[radius=0.4]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname snowmanhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsnowman@back + % + % Mouth% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\snowman@mouth] (0,1.5) circle[radius=0.016]; + \fill[\snowman@mouth] (0.04,1.507) circle[radius=0.016]; + \fill[\snowman@mouth] (-0.04,1.507) circle[radius=0.016]; + \fill[\snowman@mouth] (0.08,1.522) circle[radius=0.016]; + \fill[\snowman@mouth] (-0.08,1.522) circle[radius=0.016]; + \fill[\snowman@mouth] (0.12,1.543) circle[radius=0.016]; + \fill[\snowman@mouth] (-0.12,1.543) circle[radius=0.016]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@eye] (-0.155,1.8) circle[radius=0.04]; + \snowman@part@draw[\snowman@eye] (0.155,1.8) circle[radius=0.04]; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@nose] (0,1.72) arc [radius=0.05, start angle=90, end angle=270] (0,1.62) -- (0.15,1.64) -- (0,1.72); + % + % Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@buttons] (0,1.15) circle[radius=0.04]; + \snowman@part@draw[\snowman@buttons] (0,0.95) circle[radius=0.04]; + \snowman@part@draw[\snowman@buttons] (0,0.75) circle[radius=0.04]; + % + \fi% back + % + \fi% global warming + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname snowmanhookbody\endcsname + \csname tikzlinghookbody\endcsname + % +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% +%% +%% Documentation +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.75, 0.0) rectangle (0.75, 2.13); +%\clearpage +%\section[Snowman]{Yuki, the snowman} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\emph{Yuki is the transcription of the Japanese word for snow} % -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 +%\subsection{Package name} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-snowmen}| +%\vspace*{0.5cm} +%\end{tcolorbox} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 +%\subsection{Basic Usage} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsnowman@threeD - \def\snowman@part@draw[##1]{\shade[ball color=##1]} -\else - \ifsnowman@contour - \def\snowman@part@draw[##1]{\draw[##1,\snowman@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\snowman@part@draw[##1]{\fill[##1]} - \fi -\fi +%\begin{tcblisting}{} +%\snowman +%\end{tcblisting} % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\subsection{Options} % -% Body parts -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%The basic snowman can be modified by changing its colour: +%\begin{tcblisting}{} +%\snowman[body=blue] +%\end{tcblisting} % -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname snowmanhookbackground\endcsname -\csname tikzlinghookbackground\endcsname +%In addition to the colour of the body, the colour of various body parts can be adjusted: +%\begin{tcblisting}{} +%\snowman[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\snowman[nose=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\snowman[mouth=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\snowman[buttons=red] +%\end{tcblisting} % -% Global warming %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsnowman@globalwarming - % - % Puddle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifsnowman@contour - \draw[\snowman@contour,fill=white,line width=\scalingfactor*0.4pt] (0,1.15) ellipse[x radius=1.6,y radius=1.15]; - \else - \fill[\snowman@globalwarming] (0,1.15) ellipse[x radius=1.6,y radius=1.15]; - \fi - % - % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \csname snowmanhookbelly\endcsname - \csname tikzlinghookbelly\endcsname - % - % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \fill[\snowman@mouth] (0,1.23) circle[radius=0.025]; - \fill[\snowman@mouth] (0.06,1.3) circle[radius=0.025]; - \fill[\snowman@mouth] (-0.06,1.27) circle[radius=0.025]; - \fill[\snowman@mouth] (0.09,1.37) circle[radius=0.025]; - \fill[\snowman@mouth] (-0.18,1.28) circle[radius=0.025]; - \fill[\snowman@mouth] (0.2,1.28) circle[radius=0.025]; - \fill[\snowman@mouth] (-0.25,1.2) circle[radius=0.025]; - % - % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@eye] (-0.5,1.75) circle[radius=0.06]; - \snowman@part@draw[\snowman@eye] (-0.1,1.55) circle[radius=0.06]; - % - % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@nose] (-0.6,1.4) -- (-0.8,1.42) -- (-0.6,1.54) (-0.6,1.4) arc[radius=0.07, start angle=-90, end angle=90]; - % - % Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@buttons] (0.1,0.8) circle[radius=0.06]; - \snowman@part@draw[\snowman@buttons] (-0.15,0.55) circle[radius=0.06]; - \snowman@part@draw[\snowman@buttons] (0,0.25) circle[radius=0.06]; +%The biggest enemy of the snowman are raising temperatures: +%\begin{tcblisting}{} +%\snowman[globalwarming,tophat] +%\end{tcblisting} % -% normal snowman %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\else - % - % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@body] (0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=-50]; - \snowman@part@draw[\snowman@body] (-0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=50]; - % - % Body + Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@body] (0,0.5) ellipse[x radius=0.6, y radius=0.5]; - \snowman@part@draw[\snowman@body] (0,1.1) ellipse[x radius=0.5, y radius=0.4]; - \snowman@part@draw[\snowman@body] (0,1.7) circle[radius=0.4]; - % - % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \csname snowmanhookbelly\endcsname - \csname tikzlinghookbelly\endcsname - % - % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \unless\ifsnowman@back - % - % Mouth% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \fill[\snowman@mouth] (0,1.5) circle[radius=0.016]; - \fill[\snowman@mouth] (0.04,1.507) circle[radius=0.016]; - \fill[\snowman@mouth] (-0.04,1.507) circle[radius=0.016]; - \fill[\snowman@mouth] (0.08,1.522) circle[radius=0.016]; - \fill[\snowman@mouth] (-0.08,1.522) circle[radius=0.016]; - \fill[\snowman@mouth] (0.12,1.543) circle[radius=0.016]; - \fill[\snowman@mouth] (-0.12,1.543) circle[radius=0.016]; - % - % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@eye] (-0.155,1.8) circle[radius=0.04]; - \snowman@part@draw[\snowman@eye] (0.155,1.8) circle[radius=0.04]; - % - % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@nose] (0,1.72) arc [radius=0.05, start angle=90, end angle=270] (0,1.62) -- (0.15,1.64) -- (0,1.72); - % - % Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \snowman@part@draw[\snowman@buttons] (0,1.15) circle[radius=0.04]; - \snowman@part@draw[\snowman@buttons] (0,0.95) circle[radius=0.04]; - \snowman@part@draw[\snowman@buttons] (0,0.75) circle[radius=0.04]; - % -\fi\fi -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname snowmanhookbody\endcsname -\csname tikzlinghookbody\endcsname +%To view the snowman from behind: +%\begin{tcblisting}{} +%\snowman[back] +%\end{tcblisting} % -} +%The key \lstinline|3D| will make the snowman 3-dimensional: +%\begin{tcblisting}{} +%\snowman[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\snowman[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-squirrels.sty b/graphics/pgf/contrib/tikzlings/tikzlings-squirrels.sty index 79a604bd74..2fc85db01f 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-squirrels.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-squirrels.sty @@ -1,18 +1,18 @@ -% !TeX root = ./examples/squirrel.tex + % !TeX root = ./examples/squirrel.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This package is part of the TikZlings package -% A package to bring cute little animals and other beings into tikz -% Maintained by samcarter -% -% Project repository and bug tracker: -% https://github.com/samcarter/tikzlings -% -% Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt -% +%% +%% This package is part of the TikZlings package +%% A package to bring cute little animals and other beings into tikz +%% Maintained by samcarter +%% +%% Project repository and bug tracker: +%% https://github.com/samcarter/tikzlings +%% +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-squirrels}[2021/04/16 version v0.6 Drawing squirrels in TikZ] +\ProvidesPackage{tikzlings-squirrels}[2021/08/06 version v0.8 Drawing squirrels in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -65,126 +65,177 @@ } \def\squirrel@draw{% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\path (-0.53,0.1) rectangle (1.12,2.15); -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% store the current scale factor -% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% -\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} -\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% switch between 2D, 3D and contours, from -% https://chat.stackexchange.com/transcript/message/45991801#45991801 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsquirrel@threeD - \def\squirrel@part@draw[##1]{\shade[ball color=##1]} -\else + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % minimal bounding box size + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \path (-0.53,0.1) rectangle (1.12,2.15); + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % store the current scale factor + % from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% + \pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% + \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} + \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % switch between 2D, 3D and contours, from + % https://chat.stackexchange.com/transcript/message/45991801#45991801 + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsquirrel@threeD + \def\squirrel@part@draw[##1]{\shade[ball color=##1]} + \else% 3D + \ifsquirrel@contour + \def\squirrel@part@draw[##1]{\draw[##1,\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt]} + \else% contour + \def\squirrel@part@draw[##1]{\fill[##1]} + \fi% contour + \fi% 3D + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Body parts + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname squirrelhookbackground\endcsname + \csname tikzlinghookbackground\endcsname + % + % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; + % + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsquirrel@back + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] + (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle; + \fi% back + % + % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@body] + (0.5,0.5) .. controls (0.5,0.09) and (-0.5,0.09) .. (-0.5,0.5) .. controls (-0.5,0.85) and (-0.25,1.6) .. (0,1.7) .. controls (0.25,1.6) and (0.5,0.85) .. (0.5,0.5) -- cycle; + % + % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \unless\ifsquirrel@back + \squirrel@part@draw[\squirrel@body!85!white] (0.35,0.5) .. controls (0.35,0.22) and (-0.35,0.22) .. (-0.35,0.5) .. controls (-0.35,0.7) and (-0.17,1.2) .. (0,1.2) .. controls (0.17,1.2) and (0.35,0.7) .. (0.35,0.5) -- cycle; + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname squirrelhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.1920,1.9906) .. controls (0.1657,2.0780) and (0.1839,2.1332) .. (0.1839,2.1332) .. controls (0.1839,2.1332) and (0.1123,2.1773) .. (0.0941,2.0720) .. controls (0.0716,2.0156) and (0.0753,1.9519) .. (0.1023,1.9293) .. controls (0.1293,1.9068) and (0.1696,1.9342) .. (0.1920,1.9906) -- cycle; + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] + (-0.1920,1.9906) .. controls (-0.1657,2.0780) and (-0.1839,2.1332) .. (-0.1839,2.1332) .. controls (-0.1839,2.1332) and (-0.1123,2.1773) .. (-0.0941,2.0720) .. controls (-0.0716,2.0156) and (-0.0753,1.9519) .. (-0.1023,1.9293) .. controls (-0.1293,1.9068) and (-0.1696,1.9342) .. (-0.1920,1.9906) -- cycle; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifsquirrel@contour - \def\squirrel@part@draw[##1]{\draw[##1,\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt]} - \else - \def\squirrel@part@draw[##1]{\fill[##1]} - \fi -\fi -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Body parts (center: x=0) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname squirrelhookbackground\endcsname -\csname tikzlinghookbackground\endcsname -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; -% -% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifsquirrel@back - \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] - (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle; -\fi -% -% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\squirrel@part@draw[\squirrel@body] - (0.5,0.5) .. controls (0.5,0.09) and (-0.5,0.09) .. (-0.5,0.5) .. controls (-0.5,0.85) and (-0.25,1.6) .. (0,1.7) .. controls (0.25,1.6) and (0.5,0.85) .. (0.5,0.5) -- cycle; -% -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\unless\ifsquirrel@back - \squirrel@part@draw[\squirrel@body!85!white] (0.35,0.5) .. controls (0.35,0.22) and (-0.35,0.22) .. (-0.35,0.5) .. controls (-0.35,0.7) and (-0.17,1.2) .. (0,1.2) .. controls (0.17,1.2) and (0.35,0.7) .. (0.35,0.5) -- cycle; -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname squirrelhookbelly\endcsname -\csname tikzlinghookbelly\endcsname -% -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.1920,1.9906) .. controls (0.1657,2.0780) and (0.1839,2.1332) .. (0.1839,2.1332) .. controls (0.1839,2.1332) and (0.1123,2.1773) .. (0.0941,2.0720) .. controls (0.0716,2.0156) and (0.0753,1.9519) .. (0.1023,1.9293) .. controls (0.1293,1.9068) and (0.1696,1.9342) .. (0.1920,1.9906) -- cycle; -\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] -(-0.1920,1.9906) .. controls (-0.1657,2.0780) and (-0.1839,2.1332) .. (-0.1839,2.1332) .. controls (-0.1839,2.1332) and (-0.1123,2.1773) .. (-0.0941,2.0720) .. controls (-0.0716,2.0156) and (-0.0753,1.9519) .. (-0.1023,1.9293) .. controls (-0.1293,1.9068) and (-0.1696,1.9342) .. (-0.1920,1.9906) -- cycle; -% -% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsquirrel@contour - \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3]; - \squirrel@part@draw[\squirrel@body] (0.2,1.6) circle[radius=0.15]; - \squirrel@part@draw[\squirrel@body] (-0.2,1.6) circle[radius=0.15]; - \ifsquirrel@back \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3]; - \fi -\else - \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3] (0.2,1.6) circle[radius=0.15] (-0.2,1.6) circle[radius=0.15]; -\fi -% -\ifsquirrel@back - % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] - (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle; -\else -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\squirrel@part@draw[\squirrel@body!70!brown!60!black] (0,1.66) ellipse[x radius=0.06, y radius=0.03]; -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\squirrel@part@draw[\squirrel@eye] (0.07,1.78) ellipse[x radius=0.05, y radius=0.07]; -\squirrel@part@draw[\squirrel@eye] (-0.07,1.78) ellipse[x radius=0.05, y radius=0.07]; -\squirrel@part@draw[\squirrel@pupil] (0.07,1.76) ellipse[x radius=0.017, y radius=0.027]; -\squirrel@part@draw[\squirrel@pupil] (-0.07,1.76) ellipse[x radius=0.017, y radius=0.027]; -% -% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifsquirrel@contour - \draw[\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.025,1.567) rectangle ++(0.02,0.03); - \draw[\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt] (0.025,1.567) rectangle ++(-0.02,0.03); - \draw[\squirrel@contour,line width=\scalingfactor*0.4pt] (-0.15,1.61) .. controls (-0.15,1.61) and (-0.15,1.52) .. (0.0,1.61) .. controls (0.15,1.52) and (0.15,1.61) .. (0.15,1.61); -\else - \fill[white] (-0.025,1.567) rectangle ++(0.02,0.03); - \fill[white] (0.025,1.567) rectangle ++(-0.02,0.03); - \draw[\squirrel@body!70!brown!60!black,line width=\scalingfactor*0.4pt] (-0.15,1.61) .. controls (-0.15,1.61) and (-0.15,1.52) .. (0.0,1.61) .. controls (0.15,1.52) and (0.15,1.61) .. (0.15,1.61); -\fi -% -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=70]; -\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=-70]; -% -\fi -% -% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\csname squirrelhookbody\endcsname -\csname tikzlinghookbody\endcsname -% + \squirrel@part@draw[\squirrel@body] (0.2,1.6) circle[radius=0.15]; + \squirrel@part@draw[\squirrel@body] (-0.2,1.6) circle[radius=0.15]; + \ifsquirrel@back + \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3]; + \fi% back + \else% contour + \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3] (0.2,1.6) circle[radius=0.15] (-0.2,1.6) circle[radius=0.15]; + \fi% contour + % + \ifsquirrel@back + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] + (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle; + \else% back + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@body!70!brown!60!black] (0,1.66) ellipse[x radius=0.06, y radius=0.03]; + % + % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@eye] (0.07,1.78) ellipse[x radius=0.05, y radius=0.07]; + \squirrel@part@draw[\squirrel@eye] (-0.07,1.78) ellipse[x radius=0.05, y radius=0.07]; + \squirrel@part@draw[\squirrel@pupil] (0.07,1.76) ellipse[x radius=0.017, y radius=0.027]; + \squirrel@part@draw[\squirrel@pupil] (-0.07,1.76) ellipse[x radius=0.017, y radius=0.027]; + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsquirrel@contour + \draw[\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.025,1.567) rectangle ++(0.02,0.03); + \draw[\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt] (0.025,1.567) rectangle ++(-0.02,0.03); + \draw[\squirrel@contour,line width=\scalingfactor*0.4pt] (-0.15,1.61) .. controls (-0.15,1.61) and (-0.15,1.52) .. (0.0,1.61) .. controls (0.15,1.52) and (0.15,1.61) .. (0.15,1.61); + \else% contour + \fill[white] (-0.025,1.567) rectangle ++(0.02,0.03); + \fill[white] (0.025,1.567) rectangle ++(-0.02,0.03); + \draw[\squirrel@body!70!brown!60!black,line width=\scalingfactor*0.4pt] (-0.15,1.61) .. controls (-0.15,1.61) and (-0.15,1.52) .. (0.0,1.61) .. controls (0.15,1.52) and (0.15,1.61) .. (0.15,1.61); + \fi% contour + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=70]; + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=-70]; + % + \fi% back + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname squirrelhookbody\endcsname + \csname tikzlinghookbody\endcsname + % } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Documentation +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\clearpage +%\section[Squirrel]{Ratatosk, the squirrel} +% +%\emph{named after the squirrel from Norse mythology who climbs around Yggdrasil} +% +%\subsection{Package name} +% +%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth] +%\vspace*{0.5cm} +%\lstinline|\usepackage{tikzlings-squirrels}| +%\vspace*{0.5cm} +%\end{tcolorbox} +% +%\subsection{Basic Usage} +% +%\begin{tcblisting}{} +%\squirrel +%\end{tcblisting} +% +%\subsection{Options} +% +%The basic squirrel can be modified by changing its colour: +%\begin{tcblisting}{} +%\squirrel[body=blue] +%\end{tcblisting} +% +%In addition to the colour of the body, the colour of the eyes can be adjusted: +%\begin{tcblisting}{} +%\squirrel[eye=red] +%\end{tcblisting} +%\begin{tcblisting}{} +%\squirrel[pupil=red] +%\end{tcblisting} +% +%To view the squirrel from behind: +%\begin{tcblisting}{} +%\squirrel[back] +%\end{tcblisting} +% +%The key \lstinline|3D| will make the squirrel 3-dimensional: +%\begin{tcblisting}{} +%\squirrel[3D] +%\end{tcblisting} +% +%And finally the \lstinline|contour| key will only draw the outlines: +%\begin{tcblisting}{} +%\squirrel[contour=black] +%\end{tcblisting} diff --git a/graphics/pgf/contrib/tikzlings/tikzlings.sty b/graphics/pgf/contrib/tikzlings/tikzlings.sty index 77e2bbc984..0413709e69 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings.sty @@ -12,7 +12,7 @@ % See http://www.latex-project.org/lppl.txt % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings}[2021/04/16 version v0.6 Collection of packages to draw animals and other beings in TikZ] +\ProvidesPackage{tikzlings}[2021/08/06 version v0.8 Collection of packages to draw animals and other beings in TikZ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/macros/generic/markdown/README.md b/macros/generic/markdown/README.md index 99ee0367e3..62d857935a 100644 --- a/macros/generic/markdown/README.md +++ b/macros/generic/markdown/README.md @@ -2,10 +2,10 @@ Markdown ======== [![release](https://img.shields.io/github/release/witiko/markdown.svg)][release] -[![CircleCI](https://circleci.com/gh/Witiko/markdown/tree/master.svg?style=shield)][CircleCI] +[![ci](https://github.com/Witiko/markdown/workflows/Test/badge.svg)][ci] - [CircleCI]: https://circleci.com/gh/Witiko/markdown/tree/master "CircleCI" [release]: https://github.com/Witiko/markdown/releases/latest "Releases · Witiko/markdown" + [ci]: https://github.com/Witiko/markdown/actions "GitHub Actions" The Markdown package converts [markdown][] markup to TeX commands. The functionality is provided both as a Lua module, and as plain TeX, LaTeX, and @@ -41,11 +41,14 @@ For further information, consult one of the following: - [Writing Posters with Markdown][overleaf-5], and - [Using Markdown in LaTeX documents][overleaf-6]. 4. My journal articles published by [TUGboat][]: - - [Using Markdown inside TeX documents][tb119], and - - [Markdown 2.7.0: Towards lightweight markup in TeX][tb124]. + - [Using Markdown inside TeX documents][tb119], + - [Markdown 2.7.0: Towards lightweight markup in TeX][tb124], and + - [Making Markdown into a Microwave Meal][tb129]. 5. My journal articles published by [CSTUG][] (in Czech): - [Rendering Markdown inside TeX Documents][10.5300/2016-1-4/78], and - [Markdown 2.8.1: Boldly Unto the Throne of Lightweight Markup in TeX][10.5300/2020-1-2/48]. +6. My talks: + - [Five Years of Markdown in LaTeX: What, Why, How, and Whereto][pv212-fall2020] (in Czech). [overleaf-1]: https://www.overleaf.com/learn/latex/Articles/How_to_write_in_Markdown_on_Overleaf "How to write in Markdown on Overleaf" [overleaf-2]: https://www.overleaf.com/learn/latex/Articles/Markdown_into_LaTeX_with_Style "Markdown into LaTeX with Style" @@ -56,10 +59,13 @@ For further information, consult one of the following: [tb119]: https://www.tug.org/TUGboat/tb38-2/tb119novotny.pdf "Using Markdown inside TeX documents" [tb124]: https://www.tug.org/TUGboat/tb40-1/tb124novotny-markdown.pdf "Markdown 2.7.0: Towards lightweight markup in TeX" + [tb129]: https://www.tug.org/TUGboat/tb41-3/tb129novotny-frozen.pdf "Making Markdown into a Microwave Meal" [10.5300/2016-1-4/78]: https://bulletin.cstug.cz/pdf/2016-1-4.pdf#page=80 "Rendering Markdown inside TeX Documents" [10.5300/2020-1-2/48]: https://bulletin.cstug.cz/pdf/2020-1-2.pdf#page=50 "Markdown 2.8.1: Boldly Unto the Throne of Lightweight Markup in TeX" + [pv212-fall2020]: https://is.muni.cz/el/fi/podzim2020/PV212/index.qwarp?prejit=5595952 + [install]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html#installation "Markdown Package User Manual" [liantze]: http://liantze.penguinattack.org/ "Rants from the Lab" [manual]: http://mirrors.ctan.org/macros/generic/markdown/markdown.html "Markdown Package User Manual" @@ -99,13 +105,15 @@ the documentation, are placed in the `Makefile` file for ease of maintenance. When the file `markdown.ins` is interpreted using a Unicode-aware TeX engine, such as XeTeX (`xetex markdown.ins`) or LuaTeX (`luatex markdown.ins`), several -files are produced from the `markdown.dtx` document. In `markdown.dtx`, the -boundaries between the produced files are marked up using an XML-like syntax -provided by the [DocStrip][] plain TeX package. +files are produced from the `markdown.dtx` document. The `make base` command +is provided by `Makefile` for convenience. In `markdown.dtx`, the boundaries +between the produced files are marked up using an XML-like syntax provided by +the [DocStrip][] plain TeX package. Running the [LaTeXMK][] tool on the `markdown.dtx` file (`latexmk markdown.dtx`) after the Markdown package has been -[installed][install] typesets the documentation. In `markdown.dtx`, the +[installed][install] typesets the documentation. The `make markdown.pdf` +command is provided by `Makefile` for convenience. In `markdown.dtx`, the documentation is placed inside TeX comments and marked up using the [ltxdockit][] LaTeX document class. Support for typesetting the documentation is provided by the [doc][] LaTeX package. diff --git a/macros/generic/markdown/banner.png b/macros/generic/markdown/banner.png new file mode 100644 index 0000000000..b95a90c2cb Binary files /dev/null and b/macros/generic/markdown/banner.png differ diff --git a/macros/generic/markdown/docstrip.cfg b/macros/generic/markdown/docstrip.cfg index 60f15d3935..b1672cc298 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-2020 Vít Novotný^^J% +-- Copyright (C) 2016-2021 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% @@ -62,7 +62,7 @@ \let\luapostamble\empty \declarepreamble\texpreamble -Copyright (C) 2016-2020 Vít Novotný +Copyright (C) 2016-2021 Vít Novotný This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/generic/markdown/markdown.dtx b/macros/generic/markdown/markdown.dtx index a3ebaecd88..f035985ca8 100644 --- a/macros/generic/markdown/markdown.dtx +++ b/macros/generic/markdown/markdown.dtx @@ -2,7 +2,7 @@ %<*driver> \documentclass{ltxdockit} \usepackage[american]{babel} -\usepackage{amsmath,btxdockit,doc,fancyvrb,hologo,microtype,minted} +\usepackage{amsmath,btxdockit,doc,fancyvrb,graphicx,hologo,microtype,minted} \usepackage{fontspec} \defaultfontfeatures[\rmfamily,\sffamily,\ttfamily]{} @@ -21,6 +21,12 @@ \hypersetup{citecolor=spot} \let\oldCodelineNo\theCodelineNo \def\theCodelineNo{\textcolor[gray]{0.5}{\oldCodelineNo}} +\makeatletter\renewcommand\fps@figure{htbp}\makeatother +\setkeys{Gin}{ + width = \columnwidth, + height = 0.65\paperheight, + keepaspectratio, +} % Define some markup. \let\pkg\relax % A package name @@ -58,6 +64,8 @@ html, stripPercentSigns, underscores=false, + theme=witiko/dot, + theme=witiko/graphicx/http, ]{markdown} \markdownSetup{ renderers = { @@ -93,6 +101,12 @@ % Set up the bibliography. \begin{filecontents}[overwrite,nosearch,noheader]{markdown.bib} +@book{tantau21, + author = {Till Tantau and Joseph Wright and Vedran Miletić}, + title = {The Beamer class}, + date = {2021-02-10}, + url = {http://mirrors.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf}, + urldate = {2021-02-11}} @online{sotkov17, author = {Sotkov, Anton}, title = {File transclusion syntax for Markdown}, @@ -153,6 +167,12 @@ isbn = {0-201-13447-0}, pagetotal = {ix, 479}, publisher = {Addison-Wesley}} +@online{novotny21, + author = {Novotný, Vít}, + title = {\Hologo{LaTeX2e} no longer keys packages by pathnames}, + date = {2021-02-20}, + url = {https://github.com/latex3/latex2e/issues/510}, + urldate = {2021-02-21}} \end{filecontents} \usepackage[ backend=biber, @@ -577,11 +597,11 @@ documentation][techdoc]. % \fi % \begin{macrocode} local metadata = { - version = "2.9.0", + version = "2.10.0", 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-2020 Vít Novotný"}, + "2016-2021 Vít Novotný"}, license = "LPPL 1.3" } @@ -660,7 +680,10 @@ This should produce the following files: * `markdown.lua`, the Lua module, * `markdown-cli.lua`, the Lua command-line interface, * `markdown.tex`, the plain \TeX{} macro package, - * `markdown.sty`, the \LaTeX{} package, and + * `markdown.sty`, the \LaTeX{} package, + * `markdownthemewitiko_dot.sty`, the `witiko/dot` \LaTeX{} theme, + * `markdownthemewitiko_graphicx_http.sty`, the `witiko/graphicx/http` \LaTeX{} theme, + * `markdownthemewitiko_tilde.sty`, the `witiko/tilde` \LaTeX{} theme, and * `t-markdown.tex`, the \Hologo{ConTeXt} module. ### Local Installation @@ -673,6 +696,9 @@ placed: * `/scripts/markdown/markdown-cli.lua` * `/tex/generic/markdown/markdown.tex` * `/tex/latex/markdown/markdown.sty` + * `/tex/latex/markdown/markdownthemewitiko_dot.sty` + * `/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty` + * `/tex/latex/markdown/markdownthemewitiko_tilde.sty` * `/tex/context/third/markdown/t-markdown.tex` where `` corresponds to a root of your \TeX{} distribution, such as @@ -686,6 +712,11 @@ Alternatively, you can also store the above files in the same folder as your \TeX{} document and distribute them together. This way your document can be portably typeset on legacy \TeX{} distributions. +Since Markdown version 2.10.0, the file `markdown.tex` must be placed in +a directory named `markdown` due to [issue #74][issue-74]. + + [issue-74]: https://github.com/witiko/markdown/issues/74 (Does not compile if user names own document markdown.tex) + % %<*lua> % \fi @@ -726,7 +757,18 @@ local lpeg = require("lpeg") % % \end{markdown} % \begin{macrocode} -local unicode = require("unicode") +local ran_ok, unicode = pcall(require, "unicode") +% \end{macrocode} +% \begin{markdown} +% +% If the Selene Unicode library is unavailable and we are using +% Lua${}\geq{}$5.3, we will use the built-in support for Unicode. +% +% \end{markdown} +% \begin{macrocode} +if not ran_ok then + unicode = {["utf8"]={char=utf8.char}} +end % \end{macrocode} % \par % \begin{markdown} @@ -801,12 +843,19 @@ local md5 = require("md5") % The \LaTeX{} part of the package requires that the \Hologo{LaTeX2e} format is % loaded, % \end{markdown} +% \iffalse +%<*latex-themes-witiko-dot,latex-themes-witiko-graphicx-http,latex-themes-witiko-tilde> +% \fi % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}% % \end{macrocode} +% \iffalse +% +% \fi % \begin{markdown} -% all the plain \TeX{} prerequisites (see Section \ref{sec:texprerequisites}), -% and the following \Hologo{LaTeX2e} packages: +% a \TeX{} engine that extends \Hologo{eTeX}, all the plain \TeX{} +% prerequisites (see Section \ref{sec:texprerequisites}), and the following +% \Hologo{LaTeX2e} packages: % % \pkg{keyval} % @@ -822,37 +871,38 @@ local md5 = require("md5") % \par % \begin{markdown} % -% \pkg{url} +% \pkg{xstring} % -%: A package that provides the \m{url} macro for the typesetting of -% \acro{url}s. It is used to provide the default token renderer prototype -% (see Section \ref{sec:texrendererprototypes}) for links. +%: A package that provides useful macros for manipulating strings of tokens. % % \end{markdown} % \begin{macrocode} -\RequirePackage{url} +\RequirePackage{xstring} % \end{macrocode} % \par % \begin{markdown} % +% The following packages are soft prerequisites and will not be loaded +% if the `plain` package option has been enabled (see Section +% \ref{sec:latexplain}): +% +% \pkg{url} +% +%: A package that provides the \m{url} macro for the typesetting of +% \acro{url}s. It is used to provide the default token renderer +% prototype (see Section \ref{sec:texrendererprototypes}) for links. +% % \pkg{graphicx} % %: A package that provides the \m{includegraphics} macro for the typesetting % of images. It is used to provide the corresponding default token renderer % prototype (see Section \ref{sec:texrendererprototypes}). % -% \end{markdown} -% \begin{macrocode} -\RequirePackage{graphicx} -% \end{macrocode} -% \par -% \begin{markdown} -% % \pkg{paralist} % %: A package that provides the \envm{compactitem}, \envm{compactenum}, and % \envm{compactdesc} macros for the typesetting of tight bulleted lists, -% ordered lists, and definition lists. It is used to provide the +% ordered lists, and definition lists. It is used to provide the % corresponding default token renderer prototypes (see Section % \ref{sec:texrendererprototypes}). % @@ -860,14 +910,9 @@ 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. -% -% \end{markdown} -% \begin{macrocode} -\RequirePackage{ifthen} -% \end{macrocode} -% \par -% \begin{markdown} +% should be loaded based on the user options, in the `witiko/dot` \LaTeX{} +% theme (see Section \ref{sec:latexthemes}), and to provide default token +% renderer prototypes (see Section \ref{sec:texrendererprototypes}). % % \pkg{fancyvrb} % @@ -876,34 +921,19 @@ local md5 = require("md5") % corresponding default token renderer prototype (see Section % \ref{sec:texrendererprototypes}). % -% \end{markdown} -% \begin{macrocode} -\RequirePackage{fancyvrb} -% \end{macrocode} -% \par -% \begin{markdown} -% % \pkg{csvsimple} % %: A package that provides the default token renderer prototype for % iA\,Writer content blocks with the \acro{csv} filename extension (see % Section \ref{sec:texrendererprototypes}). % -% \end{markdown} -% \begin{macrocode} -\RequirePackage{csvsimple} -% \end{macrocode} -% \par -% \begin{markdown} -% % \pkg{gobble} % -%: A package that provides the \m{\@gobblethree} \TeX{} command. +%: A package that provides the \m{\@gobblethree} \TeX{} command that +% is used in the default renderer prototype for citations (see +% Section \ref{sec:texrendererprototypes}). % % \end{markdown} -% \begin{macrocode} -\RequirePackage{gobble} -% \end{macrocode} % \iffalse % %<*context> @@ -963,8 +993,8 @@ Using a text editor, create a text document named `hello.lua` with the following content: ``` lua #!/usr/bin/env texlua -local kpse = require("kpse") -kpse.set_program_name("luatex") +local ran_ok, kpse = pcall(require, "kpse") +if ran_ok then kpse.set_program_name("luatex") end local markdown = require("markdown") local convert = markdown.new() print(convert("Hello *world*!")) @@ -1220,8 +1250,8 @@ Using a text editor, create a text document named `example.lua` with the following content: ``` lua #!/usr/bin/env texlua -local kpse = require("kpse") -kpse.set_program_name("luatex") +local ran_ok, kpse = pcall(require, "kpse") +if ran_ok then kpse.set_program_name("luatex") end local markdown = require("markdown") local input, convert_safe, convert_unsafe, paragraph @@ -1308,7 +1338,10 @@ following content: \input lmfonts \input safe +\begingroup +\catcode`\%=12 \input unsafe +\endgroup \bye ``````` Using a text editor, create a text document named `example.md` with the @@ -2677,13 +2710,13 @@ defaultOptions.breakableBlockquotes = false % : true - : Replace regular spaces with non-breakable spaces inside the prenotes + : Replace regular spaces with non-breaking spaces inside the prenotes and postnotes of citations produced via the pandoc citation syntax extension. false - : Do not replace regular spaces with non-breakable spaces inside the + : Do not replace regular spaces with non-breaking spaces inside the prenotes and postnotes of citations produced via the pandoc citation syntax extension. @@ -2729,7 +2762,7 @@ lualatex document.tex lualatex document.tex `````` A PDF document named `document.pdf` should be produced and contain the -following text, where the middot (`·`) denotes a non-breakable space: +following text, where the middot (`·`) denotes a non-breaking space: > The TeXbook [1, p.·123·and·130] is good. > @@ -4506,7 +4539,10 @@ following content: \input lmfonts \input optionfalse +\begingroup +\catcode`\%=12 \input optiontrue +\endgroup \bye ``````` Using a text editor, create a text document named `content.md` with the @@ -4666,7 +4702,7 @@ Using a text editor, create a text document named `document.tex` with the following content: ``` tex \documentclass{article} -\usepackage[footnotes, inlineFootnotes]{markdown} +\usepackage[inlineFootnotes]{markdown} \begin{document} \begin{markdown} Here is an inline note.^[Inlines notes are easier to @@ -4692,7 +4728,6 @@ Using a text editor, create a text document named `document.tex` with the following content: ``` tex \usemodule[t][markdown] -\def\markdownOptionFootnotes{true} \def\markdownOptionInlineFootnotes{true} \starttext \startmarkdown @@ -4920,10 +4955,9 @@ following content: ``` tex \documentclass{article} \usepackage{markdown} -\usepackage{filecontents} -\begin{filecontents*}{example.md} +\begin{filecontents}[overwrite,nosearch,noheader]{example.md} ## A section -\end{filecontents*} +\end{filecontents} \begin{document} \markdownInput[shiftHeadings=-1]{example.md} \markdownInput{example.md} @@ -5092,8 +5126,7 @@ following content: ``` tex \documentclass{article} \usepackage[headerAttributes]{markdown} -\usepackage{filecontents} -\begin{filecontents*}{hamlet.md} +\begin{filecontents}[overwrite,nosearch,noheader]{hamlet.md} # The Tragedy of Hamlet Shakespeare's longest play. @@ -5105,7 +5138,7 @@ Hamlet dies. ## Act I {#act-1} Hamlet talks to ghost. -\end{filecontents*} +\end{filecontents} \begin{document} \markdownInput[slice=^ ^act-3]{hamlet.md} \markdownInput[slice=act-1]{hamlet.md} @@ -5328,7 +5361,9 @@ following content: \usepackage{markdown} \markdownSetup{ renderers = { - ellipsis = {. . .} }} + ellipsis = {. . .} + } +} \begin{document} \begin{markdown} @@ -5520,6 +5555,109 @@ defaultOptions.startNumber = true % %<*manual-options> +#### Option `stripIndent` + +`stripIndent` (default value: `false`) + +% \fi +% \markdownBegin +% +% \Optitem[false]{stripIndent}{\opt{true}, \opt{false}} +% +: true + + : Strip the minimal indentation of non-blank lines from all + lines in a markdown document. Requires that the + \Opt{preserveTabs} Lua option is \opt{false}: + + ``` tex + \documentclass{article} + \usepackage[stripIndent]{markdown} + \begin{document} + \begin{markdown} + Hello *world*! + \end{markdown} + \end{document} + ``````` + +: false + + : Do not strip any indentation from the lines in a markdown + document. + +% \markdownEnd +% \iffalse + +##### Plain \TeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\input markdown +\def\markdownOptionStripIndent{true} +\markdownBegin + Hello *world*! +\markdownEnd +\bye +``````` +Next, invoke LuaTeX from the terminal: +``` sh +luatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the text +“Hello *world*!” + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[stripIndent]{markdown} +\begin{document} + \begin{markdown} + Hello *world*! + \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 +text “Hello *world*!” + +##### \Hologo{ConTeXt} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\usemodule[t][markdown] +\def\markdownOptionStripIndent{true} +\starttext + \startmarkdown + Hello *world*! + \stopmarkdown +\stoptext +```````` +Next, invoke LuaTeX from the terminal: +``` sh +context document.tex +````` +A PDF document named `document.pdf` should be produced and contain the +text “Hello *world*!” + +% +%<*lua,lua-cli> +% \fi +% \begin{macrocode} +defaultOptions.stripIndent = false +% \end{macrocode} +% \par +% \iffalse +% +%<*manual-options> + #### Option `tableCaptions` `tableCaptions` (default value: `false`) @@ -5634,6 +5772,110 @@ defaultOptions.tableCaptions = false % %<*manual-options> +#### Option `texComments` + +`texComments` (default value: `false`) + +% \fi +% \markdownBegin +% +% \Optitem[false]{texComments}{\opt{true}, \opt{false}} +% +: true + + : Strip \TeX{}-style comments. + + ``` tex + \documentclass{article} + \usepackage[texComments]{markdown} + \begin{document} + \begin{markdown} + Hel% this is a comment + lo *world*! + \end{markdown} + \end{document} + ``````` + +: false + + : Do not strip \TeX{}-style comments. + +% \markdownEnd +% \iffalse + +##### Plain \TeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\input markdown +\def\markdownOptionTeXComments{true} +\markdownBegin +Hel% this is a comment + lo *world*! +\markdownEnd +\bye +``````` +Next, invoke LuaTeX from the terminal: +``` sh +luatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the text +“Hello *world*!” + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[texComments]{markdown} +\begin{document} +\begin{markdown} +Hel% this is a comment + lo *world*! +\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 +text “Hello *world*!” + +##### \Hologo{ConTeXt} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\usemodule[t][markdown] +\def\markdownOptionTeXComments{true} +\starttext +\startmarkdown +Hel% this is a comment + lo *world*! +\stopmarkdown +\stoptext +```````` +Next, invoke LuaTeX from the terminal: +``` sh +context document.tex +````` +A PDF document named `document.pdf` should be produced and contain the +text “Hello *world*!” + +% +%<*lua,lua-cli> +% \fi +% \begin{macrocode} +defaultOptions.texComments = false +% \end{macrocode} +% \par +% \iffalse +% +%<*manual-options> + #### Option `tightLists` @@ -6096,8 +6338,8 @@ pdftex --shell-escape document.tex % % \end{markdown} % \begin{macrocode} -\def\markdownLastModified{2020/09/14}% -\def\markdownVersion{2.9.0}% +\def\markdownLastModified{2021/08/06}% +\def\markdownVersion{2.10.0}% % \end{macrocode} % \par % \begin{markdown} @@ -6483,7 +6725,9 @@ bug](https://github.com/witiko/markdown/issues). \let\markdownOptionSlice\undefined \let\markdownOptionSmartEllipses\undefined \let\markdownOptionStartNumber\undefined +\let\markdownOptionStripIndent\undefined \let\markdownOptionTableCaptions\undefined +\let\markdownOptionTeXComments\undefined \let\markdownOptionTightLists\undefined % \end{macrocode} % \par @@ -7062,7 +7306,7 @@ Next, invoke LuaTeX from the terminal: luatex document.tex `````` A PDF document named `document.pdf` should be produced and contain the -following text, where the middot (`·`) denotes a non-breakable space: +following text, where the middot (`·`) denotes a non-breaking space: > Bartel·Leendert van·der·Waerden @@ -7090,7 +7334,7 @@ Next, invoke LuaTeX from the terminal: lualatex document.tex `````` A PDF document named `document.pdf` should be produced and contain the -following text, where the middot (`·`) denotes a non-breakable space: +following text, where the middot (`·`) denotes a non-breaking space: > Bartel·Leendert van·der·Waerden @@ -7113,7 +7357,7 @@ Next, invoke LuaTeX from the terminal: context document.tex `````` A PDF document named `document.pdf` should be produced and contain the -following text, where the middot (`·`) denotes a non-breakable space: +following text, where the middot (`·`) denotes a non-breaking space: > Bartel·Leendert van·der·Waerden @@ -7619,12 +7863,11 @@ Using a text editor, create a text document named `document.tex` with the following content: ``` tex \documentclass{article} -\usepackage{filecontents} -\begin{filecontents*}{markdown-languages.json} +\begin{filecontents}[overwrite,nosearch,noheader]{markdown-languages.json} { "json": "JavaScript Object Notation", } -\end{filecontents*} +\end{filecontents} \usepackage[contentBlocks]{markdown} \markdownSetup{ renderers = { @@ -8171,7 +8414,8 @@ an ordered list. The macro receives no arguments. The \mdef{markdownRendererOlItemWithNumber} macro represents an item in an ordered list. This macro will only be produced, when the \Opt{startNumber} -option is enabled. The macro receives no arguments. +option is enabled. The macro receives a single numeric argument that +corresponds to the item number. % \end{markdown} % @@ -9997,7 +10241,7 @@ A PDF document named `document.pdf` should be produced and contain the following text: > This is a parenthesized citation *abrahams90* with a prefix see -> and a postfix *pp. > 12*, and a citation *eijkhout91* with a +> and a postfix *pp. 12*, and a citation *eijkhout91* with a > postfix *pp. 34*. % @@ -10180,8 +10424,6 @@ following content: : Demonstration of pipe table syntax \end{markdown} \end{document} -\end{markdown} -\end{document} ``````` Next, invoke LuaTeX from the terminal: ``` sh @@ -10220,47 +10462,110 @@ following text: % % \begin{markdown} -### Token Renderer Prototypes +#### Inline HTML Comment Renderer +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. -% \label{sec:texrendererprototypes} -% % \end{markdown} -% \iffalse - -By default, token renderers point to package-defined \TeX{} macros, further -referred to as *prototypes*, which provide useful default definitions. - -% \fi % % \iffalse -##### Plain \TeX{} Example {.unnumbered} +##### \LaTeX{} Example {.unnumbered} Using a text editor, create a text document named `document.tex` with the following content: ``` tex -\input markdown -\def\markdownRendererTildePrototype{% - Packages can specify token renderer prototypes.% -} -\markdownBegin -~ -\markdownEnd - -\def\markdownRendererTilde{% - User-defined token renderers take precedence.% +\documentclass{article} +\usepackage[html]{markdown} +\usepackage{marginnote} +\markdownSetup{ + renderers = { + inlineHtmlComment = {\marginnote{#1}}, + }, } -\markdownBegin -~ -\markdownEnd -\bye +\begin{document} +\begin{markdown} +A useful use of HTML comments are side notes. + +\end{markdown} +\end{document} ``````` Next, invoke LuaTeX from the terminal: ``` sh -luatex document.tex +lualatex document.tex +lualatex document.tex `````` A PDF document named `document.pdf` should be produced and contain the -following text: +following body text: + +> A useful use of HTML comments are side notes. + +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. + +% +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererInlineHtmlComment{% + \markdownRendererInlineHtmlCommentPrototype}% +% \end{macrocode} +% \par +% +% \iffalse +% +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +### Token Renderer Prototypes + +% \label{sec:texrendererprototypes} +% +% \end{markdown} +% \iffalse + +By default, token renderers point to package-defined \TeX{} macros, further +referred to as *prototypes*, which provide useful default definitions. + +% \fi +% +% \iffalse + +##### Plain \TeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\input markdown +\def\markdownRendererTildePrototype{% + Packages can specify token renderer prototypes.% +} +\markdownBegin +~ +\markdownEnd + +\def\markdownRendererTilde{% + User-defined token renderers take precedence.% +} +\markdownBegin +~ +\markdownEnd +\bye +``````` +Next, invoke LuaTeX from the terminal: +``` sh +luatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: > Packages can specify token renderer prototypes. > @@ -10410,6 +10715,7 @@ following text: \def\markdownRendererCitePrototype#1{}% \def\markdownRendererTextCitePrototype#1{}% \def\markdownRendererTablePrototype#1#2#3{}% +\def\markdownRendererInlineHtmlCommentPrototype#1{}% % \end{macrocode} % \par % \begin{markdown} @@ -10418,27 +10724,9 @@ following text: % The \mdef{markdownInfo}, \mdef{markdownWarning}, and \mdef{markdownError} % macros perform logging for the Markdown package. Their first argument % specifies the text of the info, warning, or error message. -% -% \end{markdown} -% \begin{macrocode} -\def\markdownInfo#1{}% -\def\markdownWarning#1{}% -% \end{macrocode} -% \par -% \begin{markdown} -% % The \m{markdownError} macro receives a second argument that provides a help -% text. -% -% \end{markdown} -% \begin{macrocode} -\def\markdownError#1#2{}% -% \end{macrocode} -% \par -% \begin{markdown} -% -% You may redefine these macros to redirect and process the info, warning, and -% error messages. +% text. You may redefine these macros to redirect and process the info, +% warning, and error messages. % %### Miscellanea % The \mdef{markdownMakeOther} macro is used by the package, when a \TeX{} @@ -10677,31 +10965,566 @@ pdflatex --shell-escape document.tex % % 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`. +% part is optional, and \meta{key} will be interpreted as \meta{key}`=true` +% if the `=`\meta{value} part has been omitted. % -% The \LaTeX{} options map directly to the options recognized by the plain +% Except for the `plain` option described in Section \ref{sec:latexplain}, and +% the \LaTeX{} themes described in Section \ref{sec:latexthemes}, and the +% \LaTeX{} setup snippets described in Section \ref{sec:latexsetupsnippets}, +% \LaTeX{} options map directly to the options recognized by the plain % \TeX{} interface (see Section \ref{sec:texoptions}) and to the markdown token % renderers and their prototypes recognized by the plain \TeX{} interface (see % Sections \ref{sec:texrenderersuser} and \ref{sec:texrendererprototypes}). % -% The \LaTeX{} options may be specified when loading the \LaTeX{} package (see -% Section \ref{sec:latexinterface}), when using the \envm{markdown*} \LaTeX{} -% environment, or via the \mdef{markdownSetup} macro. The \m{markdownSetup} -% macro receives the options to set up as its only argument. +% The \LaTeX{} options may be specified when loading the \LaTeX{} package, when +% using the \envm{markdown*} \LaTeX{} environment or the \m{markdownInput} +% macro (see Section \ref{sec:latexinterface}), or via the \mdef{markdownSetup} +% macro. The \m{markdownSetup} macro receives the options to set up as its only +% argument: % % \markdownEnd % \begin{macrocode} \newcommand\markdownSetup[1]{% \setkeys{markdownOptions}{#1}}% % \end{macrocode} +% \begin{markdown} +% +% We may also store \LaTeX{} options as *setup snippets* and invoke them later +% using the \mdef{markdownSetupSnippet} macro. The \m{markdownSetupSnippet} +% macro receives two arguments: the name of the setup snippet and the options +% to store: +% +% \end{markdown} +% \begin{macrocode} +\newcommand\markdownSetupSnippet[2]{% + \@ifundefined + {markdownLaTeXSetupSnippet\markdownLaTeXThemeName#1}{% + \newtoks\next + \next={#2}% + \expandafter\let\csname markdownLaTeXSetupSnippet% + \markdownLaTeXThemeName#1\endcsname=\next + }{% + \markdownWarning + {Redefined setup snippet \markdownLaTeXThemeName#1}% + \csname markdownLaTeXSetupSnippet% + \markdownLaTeXThemeName#1\endcsname={#2}% + }}% +% \end{macrocode} +% \begin{markdown} +% +% See Section \ref{sec:latexthemes} for information on interactions between +% setup snippets and \LaTeX{} themes. See Section \ref{sec:latexsetupsnippets} +% for information about invoking the stored setup snippets. +% +% \end{markdown} +% \iffalse +% +%<*manual-options> + +### \LaTeX{} + +\LaTeX{} options allow us to disable the redefinition of the default renderer +prototypes from plain \TeX{}, load user-contributed themes, and invoke +user-defined setup snippets. + +% \fi +% \par +% \begin{markdown} + +#### No default token renderer prototypes +% \label{sec: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 +\ref{sec:textokenrendererprototypes}) and prevent the soft \LaTeX{} +prerequisites in Section \ref{sec:latexprerequisites} from being loaded: + +``` tex +\usepackage[plain]{markdown} +``````` + +% \end{markdown} +% \iffalse +% +%<*latex> +% \fi +% \begin{macrocode} +\newif\ifmarkdownLaTeXPlain + \markdownLaTeXPlainfalse +\define@key{markdownOptions}{plain}[true]{% + \ifmarkdownLaTeXLoaded + \markdownWarning + {The plain option must be specified when loading the package}% + \else + \markdownLaTeXPlaintrue + \fi} +% \end{macrocode} +% \iffalse +% +%<*manual-options> +% \fi +% \begin{markdown} + +#### \LaTeX{} themes +% \label{sec:latexthemes} + +User-contributed \LaTeX{} themes for the Markdown package provide a +domain-specific interpretation of some Markdown tokens. Similarly to \LaTeX{} +packages, themes allow the authors to achieve a specific look and other +high-level goals without low-level programming. + +% The \LaTeX{} option with key `theme` loads a \LaTeX{} package (further +% referred to as *a theme*) named `markdowntheme`\meta{munged theme +% name}`.sty`, where the *munged theme name* is the *theme name* after a +% substitution of all forward slashes (\texttt{/}) for an underscore +% (\texttt{_}), the theme name is a value that is *qualified* and contains no +% underscores, and a value is qualified if and only if it contains at least one +% forward slash. Themes are inspired by the Beamer \LaTeX{} package, which +% provides similar functionality with its \m{usetheme} macro [@tantau21, +% Section 15.1]. +% +% Theme names must be qualified to minimize naming conflicts between different +% themes intended for a single \LaTeX{} document class or for a single \LaTeX{} +% package. The preferred format of a theme name is \meta{theme author}`/`\meta{target \LaTeX{} document class or package}`/`\meta{private naming +% scheme}, where the *private naming scheme* may contain additional forward +% slashes. For example, a theme by a user `witiko` for the MU theme of the +% Beamer document class may have the name `witiko/beamer/MU`. +% +% Theme names are munged, because \LaTeX{} packages are identified only by +% their filenames, not by their pathnames. [@novotny21] Therefore, we can't +% store the qualified theme names directly using directories, but we must +% encode the individual segments of the qualified theme in the filename. For +% example, loading a theme named `witiko/beamer/MU` would load a \LaTeX{} +% package named `markdownthemewitiko_beamer_MU.sty`. +% +% If the \LaTeX{} option with key `theme` is (repeatedly) specified in the +% \m{usepackage} macro, the loading of the theme(s) will be postponed in +% first-in-first-out order until after the Markdown \LaTeX{} package has been +% loaded. Otherwise, the theme(s) will be loaded immediately. For example, +% there is a theme named `witiko/dot`, which typesets fenced code blocks with +% the `dot` infostring as images of directed graphs rendered by the Graphviz +% tools. The following code would first load the Markdown package, then the +% `markdownthemewitiko_beamer_MU.sty` \LaTeX{} package, and finally the +% `markdownthemewitiko_dot.sty` \LaTeX{} package: +% \end{markdown} +% \iffalse + +For example, to load themes named `witiko/beamer/MU` and `witiko/dot`, you +would use the following code in the preamble of your document: + +% \fi % \par % \begin{markdown} + +``` tex +\usepackage[ + theme = witiko/beamer/MU, + theme = witiko/dot, +]{markdown} +``````` + +% \end{markdown} +% \iffalse +% +%<*latex> +% \fi +% \begin{macrocode} +\newif\ifmarkdownLaTeXLoaded + \markdownLaTeXLoadedfalse +\AtEndOfPackage{\markdownLaTeXLoadedtrue}% +\define@key{markdownOptions}{theme}{% + \IfSubStr{#1}{/}{}{% + \markdownError + {Won't load theme with unqualified name #1}% + {Theme names must contain at least one forward slash}}% + \StrSubstitute{#1}{/}{_}[\markdownLaTeXThemePackageName]% + \edef\markdownLaTeXThemePackageName{% + 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 \ref{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` +% setup snippet, the setup snippet will be available under the name +% `witiko/dot/product`. % +% \end{markdown} +% \iffalse +% +%<*manual-options> +% \fi +% \begin{markdown} + +Due to limitations of \LaTeX{}, themes may not be loaded after the +beginning of a \LaTeX{} document. + +% \end{markdown} +% \iffalse +% +%<*latex> +% \fi +% \begin{macrocode} +\@onlypreamble\KV@markdownOptions@theme +% \end{macrocode} +% \iffalse +% +%<*manual-options> +% \fi +% \par +% \markdownBegin + +Example themes provided with the Markdown package include: + +\pkg{witiko/dot} + +: A theme that typesets fenced code blocks with the `dot …` infostring + as images of directed graphs rendered by the Graphviz tools. The + right tail of the infostring is used as the image title. +% ```` tex +% \documentclass{article} +% \usepackage[theme=witiko/dot]{markdown} +% \setkeys{Gin}{ +% width = \columnwidth, +% height = 0.65\paperheight, +% keepaspectratio} +% \begin{document} +% \begin{markdown} +% ``` dot Various formats of mathemathical formulae +% digraph tree { +% margin = 0; +% rankdir = "LR"; +% +% latex -> pmml; +% latex -> cmml; +% pmml -> slt; +% cmml -> opt; +% cmml -> prefix; +% cmml -> infix; +% pmml -> mterms [style=dashed]; +% cmml -> mterms; +% +% latex [label = "LaTeX"]; +% pmml [label = "Presentation MathML"]; +% cmml [label = "Content MathML"]; +% slt [label = "Symbol Layout Tree"]; +% opt [label = "Operator Tree"]; +% prefix [label = "Prefix"]; +% infix [label = "Infix"]; +% mterms [label = "M-Terms"]; +% } +% ``` +% \end{markdown} +% \end{document} +% ```````` +% Typesetting the above document produces the output shown in +% Figure~\ref{fig:witiko/dot}. +% ``` dot Various formats of mathemathical formulae \label{fig:witiko/dot} +% digraph tree { +% margin = 0; +% rankdir = "LR"; +% +% latex -> pmml; +% latex -> cmml; +% pmml -> slt; +% cmml -> opt; +% cmml -> prefix; +% cmml -> infix; +% pmml -> mterms [style=dashed]; +% cmml -> mterms; +% +% latex [label = "LaTeX"]; +% pmml [label = "Presentation MathML"]; +% cmml [label = "Content MathML"]; +% slt [label = "Symbol Layout Tree"]; +% opt [label = "Operator Tree"]; +% prefix [label = "Prefix"]; +% infix [label = "Infix"]; +% mterms [label = "M-Terms"]; +% } +% ``` + The theme requires a Unix-like operating system with GNU Diffutils and + Graphviz installed. The theme also requires shell access unless the + \m{markdownOptionFrozenCache} plain \TeX{} option is enabled. + +% \markdownEnd +% \iffalse + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +```` tex +\documentclass{article} +\usepackage[theme=witiko/dot]{markdown} +\setkeys{Gin}{ + width=\columnwidth, + height=0.65\paperheight, + keepaspectratio} +\begin{document} +\begin{markdown} +``` dot Various formats of mathemathical formulae +digraph tree { + margin = 0; + rankdir = "LR"; + + latex -> pmml; + latex -> cmml; + pmml -> slt; + cmml -> opt; + cmml -> prefix; + cmml -> infix; + pmml -> mterms [style=dashed]; + cmml -> mterms; + + latex [label = "LaTeX"]; + pmml [label = "Presentation MathML"]; + cmml [label = "Content MathML"]; + slt [label = "Symbol Layout Tree"]; + opt [label = "Operator Tree"]; + prefix [label = "Prefix"]; + infix [label = "Infix"]; + mterms [label = "M-Terms"]; +} +``` +\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 +a drawing of a directed graph similar to Figure 1 from the following +conference article: + +> NOVOTNÝ, Vít, Petr SOJKA, Michal ŠTEFÁNIK and Dávid LUPTÁK. Three is Better +> than One: Ensembling Math Information Retrieval Systems. *CEUR Workshop +> Proceedings*. Thessaloniki, Greece: M. Jeusfeld c/o Redaktion Sun SITE, +> Informatik V, RWTH Aachen., 2020, vol. 2020, No 2696, p. 1-30. ISSN 1613-0073. +> + +% +%<*latex-themes-witiko-dot> +% \fi +% \begin{macrocode} +\ProvidesPackage{markdownthemewitiko_dot}[2021/03/09]% +% \end{macrocode} +% \iffalse +% +%<*manual-options> +% \fi +% \par +% \markdownBegin + +\pkg{witiko/graphicx/http} + +: A theme that adds support for downloading images whose URL has the + http or https protocol. +% ``` tex +% \documentclass{article} +% \usepackage[theme=witiko/graphicx/http]{markdown} +% \begin{document} +% \begin{markdown} +% ![img](https://github.com/witiko/markdown/raw/master/banner.png +% "The banner of the Markdown package") +% \end{markdown} +% \end{document} +% ``````` +% Typesetting the above document produces the output shown in +% Figure~\ref{fig:witiko/graphicx/http}. +% ![img](https://github.com/witiko/markdown/raw/master/banner.png +% "The banner of the Markdown package \label{fig:witiko/graphicx/http}") + The theme requires the \pkg{catchfile} \LaTeX{} package and a Unix-like + operating system with GNU Coreutils `md5sum` and either GNU Wget or cURL + installed. The theme also requires shell access unless the + \m{markdownOptionFrozenCache} plain \TeX{} option is enabled. + +% \markdownEnd +% \iffalse + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[theme=witiko/graphicx/http]{markdown} +\begin{document} +\begin{markdown} +![img](https://github.com/witiko/markdown/raw/master/banner.png + "The banner of the Markdown package") +\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 image: + +> ![img](https://github.com/witiko/markdown/raw/master/banner.png +> "The banner of the Markdown package") + +% +%<*latex-themes-witiko-graphicx-http> +% \fi +% \begin{macrocode} +\ProvidesPackage{markdownthemewitiko_graphicx_http}[2021/03/22]% +\RequirePackage{catchfile} +% \end{macrocode} +% \iffalse +% +%<*manual-options> +% \fi +% \par +% \markdownBegin + +\pkg{witiko/tilde} + +: A theme that makes tilde (`~`) always typeset the non-breaking space even + when the \Opt{hybrid} Lua option is `false`. +% ``` tex +% \documentclass{article} +% \usepackage[theme=witiko/tilde]{markdown} +% \begin{document} +% \begin{markdown} +% Bartel~Leendert van~der~Waerden +% \end{markdown} +% \end{document} +% ``````` +% Typesetting the above document produces the following text: +% “Bartel~Leendert van~der~Waerden”. +% +% \markdownEnd +% \iffalse + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage[theme=witiko/tilde]{markdown} +\begin{document} +\begin{markdown} +Bartel~Leendert van~der~Waerden +\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, where the middot (`·`) denotes a non-breaking space: + +> Bartel·Leendert van·der·Waerden + +% +%<*latex-themes-witiko-tilde> +% \fi +% \begin{macrocode} +\ProvidesPackage{markdownthemewitiko_tilde}[2021/03/22]% +% \end{macrocode} +% \iffalse +% +%<*manual-options> +% \fi +% \par +% \begin{markdown} +% +% Please, see Section~\ref{sec:latexthemesimplementation} for implementation +% details of the example themes. + +#### \LaTeX{} setup snippets +% \label{sec:latexsetupsnippets} +% \end{markdown} +% \iffalse + +User-contributed \LaTeX{} themes provide global control over high-level goals. +However, it is often desirable to change only some local aspects of a document. +\LaTeX{} setup snippets provide syntactic sugar for defining and invoking +various options locally. + +% \fi +% \begin{markdown} +% The \LaTeX{} option with key `snippet` invokes a snippet named \meta{value}: +% \end{markdown} +% \iffalse +% +%<*latex> +% \fi +% \begin{macrocode} +\define@key{markdownOptions}{snippet}{% + \expandafter\markdownSetup\expandafter{% + \the\csname markdownLaTeXSetupSnippet#1\endcsname}}% +% \end{macrocode} +% \iffalse +% +%<*manual-options> +% \fi +% \par +% \markdownBegin + +Here is how we can use setup snippets to store options and invoke them later: + +``` tex +\markdownSetupSnippet{romanNumerals}{ + renderers = { + olItemWithNumber = {% + \item[\romannumeral#1\relax.]% + }, + }, +} +\begin{markdown} + +The following ordered list will be preceded by arabic numerals: + +1. wahid +2. aithnayn + +\end{markdown} +\begin{markdown*}{snippet=romanNumerals} + +The following ordered list will be preceded by roman numerals: + +3. tres +4. quattuor + +\end{markdown*} + +``````` + %#### Plain \TeX{} Interface Options % The following options map directly to the option macros exposed by the plain % \TeX{} interface (see Section \ref{sec:texoptions}). % -% \end{markdown} +% \markdownEnd +% \iffalse +% +%<*latex> +% \fi % \begin{macrocode} \define@key{markdownOptions}{helperScriptFileName}{% \def\markdownOptionHelperScriptFileName{#1}}% @@ -10761,8 +11584,12 @@ pdflatex --shell-escape document.tex \def\markdownOptionSlice{#1}}% \define@key{markdownOptions}{startNumber}[true]{% \def\markdownOptionStartNumber{#1}}% +\define@key{markdownOptions}{stripIndent}[true]{% + \def\markdownOptionStripIndent{#1}}% \define@key{markdownOptions}{tableCaptions}[true]{% \def\markdownOptionTableCaptions{#1}}% +\define@key{markdownOptions}{texComments}[true]{% + \def\markdownOptionTeXComments{#1}}% \define@key{markdownOptions}{tightLists}[true]{% \def\markdownOptionTightLists{#1}}% \define@key{markdownOptions}{underscores}[true]{% @@ -10949,6 +11776,8 @@ pdflatex --shell-escape document.tex \renewcommand\markdownRendererTextCite[1]{#1}}% \define@key{markdownRenderers}{table}{% \renewcommand\markdownRendererTable[3]{#1}}% +\define@key{markdownRenderers}{inlineHtmlComment}{% + \renewcommand\markdownRendererInlineHtmlComment[1]{#1}}% % \end{macrocode} % \par % \begin{markdown} @@ -11092,6 +11921,8 @@ pdflatex --shell-escape document.tex \renewcommand\markdownRendererTextCitePrototype[1]{#1}}% \define@key{markdownRendererPrototypes}{table}{% \renewcommand\markdownRendererTablePrototype[3]{#1}}% +\define@key{markdownRendererPrototypes}{inlineHtmlComment}{% + \renewcommand\markdownRendererInlineHtmlCommentPrototype[1]{#1}}% % \end{macrocode} % \par % \begin{markdown} @@ -11175,6 +12006,7 @@ texexec --passon=--shell-escape document.tex % \end{markdown} % \begin{macrocode} \writestatus{loading}{ConTeXt User Module / markdown}% +\startmodule[markdown] \unprotect % \end{macrocode} % \par @@ -11294,7 +12126,8 @@ function util.cache(dir, string, salt, transform, suffix) local name = util.pathname(dir, digest .. suffix) local file = io.open(name, "r") if file == nil then -- If no cache entry exists, then create a new one. - local file = assert(io.open(name, "w")) + local file = assert(io.open(name, "w"), + [[could not open file "]] .. name .. [[" for writing]]) local result = string if transform ~= nil then result = transform(result) @@ -13671,7 +14504,8 @@ M.writer = {} % % The objects produced by the \luam{writer.new} method expose instance methods % and variables of their own. As a convention, I will refer to these -% \meta{member}s as `writer->`\meta{member}. +% \meta{member}s as `writer->`\meta{member}. All member variables are +% immutable unless explicitly stated otherwise. % % \end{markdown} % \begin{macrocode} @@ -13693,7 +14527,8 @@ function M.writer.new(options) % \begin{markdown} % % Parse the \Opt{slice} option and define \luamdef{writer->slice\_begin} -% \luamdef{writer->slice\_end}, and \luamdef{writer->is\_writing}. +% \luamdef{writer->slice\_end}, and \luamdef{writer->is\_writing}. The +% \luam{writer->is\_writing} member variable is mutable. % % \end{markdown} % \begin{macrocode} @@ -13847,9 +14682,10 @@ function M.writer.new(options) % Define a table \luamdef{escaped_chars} containing the mapping from special % plain \TeX{} characters (including the active pipe character (`|`) of % \Hologo{ConTeXt}) to their escaped variants. Define tables -% \luamdef{escaped_minimal_chars} and \luamdef{escaped_minimal_strings} -% containing the mapping from special plain characters and character strings -% that need to be escaped even in content that will not be typeset. +% \luamdef{escaped_uri_chars}, \luamdef{escaped_citation_chars}, and +% \luamdef{escaped_minimal_strings} containing the mapping from special plain +% characters and character strings that need to be escaped even in content +% that will not be typeset. % % \end{markdown} % \begin{macrocode} @@ -13886,10 +14722,10 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Use the \luam{escaped_chars} table to create an escaper function -% \luamdef{escape} and the \luam{escaped_minimal_chars} and -% \luam{escaped_minimal_strings} tables to create an escaper function -% \luamdef{escape_minimal}. +% Use the \luam{escaped_chars}, \luam{escaped_uri_chars}, +% \luam{escaped_citation_chars}, and \luam{escaped_minimal_strings} tables +% to create the \luamdef{escape}, \luamdef{escape_citation}, and +% \luamdef{escape_uri} escaper functions. % % \end{markdown} % \begin{macrocode} @@ -13902,10 +14738,12 @@ function M.writer.new(options) % \begin{markdown} % % Define \luamdef{writer->string} as a function that will transform an input -% plain text span `s` to the output format and \luamdef{writer->uri} as a -% function that will transform an input \acro{uri} `u` to the output format. -% If the \Opt{hybrid} option is enabled, use identity functions. Otherwise, -% use the \luam{escape} and \luam{escape_minimal} functions. +% plain text span `s` to the output format, \luamdef{writer->citation} as a +% function that will transform an input citation name `c` to the output format, +% and \luamdef{writer->uri} as a function that will transform an input +% \acro{uri} `u` to the output format. If the \Opt{hybrid} option is enabled, +% use identity functions. Otherwise, use the \luam{escape}, +% \luam{escape_citation}, and \luam{escape_uri} functions. % % \end{markdown} % \begin{macrocode} @@ -13922,13 +14760,25 @@ function M.writer.new(options) % \par % \begin{markdown} % +% Define \luamdef{writer->escape} as a function that will transform an input +% plain text span to the output format. Unlike the \luam{writer->string} +% function, \luam{writer->escape} always uses the \luam{escape} function, +% even when the \Opt{hybrid} option is enabled. +% +% \end{markdown} +% \begin{macrocode} + self.escape = escape +% \end{macrocode} +% \par +% \begin{markdown} +% % Define \luamdef{writer->code} as a function that will transform an input % inlined code span `s` to the output format. % % \end{markdown} % \begin{macrocode} function self.code(s) - return {"\\markdownRendererCodeSpan{",escape(s),"}"} + return {"\\markdownRendererCodeSpan{",self.escape(s),"}"} end % \end{macrocode} % \par @@ -13942,7 +14792,7 @@ function M.writer.new(options) % \begin{macrocode} function self.link(lab,src,tit) return {"\\markdownRendererLink{",lab,"}", - "{",self.string(src),"}", + "{",self.escape(src),"}", "{",self.uri(src),"}", "{",self.string(tit or ""),"}"} end @@ -13957,6 +14807,7 @@ function M.writer.new(options) % \end{markdown} % \begin{macrocode} function self.table(rows, caption) + if not self.is_writing then return "" end local buffer = {"\\markdownRendererTable{", caption or "", "}{", #rows - 1, "}{", #rows[1], "}"} local temp = rows[2] -- put alignments on the first row @@ -13970,10 +14821,10 @@ function M.writer.new(options) end table.insert(buffer, column) if i > 1 then - table.insert(buffer, "}%\n") + table.insert(buffer, "}") end end - table.insert(buffer, "}%\n") + table.insert(buffer, "}") end return buffer end @@ -13999,20 +14850,34 @@ function M.writer.new(options) % % The \luamdef{languages_json} table maps programming language filename % extensions to fence infostrings. All \luam{options.contentBlocksLanguageMap} -% files located by \pkg{kpathsea} are loaded into a chain of tables. +% files located by the KPathSea library are loaded into a chain of tables. % \luam{languages_json} corresponds to the first table and is chained with % the rest via Lua metatables. % % \end{markdown} % \begin{macrocode} local languages_json = (function() - local kpse = require("kpse") - kpse.set_program_name("luatex") + local ran_ok, kpse = pcall(require, "kpse") + if ran_ok then + kpse.set_program_name("luatex") +% \end{macrocode} +% \begin{markdown} +% +% If the KPathSea library is unavailable, perhaps because we are using +% LuaMeta\TeX, we will only locate the \luam{options.contentBlocksLanguageMap} +% in the current working directory: +% +% \end{markdown} +% \begin{macrocode} + else + kpse = {lookup=function(filename, options) return filename end} + end local base, prev, curr - for _, file in ipairs{kpse.lookup(options.contentBlocksLanguageMap, - { all=true })} do - json = io.open(file, "r"):read("*all") - :gsub('("[^\n]-"):','[%1]=') + for _, filename in ipairs{kpse.lookup(options.contentBlocksLanguageMap, + { all=true })} do + local file = io.open(filename, "r") + if not file then goto continue end + json = file:read("*all"):gsub('("[^\n]-"):','[%1]=') curr = (function() local _ENV={ json=json, load=load } -- run in sandbox return load("return "..json)() @@ -14025,6 +14890,7 @@ function M.writer.new(options) end prev = curr end + ::continue:: end return base or {} end)() @@ -14137,15 +15003,15 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Define \luamdef{writer->inline_html} and \luamdef{writer->display_html} -% as functions that will transform an inline or block \acro{html} element -% respectively to the output format, where `html` is the \acro{html} -% input. +% Define \luamdef{writer->inline_html_comment} as a function that will +% transform the contents of an inline \acro{HTML} comment, to the output +% format, where `contents` are the contents of the \acro{HTML} comment. % % \end{markdown} % \begin{macrocode} - function self.inline_html(html) return "" end - function self.display_html(html) return "" end + function self.inline_html_comment(contents) + return {"\\markdownRendererInlineHtmlComment{",contents,"}"} + end % \end{macrocode} % \par % \begin{markdown} @@ -14255,8 +15121,9 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Define \luamdef{writer->active_headings} as a stack of identifiers -% of the headings that are currently active. +% Define \luamdef{writer->active\_headings} as a stack of identifiers +% of the headings that are currently active. The +% \luam{writer->active\_headings} member variable is mutable. % % \end{markdown} % \begin{macrocode} @@ -14339,42 +15206,93 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Define \luamdef{writer->note} as a function that will transform an -% input footnote `s` to the output format. +% Define \luamdef{writer->note} as a function that will transform an +% input footnote `s` to the output format. +% +% \end{markdown} +% \begin{macrocode} + function self.note(s) + return {"\\markdownRendererFootnote{",s,"}"} + end +% \end{macrocode} +% \par +% \begin{markdown} +% +% Define \luamdef{writer->citations} as a function that will transform an +% input array of citations `cites` to the output format. If `text_cites` +% is enabled, the citations should be rendered in-text, when applicable. +% The `cites` array contains tables with the following keys and values: +% \begin{itemize} +% \item`suppress_author` -- If the value of the key is true, then the +% author of the work should be omitted in the citation, when applicable. +% \item`prenote` -- The value of the key is either `nil` or a rope +% that should be inserted before the citation. +% \item`postnote` -- The value of the key is either `nil` or a rope +% that should be inserted after the citation. +% \item`name` -- The value of this key is the citation name. +% \end{itemize} +% +% \end{markdown} +% \begin{macrocode} + function self.citations(text_cites, cites) + local buffer = {"\\markdownRenderer", text_cites and "TextCite" or "Cite", + "{", #cites, "}"} + for _,cite in ipairs(cites) do + buffer[#buffer+1] = {cite.suppress_author and "-" or "+", "{", + cite.prenote or "", "}{", cite.postnote or "", "}{", cite.name, "}"} + end + return buffer + end +% \end{macrocode} +% \par +% \begin{markdown} +% +% Define \luamdef{writer->get_state} as a function that returns the current +% state of the writer, where the state of a writer are its mutable member +% variables. +% +% \end{markdown} +% \begin{macrocode} + function self.get_state() + return { + is_writing=self.is_writing, + active_headings={table.unpack(self.active_headings)}, + } + end +% \end{macrocode} +% \par +% \begin{markdown} +% +% Define \luamdef{writer->set_state} as a function that restores the input +% state `s` and returns the previous state of the writer. % % \end{markdown} % \begin{macrocode} - function self.note(s) - return {"\\markdownRendererFootnote{",s,"}"} + function self.set_state(s) + previous_state = self.get_state() + for key, value in pairs(state) do + self[key] = value + end + return previous_state end % \end{macrocode} % \par % \begin{markdown} % -% Define \luamdef{writer->citations} as a function that will transform an -% input array of citations `cites` to the output format. If `text_cites` -% is enabled, the citations should be rendered in-text, when applicable. -% The `cites` array contains tables with the following keys and values: -% \begin{itemize} -% \item`suppress_author` -- If the value of the key is true, then the -% author of the work should be omitted in the citation, when applicable. -% \item`prenote` -- The value of the key is either `nil` or a rope -% that should be inserted before the citation. -% \item`postnote` -- The value of the key is either `nil` or a rope -% that should be inserted after the citation. -% \item`name` -- The value of this key is the citation name. -% \end{itemize} +% Define \luamdef{writer->defer_call} as a function that will encapsulate the +% input function `f`, so that `f` is called with the state of the writer at the +% time of calling \luam{writer->defer_call}. % % \end{markdown} % \begin{macrocode} - function self.citations(text_cites, cites) - local buffer = {"\\markdownRenderer", text_cites and "TextCite" or "Cite", - "{", #cites, "}"} - for _,cite in ipairs(cites) do - buffer[#buffer+1] = {cite.suppress_author and "-" or "+", "{", - cite.prenote or "", "}{", cite.postnote or "", "}{", cite.name, "}"} + function self.defer_call(f) + state = self.get_state() + return function(...) + state = self.set_state(state) + local return_value = f(...) + self.set_state(state) + return return_value end - return buffer end return self @@ -14428,6 +15346,7 @@ parsers.semicolon = P(";") parsers.exclamation = P("!") parsers.pipe = P("|") parsers.tilde = P("~") +parsers.backslash = P("\\") parsers.tab = P("\t") parsers.newline = P("\n") parsers.tightblocksep = P("\001") @@ -14450,7 +15369,7 @@ parsers.any = P(1) parsers.fail = parsers.any - 1 parsers.escapable = S("\\`*_{}[]()+_.!<>#-~:^@;") -parsers.anyescaped = P("\\") / "" * parsers.escapable +parsers.anyescaped = parsers.backslash / "" * parsers.escapable + parsers.any parsers.spacechar = S("\t ") @@ -14483,6 +15402,30 @@ parsers.spnl = parsers.optionalspace parsers.line = parsers.linechar^0 * parsers.newline parsers.nonemptyline = parsers.line - parsers.blankline +parsers.commented_line = Cs(((parsers.linechar -- initial + - parsers.backslash + - parsers.percent)^1 + + (parsers.backslash -- even backslash + * parsers.backslash)^1 + + (parsers.backslash -- odd backslash + * parsers.backslash)^0 + * (parsers.backslash / "" + * parsers.percent + + parsers.backslash + * (parsers.linechar -- initial + + parsers.newline + - parsers.backslash + - parsers.percent)) + )^0) + * ((parsers.percent -- comment + * parsers.line + * #parsers.blankline) -- blank line + / "\n" + + parsers.percent -- comment + * parsers.line + * parsers.optionalspace -- leading tabs and spaces + + C(parsers.newline)) + parsers.chunk = parsers.line * (parsers.optionallyindentedline - parsers.blankline)^0 @@ -14959,9 +15902,13 @@ parsers.htmlattribute = parsers.spacing^1 * parsers.sp * parsers.equal * parsers.sp * parsers.htmlattributevalue -parsers.htmlcomment = P(""))^0 * P("-->") +parsers.htmlcomment = P(""))^0) + * parsers.optionalspace + * P("-->") -parsers.htmlinstruction = P("" ))^0 * P("?>" ) +parsers.htmlinstruction = P(""))^0 * P("?>") parsers.openelt_any = parsers.less * parsers.keyword * parsers.htmlattribute^0 * parsers.sp * parsers.more @@ -15008,17 +15955,11 @@ end parsers.in_matched_block_tags = parsers.less * Cmt(#parsers.openelt_block, parse_matched_tags) -parsers.displayhtml = parsers.htmlcomment +parsers.displayhtml = parsers.htmlcomment / "" + parsers.emptyelt_block + parsers.openelt_exact("hr") + parsers.in_matched_block_tags + parsers.htmlinstruction - -parsers.inlinehtml = parsers.emptyelt_any - + parsers.htmlcomment - + parsers.htmlinstruction - + parsers.openelt_any - + parsers.closeelt_any % \end{macrocode} % \par % \begin{markdown} @@ -15204,15 +16145,29 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function normalize_tag(tag) - return unicode.utf8.lower( + return string.lower( gsub(util.rope_to_string(tag), "[ \n\r\t]+", " ")) end % \end{macrocode} % \par % \begin{markdown} % +% Define \luamdef{iterlines} as a function that iterates over the lines of +% the input string `s`, transforms them using an input function `f`, and +% reassembles them into a new string, which it returns. +% +% \end{markdown} +% \begin{macrocode} + local function iterlines(s, f) + rope = lpeg.match(Ct((parsers.line / f)^1), s) + return util.rope_to_string(rope) + end +% \end{macrocode} +% \par +% \begin{markdown} +% % Define \luamdef{expandtabs} either as an identity function, when the -% \Opt{preserveTabs} Lua inrerface option is enabled, or to a function that +% \Opt{preserveTabs} Lua interface option is enabled, or to a function that % expands tabs into spaces otherwise. % % \end{markdown} @@ -15223,7 +16178,7 @@ function M.reader.new(writer, options) else expandtabs = function(s) if s:find("\t") then - return s:gsub("[^\n]*", util.expand_tabs_in_line) + return iterlines(s, util.expand_tabs_in_line) else return s end @@ -15248,8 +16203,52 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - local function create_parser(name, grammar) + local function create_parser(name, grammar, toplevel) return function(str) +% \end{macrocode} +% \par +% \begin{markdown} +% +% If the parser is top-level and the \Opt{stripIndent} Lua option is enabled, +% we will first expand tabs in the input string `str` into spaces and then we +% will count the minimum indent across all lines, skipping blank lines. Next, +% we will remove the minimum indent from all lines. +% +% \end{markdown} +% \begin{macrocode} + if toplevel and options.stripIndent then + local min_prefix_length, min_prefix = nil, '' + str = iterlines(str, function(line) + if lpeg.match(parsers.nonemptyline, line) == nil then + return line + end + line = util.expand_tabs_in_line(line) + prefix = lpeg.match(C(parsers.optionalspace), line) + local prefix_length = #prefix + local is_shorter = min_prefix_length == nil + is_shorter = is_shorter or prefix_length < min_prefix_length + if is_shorter then + min_prefix_length, min_prefix = prefix_length, prefix + end + return line + end) + str = str:gsub('^' .. min_prefix, '') + end +% \end{macrocode} +% \par +% \begin{markdown} +% +% If the parser is top-level and the \Opt{texComments} Lua option is +% enabled, we will strip all plain \TeX{} comments from the input string `str` +% together with the trailing newline characters. +% +% \end{markdown} +% \begin{macrocode} + if toplevel and options.texComments then + str = lpeg.match(Ct(parsers.commented_line^1), str) + str = util.rope_to_string(str) + print(str) + end local res = lpeg.match(grammar(), str) if res == nil then error(format("%s failed on:\n%s", name, str:sub(1,20))) @@ -15263,37 +16262,43 @@ function M.reader.new(writer, options) = create_parser("parse_blocks", function() return larsers.blocks - end) + end, false) local parse_blocks_toplevel = create_parser("parse_blocks_toplevel", function() return larsers.blocks_toplevel - end) + end, true) local parse_inlines = create_parser("parse_inlines", function() return larsers.inlines - end) + end, false) local parse_inlines_no_link = create_parser("parse_inlines_no_link", function() return larsers.inlines_no_link - end) + end, false) local parse_inlines_no_inline_note = create_parser("parse_inlines_no_inline_note", function() return larsers.inlines_no_inline_note - end) + end, false) + + local parse_inlines_no_html + = create_parser("parse_inlines_no_html", + function() + return larsers.inlines_no_html + end, false) local parse_inlines_nbsp = create_parser("parse_inlines_nbsp", function() return larsers.inlines_nbsp - end) + end, false) % \end{macrocode} % \par % \begin{markdown} @@ -15381,14 +16386,14 @@ function M.reader.new(writer, options) -- like indirect_link local function lookup_note(ref) - return function() + return writer.defer_call(function() local found = rawnotes[normalize_tag(ref)] if found then return writer.note(parse_blocks_toplevel(found)) else return {"[", parse_inlines("^" .. ref), "]"} end - end + end) end local function register_note(ref,rawnote) @@ -15480,27 +16485,27 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline -- lookup link reference and return a link, if the reference is found, -- or a bracketed label otherwise. local function indirect_link(label,sps,tag) - return function() + return writer.defer_call(function() local r,fallback = lookup_reference(label,sps,tag) if r then return writer.link(parse_inlines_no_link(label), r.url, r.title) else return fallback end - end + end) end -- lookup image reference and return an image, if the reference is found, -- or a bracketed label otherwise. local function indirect_image(label,sps,tag) - return function() + return writer.defer_call(function() local r,fallback = lookup_reference(label,sps,tag) if r then return writer.image(writer.string(label), r.url, r.title) else return {"!", fallback} end - end + end) end % \end{macrocode} % \par @@ -15602,7 +16607,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline * C(parsers.alphanumeric^1 * P("://") * parsers.urlchar^1) * parsers.more / function(url) - return writer.link(writer.string(url), url) + return writer.link(writer.escape(url), url) end larsers.AutoLinkEmail = parsers.less @@ -15610,7 +16615,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline * P("@") * parsers.urlchar^1) * parsers.more / function(email) - return writer.link(writer.string(email), + return writer.link(writer.escape(email), "mailto:"..email) end @@ -15642,20 +16647,22 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline larsers.Image = larsers.DirectImage + larsers.IndirectImage - larsers.TextCitations = Ct(Cc("") + larsers.TextCitations = Ct((parsers.spnl + * Cc("") * parsers.citation_name * ((parsers.spnl * parsers.lbracket * parsers.citation_headless_body - * parsers.rbracket) + Cc(""))) + * parsers.rbracket) + Cc("")))^1) / function(raw_cites) return larsers.citations(true, raw_cites) end larsers.ParenthesizedCitations - = Ct(parsers.lbracket + = Ct((parsers.spnl + * parsers.lbracket * parsers.citation_body - * parsers.rbracket) + * parsers.rbracket)^1) / function(raw_cites) return larsers.citations(false, raw_cites) end @@ -15666,9 +16673,14 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline larsers.UlOrStarLine = parsers.asterisk^4 + parsers.underscore^4 / writer.string - larsers.EscapedChar = S("\\") * C(parsers.escapable) / writer.string + larsers.EscapedChar = parsers.backslash * C(parsers.escapable) / writer.string - larsers.InlineHtml = C(parsers.inlinehtml) / writer.inline_html + larsers.InlineHtml = parsers.emptyelt_any + + (parsers.htmlcomment / parse_inlines_no_html) + / writer.inline_html_comment + + parsers.htmlinstruction + + parsers.openelt_any + + parsers.closeelt_any larsers.HtmlEntity = parsers.hexentity / entities.hex_entity / writer.string + parsers.decentity / entities.dec_entity / writer.string @@ -15686,8 +16698,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline * parsers.contentblock_tail / writer.contentblock - larsers.DisplayHtml = C(parsers.displayhtml) - / expandtabs / writer.display_html + larsers.DisplayHtml = parsers.displayhtml larsers.Verbatim = Cs( (parsers.blanklines * ((parsers.indentedline - parsers.blankline))^1)^1 @@ -16044,6 +17055,10 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline syntax.Smart = parsers.fail end + if options.preserveTabs then + options.stripIndent = false + end + if not options.pipeTables then syntax.PipeTable = parsers.fail end @@ -16067,6 +17082,12 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline inlines_no_inline_note_t.InlineNote = parsers.fail larsers.inlines_no_inline_note = Ct(inlines_no_inline_note_t) + local inlines_no_html_t = util.table_copy(inlines_t) + inlines_no_html_t.DisplayHtml = parsers.fail + inlines_no_html_t.InlineHtml = parsers.fail + inlines_no_html_t.HtmlEntity = parsers.fail + larsers.inlines_no_html = Ct(inlines_no_html_t) + local inlines_nbsp_t = util.table_copy(inlines_t) inlines_nbsp_t.Endline = larsers.NonbreakingEndline inlines_nbsp_t.Space = larsers.NonbreakingSpace @@ -16125,10 +17146,12 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline else mode = "w" end - file = assert(io.open(options.frozenCacheFileName, mode)) - assert(file:write([[\expandafter\def\csname markdownFrozenCache]] .. - options.frozenCacheCounter .. [[\endcsname{]] .. output .. [[}]] .. - "\n")) + file = assert(io.open(options.frozenCacheFileName, mode), + [[could not open file "]] .. options.frozenCacheFileName + .. [[" for writing]]) + assert(file:write([[\expandafter\global\expandafter\def\csname ]] + .. [[markdownFrozenCache]] .. options.frozenCacheCounter + .. [[\endcsname{]] .. output .. [[}]] .. "\n")) assert(file:close()) end return output @@ -16172,7 +17195,8 @@ return M local input if input_filename then - local input_file = assert(io.open(input_filename, "r")) + local input_file = assert(io.open(input_filename, "r"), + [[could not open file "]] .. input_filename .. [[" for reading]]) input = assert(input_file:read("*a")) assert(input_file:close()) else @@ -16189,8 +17213,8 @@ if options.cacheDir and not lfs.isdir(options.cacheDir) then assert(lfs.mkdir(options["cacheDir"])) end -local kpse = require("kpse") -kpse.set_program_name("luatex") +local ran_ok, kpse = pcall(require, "kpse") +if ran_ok then kpse.set_program_name("luatex") end local md = require("markdown") % \end{macrocode} % \begin{markdown} @@ -16214,7 +17238,8 @@ local convert = md.new(options) local output = convert(input:gsub("\r\n?", "\n") .. "\n") if output_filename then - local output_file = assert(io.open(output_filename, "w")) + local output_file = assert(io.open(output_filename, "w"), + [[could not open file "]] .. output_filename .. [[" for writing]]) assert(output_file:write(output)) assert(output_file:close()) else @@ -16241,13 +17266,19 @@ end % % \end{markdown} % \begin{macrocode} -\def\markdownInfo#1{% - \immediate\write-1{(l.\the\inputlineno) markdown.tex info: #1.}}% -\def\markdownWarning#1{% - \immediate\write16{(l.\the\inputlineno) markdown.tex warning: #1}}% -\def\markdownError#1#2{% - \errhelp{#2.}% - \errmessage{(l.\the\inputlineno) markdown.tex error: #1}}% +\ifx\markdownInfo\undefined + \def\markdownInfo#1{% + \immediate\write-1{(l.\the\inputlineno) markdown.tex info: #1.}}% +\fi +\ifx\markdownWarning\undefined + \def\markdownWarning#1{% + \immediate\write16{(l.\the\inputlineno) markdown.tex warning: #1}}% +\fi +\ifx\markdownError\undefined + \def\markdownError#1#2{% + \errhelp{#2.}% + \errmessage{(l.\the\inputlineno) markdown.tex error: #1}}% +\fi % \end{macrocode} % \par % \begin{markdown} @@ -16270,6 +17301,7 @@ end % \begin{markdown} % %### Token Renderer Prototypes +% \label{sec:textokenrendererprototypes} % The following definitions should be considered placeholder. % % \end{markdown} @@ -16425,9 +17457,15 @@ end \ifx\markdownOptionStartNumber\undefined\else startNumber = \markdownOptionStartNumber, \fi +\ifx\markdownOptionStripIndent\undefined\else + stripIndent = \markdownOptionStripIndent, +\fi \ifx\markdownOptionTableCaptions\undefined\else tableCaptions = \markdownOptionTableCaptions, \fi +\ifx\markdownOptionTeXComments\undefined\else + texComments = \markdownOptionTeXComments, +\fi \ifx\markdownOptionTightLists\undefined\else tightLists = \markdownOptionTightLists, \fi @@ -16793,8 +17831,8 @@ end "|markdownOptionHelperScriptFileName"}% |immediate|write|markdownOutputFileStream{% local ran_ok, error = pcall(function() - local kpse = require("kpse") - kpse.set_program_name("luatex") + local ran_ok, kpse = pcall(require, "kpse") + if ran_ok then kpse.set_program_name("luatex") end #1 end) % \end{macrocode} @@ -16891,6 +17929,15 @@ end |gdef|markdownInput#1{% % \end{macrocode} % \begin{markdown} +% Change the category code of the percent sign (`%`) to other, so that a user +% of the \Opt{hybrid} Lua option or a malevolent actor can't produce TeX +% comments in the plain TeX output of the Markdown package. +% \end{markdown} +% \begin{macrocode} + |begingroup + |catcode`|%=12 +% \end{macrocode} +% \begin{markdown} % If we are reading from the frozen cache, input it, expand the corresponding % `\markdownFrozenCache`\meta{number} macro, and increment % \m{markdownFrozenCacheCounter}. @@ -16905,7 +17952,7 @@ end |markdownInfo{Including markdown document number "|the|markdownFrozenCacheCounter" from frozen cache}% |csname markdownFrozenCache|the|markdownFrozenCacheCounter|endcsname - |advance|markdownFrozenCacheCounter by 1|relax + |global|advance|markdownFrozenCacheCounter by 1|relax }{% |markdownInfo{Including markdown document "#1"}% % \end{macrocode} @@ -16919,7 +17966,8 @@ end |closein|markdownInputFileStream |markdownLuaExecute{% |markdownPrepare - local file = assert(io.open("#1", "r")) + local file = assert(io.open("#1", "r"), + [[could not open file "#1" for reading]]) local input = assert(file:read("*a")) assert(file:close()) % \end{macrocode} @@ -16937,9 +17985,10 @@ end % \end{markdown} % \begin{macrocode} |markdownIfOption{FinalizeCache}{% - |advance|markdownFrozenCacheCounter by 1|relax + |global|advance|markdownFrozenCacheCounter by 1|relax }% }% + |endgroup }% |endgroup % \end{macrocode} @@ -16958,9 +18007,16 @@ end % 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 \ref{sec:texinterfacelogging}) to use the \LaTeX{} \m{PackageInfo}, +% \m{PackageWarning}, and \m{PackageError} macros. +% % \end{markdown} % \begin{macrocode} -\input markdown +\newcommand\markdownInfo[1]{\PackageInfo{markdown}{#1}}% +\newcommand\markdownWarning[1]{\PackageWarning{markdown}{#1}}% +\newcommand\markdownError[2]{\PackageError{markdown}{#1}{#2.}}% +\input markdown/markdown \def\markdownVersionSpace{ }% \ProvidesPackage{markdown}[\markdownLastModified\markdownVersionSpace v% \markdownVersion\markdownVersionSpace markdown renderer]% @@ -16975,9 +18031,6 @@ end % % \end{markdown} % \begin{macrocode} -\renewcommand\markdownInfo[1]{\PackageInfo{markdown}{#1}}% -\renewcommand\markdownWarning[1]{\PackageWarning{markdown}{#1}}% -\renewcommand\markdownError[2]{\PackageError{markdown}{#1}{#2.}}% % \end{macrocode} % \par % \begin{markdown} @@ -17041,7 +18094,6 @@ end \expandafter\markdownSetup\expandafter{\CurrentOption}}% \ProcessOptions\relax % \end{macrocode} -% \par % \begin{markdown} % % After processing the options, activate the `renderers` and @@ -17059,8 +18111,229 @@ end % \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} +% \iffalse +% +%<*latex-themes-witiko-dot> +% \fi +% \begin{macrocode} +\markdownSetup{fencedCode}% +% \end{macrocode} +% \begin{markdown} +% +% We store the previous definition of the fenced code token renderer prototype: +% +% \end{markdown} +% \begin{macrocode} +\let\markdown@witiko@dot@oldRendererInputFencedCodePrototype + \markdownRendererInputFencedCodePrototype +% \end{macrocode} +% \begin{markdown} +% +% If the infostring starts with `dot …`, we redefine the fenced code block +% token renderer prototype, so that it typesets the code block via Graphviz +% tools if and only if the \m{markdownOptionFrozenCache} plain \TeX{} option is +% disabled and the code block has not been previously typeset: +% +% \end{markdown} +% \begin{macrocode} +\RequirePackage{ifthen} +\renewcommand\markdownRendererInputFencedCode[2]{% + \def\next##1 ##2\relax{% + \ifthenelse{\equal{##1}{dot}}{% + \markdownIfOption{FrozenCache}{}{% + \immediate\write18{% + if ! test -e #1.pdf.source || ! diff #1 #1.pdf.source; + then + dot -Tpdf -o #1.pdf #1; + cp #1 #1.pdf.source; + fi}}% +% \end{macrocode} +% \begin{markdown} +% +% We include the typeset image using the image token renderer: +% +% \end{markdown} +% \begin{macrocode} + \markdownRendererImage{Graphviz image}{#1.pdf}{#1.pdf}{##2}% +% \end{macrocode} +% \begin{markdown} +% +% If the infostring does not start with `dot …`, we use the previous definition +% of the fenced code token renderer prototype: +% +% \end{markdown} +% \begin{macrocode} + }{% + \markdown@witiko@dot@oldRendererInputFencedCodePrototype{#1}{#2}% + }% + }% + \next#2 \relax}% +% \end{macrocode} +% \iffalse +% +%<*latex-themes-witiko-graphicx-http> +% \fi +% \par +% \begin{markdown} +% +% The `witiko/graphicx/http` theme stores the previous definition of the image +% token renderer prototype: +% +% \end{markdown} +% \begin{macrocode} +\let\markdown@witiko@graphicx@http@oldRendererImagePrototype + \markdownRendererImagePrototype +% \end{macrocode} +% \begin{markdown} +% +% We define the \m{markdown@witiko@graphicx@http@counter} counter to enumerate +% the images for caching and the \m{markdown@witiko@graphicx@http@filename} +% command, which will store the pathname of the file containing the pathname +% of the downloaded image file. +% +% \end{markdown} +% \begin{macrocode} +\newcount\markdown@witiko@graphicx@http@counter +\markdown@witiko@graphicx@http@counter=0 +\newcommand\markdown@witiko@graphicx@http@filename{% + \markdownOptionCacheDir/witiko_graphicx_http% + .\the\markdown@witiko@graphicx@http@counter}% +% \end{macrocode} +% \begin{markdown} +% +% We define the \m{markdown@witiko@graphicx@http@download} command, which will +% receive two arguments that correspond to the URL of the online image and to +% the pathname, where the online image should be downloaded. The command will +% produce a shell command that tries to downloads the online image to the +% pathname. +% +% \end{markdown} +% \begin{macrocode} +\newcommand\markdown@witiko@graphicx@http@download[2]{% + wget -O #2 #1 || curl --location -o #2 #1 || rm -f #2} +% \end{macrocode} +% \begin{markdown} +% +% We locally swap the category code of the percentage sign with the line feed +% control character, so that we can use percentage signs in the shell code: +% +% \end{markdown} +% \begin{macrocode} +\begingroup +\catcode`\%=12 +\catcode`\^^A=14 +% \end{macrocode} +% \begin{markdown} +% +% We redefine the image token renderer prototype, so that it tries to download +% an online image. +% +% \end{markdown} +% \begin{macrocode} +\global\def\markdownRendererImagePrototype#1#2#3#4{^^A + \begingroup + \edef\filename{\markdown@witiko@graphicx@http@filename}^^A +% \end{macrocode} +% \begin{markdown} +% +% The image will be downloaded only if the image URL has the http or https +% protocols and the \m{markdownOptionFrozenCache} plain \TeX{} option is disabled: +% +% \end{markdown} +% \begin{macrocode} + \markdownIfOption{FrozenCache}{}{^^A + \immediate\write18{^^A + if printf '%s' "#3" | grep -q -E '^https?:'; + then +% \end{macrocode} +% \begin{markdown} +% +% The image will be downloaded to the pathname \m{markdownOptionCacheDir}`/`\meta{the MD5 digest of the image URL}`.`\meta{the suffix of the +% image URL}: +% +% \end{markdown} +% \begin{macrocode} + OUTPUT_PREFIX="\markdownOptionCacheDir"; + OUTPUT_BODY="$(printf '%s' '#3' | md5sum | cut -d' ' -f1)"; + OUTPUT_SUFFIX="$(printf '%s' '#3' | sed 's/.*[.]//')"; + OUTPUT="$OUTPUT_PREFIX/$OUTPUT_BODY.$OUTPUT_SUFFIX"; +% \end{macrocode} +% \begin{markdown} +% +% The image will be downloaded only if it has not already been downloaded: +% +% \end{markdown} +% \begin{macrocode} + if ! [ -e "$OUTPUT" ]; + then + \markdown@witiko@graphicx@http@download{'#3'}{"$OUTPUT"}; + printf '%s' "$OUTPUT" > "\filename"; + fi; +% \end{macrocode} +% \begin{markdown} +% +% If the image does not have the http or https protocols or the image has +% already been downloaded, the URL will be stored as-is: +% +% \end{markdown} +% \begin{macrocode} + else + printf '%s' '#3' > "\filename"; + fi}}^^A +% \end{macrocode} +% \begin{markdown} +% +% We load the pathname of the downloaded image and we typeset the image using +% the previous definition of the image renderer prototype: +% +% \end{markdown} +% \begin{macrocode} + \CatchFileDef{\filename}{\filename}{}^^A + \markdown@witiko@graphicx@http@oldRendererImagePrototype^^A + {#1}{#2}{\filename}{#4}^^A + \endgroup + \global\advance\markdown@witiko@graphicx@http@counter by 1\relax}^^A +\endgroup +% \end{macrocode} +% \iffalse +% +%<*latex-themes-witiko-tilde> +% \fi +% \par +% \begin{markdown} +% +% The `witiko/tilde` theme redefines the tilde token renderer prototype, +% so that it expands to a non-breaking space: +% +% \end{markdown} +% \begin{macrocode} +\renewcommand\markdownRendererTildePrototype{~}% +% \end{macrocode} +% \iffalse +% +%<*latex> +% \fi +% \par +% \begin{markdown} +% %### Token Renderer Prototypes -% The following configuration should be considered placeholder. +% The following configuration should be considered placeholder. If the `plain` +% package option has been enabled (see Section \ref{sec:latexplain}), none of +% it will take effect. +% \end{markdown} +% \begin{macrocode} +\ifmarkdownLaTeXPlain\else +% \end{macrocode} +% \par +% \begin{markdown} % % If the \m{markdownOptionTightLists} macro expands to `false`, do not load % the \pkg{paralist} package. This is necessary for \Hologo{LaTeX2e} document @@ -17070,13 +18343,14 @@ end % % \end{markdown} % \begin{macrocode} -\ifx\markdownOptionTightLists\undefined - \@ifclassloaded{beamer}{}{ - \RequirePackage{paralist}} -\else - \ifthenelse{\equal{\markdownOptionTightLists}{false}}{}{ - \RequirePackage{paralist}} -\fi +\RequirePackage{ifthen} +\@ifundefined{markdownOptionTightLists}{% + \@ifclassloaded{beamer}{}{% + \RequirePackage{paralist}}% +}{% + \ifthenelse{\equal{\markdownOptionTightLists}{false}}{}{% + \RequirePackage{paralist}}% +}% % \end{macrocode} % \par % \begin{markdown} @@ -17104,6 +18378,9 @@ end olEndTight = {\markdownRendererOlEnd}, dlBeginTight = {\markdownRendererDlBegin}, dlEndTight = {\markdownRendererDlEnd}}}} +\RequirePackage{csvsimple} +\RequirePackage{fancyvrb} +\RequirePackage{graphicx} \markdownSetup{rendererPrototypes={ lineBreak = {\\}, leftBrace = {\textbraceleft}, @@ -17137,10 +18414,10 @@ end \label{fig:#1}% \end{figure}}, ulBegin = {\begin{itemize}}, - ulItem = {\item}, + ulItem = {\item{}}, ulEnd = {\end{itemize}}, olBegin = {\begin{enumerate}}, - olItem = {\item}, + olItem = {\item{}}, olItemWithNumber = {\item[#1.]}, olEnd = {\end{enumerate}}, dlBegin = {\begin{description}}, @@ -17154,8 +18431,8 @@ end \ifx\relax#2\relax \VerbatimInput{#1}% \else - \ifx\minted@code\undefined - \ifx\lst@version\undefined + \@ifundefined{minted@code}{% + \@ifundefined{lst@version}{% \markdownRendererInputFencedCode{#1}{}% % \end{macrocode} % \par @@ -17165,9 +18442,9 @@ end % % \end{markdown} % \begin{macrocode} - \else + }{% \lstinputlisting[language=#2]{#1}% - \fi + }% % \end{macrocode} % \par % \begin{markdown} @@ -17177,9 +18454,9 @@ end % % \end{markdown} % \begin{macrocode} - \else + }{% \inputminted{#2}{#1}% - \fi + }% \fi}, horizontalRule = {\noindent\rule[0.5ex]{\linewidth}{1pt}}, footnote = {\footnote{#1}}}} @@ -17191,19 +18468,10 @@ end % % \end{markdown} % \begin{macrocode} -\newif\ifmarkdownLATEXStrongEmphasisNested -\markdownLATEXStrongEmphasisNestedfalse -\markdownSetup{rendererPrototypes={ - strongEmphasis = {% - \ifmarkdownLATEXStrongEmphasisNested - \markdownLATEXStrongEmphasisNestedfalse - \textmd{#1}% - \markdownLATEXStrongEmphasisNestedtrue - \else - \markdownLATEXStrongEmphasisNestedtrue - \textbf{#1}% - \markdownLATEXStrongEmphasisNestedfalse - \fi}}} +\def\markdownLATEXStrongEmphasis#1{% + \IfSubStr\f@series{b}{\textnormal{#1}}{\textbf{#1}}} +\markdownSetup{rendererPrototypes={strongEmphasis={% + \protect\markdownLATEXStrongEmphasis{#1}}}} % \end{macrocode} % \par % \begin{markdown} @@ -17212,14 +18480,14 @@ end % % \end{markdown} % \begin{macrocode} -\ifx\chapter\undefined +\@ifundefined{chapter}{% \markdownSetup{rendererPrototypes = { headingOne = {\section{#1}}, headingTwo = {\subsection{#1}}, headingThree = {\subsubsection{#1}}, headingFour = {\paragraph{#1}\leavevmode}, headingFive = {\subparagraph{#1}\leavevmode}}} -\else +}{% \markdownSetup{rendererPrototypes = { headingOne = {\chapter{#1}}, headingTwo = {\section{#1}}, @@ -17227,7 +18495,7 @@ end headingFour = {\subsubsection{#1}}, headingFive = {\paragraph{#1}\leavevmode}, headingSix = {\subparagraph{#1}\leavevmode}}} -\fi +}% % \end{macrocode} % \par % \begin{markdown} @@ -17243,6 +18511,7 @@ end \newcount\markdownLaTeXCitationsCounter % Basic implementation +\RequirePackage{gobble} \def\markdownLaTeXBasicCitations#1#2#3#4#5#6{% \advance\markdownLaTeXCitationsCounter by 1\relax \ifx\relax#4\relax @@ -17417,47 +18686,47 @@ end cite = {% \markdownLaTeXCitationsCounter=1% \def\markdownLaTeXCitationsTotal{#1}% - \ifx\autocites\undefined - \ifx\citep\undefined + \@ifundefined{autocites}{% + \@ifundefined{citep}{% \expandafter\expandafter\expandafter \markdownLaTeXBasicCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% - \else + }{% \expandafter\expandafter\expandafter \markdownLaTeXNatbibCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% - \fi - \else + }% + }{% \expandafter\expandafter\expandafter \markdownLaTeXBibLaTeXCitations \expandafter{\expandafter}% - \fi}, + }}, textCite = {% \markdownLaTeXCitationsCounter=1% \def\markdownLaTeXCitationsTotal{#1}% - \ifx\autocites\undefined - \ifx\citep\undefined + \@ifundefined{autocites}{% + \@ifundefined{citep}{% \expandafter\expandafter\expandafter \markdownLaTeXBasicTextCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% - \else + }{% \expandafter\expandafter\expandafter \markdownLaTeXNatbibTextCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% - \fi - \else + }% + }{% \expandafter\expandafter\expandafter \markdownLaTeXBibLaTeXTextCitations \expandafter{\expandafter}% - \fi}}} + }}}} % \end{macrocode} % \par % \begin{markdown} @@ -17469,6 +18738,7 @@ end % % \end{markdown} % \begin{macrocode} +\RequirePackage{url} \def\markdownRendererLinkPrototype{% \begingroup \catcode`\#=12 @@ -17540,8 +18810,6 @@ end \fi \advance\markdownLaTeXRowCounter by 1\relax \ifnum\markdownLaTeXRowCounter>\markdownLaTeXRowTotal\relax - \markdownInfo{\the\markdownLaTeXTable} - \markdownInfo{\the\markdownLaTeXTableEnd} \the\markdownLaTeXTable \the\markdownLaTeXTableEnd \expandafter\@gobble @@ -17564,6 +18832,7 @@ end \addto@hook\markdownLaTeXTable{#1\\}% \expandafter\@gobble \fi\markdownLaTeXRenderTableCell} +\fi % \end{macrocode} % \par % \begin{markdown} @@ -17600,11 +18869,17 @@ end % consequence, we can directly reuse the existing plain \TeX{} implementation % after supplying the missing plain \TeX{} macros. % +% The \Hologo{ConTeXt} implementation redefines the plain \TeX{} logging macros +% (see Section \ref{sec:texinterfacelogging}) to use the \Hologo{ConTeXt} +% \m{writestatus} macro. +% % \end{markdown} % \begin{macrocode} +\def\markdownInfo#1{\writestatus{markdown}{#1.}}% +\def\markdownWarning#1{\writestatus{markdown\space warn}{#1.}}% \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\_\do\%\do\~}% -\input markdown +\input markdown/markdown % \end{macrocode} % \par % \begin{markdown} @@ -17637,19 +18912,6 @@ end % \par % \begin{markdown} % -%### Logging Facilities -% The \Hologo{ConTeXt} implementation redefines the plain \TeX{} logging macros (see -% Section \ref{sec:texinterfacelogging}) to use the \Hologo{ConTeXt} -% \m{writestatus} macro. -% -% \end{markdown} -% \begin{macrocode} -\def\markdownInfo#1{\writestatus{markdown}{#1.}}% -\def\markdownWarning#1{\writestatus{markdown\space warn}{#1.}}% -% \end{macrocode} -% \par -% \begin{markdown} -% %### Typesetting Markdown % The \m{startmarkdown} and \m{stopmarkdown} macros are implemented using the % \m{markdownReadAndConvert} macro. @@ -17704,12 +18966,12 @@ end \def\markdownConTeXtCSV{csv} \def\markdownRendererContentBlockPrototype#1#2#3#4{% \def\markdownConTeXtCSV@arg{#1}% - \ifx\markdownConTeXtCSV@arg\markdownConTeXtCSV + \ifx\markdownConTeXtCSV@arg\markdownConTeXtCSV \placetable[][tab:#1]{#4}{% \processseparatedfile[MarkdownConTeXtCSV][#3]}% - \else - \markdownInput{#3}% - \fi}% + \else + \markdownInput{#3}% + \fi}% \def\markdownRendererImagePrototype#1#2#3#4{% \placefigure[][fig:#1]{#4}{\externalfigure[#3]}}% \def\markdownRendererUlBeginPrototype{\startitemize}% diff --git a/macros/generic/markdown/markdown.html b/macros/generic/markdown/markdown.html index 5ca9b7eb10..7a53cfde6c 100644 --- a/macros/generic/markdown/markdown.html +++ b/macros/generic/markdown/markdown.html @@ -6,115 +6,119 @@ Markdown Package User Manual - - - -
+

Markdown Package User Manual

Vít Novotný

-

v2.9.0 (2020/09/14)

+

v2.10.0 (2021/08/06)

-